From 247a4a1f10f233c89a4bd054dee3cb9b7d4a76f1 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期三, 19 十一月 2025 08:40:12 +0800
Subject: [PATCH] 新增数据上传准东
---
src/main/java/com/ruoyi/project/tr/riskList/controller/BaseRiskController.java | 137 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 137 insertions(+), 0 deletions(-)
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 fdc1ac9..e0e306d 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;
+
/**
* 查询基础清单列表
@@ -88,6 +114,7 @@
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(RiskList riskList) {
+ //老代码
//保存前获取用户名以及公司信息
User sysUser = getSysUser();
riskList.setCreateBy(sysUser.getUserName());
@@ -150,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 + 2) + "行,该[基础清单名称]不能为空" :"<br/> 第" + (i + 1) + "行,该[基础清单名称]不能为空";
+ }
+ if (StringUtil.isEmpty(importData.getCheckType())) {
+ judgeDataBlean = Boolean.FALSE;
+ errorMessage +=
+ StringUtils.isEmpty(errorMessage)?
+ "第" + (i + 2) + "行,该[检查类别]不能为空" :"<br/> 第" + (i + 1) + "行,该[检查类别]不能为空";
+ }
+ if (StringUtil.isEmpty(importData.getCheckContent())) {
+ judgeDataBlean = Boolean.FALSE;
+ errorMessage +=
+ StringUtils.isEmpty(errorMessage)?
+ "第" + (i + 2) + "行,该[检查内容]不能为空" :"<br/> 第" + (i + 1) + "行,该[检查内容]不能为空";
+ }
+ if (StringUtil.isEmpty(importData.getControlMeasureCode())) {
+ judgeDataBlean = Boolean.FALSE;
+ errorMessage +=
+ StringUtils.isEmpty(errorMessage)?
+ "第" + (i + 2) + "行,该[管控措施编号]不能为空" :"<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 需要检查是否收到标题行影响
+ throw new RuntimeException("第" + (i+2) + "行基础清单插入错误,导入失败");
+ }
+ }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){
+ throw new RuntimeException("第" + (i+2) + "行风险点插入错误,导入失败");
+ }
+ //3.preventRiskCheckUnit
+ PreventRiskControlMeasure controlMeasure =
+ riskControlMeasureService.getPreventRiskControlMeasureByControlMeasureCode(importData.getControlMeasureCode());
+ if (ObjectUtils.isEmpty(controlMeasure)){
+ throw new RuntimeException("第" + (i+2) + "行管控措施不存在,导入失败");
+ }
+ preventPointAndMeasureParams.setRiskId(riskList.getRiskListId());
+ preventPointAndMeasureParams.setBaseCheckPointId(baseCheckPoint.getCheckPointId());
+ preventPointAndMeasureParams.setControlMeasureId(controlMeasure.getId());
+ int result = riskService.insertPointAndMeasure(preventPointAndMeasureParams);
+ if (result < 1){
+ throw new RuntimeException("第" + (i+2) + "行风险点与管控措施关联关系保持出错,导入失败");
+ }
+
+ }
+ return AjaxResult.success("导入成功!");
+ }
+
+ }
}
--
Gitblit v1.9.2