From eb00873dcebd67ea72a04becff928f983cb80ec6 Mon Sep 17 00:00:00 2001
From: 16639036659 <577530412@qq.com>
Date: 星期四, 25 四月 2024 10:32:04 +0800
Subject: [PATCH] 基础风险清单+检查点导入

---
 src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml    |    7 +
 src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java              |   45 +++++++++++
 src/main/java/com/ruoyi/project/tr/riskList/service/IRiskListService.java         |    2 
 src/main/java/com/ruoyi/project/tr/riskList/service/impl/RiskListServiceImpl.java |    5 +
 src/main/java/com/ruoyi/project/tr/riskList/domain/ImportDataRespBO.java          |   33 ++++++++
 src/main/java/com/ruoyi/project/tr/riskList/mapper/RiskListMapper.java            |    2 
 src/main/java/com/ruoyi/project/tr/riskList/controller/BaseRiskController.java    |  136 ++++++++++++++++++++++++++++++++++
 src/main/resources/mybatis/tr/RiskListMapper.xml                                  |    8 +
 8 files changed, 236 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java
index 7ccbe4c..9eaf959 100644
--- a/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java
+++ b/src/main/java/com/ruoyi/doublePrevention/entity/SPI/TroubleData.java
@@ -7,6 +7,11 @@
 
     private String time;
     private Integer count;
+    private Integer rectifyFinish;
+    private Integer rectifyNotFinish;
+    private Integer generalDanger;
+    private Integer majorDanger;
+    private Integer accept;
 
     public String getTime() {
         return time;
@@ -23,4 +28,44 @@
     public void setCount(Integer count) {
         this.count = count;
     }
+
+    public Integer getGeneralDanger() {
+        return generalDanger;
+    }
+
+    public void setGeneralDanger(Integer generalDanger) {
+        this.generalDanger = generalDanger;
+    }
+
+    public Integer getMajorDanger() {
+        return majorDanger;
+    }
+
+    public void setMajorDanger(Integer majorDanger) {
+        this.majorDanger = majorDanger;
+    }
+
+    public Integer getRectifyFinish() {
+        return rectifyFinish;
+    }
+
+    public void setRectifyFinish(Integer rectifyFinish) {
+        this.rectifyFinish = rectifyFinish;
+    }
+
+    public Integer getRectifyNotFinish() {
+        return rectifyNotFinish;
+    }
+
+    public void setRectifyNotFinish(Integer rectifyNotFinish) {
+        this.rectifyNotFinish = rectifyNotFinish;
+    }
+
+    public Integer getAccept() {
+        return accept;
+    }
+
+    public void setAccept(Integer accept) {
+        this.accept = accept;
+    }
 }
diff --git a/src/main/java/com/ruoyi/project/tr/riskList/controller/BaseRiskController.java b/src/main/java/com/ruoyi/project/tr/riskList/controller/BaseRiskController.java
index fcb7d73..375e4d9 100644
--- a/src/main/java/com/ruoyi/project/tr/riskList/controller/BaseRiskController.java
+++ b/src/main/java/com/ruoyi/project/tr/riskList/controller/BaseRiskController.java
@@ -1,8 +1,16 @@
 package com.ruoyi.project.tr.riskList.controller;
 
+import com.github.pagehelper.util.StringUtil;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.security.ShiroUtils;
+import com.ruoyi.doublePrevention.entity.PreventRiskCheckUnit;
+import com.ruoyi.doublePrevention.entity.PreventRiskControlMeasure;
+import com.ruoyi.doublePrevention.repository.param.PreventPointAndMeasureParams;
+import com.ruoyi.doublePrevention.service.RiskService;
+import com.ruoyi.doublePrevention.service.baseService.PreventCJReportRiskControlMeasureService;
+import com.ruoyi.doublePrevention.service.baseService.PreventRiskControlMeasureService;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
@@ -10,14 +18,22 @@
 import com.ruoyi.framework.web.page.TableDataInfo;
 import com.ruoyi.project.enumerate.TrRiskTypeEnum;
 import com.ruoyi.project.system.user.domain.User;
+import com.ruoyi.project.tr.baseCheckPoint.domain.BaseCheckPoint;
+import com.ruoyi.project.tr.baseCheckPoint.service.IBaseCheckPointService;
 import com.ruoyi.project.tr.riskCheckPoint.service.IRiskCheckPointService;
+import com.ruoyi.project.tr.riskList.domain.ImportDataRespBO;
 import com.ruoyi.project.tr.riskList.domain.RiskList;
 import com.ruoyi.project.tr.riskList.service.IRiskListService;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -33,6 +49,16 @@
 
     @Autowired
     private IRiskListService riskListService;
+
+    @Autowired
+    private IBaseCheckPointService baseCheckPointService;
+
+    @Autowired
+    private PreventRiskControlMeasureService riskControlMeasureService;
+
+    @Autowired
+    private RiskService riskService;
+
 
     /**
      * 查询基础清单列表
@@ -151,6 +177,116 @@
     }
 
 
+    /**
+     * 基础排查清单+检查点的导入 todo
+     * @param file
+     * @return
+     * @throws Exception
+     */
+    @Log(title = "基础排查清单+检查点的导入", businessType = BusinessType.IMPORT)
+    @PostMapping("/importData")
+    @ResponseBody
+    @Transactional
+    public AjaxResult importData(MultipartFile file) throws Exception {
+
+        if (file.isEmpty()){
+            return AjaxResult.error("文件不能为空");
+        }else {
+            ExcelUtil<ImportDataRespBO> util = new ExcelUtil<ImportDataRespBO>(ImportDataRespBO.class);
+            System.out.println(file.getInputStream());
+            List<ImportDataRespBO> importDataList = util.importExcel(file.getInputStream());
+            System.out.println(importDataList.size());
+            Boolean judgeDataBlean = Boolean.TRUE;
+            String errorMessage = "";
+            for (int i = 0; i < importDataList.size(); i++) {
+                ImportDataRespBO importData = importDataList.get(i);
+                if (StringUtil.isEmpty(importData.getRiskListName())) {
+                    judgeDataBlean = Boolean.FALSE;
+                    errorMessage +=
+                            StringUtils.isEmpty(errorMessage)?
+                                    "第" + (i + 1) + "行,该[基础清单名称]不能为空" :"<br/> 第" + (i + 1) + "行,该[检查内容]不能为空";
+                }
+                if (StringUtil.isEmpty(importData.getCheckType())) {
+                    judgeDataBlean = Boolean.FALSE;
+                    errorMessage +=
+                            StringUtils.isEmpty(errorMessage)?
+                                    "第" + (i + 1) + "行,该[检查类别]不能为空" :"<br/> 第" + (i + 1) + "行,该[检查内容]不能为空";
+                }
+                if (StringUtil.isEmpty(importData.getCheckContent())) {
+                    judgeDataBlean = Boolean.FALSE;
+                    errorMessage +=
+                            StringUtils.isEmpty(errorMessage)?
+                                    "第" + (i + 1) + "行,该[检查内容]不能为空" :"<br/> 第" + (i + 1) + "行,该[检查内容]不能为空";
+                }
+                if (StringUtil.isEmpty(importData.getControlMeasureCode())) {
+                    judgeDataBlean = Boolean.FALSE;
+                    errorMessage +=
+                            StringUtils.isEmpty(errorMessage)?
+                                    "第" + (i + 1) + "行,该[管控措施编号]不能为空" :"<br/> 第" + (i + 1) + "行,该[检查内容]不能为空";
+                }
+
+            }
+            if(!judgeDataBlean){
+                return AjaxResult.error(errorMessage);
+            }
+
+//            List<RiskList> riskLists = new ArrayList<>(); 先不使用批量插入
+//            List<BaseCheckPoint> baseCheckPoints = new ArrayList<>();
+            for (int i = 0; i < importDataList.size(); i++) {
+                ImportDataRespBO importData = importDataList.get(i);
+                RiskList riskList = new RiskList();
+                BaseCheckPoint baseCheckPoint = new BaseCheckPoint();
+                PreventPointAndMeasureParams preventPointAndMeasureParams = new PreventPointAndMeasureParams();
+
+                User sysUser = getSysUser();
+                Date nowDate = DateUtils.getNowDate();
+                //1.RiskList,拿到id -需要根据那么判断,是否已经存在
+                RiskList infoByRiskListName = riskListService.getInfoByRiskListName(importData.getRiskListName());
+                if (ObjectUtils.isEmpty(infoByRiskListName)){
+                    riskList.setRiskListName(importData.getRiskListName());
+                    riskList.setCreateBy(sysUser.getUserName());
+                    riskList.setCreateTime(nowDate);
+                    riskList.setRiskType(TrRiskTypeEnum.BASE.getCode());
+                    riskList.setCompanyId(getSysUser().getCompanyId());
+                    int resultRiskList = riskListService.insertRiskList(riskList);
+                    if (resultRiskList < 1){ //todo 需要检查是否收到标题行影响
+                        return AjaxResult.error("第" + i + "行基础清单插入错误,导入失败");
+                    }
+                }else {
+                    riskList.setRiskListId(infoByRiskListName.getRiskListId());
+                }
+                //2.baseCheckPoint,拿到id
+                baseCheckPoint.setRiskId(riskList.getRiskListId());
+                baseCheckPoint.setCreateBy(sysUser.getUserName());
+                baseCheckPoint.setCreateTime(nowDate);
+                baseCheckPoint.setCheckContent(importData.getCheckContent());
+                baseCheckPoint.setCheckType(importData.getCheckType());
+                if (ObjectUtils.isEmpty(importData.getCheckResult())){
+                    baseCheckPoint.setCheckResult(importData.getCheckResult());
+                }
+                int resultBaseCheckPoint = baseCheckPointService.insertBaseCheckPoint(baseCheckPoint);
+                if (resultBaseCheckPoint < 1){
+                    return AjaxResult.error("第" + i + "行风险点插入错误,导入失败");
+                }
+                //3.preventRiskCheckUnit
+                PreventRiskControlMeasure controlMeasure =
+                        riskControlMeasureService.getPreventRiskControlMeasureByControlMeasureCode(importData.getControlMeasureCode());
+                if (ObjectUtils.isEmpty(controlMeasure)){
+                    return AjaxResult.error("第" + i + "行管控措施不存在,导入失败");
+                }
+                preventPointAndMeasureParams.setRiskId(riskList.getRiskListId());
+                preventPointAndMeasureParams.setBaseCheckPointId(baseCheckPoint.getCheckPointId());
+                preventPointAndMeasureParams.setControlMeasureId(controlMeasure.getId());
+                int result = riskService.insertPointAndMeasure(preventPointAndMeasureParams);
+                if (ObjectUtils.isEmpty(controlMeasure)){
+                    return AjaxResult.error("第" + i + "行风险点与管控措施关联关系保持出错,导入失败");
+                }
+
+            }
+            return AjaxResult.success("导入成功!");
+        }
+
+    }
 
 
 }
diff --git a/src/main/java/com/ruoyi/project/tr/riskList/domain/ImportDataRespBO.java b/src/main/java/com/ruoyi/project/tr/riskList/domain/ImportDataRespBO.java
new file mode 100644
index 0000000..1fa413e
--- /dev/null
+++ b/src/main/java/com/ruoyi/project/tr/riskList/domain/ImportDataRespBO.java
@@ -0,0 +1,33 @@
+package com.ruoyi.project.tr.riskList.domain;
+
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import com.ruoyi.framework.web.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 风险清单对象 tr_risk_list
+ * 
+ * @author wm
+ * @date 2020-05-07
+ */
+@Data
+public class ImportDataRespBO extends BaseEntity
+{
+
+    @Excel(name = "基础清单")
+    private String riskListName;
+
+    @Excel(name = "检查类别")
+    private String checkType;
+
+    @Excel(name = "检查内容")
+    private String checkContent;
+
+    @Excel(name = "检查依据")
+    private String checkResult;
+
+    @Excel(name = "风险管控措施编号")
+    private String controlMeasureCode;
+
+
+}
diff --git a/src/main/java/com/ruoyi/project/tr/riskList/mapper/RiskListMapper.java b/src/main/java/com/ruoyi/project/tr/riskList/mapper/RiskListMapper.java
index 0d24a10..1fedfc2 100644
--- a/src/main/java/com/ruoyi/project/tr/riskList/mapper/RiskListMapper.java
+++ b/src/main/java/com/ruoyi/project/tr/riskList/mapper/RiskListMapper.java
@@ -83,4 +83,6 @@
     RiskList getInfoByRiskListId(Long riskUnitId);
 
     List<RiskList> getRiskUnitLists();
+
+    RiskList getInfoByRiskListName(String riskListName);
 }
diff --git a/src/main/java/com/ruoyi/project/tr/riskList/service/IRiskListService.java b/src/main/java/com/ruoyi/project/tr/riskList/service/IRiskListService.java
index d8eec4a..d693949 100644
--- a/src/main/java/com/ruoyi/project/tr/riskList/service/IRiskListService.java
+++ b/src/main/java/com/ruoyi/project/tr/riskList/service/IRiskListService.java
@@ -83,4 +83,6 @@
     RiskList getInfoByRiskListId(Long riskUnitId);
 
     List<RiskList> getRiskUnitLists();
+
+    RiskList getInfoByRiskListName(String riskListName);
 }
diff --git a/src/main/java/com/ruoyi/project/tr/riskList/service/impl/RiskListServiceImpl.java b/src/main/java/com/ruoyi/project/tr/riskList/service/impl/RiskListServiceImpl.java
index 3fdf876..d3a772f 100644
--- a/src/main/java/com/ruoyi/project/tr/riskList/service/impl/RiskListServiceImpl.java
+++ b/src/main/java/com/ruoyi/project/tr/riskList/service/impl/RiskListServiceImpl.java
@@ -162,4 +162,9 @@
     public List<RiskList> getRiskUnitLists() {
         return riskListMapper.getRiskUnitLists();
     }
+
+    @Override
+    public RiskList getInfoByRiskListName(String riskListName) {
+        return riskListMapper.getInfoByRiskListName(riskListName);
+    }
 }
diff --git a/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml b/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml
index 2050f7a..4a93fb7 100644
--- a/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml
+++ b/src/main/resources/mybatis/doublePrevention/TrHiddenDangerCheckPointMapper.xml
@@ -112,7 +112,12 @@
 <!--    List<TroubleDataRespDTO> getSPIData(SPIDataReqBO spiDataReqBO);-->
     <select id="getSPIData" resultType="com.ruoyi.doublePrevention.entity.SPI.TroubleData">
         SELECT
-            DATE_FORMAT(register_create_time, '%Y-%m') time, sum(1) count
+            DATE_FORMAT(register_create_time, '%Y-%m') time, sum(1) count,
+            sum(case when rectify_status = '1' then 1 else 0 end) rectifyFinish,
+            sum(case when rectify_status = '0' then 1 else 0 end) rectifyNotFinish,
+            sum(case when accept_result = '1' then 1 else 0 end) accept,
+            sum(case when danger_level = '0' then 1 else 0 end) generalDanger,
+            sum(case when danger_level = '1' then 1 else 0 end) majorDanger
         FROM tr_hidden_danger_check_point
         WHERE register_create_time >= #{spiDataReqBO.startTime} and #{spiDataReqBO.endTime} >= register_create_time and whether_danger = 1
         GROUP BY time
diff --git a/src/main/resources/mybatis/tr/RiskListMapper.xml b/src/main/resources/mybatis/tr/RiskListMapper.xml
index b8d83dc..0235815 100644
--- a/src/main/resources/mybatis/tr/RiskListMapper.xml
+++ b/src/main/resources/mybatis/tr/RiskListMapper.xml
@@ -229,7 +229,7 @@
         <include refid="selectRiskListVo"/>
         where risk_list_id = #{riskListId}
     </select>
-<!--        todo -->
+
     <insert id="insertRiskList" parameterType="RiskList" useGeneratedKeys="true" keyProperty="riskListId">
         insert into tr_risk_list
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -331,4 +331,10 @@
     <select id="getRiskUnitLists" parameterType="RiskList" resultMap="RiskListResult">
     select * from tr_risk_list
 </select>
+
+<!--    RiskList getInfoByRiskListName(String riskListName);-->
+    <select id="getInfoByRiskListName" parameterType="RiskList" resultMap="RiskListResult">
+        select * from tr_risk_list
+        where risk_list_name = #{riskListName}
+    </select>
 </mapper>

--
Gitblit v1.9.2