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 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 riskIds, String status); }