定义结果总览模型区接口结构
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package com.ruoyi.ccdi.project.controller;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskPeopleOverviewVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectTopRiskPeopleVO;
|
||||
import com.ruoyi.ccdi.project.service.ICcdiProjectOverviewService;
|
||||
@@ -57,4 +60,26 @@ public class CcdiProjectOverviewController extends BaseController {
|
||||
CcdiProjectTopRiskPeopleVO topRiskPeople = overviewService.getTopRiskPeople(projectId);
|
||||
return AjaxResult.success(topRiskPeople);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询风险模型卡片
|
||||
*/
|
||||
@GetMapping("/risk-models/cards")
|
||||
@Operation(summary = "查询风险模型卡片")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getRiskModelCards(Long projectId) {
|
||||
CcdiProjectRiskModelCardsVO cards = overviewService.getRiskModelCards(projectId);
|
||||
return AjaxResult.success(cards);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询风险模型命中人员
|
||||
*/
|
||||
@GetMapping("/risk-models/people")
|
||||
@Operation(summary = "查询风险模型命中人员")
|
||||
@PreAuthorize("@ss.hasPermi('ccdi:project:query')")
|
||||
public AjaxResult getRiskModelPeople(CcdiProjectRiskModelPeopleQueryDTO queryDTO) {
|
||||
CcdiProjectRiskModelPeopleVO people = overviewService.getRiskModelPeople(queryDTO);
|
||||
return AjaxResult.success(people);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.ruoyi.ccdi.project.domain.dto;
|
||||
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 风险模型命中人员查询DTO
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectRiskModelPeopleQueryDTO {
|
||||
|
||||
/** 项目ID */
|
||||
private Long projectId;
|
||||
|
||||
/** 模型编码列表 */
|
||||
private List<String> modelCodes;
|
||||
|
||||
/** 匹配方式 */
|
||||
@Pattern(regexp = "ANY|ALL", message = "匹配方式仅支持ANY或ALL")
|
||||
private String matchMode;
|
||||
|
||||
/** 关键字 */
|
||||
private String keyword;
|
||||
|
||||
/** 部门ID */
|
||||
private Long deptId;
|
||||
|
||||
/** 页码 */
|
||||
private Integer pageNum;
|
||||
|
||||
/** 每页数量 */
|
||||
private Integer pageSize;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 风险命中标签
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectRiskHitTagVO {
|
||||
|
||||
private String ruleCode;
|
||||
|
||||
private String ruleName;
|
||||
|
||||
private String riskLevel;
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 风险模型卡片
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectRiskModelCardVO {
|
||||
|
||||
private String modelCode;
|
||||
|
||||
private String modelName;
|
||||
|
||||
private Integer warningCount;
|
||||
|
||||
private Integer peopleCount;
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 风险模型卡片列表
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectRiskModelCardsVO {
|
||||
|
||||
private List<CcdiProjectRiskModelCardVO> cardList;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 风险模型命中人员项
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectRiskModelPeopleItemVO {
|
||||
|
||||
private String staffName;
|
||||
|
||||
private String staffCode;
|
||||
|
||||
private String idNo;
|
||||
|
||||
private String department;
|
||||
|
||||
private List<String> modelNames;
|
||||
|
||||
private List<CcdiProjectRiskHitTagVO> hitTagList;
|
||||
|
||||
private String actionLabel;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ruoyi.ccdi.project.domain.vo;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 风险模型命中人员分页
|
||||
*/
|
||||
@Data
|
||||
public class CcdiProjectRiskModelPeopleVO {
|
||||
|
||||
private List<CcdiProjectRiskModelPeopleItemVO> rows;
|
||||
|
||||
private Long total;
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
package com.ruoyi.ccdi.project.service;
|
||||
|
||||
import com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectOverviewDashboardVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelCardsVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskModelPeopleVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectRiskPeopleOverviewVO;
|
||||
import com.ruoyi.ccdi.project.domain.vo.CcdiProjectTopRiskPeopleVO;
|
||||
|
||||
@@ -33,6 +36,26 @@ public interface ICcdiProjectOverviewService {
|
||||
*/
|
||||
CcdiProjectTopRiskPeopleVO getTopRiskPeople(Long projectId);
|
||||
|
||||
/**
|
||||
* 查询风险模型卡片
|
||||
*
|
||||
* @param projectId 项目ID
|
||||
* @return 风险模型卡片
|
||||
*/
|
||||
default CcdiProjectRiskModelCardsVO getRiskModelCards(Long projectId) {
|
||||
return new CcdiProjectRiskModelCardsVO();
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询风险模型命中人员
|
||||
*
|
||||
* @param queryDTO 查询条件
|
||||
* @return 风险模型命中人员
|
||||
*/
|
||||
default CcdiProjectRiskModelPeopleVO getRiskModelPeople(CcdiProjectRiskModelPeopleQueryDTO queryDTO) {
|
||||
return new CcdiProjectRiskModelPeopleVO();
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新项目风险人数
|
||||
*
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.ruoyi.ccdi.project.controller;
|
||||
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
class CcdiProjectOverviewControllerContractTest {
|
||||
|
||||
@Test
|
||||
void shouldExposeRiskModelCardsEndpointContract() throws Exception {
|
||||
Class<?> controllerClass = Class.forName("com.ruoyi.ccdi.project.controller.CcdiProjectOverviewController");
|
||||
RequestMapping requestMapping = controllerClass.getAnnotation(RequestMapping.class);
|
||||
|
||||
Method method = controllerClass.getMethod("getRiskModelCards", Long.class);
|
||||
GetMapping getMapping = method.getAnnotation(GetMapping.class);
|
||||
Operation operation = method.getAnnotation(Operation.class);
|
||||
|
||||
assertNotNull(requestMapping);
|
||||
assertEquals("/ccdi/project/overview", requestMapping.value()[0]);
|
||||
assertNotNull(getMapping);
|
||||
assertEquals("/risk-models/cards", getMapping.value()[0]);
|
||||
assertNotNull(operation);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldExposeRiskModelPeopleEndpointContract() throws Exception {
|
||||
Class<?> controllerClass = Class.forName("com.ruoyi.ccdi.project.controller.CcdiProjectOverviewController");
|
||||
Class<?> queryDtoClass = Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO");
|
||||
|
||||
Method method = controllerClass.getMethod("getRiskModelPeople", queryDtoClass);
|
||||
GetMapping getMapping = method.getAnnotation(GetMapping.class);
|
||||
Operation operation = method.getAnnotation(Operation.class);
|
||||
|
||||
assertNotNull(getMapping);
|
||||
assertEquals("/risk-models/people", getMapping.value()[0]);
|
||||
assertNotNull(operation);
|
||||
assertEquals(queryDtoClass, method.getParameterTypes()[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldExposeRiskModelPeopleQueryDtoFields() throws Exception {
|
||||
Class<?> dtoClass = Class.forName("com.ruoyi.ccdi.project.domain.dto.CcdiProjectRiskModelPeopleQueryDTO");
|
||||
|
||||
List<String> fieldNames = Arrays.stream(dtoClass.getDeclaredFields())
|
||||
.map(Field::getName)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
assertTrue(fieldNames.contains("projectId"));
|
||||
assertTrue(fieldNames.contains("modelCodes"));
|
||||
assertTrue(fieldNames.contains("matchMode"));
|
||||
assertTrue(fieldNames.contains("keyword"));
|
||||
assertTrue(fieldNames.contains("deptId"));
|
||||
assertTrue(fieldNames.contains("pageNum"));
|
||||
assertTrue(fieldNames.contains("pageSize"));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user