补充结果总览详情接口契约
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
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.vo.CcdiProjectPersonAnalysisDetailVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
||||
@@ -82,4 +84,15 @@ public class CcdiProjectOverviewController extends BaseController {
|
||||
CcdiProjectRiskModelPeopleVO people = overviewService.getRiskModelPeople(queryDTO);
|
||||
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;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectPersonAnalysisDetailQueryDTO;
|
||||
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.CcdiProjectRiskModelCardsVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
||||
@@ -36,6 +38,16 @@ public interface ICcdiProjectOverviewService {
|
||||
*/
|
||||
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.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.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.CcdiProjectOverviewDashboardVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewEmployeeHitRowVO;
|
||||
@@ -100,6 +102,12 @@ public class CcdiProjectOverviewServiceImpl implements ICcdiProjectOverviewServi
|
||||
return topRiskPeople;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectPersonAnalysisDetailVO getPersonAnalysisDetail(CcdiProjectPersonAnalysisDetailQueryDTO queryDTO) {
|
||||
ensureProjectExists(queryDTO.getProjectId());
|
||||
return new CcdiProjectPersonAnalysisDetailVO();
|
||||
}
|
||||
|
||||
@Override
|
||||
public CcdiProjectRiskModelCardsVO getRiskModelCards(Long projectId) {
|
||||
ensureProjectExists(projectId);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.ruoyi.ccdi.project.controller;
|
||||
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -63,4 +64,31 @@ class CcdiProjectOverviewControllerContractTest {
|
||||
assertTrue(fieldNames.contains("pageNum"));
|
||||
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("getRiskPeopleOverview", 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("refreshProjectRiskCounts", Long.class, String.class));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user