feat(risk): 实现风险管理模块功能

- 新增RiskMapper,定义风险相关SQL映射和查询功能
- 添加CreateRiskRequest、CreateWorkOrderRequest和ProcessWorkOrderRequest请求DTO
- 实现RiskController,支持风险的创建、更新、删除、详细查询及列表分页查询
- 提供风险统计接口,统计风险总数、状态分布和等级分布
- 增加风险分配工单及批量更新状态的接口
- 实现RiskService及其实现类,包含风险的增删改查及业务逻辑
- 计算风险得分和风险等级,并支持标签和工单关联管理
- 定义RiskVO和RiskStatisticsVO用于前端数据展示和统计
- 实现风险工单的创建和管理,关联风险状态同步更新
This commit is contained in:
2026-03-30 11:55:49 +08:00
parent cd56e2e987
commit 4e1415a033
17 changed files with 2554 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
package cn.yinlihupo.service.risk;
import cn.yinlihupo.common.page.TableDataInfo;
import cn.yinlihupo.domain.dto.CreateRiskRequest;
import cn.yinlihupo.domain.dto.CreateWorkOrderRequest;
import cn.yinlihupo.domain.vo.RiskStatisticsVO;
import cn.yinlihupo.domain.vo.RiskVO;
/**
* 风险服务接口
*/
public interface RiskService {
/**
* 创建风险评估
*
* @param request 创建请求
* @return 风险ID
*/
Long createRisk(CreateRiskRequest request);
/**
* 更新风险
*
* @param riskId 风险ID
* @param request 更新请求
* @return 是否成功
*/
Boolean updateRisk(Long riskId, CreateRiskRequest request);
/**
* 删除风险
*
* @param riskId 风险ID
* @return 是否成功
*/
Boolean deleteRisk(Long riskId);
/**
* 获取风险详情
*
* @param riskId 风险ID
* @return 风险详情
*/
RiskVO getRiskDetail(Long riskId);
/**
* 分页查询风险列表
*
* @param projectId 项目ID
* @param pageNum 页码
* @param pageSize 每页大小
* @param category 分类筛选
* @param riskLevel 风险等级筛选
* @param status 状态筛选
* @param keyword 关键词搜索
* @return 分页风险列表
*/
TableDataInfo<RiskVO> getRiskList(Long projectId, Integer pageNum, Integer pageSize,
String category, String riskLevel, String status, String keyword);
/**
* 获取风险统计信息
*
* @param projectId 项目ID
* @return 统计信息
*/
RiskStatisticsVO getRiskStatistics(Long projectId);
/**
* 为风险分配工单
*
* @param riskId 风险ID
* @param request 工单创建请求
* @return 工单ID
*/
Long assignWorkOrder(Long riskId, CreateWorkOrderRequest request);
/**
* 批量更新风险状态
*
* @param riskIds 风险ID列表
* @param status 新状态
* @return 是否成功
*/
Boolean batchUpdateStatus(java.util.List<Long> riskIds, String status);
}