From 176447671a417ae00487fe0f037879c6070f1e68 Mon Sep 17 00:00:00 2001
From: huangzhen <867127663@qq.com>
Date: 星期三, 07 九月 2022 17:14:16 +0800
Subject: [PATCH] 新增风险事件、管控措施的主业务代码(增、删、改、查、分页查)、管控模板

---
 src/main/java/com/ruoyi/doublePrevention/service/impl/RiskServiceImpl.java |  601 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 592 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/ruoyi/doublePrevention/service/impl/RiskServiceImpl.java b/src/main/java/com/ruoyi/doublePrevention/service/impl/RiskServiceImpl.java
index c2b1e60..0321bac 100644
--- a/src/main/java/com/ruoyi/doublePrevention/service/impl/RiskServiceImpl.java
+++ b/src/main/java/com/ruoyi/doublePrevention/service/impl/RiskServiceImpl.java
@@ -1,23 +1,53 @@
 package com.ruoyi.doublePrevention.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageHelper;
 import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.doublePrevention.entity.PreventRiskEvent;
-import com.ruoyi.doublePrevention.entity.PreventRiskUnitUuid;
-import com.ruoyi.doublePrevention.entity.dto.req.PreventRiskEventSaveReqDTO;
+import com.ruoyi.doublePrevention.entity.*;
+import com.ruoyi.doublePrevention.entity.dto.req.*;
+import com.ruoyi.doublePrevention.entity.dto.resp.*;
+import com.ruoyi.doublePrevention.enums.ErrorCodes;
+import com.ruoyi.doublePrevention.enums.ResultCodes;
 import com.ruoyi.doublePrevention.enums.StatusEnum;
+import com.ruoyi.doublePrevention.enums.SyncEnum;
 import com.ruoyi.doublePrevention.service.RiskService;
-import com.ruoyi.doublePrevention.service.baseService.PreventRiskUnitUuidService;
+import com.ruoyi.doublePrevention.service.baseService.*;
 import com.ruoyi.doublePrevention.vo.ResultVO;
+import com.ruoyi.project.system.user.domain.User;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.UUID;
+import java.util.stream.Collectors;
+
+import static com.ruoyi.common.utils.security.ShiroUtils.getSysUser;
 
 @Service("RiskService")
 public class RiskServiceImpl implements RiskService {
 
     @Autowired
     private PreventRiskUnitUuidService preventRiskUnitUuidService;
+
+    @Autowired
+    private PreventRiskEventService preventRiskEventService;
+    
+    @Autowired
+    private PreventReportConfigService preventReportConfigService;
+
+    @Autowired
+    private PreventRiskListService preventRiskListService;
+
+    @Autowired
+    private PreventRiskControlTemplateService riskControlTemplateService;
+
+    @Autowired
+    private PreventRiskControlMeasureService riskControlMeasureService;
 
     /**
      * 为设施设备清单附属表添加uuid
@@ -39,25 +69,578 @@
      */
     @Override
     public ResultVO<PreventRiskEvent> saveRiskEvent(PreventRiskEventSaveReqDTO riskEventSaveReqDTO) {
+        User sysUser = getSysUser();
         ResultVO resultVO = new ResultVO<>();
-        resultVO.setCode("200");
-        resultVO.setMsg("新增成功");
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
         Long riskUnitId = riskEventSaveReqDTO.getRiskUnitId();
         String riskEventName = riskEventSaveReqDTO.getRiskEventName();
         String eventResult = riskEventSaveReqDTO.getEventResult();
+
         if (riskUnitId == null){
             resultVO.setMsg("安全风险分析单元名称不能为空");
             return resultVO;
         }
+        PreventRiskUnitUuid riskUnit = preventRiskUnitUuidService.getRiskUnitUuidById(riskUnitId);
+        if (riskUnit == null){
+            resultVO.setMsg("安全风险分析单元名称不存在");
+            return resultVO;
+        }
         if (StringUtils.isEmpty(riskEventName)){
-            resultVO.setMsg("安全风险事件名称");
+            resultVO.setMsg("安全风险事件名称不能为空");
+            return resultVO;
+        }
+        PreventRiskEvent riskEventByEventName = preventRiskEventService.getPreventRiskEventByEventName(riskEventName);
+        if (riskEventByEventName != null){
+            resultVO.setMsg("安全风险事件名称已存在");
             return resultVO;
         }
         if (StringUtils.isEmpty(eventResult)){
-            resultVO.setMsg("可能造成得后果");
+            resultVO.setMsg("可能造成得后果不能为空");
             return resultVO;
         }
 
-        return null;
+        Date date = new Date();
+        String uuid = UUID.randomUUID().toString();
+        PreventRiskEvent riskEvent = new PreventRiskEvent();
+        riskEvent.setUuid(uuid);
+        riskEvent.setEventResult(eventResult);
+        riskEvent.setRiskEventName(riskEventName);
+        riskEvent.setRiskUnitId(riskUnitId);
+        riskEvent.setRiskUnitUuid(riskUnit.getRiskUnitUuid());
+        riskEvent.setDeleteStatus(StatusEnum.DELETE_STATUS_USE.getCode());
+        riskEvent.setGmtCreate(date);
+        riskEvent.setGmtModitify(date);
+        riskEvent.setCreateByUserName(sysUser.getUserName());
+        riskEvent.setLastEditUserName(sysUser.getUserName());
+        //todo 对所属企业id和uuid没有进行设置
+        PreventReportConfig reportConfigById = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode());
+        //设置上报时间为空
+        riskEvent.setReportTime(null);
+        //设置本条数据上报更新时间
+        riskEvent.setUpdateReportDataTime(date);
+        //读取上报主配置,进行任务记录上报配置,如果开启上报功能,且设置为自动上报,开启上报相关配置
+        if (reportConfigById.getReportState() == SyncEnum.REPORT_ON.getCode()
+                && reportConfigById.getReportType() == SyncEnum.REPORT_HAND_EXEC_CONFIG.getCode()){
+            //设置上报状态为-等待上报
+            riskEvent.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
+            //设置本条数据上报开关为-开启
+            riskEvent.setReportSwitch(SyncEnum.REPORT_ON.getCode());
+        //其他情况默认不开启上报数据,如果是手动上报,可对单条数据进行操作
+        }else {
+            //设置上报状态为-不上报
+            riskEvent.setReportStatus(SyncEnum.SYNC_NOT_EXEC.getCode());
+            //设置本条数据上报开关为-关闭
+            riskEvent.setReportSwitch(SyncEnum.REPORT_OFF.getCode());
+        }
+        
+        int saveResult = preventRiskEventService.savePreventRiskEvent(riskEvent);
+        if (saveResult == 0){
+            resultVO.setCode(ResultCodes.SERVER_ADD_ERROR.getCode());
+            resultVO.setMsg(ResultCodes.SERVER_ADD_ERROR.getDesc());
+            return resultVO;
+        }
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg("新增安全风险事件成功");
+        return resultVO;
     }
+
+    /**
+     * @description 风险事件-删除
+     */
+    @Override
+    public ResultVO<PreventRiskEvent> deleteRiskEvent(PreventRiskEventDeleteReqDTO riskEventDeleteReqDTO) {
+        User sysUser = getSysUser();
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+
+        Long eventId = riskEventDeleteReqDTO.getId();
+        if (eventId == null){
+            resultVO.setMsg("安全风险事件Id为空,删除失败");
+            return resultVO;
+        }
+        PreventRiskEvent riskEvent = preventRiskEventService.getPreventRiskEventById(eventId);
+        if (riskEvent == null){
+            resultVO.setMsg("安全风险事件不存在,删除失败");
+            return resultVO;
+        }
+        Date date = new Date();
+        riskEvent.setGmtModitify(date);
+        riskEvent.setLastEditUserName(sysUser.getUserName());
+        riskEvent.setUpdateReportDataTime(date);
+
+        int deleteResult = preventRiskEventService.deletePreventRiskEventById(riskEvent);
+        if (deleteResult == 0){
+            resultVO.setCode(ResultCodes.SERVER_DEL_ERROR.getCode());
+            resultVO.setMsg(ResultCodes.SERVER_DEL_ERROR.getDesc());
+            return resultVO;
+        }
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg("删除安全风险事件成功");
+        return resultVO;
+    }
+
+    /**
+     * 风险事件-修改
+     */
+    @Override
+    public ResultVO<PreventRiskEvent> updateRiskEvent(PreventRiskEventUpdateReqDTO riskEventUpdateReqDTO) {
+        User sysUser = getSysUser();
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+        Long riskEventId = riskEventUpdateReqDTO.getId();
+        Long riskUnitId = riskEventUpdateReqDTO.getRiskUnitId();
+        String riskEventName = riskEventUpdateReqDTO.getRiskEventName();
+        String eventResult = riskEventUpdateReqDTO.getEventResult();
+        if (riskEventId == null){
+            resultVO.setMsg("安全风险事件ID不能为空");
+            return resultVO;
+        }
+        if (riskUnitId == null){
+            resultVO.setMsg("安全风险分析单元名称不能为空");
+            return resultVO;
+        }
+        PreventRiskUnitUuid riskUnit = preventRiskUnitUuidService.getRiskUnitUuidById(riskUnitId);
+        if (riskUnit == null){
+            resultVO.setMsg("安全风险分析单元名称不存在");
+            return resultVO;
+        }
+        if (StringUtils.isEmpty(riskEventName)){
+            resultVO.setMsg("安全风险事件名称不能为空");
+            return resultVO;
+        }
+        PreventRiskEvent riskEventByEventName = preventRiskEventService.getPreventRiskEventByEventName(riskEventName);
+        if (riskEventByEventName != null){
+            if (!riskEventId.equals(riskEventByEventName.getId())){
+                resultVO.setMsg("安全风险事件名称已存在");
+                return resultVO;
+            }
+        }
+        if (StringUtils.isEmpty(eventResult)){
+            resultVO.setMsg("可能造成得后果不能为空");
+            return resultVO;
+        }
+
+        Date date = new Date();
+        PreventRiskEvent preventRiskEvent = new PreventRiskEvent();
+        BeanUtils.copyProperties(riskEventUpdateReqDTO,preventRiskEvent);
+        preventRiskEvent.setGmtModitify(date);
+        preventRiskEvent.setLastEditUserName(sysUser.getUserName());
+        //获取上报主配置信息
+        PreventReportConfig reportConfigById = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode());
+        //设置本条数据上报更新时间
+        preventRiskEvent.setUpdateReportDataTime(date);
+        //读取上报主配置,进行任务记录上报配置,如果开启上报功能,且设置为自动上报,开启上报相关配置
+        if (reportConfigById.getReportState() == SyncEnum.REPORT_ON.getCode()
+                && reportConfigById.getReportType() == SyncEnum.REPORT_HAND_EXEC_CONFIG.getCode()){
+            //设置上报状态为-等待上报
+            preventRiskEvent.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
+            //设置本条数据上报开关为-开启
+            preventRiskEvent.setReportSwitch(SyncEnum.REPORT_ON.getCode());
+            //其他情况默认不开启上报数据,如果是手动上报,可对单条数据进行操作
+        }else {
+            //设置上报状态为-不上报
+            preventRiskEvent.setReportStatus(SyncEnum.SYNC_NOT_EXEC.getCode());
+            //设置本条数据上报开关为-关闭
+            preventRiskEvent.setReportSwitch(SyncEnum.REPORT_OFF.getCode());
+        }
+
+        int updateResult = preventRiskEventService.updatePreventRiskEventById(preventRiskEvent);
+
+        if (updateResult == 0){
+            resultVO.setCode(ResultCodes.SERVER_UPDATE_ERROR.getCode());
+            resultVO.setMsg(ResultCodes.SERVER_UPDATE_ERROR.getDesc());
+            return resultVO;
+        }
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg("更新安全风险事件成功");
+        return resultVO;
+    }
+
+    /**
+     * @description 根据风险事件的id查询风险事件
+     */
+    @Override
+    public ResultVO<PreventRiskEventRespDTO> getRiskEventById(PreventRiskEventGetReqDTO riskEventGetReqDTO) {
+        Long eventId = riskEventGetReqDTO.getId();
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+        if (eventId == null){
+            resultVO.setMsg("安全风险事件ID不能为空");
+            return resultVO;
+        }
+        PreventRiskEvent riskEvent = preventRiskEventService.getPreventRiskEventById(eventId);
+        if (riskEvent == null){
+            resultVO.setMsg("安全风险事件不存在");
+            return resultVO;
+        }
+        PreventRiskEventRespDTO respDTO = new PreventRiskEventRespDTO();
+        BeanUtils.copyProperties(riskEvent,respDTO);
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg(ResultCodes.OK.getDesc());
+        resultVO.setData(respDTO);
+        return resultVO;
+    }
+
+    /**
+     * 风险事件-分页查询
+     * @return
+     */
+    @Override
+    public ResultVO<List<PreventRiskEventPageQueryRespDTO>> listRiskEventPage(PreventRiskEventPageQueryReqDTO riskEventQueryReqDTO) {
+        Integer pageIndex = riskEventQueryReqDTO.getPageIndex();
+        Integer pageSize = riskEventQueryReqDTO.getPageSize();
+        if (pageIndex == 0 || pageSize == 0){
+            return new ResultVO<>(ErrorCodes.REQUEST_PARAM_ERROR.getCode(),"当前页码或当前页显示数不能为0");
+        }
+        Long riskUnitId = riskEventQueryReqDTO.getRiskUnitId();
+        String riskEventName = riskEventQueryReqDTO.getRiskEventName();
+        Page<PreventRiskEvent> page = PageHelper.startPage(pageIndex, pageSize);
+        preventRiskEventService.listRiskEvenByCondition(riskUnitId,riskEventName);
+
+        List<PreventRiskEvent> result = page.getResult();
+        Long total = page.getTotal();
+        int count = total.intValue();
+        List<PreventRiskEventPageQueryRespDTO> pageResult = null;
+        if (result != null) {
+            pageResult = result.stream().map((preventRiskEvent) -> {
+                PreventRiskEventPageQueryRespDTO dto = new PreventRiskEventPageQueryRespDTO();
+                BeanUtils.copyProperties(preventRiskEvent, dto);
+                Long unitId = dto.getRiskUnitId();
+                if (unitId != null) {
+                    PreventRiskList riskList = preventRiskListService.getPreventRiskListById(unitId);
+                    if (riskList != null) {
+                        dto.setRiskUnitName(riskList.getRiskListName());
+                    }
+                }
+                return dto;
+            }).collect(Collectors.toList());
+        }
+
+        ResultVO<List<PreventRiskEventPageQueryRespDTO>> resultVO = new ResultVO<>(ResultCodes.OK,pageResult);
+        resultVO.setCount(count);
+        return resultVO;
+    }
+
+    /**
+     * @description 获取所有风险事件不分页
+     */
+    @Override
+    public ResultVO<List<PreventRiskEventListQueryRespDTO>> listRiskEvent() {
+        List<PreventRiskEvent> riskEvents = preventRiskEventService.listRiskEvenByCondition(null, null);
+        List<PreventRiskEventListQueryRespDTO> riskEventList = null;
+        if (riskEvents != null){
+            riskEventList = riskEvents.stream().map((riskEvent)->{
+                PreventRiskEventListQueryRespDTO dto = new PreventRiskEventListQueryRespDTO();
+                BeanUtils.copyProperties(riskEvent,dto);
+                return dto;
+            }).collect(Collectors.toList());
+        }
+        return new ResultVO<>(ResultCodes.OK,riskEventList);
+    }
+
+    /**
+     * @description 新增风险管控措施
+     */
+    @Override
+    public ResultVO<PreventRiskControlMeasure> saveRiskControlMeasure(PreventRiskControlMeasureSaveReqDTO measureSaveReqDTO) {
+        User sysUser = getSysUser();
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+        Long riskEventId = measureSaveReqDTO.getRiskEventId();
+        if (riskEventId == null){
+            resultVO.setMsg("安全风险事件ID不能为空");
+            return resultVO;
+        }
+        PreventRiskEvent riskEvent = preventRiskEventService.getPreventRiskEventById(riskEventId);
+        if (riskEvent == null){
+            resultVO.setMsg("安全风险事件不存在");
+            return resultVO;
+        }
+        String controlMeasureCode = measureSaveReqDTO.getControlMeasureCode();
+        if (controlMeasureCode.isEmpty()){
+            resultVO.setMsg("风险措施编码不能为空");
+            return resultVO;
+        }
+        PreventRiskControlMeasure riskControlMeasure = riskControlMeasureService.getPreventRiskControlMeasureByControlMeasureCode(controlMeasureCode);
+        if (riskControlMeasure != null){
+            resultVO.setMsg("风险措施编码已存在");
+            return resultVO;
+        }
+        if (measureSaveReqDTO.getControlType() == null){
+            resultVO.setMsg("管控方式不能为空");
+            return resultVO;
+        }
+        if (measureSaveReqDTO.getCheckContent().isEmpty()){
+            resultVO.setMsg("管控内容不能为空");
+            return resultVO;
+        }
+        if (measureSaveReqDTO.getClassify1() == null){
+            resultVO.setMsg("管控措施分类1不能为空");
+            return resultVO;
+        }
+        if (measureSaveReqDTO.getClassify2() == null){
+            resultVO.setMsg("管控措施分类2不能为空");
+            return resultVO;
+        }
+        if (measureSaveReqDTO.getMeasureDesc().isEmpty()){
+            resultVO.setMsg("措施说明不能为空");
+            return resultVO;
+        }
+        Date date = new Date();
+        String uuid = UUID.randomUUID().toString();
+        
+        PreventRiskControlMeasure controlMeasure = new PreventRiskControlMeasure();
+        BeanUtils.copyProperties(measureSaveReqDTO,controlMeasure);
+        controlMeasure.setUuid(uuid);
+        controlMeasure.setDeleteStatus(StatusEnum.DELETE_STATUS_USE.getCode());
+        controlMeasure.setGmtCreate(date);
+        controlMeasure.setGmtModitify(date);
+        controlMeasure.setLastEditUserName(sysUser.getUserName());
+        controlMeasure.setCreateByUserName(sysUser.getUserName());
+        controlMeasure.setRiskEventUuid(riskEvent.getUuid());
+
+        //todo 对所属企业id和uuid没有进行设置
+        PreventReportConfig reportConfigById = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode());
+        //设置上报时间为空
+        controlMeasure.setReportTime(null);
+        //设置本条数据上报更新时间
+        controlMeasure.setUpdateReportDataTime(date);
+        //读取上报主配置,进行任务记录上报配置,如果开启上报功能,且设置为自动上报,开启上报相关配置
+        if (reportConfigById.getReportState() == SyncEnum.REPORT_ON.getCode()
+                && reportConfigById.getReportType() == SyncEnum.REPORT_HAND_EXEC_CONFIG.getCode()){
+            //设置上报状态为-等待上报
+            controlMeasure.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
+            //设置本条数据上报开关为-开启
+            controlMeasure.setReportSwitch(SyncEnum.REPORT_ON.getCode());
+            //其他情况默认不开启上报数据,如果是手动上报,可对单条数据进行操作
+        }else {
+            //设置上报状态为-不上报
+            controlMeasure.setReportStatus(SyncEnum.SYNC_NOT_EXEC.getCode());
+            //设置本条数据上报开关为-关闭
+            controlMeasure.setReportSwitch(SyncEnum.REPORT_OFF.getCode());
+        }
+
+        int saveResult = riskControlMeasureService.savePreventRiskControlMeasure(controlMeasure);
+        if (saveResult == 0){
+            resultVO.setCode(ResultCodes.SERVER_ADD_ERROR.getCode());
+            resultVO.setMsg(ResultCodes.SERVER_ADD_ERROR.getDesc());
+            return resultVO;
+        }
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg("新增风险管控措施成功");
+        return resultVO;
+    }
+
+    /**
+     * 管控措施- 获取管控措施模板
+     */
+    @Override
+    public ResultVO<List<PreventRiskMeasureTemplatesListQueryRespDTO>> listMeasureTemplates() {
+        List<PreventRiskControlTemplate> riskControlTemplates = riskControlTemplateService.listMeasureTemplates();
+
+        List<PreventRiskMeasureTemplatesListQueryRespDTO> listResult = null;
+        if (riskControlTemplates != null){
+            listResult = riskControlTemplates.stream().map((riskControlTemplate)->{
+                PreventRiskMeasureTemplatesListQueryRespDTO dto = new PreventRiskMeasureTemplatesListQueryRespDTO();
+                BeanUtils.copyProperties(riskControlTemplate,dto);
+                return dto;
+            }).collect(Collectors.toList());
+        }
+        return new ResultVO<>(ResultCodes.OK,listResult);
+    }
+
+    /**
+     * 管控措施-删除
+     */
+    @Override
+    public ResultVO<PreventRiskControlMeasure> deleteRiskControlMeasure(PreventRiskControlMeasureDeleteReqDTO measureDeleteReqDTO) {
+        User sysUser = getSysUser();
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+
+        Long measureId = measureDeleteReqDTO.getId();
+        if (measureId == null){
+            resultVO.setMsg("风险管控措施Id为空,删除失败");
+            return resultVO;
+        }
+        PreventRiskControlMeasure controlMeasure = riskControlMeasureService.getPreventRiskControlMeasureById(measureId);
+        if (controlMeasure == null){
+            resultVO.setMsg("风险管控措施不存在,删除失败");
+            return resultVO;
+        }
+        Date date = new Date();
+        controlMeasure.setGmtModitify(date);
+        controlMeasure.setLastEditUserName(sysUser.getUserName());
+        controlMeasure.setUpdateReportDataTime(date);
+
+        int deleteResult = riskControlMeasureService.deletePreventRiskControlMeasureById(controlMeasure);
+        if (deleteResult == 0){
+            resultVO.setCode(ResultCodes.SERVER_DEL_ERROR.getCode());
+            resultVO.setMsg(ResultCodes.SERVER_DEL_ERROR.getDesc());
+            return resultVO;
+        }
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg("删除风险管控措施成功");
+        return resultVO;
+    }
+
+    /**
+     * @description 根据风险措施id查询风险措施
+     */
+    @Override
+    public ResultVO<PreventRiskControlMeasureRespDTO> getRiskControlMeasure(PreventRiskControlMeasureGetReqDTO riskControlMeasureGetReqDTO) {
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+        Long measureId = riskControlMeasureGetReqDTO.getId();
+        if (measureId == null){
+            resultVO.setMsg("风险管控措施Id不能为空");
+            return resultVO;
+        }
+        PreventRiskControlMeasure measure = riskControlMeasureService.getPreventRiskControlMeasureById(measureId);
+        if (measure == null){
+            resultVO.setMsg("风险管控措施不存在");
+            return resultVO;
+        }
+        PreventRiskControlMeasureRespDTO dto = new PreventRiskControlMeasureRespDTO();
+        BeanUtils.copyProperties(measure,dto);
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg(ResultCodes.OK.getDesc());
+        resultVO.setData(dto);
+        return resultVO;
+    }
+
+    /**
+     * 管控措施-修改
+     */
+    @Override
+    public ResultVO<PreventRiskControlMeasure> updateRiskControlMeasure(PreventRiskControlMeasureUpdateReqDTO measureUpdateReqDTO) {
+        User sysUser = getSysUser();
+        ResultVO resultVO = new ResultVO<>();
+        resultVO.setCode(ErrorCodes.REQUEST_PARAM_ERROR.getCode());
+        Long measureId = measureUpdateReqDTO.getId();
+        Long riskEventId = measureUpdateReqDTO.getRiskEventId();
+        if (measureId == null){
+            resultVO.setMsg("风险管控措施ID不能为空");
+            return resultVO;
+        }
+        if (riskEventId == null){
+            resultVO.setMsg("安全风险事件ID不能为空");
+            return resultVO;
+        }
+        PreventRiskEvent riskEvent = preventRiskEventService.getPreventRiskEventById(riskEventId);
+        if (riskEvent == null){
+            resultVO.setMsg("安全风险事件不存在");
+            return resultVO;
+        }
+        String controlMeasureCode = measureUpdateReqDTO.getControlMeasureCode();
+        if (controlMeasureCode.isEmpty()){
+            resultVO.setMsg("风险措施编码不能为空");
+            return resultVO;
+        }
+        PreventRiskControlMeasure riskControlMeasure = riskControlMeasureService.getPreventRiskControlMeasureByControlMeasureCode(controlMeasureCode);
+        if (riskControlMeasure != null){
+            if (!measureId.equals(riskControlMeasure.getId())){
+                resultVO.setMsg("风险措施编码已存在");
+                return resultVO;
+            }
+        }
+        if (measureUpdateReqDTO.getControlType() == null){
+            resultVO.setMsg("管控方式不能为空");
+            return resultVO;
+        }
+        if (measureUpdateReqDTO.getCheckContent().isEmpty()){
+            resultVO.setMsg("管控内容不能为空");
+            return resultVO;
+        }
+        if (measureUpdateReqDTO.getClassify1() == null){
+            resultVO.setMsg("管控措施分类1不能为空");
+            return resultVO;
+        }
+        if (measureUpdateReqDTO.getClassify2() == null){
+            resultVO.setMsg("管控措施分类2不能为空");
+            return resultVO;
+        }
+        if (measureUpdateReqDTO.getMeasureDesc().isEmpty()){
+            resultVO.setMsg("措施说明不能为空");
+            return resultVO;
+        }
+
+        Date date = new Date();
+        PreventRiskControlMeasure controlMeasure = new PreventRiskControlMeasure();
+        BeanUtils.copyProperties(measureUpdateReqDTO,controlMeasure);
+        controlMeasure.setRiskEventUuid(riskEvent.getUuid());
+        controlMeasure.setGmtModitify(date);
+        controlMeasure.setLastEditUserName(sysUser.getUserName());
+        //获取上报主配置信息
+        PreventReportConfig reportConfigById = preventReportConfigService.getReportConfigById(SyncEnum.REPORT_CONFIG_RISK_ANA_UNIT.getCode());
+        //设置本条数据上报更新时间
+        controlMeasure.setUpdateReportDataTime(date);
+        //读取上报主配置,进行任务记录上报配置,如果开启上报功能,且设置为自动上报,开启上报相关配置
+        if (reportConfigById.getReportState() == SyncEnum.REPORT_ON.getCode()
+                && reportConfigById.getReportType() == SyncEnum.REPORT_HAND_EXEC_CONFIG.getCode()){
+            //设置上报状态为-等待上报
+            controlMeasure.setReportStatus(SyncEnum.SYNC_WAIT_EXEC.getCode());
+            //设置本条数据上报开关为-开启
+            controlMeasure.setReportSwitch(SyncEnum.REPORT_ON.getCode());
+            //其他情况默认不开启上报数据,如果是手动上报,可对单条数据进行操作
+        }else {
+            //设置上报状态为-不上报
+            controlMeasure.setReportStatus(SyncEnum.SYNC_NOT_EXEC.getCode());
+            //设置本条数据上报开关为-关闭
+            controlMeasure.setReportSwitch(SyncEnum.REPORT_OFF.getCode());
+        }
+
+        int updateResult = riskControlMeasureService.updatePreventRiskControlMeasureById(controlMeasure);
+        if (updateResult == 0){
+            resultVO.setCode(ResultCodes.SERVER_UPDATE_ERROR.getCode());
+            resultVO.setMsg(ResultCodes.SERVER_UPDATE_ERROR.getDesc());
+            return resultVO;
+        }
+        resultVO.setCode(ResultCodes.OK.getCode());
+        resultVO.setMsg("更新安全风险事件成功");
+        return resultVO;
+
+    }
+
+    /**
+     * 管控措施-分页查询
+     */
+    @Override
+    public ResultVO<List<PreventRiskControlMeasurePageQueryRespDTO>> getRiskControlMeasurePage(PreventRiskControlMeasureQueryReqDTO measureQueryReqDTO) {
+        Integer pageIndex = measureQueryReqDTO.getPageIndex();
+        Integer pageSize = measureQueryReqDTO.getPageSize();
+        if (pageIndex == 0 || pageSize == 0){
+            return new ResultVO<>(ErrorCodes.REQUEST_PARAM_ERROR.getCode(),"当前页码或当前页显示数不能为0");
+        }
+        Byte controlType = measureQueryReqDTO.getControlType();
+        Long riskEventId = measureQueryReqDTO.getRiskEventId();
+
+        Page<PreventRiskControlMeasure> page = PageHelper.startPage(pageIndex, pageSize);
+        riskControlMeasureService.listRiskEvenByCondition(controlType,riskEventId);
+
+        List<PreventRiskControlMeasure> result = page.getResult();
+        Long total = page.getTotal();
+        int count = total.intValue();
+        List<PreventRiskControlMeasurePageQueryRespDTO> pageResult = null;
+        if (result != null) {
+            pageResult = result.stream().map((preventRiskControlMeasure) -> {
+                PreventRiskControlMeasurePageQueryRespDTO dto = new PreventRiskControlMeasurePageQueryRespDTO();
+                BeanUtils.copyProperties(preventRiskControlMeasure, dto);
+                Long eventId = dto.getRiskEventId();
+                if (eventId != null) {
+                    PreventRiskEvent riskEvent = preventRiskEventService.getPreventRiskEventById(eventId);
+                    if (riskEvent != null) {
+                        dto.setRiskEventName(riskEvent.getRiskEventName());
+                    }
+                }
+                return dto;
+            }).collect(Collectors.toList());
+        }
+
+        ResultVO<List<PreventRiskControlMeasurePageQueryRespDTO>> resultVO = new ResultVO<>(ResultCodes.OK,pageResult);
+        resultVO.setCount(count);
+        return resultVO;
+
+    }
+
 }

--
Gitblit v1.9.2