补充结果总览详情接口契约
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.ccdi.project.controller;
|
package com.ruoyi.ccdi.project.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO;
|
||||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
||||||
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectPersonAnalysisDetailVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
||||||
@@ -82,4 +84,15 @@ public class CcdiProjectOverviewController extends BaseController {
|
|||||||
CcdiProjectRiskModelPeopleVO people = overviewService.getRiskModelPeople(queryDTO);
|
CcdiProjectRiskModelPeopleVO people = overviewService.getRiskModelPeople(queryDTO);
|
||||||
return AjaxResult.success(people);
|
return AjaxResult.success(people);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询项目分析详情
|
||||||
|
*/
|
||||||
|
@GetMapping("/person-analysis/detail")
|
||||||
|
@Operation(summary = "查询项目分析详情")
|
||||||
|
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||||
|
public AjaxResult getPersonAnalysisDetail(CcdiProjectPersonAnalysisDetailQueryDTO queryDTO) {
|
||||||
|
CcdiProjectPersonAnalysisDetailVO detail = overviewService.getPersonAnalysisDetail(queryDTO);
|
||||||
|
return AjaxResult.success(detail);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.ruoyi.ccdi.project.domain.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目分析详情查询DTO
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectPersonAnalysisDetailQueryDTO {
|
||||||
|
|
||||||
|
/** 项目ID */
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/** 员工身份证号 */
|
||||||
|
private String staffIdCard;
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.ruoyi.ccdi.project.domain.vo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目分析异常明细
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectPersonAnalysisAbnormalDetailVO {
|
||||||
|
|
||||||
|
private List<CcdiProjectPersonAnalysisAbnormalGroupVO> groups;
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.ruoyi.ccdi.project.domain.vo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目分析异常分组
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectPersonAnalysisAbnormalGroupVO {
|
||||||
|
|
||||||
|
private String groupCode;
|
||||||
|
|
||||||
|
private String groupName;
|
||||||
|
|
||||||
|
private String groupType;
|
||||||
|
|
||||||
|
private List<?> records;
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.ruoyi.ccdi.project.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目分析人员基础信息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectPersonAnalysisBasicInfoVO {
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String idNo;
|
||||||
|
|
||||||
|
private String staffCode;
|
||||||
|
|
||||||
|
private String department;
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
private String riskLevel;
|
||||||
|
|
||||||
|
private String projectName;
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.ruoyi.ccdi.project.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目分析详情
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectPersonAnalysisDetailVO {
|
||||||
|
|
||||||
|
private CcdiProjectPersonAnalysisBasicInfoVO basicInfo;
|
||||||
|
|
||||||
|
private CcdiProjectPersonAnalysisAbnormalDetailVO abnormalDetail;
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.ruoyi.ccdi.project.domain.vo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目分析对象型异常记录
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CcdiProjectPersonAnalysisObjectRecordVO {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
private String subtitle;
|
||||||
|
|
||||||
|
private List<String> riskTags;
|
||||||
|
|
||||||
|
private String summary;
|
||||||
|
|
||||||
|
private List<Map<String, String>> extraFields;
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.ruoyi.ccdi.project.service;
|
package com.ruoyi.ccdi.project.service;
|
||||||
|
|
||||||
|
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO;
|
||||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
||||||
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectPersonAnalysisDetailVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
||||||
@@ -36,6 +38,16 @@ public interface ICcdiProjectOverviewService {
|
|||||||
*/
|
*/
|
||||||
CcdiProjectTopRiskPeopleVO getTopRiskPeople(Long projectId);
|
CcdiProjectTopRiskPeopleVO getTopRiskPeople(Long projectId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询项目分析详情
|
||||||
|
*
|
||||||
|
* @param queryDTO 查询条件
|
||||||
|
* @return 项目分析详情
|
||||||
|
*/
|
||||||
|
default CcdiProjectPersonAnalysisDetailVO getPersonAnalysisDetail(CcdiProjectPersonAnalysisDetailQueryDTO queryDTO) {
|
||||||
|
return new CcdiProjectPersonAnalysisDetailVO();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询风险模型卡片
|
* 查询风险模型卡片
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ package com.ruoyi.ccdi.project.service.impl;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.ruoyi.ccdi.project.domain.CcdiProject;
|
import com.ruoyi.ccdi.project.domain.CcdiProject;
|
||||||
|
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO;
|
||||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
||||||
import com.ruoyi.ccdi.project.domain.entity.CcdiProjectOverviewEmployeeResult;
|
import com.ruoyi.ccdi.project.domain.entity.CcdiProjectOverviewEmployeeResult;
|
||||||
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectPersonAnalysisDetailVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeRiskAggregateVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectEmployeeRiskAggregateVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewEmployeeHitRowVO;
|
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewEmployeeHitRowVO;
|
||||||
@@ -100,6 +102,12 @@ public class CcdiProjectOverviewServiceImpl implements ICcdiProjectOverviewServi
|
|||||||
return topRiskPeople;
|
return topRiskPeople;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CcdiProjectPersonAnalysisDetailVO getPersonAnalysisDetail(CcdiProjectPersonAnalysisDetailQueryDTO queryDTO) {
|
||||||
|
ensureProjectExists(queryDTO.getProjectId());
|
||||||
|
return new CcdiProjectPersonAnalysisDetailVO();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CcdiProjectRiskModelCardsVO getRiskModelCards(Long projectId) {
|
public CcdiProjectRiskModelCardsVO getRiskModelCards(Long projectId) {
|
||||||
ensureProjectExists(projectId);
|
ensureProjectExists(projectId);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.ruoyi.ccdi.project.controller;
|
package com.ruoyi.ccdi.project.controller;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.AjaxResult;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@@ -63,4 +64,31 @@ class CcdiProjectOverviewControllerContractTest {
|
|||||||
assertTrue(fieldNames.contains("pageNum"));
|
assertTrue(fieldNames.contains("pageNum"));
|
||||||
assertTrue(fieldNames.contains("pageSize"));
|
assertTrue(fieldNames.contains("pageSize"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldExposePersonAnalysisDetailEndpointContract() throws Exception {
|
||||||
|
Class<?> controllerClass = Class.forName("com.ruoyi.ccdi.project.controller.CcdiProjectOverviewController");
|
||||||
|
Class<?> queryDtoClass =
|
||||||
|
Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO");
|
||||||
|
Method method = controllerClass.getMethod("getPersonAnalysisDetail", queryDtoClass);
|
||||||
|
GetMapping getMapping = method.getAnnotation(GetMapping.class);
|
||||||
|
Operation operation = method.getAnnotation(Operation.class);
|
||||||
|
|
||||||
|
assertNotNull(getMapping);
|
||||||
|
assertEquals("/person-analysis/detail", getMapping.value()[0]);
|
||||||
|
assertNotNull(operation);
|
||||||
|
assertEquals(queryDtoClass, method.getParameterTypes()[0]);
|
||||||
|
assertEquals(AjaxResult.class, method.getReturnType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void shouldExposePersonAnalysisDetailQueryDtoFields() throws Exception {
|
||||||
|
Class<?> dtoClass = Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO");
|
||||||
|
|
||||||
|
List<String> fieldNames = Arrays.stream(dtoClass.getDeclaredFields())
|
||||||
|
.map(Field::getName)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
assertEquals(List.of("projectId", "staffIdCard"), fieldNames);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ class CcdiProjectOverviewServiceStructureTest {
|
|||||||
assertNotNull(clazz.getMethod("getDashboard", Long.class));
|
assertNotNull(clazz.getMethod("getDashboard", Long.class));
|
||||||
assertNotNull(clazz.getMethod("getRiskPeopleOverview", Long.class));
|
assertNotNull(clazz.getMethod("getRiskPeopleOverview", Long.class));
|
||||||
assertNotNull(clazz.getMethod("getTopRiskPeople", Long.class));
|
assertNotNull(clazz.getMethod("getTopRiskPeople", Long.class));
|
||||||
|
assertNotNull(clazz.getMethod(
|
||||||
|
"getPersonAnalysisDetail",
|
||||||
|
Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO")
|
||||||
|
));
|
||||||
assertNotNull(clazz.getMethod("refreshOverviewEmployeeResults", Long.class, String.class));
|
assertNotNull(clazz.getMethod("refreshOverviewEmployeeResults", Long.class, String.class));
|
||||||
assertNotNull(clazz.getMethod("refreshProjectRiskCounts", Long.class, String.class));
|
assertNotNull(clazz.getMethod("refreshProjectRiskCounts", Long.class, String.class));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user