From a27162cb82ef0cabf9b43cbfd1f3eb8c177d1e14 Mon Sep 17 00:00:00 2001
From: heheng <heheng@123456>
Date: 星期一, 13 一月 2025 15:22:44 +0800
Subject: [PATCH] 修改问题

---
 src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java   |   37 +++++++
 src/main/java/com/gkhy/labRiskManage/application/account/service/impl/AccountAppServiceImpl.java           |   24 ++++
 src/main/java/com/gkhy/labRiskManage/application/account/dto/repDto/UpdateUserAppReqDTO.java               |    1 
 src/main/java/com/gkhy/labRiskManage/config/annotation/RepeatSubmit.java                                   |   23 ++++
 src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/RiskAssessPlanAppQueryDTO.java         |    9 +
 src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/dto/respDto/RiskAssessPlanQueryRespDTO.java |    5 +
 src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java               |   35 +++++-
 src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/ReportAppQueryDTO.java                 |   16 +++
 src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentInfoServiceImpl.java         |    1 
 src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/ReportRiskAssessInfoController.java         |    8 +
 src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/ReportAppServiceImpl.java         |    1 
 src/main/java/com/gkhy/labRiskManage/config/interceptor/RepeatSubmitInterceptor.java                       |   55 +++++++++++
 src/main/java/com/gkhy/labRiskManage/domain/account/service/impl/UserDomainServiceImpl.java                |    6 +
 src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java                        |    5 +
 src/main/java/com/gkhy/labRiskManage/api/controller/basic/dto/respDto/OldRiskAssessResDTO.java             |   52 ++++++++++
 src/main/java/com/gkhy/labRiskManage/domain/account/model/bo/UpdateUserBO.java                             |    2 
 16 files changed, 270 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/gkhy/labRiskManage/api/controller/basic/dto/respDto/OldRiskAssessResDTO.java b/src/main/java/com/gkhy/labRiskManage/api/controller/basic/dto/respDto/OldRiskAssessResDTO.java
new file mode 100644
index 0000000..0eca47a
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/api/controller/basic/dto/respDto/OldRiskAssessResDTO.java
@@ -0,0 +1,52 @@
+package com.gkhy.labRiskManage.api.controller.basic.dto.respDto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+@Data
+public class OldRiskAssessResDTO implements Serializable {
+
+    private Integer sort;
+    private Long id;
+
+    private String region;
+
+    private String potentialAccident;
+
+    private String dangerReason;
+
+    private String triggerFactor;
+
+    private String accidentResult;
+
+    private String l;
+
+    private String e;
+
+    private String c;
+
+    private String d;
+
+    private String dangerLevel;
+
+    private String controlMeasure;
+
+    private String controlLevel;
+
+    private LocalDateTime createTime;
+
+    private Long createByUserId;
+
+    private String createByUserName;
+
+    private LocalDateTime updateTime;
+
+    private Long updateByUserId;
+
+    private String updateByUserName;
+
+}
+
diff --git a/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/ReportRiskAssessInfoController.java b/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/ReportRiskAssessInfoController.java
index 93deed6..bcbae67 100644
--- a/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/ReportRiskAssessInfoController.java
+++ b/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/ReportRiskAssessInfoController.java
@@ -12,6 +12,7 @@
 import com.gkhy.labRiskManage.commons.domain.SearchResult;
 import com.gkhy.labRiskManage.commons.enums.ResultCode;
 import com.gkhy.labRiskManage.commons.utils.BeanCopyUtils;
+import com.gkhy.labRiskManage.config.annotation.RepeatSubmit;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -36,8 +37,9 @@
         result.setMsg("查询成功");
 
         SearchResult<ReportQueryRespDTO> queryResult = reportAppService.selectRiskReportPage(getCurrentUserId(), queryReqBO);
-        result.setData(BeanCopyUtils.copyReportQueryResp(queryResult.getData(), ReportQueryRespDTO.class));
 
+        BeanCopyUtils.copyReportQueryResp(queryResult.getData(), ReportQueryRespDTO.class);
+        result.setData(BeanCopyUtils.copyReportQueryResp(queryResult.getData(), ReportQueryRespDTO.class));
         result.setPageIndex(queryResult.getPageIndex());
         result.setPageSize(queryResult.getPageSize());
         result.setTotal(queryResult.getTotal());
@@ -50,6 +52,7 @@
      * 风险评估报告 - 生成报告信息
      */
     @PostMapping("/insert/insertRiskReport")
+    @RepeatSubmit()
     public Result insertRiskReport(@RequestBody JSONObject jsonObject){
         Result result = new Result();
         result.setCode(ResultCode.OK);
@@ -69,6 +72,7 @@
      * 风险评估报告 - 填写报告信息
      */
     @PostMapping("/update/updateRiskReport")
+    @RepeatSubmit()
     public Result updateRiskReport(@RequestBody ReportUpdateReqBO updateReqBO){
         Result result = new Result();
         result.setCode(ResultCode.OK);
@@ -106,6 +110,7 @@
      * 风险评估报告 - 报告审核 - 旧 - 两层审核
      */
     @PostMapping("/update/report")
+    @RepeatSubmit()
     public Result report(@RequestBody ReportReqBO reportReqBO){
         Result result = new Result();
         result.setCode(ResultCode.OK);
@@ -125,6 +130,7 @@
      * 风险评估报告 - 报告审核 - 新 - 单次审核
      */
     @PostMapping("/update/reportNew")
+    @RepeatSubmit()
     public Result reportNew(@RequestBody ReportReqBO reportReqBO){
         Result result = new Result();
         result.setCode(ResultCode.OK);
diff --git a/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/dto/respDto/RiskAssessPlanQueryRespDTO.java b/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/dto/respDto/RiskAssessPlanQueryRespDTO.java
index 52efd59..f7a9ff3 100644
--- a/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/dto/respDto/RiskAssessPlanQueryRespDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/api/controller/riskReport/dto/respDto/RiskAssessPlanQueryRespDTO.java
@@ -161,5 +161,10 @@
      */
     private String planUserName;
 
+    /**
+     * 工艺流程
+     */
+    private String process;
+
 }
 
diff --git a/src/main/java/com/gkhy/labRiskManage/application/account/dto/repDto/UpdateUserAppReqDTO.java b/src/main/java/com/gkhy/labRiskManage/application/account/dto/repDto/UpdateUserAppReqDTO.java
index 62a0b85..c74be4e 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/account/dto/repDto/UpdateUserAppReqDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/account/dto/repDto/UpdateUserAppReqDTO.java
@@ -14,6 +14,7 @@
 
     private List<Long> roleIds;
 
+    private String pwd;
 
     private String phone;
 
diff --git a/src/main/java/com/gkhy/labRiskManage/application/account/service/impl/AccountAppServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/application/account/service/impl/AccountAppServiceImpl.java
index bf72777..c504bb9 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/account/service/impl/AccountAppServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/account/service/impl/AccountAppServiceImpl.java
@@ -333,7 +333,7 @@
         createUserBO.setRealName(createNewUserAppReqDTO.getRealName());
         //如果没有提供密码,初始密码为“123456”
         if(createNewUserAppReqDTO.getPwd() == null || createNewUserAppReqDTO.getPwd().isEmpty()){
-            createNewUserAppReqDTO.setPwd("Gkhy@c413");
+            createNewUserAppReqDTO.setPwd("Gs@123456");
         }
 
         //todo 2024 弱口令问题处理
@@ -403,6 +403,28 @@
         bo.setDepId(updateUserAppReqDTO.getDepId());
         bo.setIdentityStatus(updateUserAppReqDTO.getIdentityStatus());
         bo.setQualificationAttId(updateUserAppReqDTO.getQualificationAttId());
+        if (!ObjectUtils.isEmpty(updateUserAppReqDTO.getPwd())){
+            if (updateUserAppReqDTO.getPwd().length() < 8){
+                throw new BusinessException(this.getClass(),ResultCode.PARAM_ERROR_ILLEGAL.getCode(),"密码长度不够");
+            }
+            if (!updateUserAppReqDTO.getPwd().matches(".*[A-Z].*")){
+                throw new BusinessException(this.getClass(),ResultCode.PARAM_ERROR_ILLEGAL.getCode(),"密码需要包含大小写字母、数字、特殊符号");
+            }
+            if (!updateUserAppReqDTO.getPwd().matches(".*[a-z].*")){
+                throw new BusinessException(this.getClass(),ResultCode.PARAM_ERROR_ILLEGAL.getCode(),"密码需要包含大小写字母、数字、特殊符号");
+            }
+            if (!updateUserAppReqDTO.getPwd().matches(".*\\d.*")){
+                throw new BusinessException(this.getClass(),ResultCode.PARAM_ERROR_ILLEGAL.getCode(),"密码需要包含大小写字母、数字、特殊符号");
+            }
+            if (!updateUserAppReqDTO.getPwd().matches(".*[!@#$%^&*.()?+`~<>,-].*")){
+                throw new BusinessException(this.getClass(),ResultCode.PARAM_ERROR_ILLEGAL.getCode(),"密码需要包含大小写字母、数字、特殊符号");
+            }
+            bo.setPwd(updateUserAppReqDTO.getPwd());
+        }
+
+
+
+
         UserInfoDomainDTO updateRs = userDomainService.updateUserInfo(bo);
         //修改用户绑定角色
         userRoleDomainService.updateUserRole(updateUserAppReqDTO.getId(), updateUserAppReqDTO.getRoleIds());
diff --git a/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/ReportAppQueryDTO.java b/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/ReportAppQueryDTO.java
index 1b57ca1..322414e 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/ReportAppQueryDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/ReportAppQueryDTO.java
@@ -1,9 +1,12 @@
 package com.gkhy.labRiskManage.application.riskReport.dto.dto;
 
+import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessResDTO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportExperimentSiteQueryRespDTO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportPersonQueryRespDTO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportRiskSourceQueryRespDTO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportSourceTypeQueryRespDTO;
+import com.gkhy.labRiskManage.domain.basic.entity.OldRiskAssess;
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndType;
 import lombok.Data;
 
 import java.time.LocalDateTime;
@@ -142,6 +145,11 @@
      */
     private LocalDateTime evaluateTime;
 
+    /**
+     * 工艺流程
+     */
+    private String process;
+
     List<ReportPersonQueryRespDTO> person;
     /**
      * 风险源类型
@@ -155,5 +163,13 @@
      *
      */
     List<ReportExperimentSiteQueryRespDTO> experimentSite;
+    /**
+     * 实验类型
+     */
+    List<ExperimentAndType> experimentAndType;
+    /**
+     * 附件
+     */
+    List<OldRiskAssessResDTO> oldRiskAssess;
 }
 
diff --git a/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/RiskAssessPlanAppQueryDTO.java b/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/RiskAssessPlanAppQueryDTO.java
index 65bbeea..b520d2a 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/RiskAssessPlanAppQueryDTO.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/riskReport/dto/dto/RiskAssessPlanAppQueryDTO.java
@@ -1,9 +1,11 @@
 package com.gkhy.labRiskManage.application.riskReport.dto.dto;
 
+import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndType;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  *
@@ -161,6 +163,13 @@
      */
     private String planUserName;
 
+    /**
+     * 工艺流程
+     */
+    private String process;
+
+
+
 
 }
 
diff --git a/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/ReportAppServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/ReportAppServiceImpl.java
index c7b2aea..8ec990c 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/ReportAppServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/ReportAppServiceImpl.java
@@ -14,6 +14,7 @@
 import com.gkhy.labRiskManage.commons.enums.StatusEnum;
 import com.gkhy.labRiskManage.commons.exception.BusinessException;
 import com.gkhy.labRiskManage.commons.utils.BeanCopyUtils;
+import com.gkhy.labRiskManage.config.annotation.RepeatSubmit;
 import com.gkhy.labRiskManage.domain.account.service.UserDomainService;
 import com.gkhy.labRiskManage.domain.experiment.service.ExperimentInfoService;
 import com.gkhy.labRiskManage.domain.riskReport.model.dto.*;
diff --git a/src/main/java/com/gkhy/labRiskManage/config/annotation/RepeatSubmit.java b/src/main/java/com/gkhy/labRiskManage/config/annotation/RepeatSubmit.java
new file mode 100644
index 0000000..0958455
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/config/annotation/RepeatSubmit.java
@@ -0,0 +1,23 @@
+package com.gkhy.labRiskManage.config.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 自定义注解防止表单重复提交
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface RepeatSubmit {
+    /**
+     * 间隔时间(ms) 小于此时间视为重复提交
+     * @return
+     */
+    public int interval() default 5000;
+
+    /**
+     * 提示消息
+     * @return
+     */
+    public String message() default "不允许重复提交,请稍后再试";
+}
diff --git a/src/main/java/com/gkhy/labRiskManage/config/interceptor/RepeatSubmitInterceptor.java b/src/main/java/com/gkhy/labRiskManage/config/interceptor/RepeatSubmitInterceptor.java
new file mode 100644
index 0000000..f639fa0
--- /dev/null
+++ b/src/main/java/com/gkhy/labRiskManage/config/interceptor/RepeatSubmitInterceptor.java
@@ -0,0 +1,55 @@
+package com.gkhy.labRiskManage.config.interceptor;
+
+
+import com.gkhy.labRiskManage.commons.enums.ResultCode;
+import com.gkhy.labRiskManage.commons.exception.BusinessException;
+import com.gkhy.labRiskManage.config.annotation.RepeatSubmit;
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Method;
+
+/**
+ * 防止器重复提交拦截
+ *
+ */
+@Component
+public abstract class RepeatSubmitInterceptor implements HandlerInterceptor
+{
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
+    {
+        if (handler instanceof HandlerMethod)
+        {
+            HandlerMethod handlerMethod = (HandlerMethod) handler;
+            Method method = handlerMethod.getMethod();
+            RepeatSubmit annotation = method.getAnnotation(RepeatSubmit.class);
+            if (annotation != null)
+            {
+                if (this.isRepeatSubmit(request, annotation))
+                {
+                    //throw new RuntimeException(annotation.message());
+                    throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(), annotation.message());
+
+                }
+            }
+            return true;
+        }
+        else
+        {
+            return true;
+        }
+    }
+
+    /**
+     * 验证是否重复提交由子类实现具体的防重复提交的规则
+     *
+     * @param request 请求对象
+     * @param annotation 防复注解
+     * @return 结果
+     */
+    public abstract boolean isRepeatSubmit(HttpServletRequest request, RepeatSubmit annotation) throws Exception;
+}
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/account/model/bo/UpdateUserBO.java b/src/main/java/com/gkhy/labRiskManage/domain/account/model/bo/UpdateUserBO.java
index 485efbe..8680adc 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/account/model/bo/UpdateUserBO.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/account/model/bo/UpdateUserBO.java
@@ -27,5 +27,7 @@
 
     private Long qualificationAttId;
 
+    private String pwd;
+
 
 }
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/account/service/impl/UserDomainServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/account/service/impl/UserDomainServiceImpl.java
index d480814..bd92c2c 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/account/service/impl/UserDomainServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/account/service/impl/UserDomainServiceImpl.java
@@ -38,6 +38,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 
 import javax.persistence.criteria.*;
 import java.nio.charset.StandardCharsets;
@@ -157,6 +158,9 @@
         user.setPhone(updateUserBO.getPhone());
         user.setIdentityStatus(updateUserBO.getIdentityStatus());
         user.setQualificationAttId(updateUserBO.getQualificationAttId());
+        if (!ObjectUtils.isEmpty(updateUserBO.getPwd())){
+            user.setHash(genPasswordHash(updateUserBO.getPwd(), user.getSalt()));
+        }
         //写库
         User saveUserRs = userRepository.save(user);
         return userInfoDomainConverter.toUserInfoDTO(saveUserRs);
@@ -345,7 +349,7 @@
         User user = userOptional.get();
 
         //设置初始密码
-        String newPwd = "Gkhy@c413";
+        String newPwd = "Gs@123456";
         String newHash = genPasswordHash(newPwd, user.getSalt());
 
 //        Integer integer = userRepository.resetPassword(uid, newHash, LocalDateTime.now());
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java
index ca81ac9..25c8bae 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/OldRiskAssessService.java
@@ -3,6 +3,7 @@
 import com.gkhy.labRiskManage.api.controller.basic.dto.repDto.OldRiskAssessQueryReqBO;
 import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessExportRespDTO;
 import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessQueryRespDTO;
+import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessResDTO;
 import com.gkhy.labRiskManage.commons.domain.Result;
 import com.gkhy.labRiskManage.commons.domain.SearchResult;
 import com.gkhy.labRiskManage.domain.basic.entity.OldRiskAssess;
@@ -10,6 +11,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 public interface OldRiskAssessService {
 
@@ -24,4 +26,7 @@
     int importOldRiskAssess(Long currentUserId, MultipartFile file);
 
     Result<OldRiskAssessExportRespDTO> exportOldRiskAssess(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO, HttpServletResponse response, HttpServletRequest request);
+
+
+    List<OldRiskAssessResDTO> getOldRiskAssessListByRegion(List<String> region);
 }
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java
index eda1981..e1256ab 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/basic/service/impl/OldRiskAssessServiceImpl.java
@@ -3,6 +3,7 @@
 import com.gkhy.labRiskManage.api.controller.basic.dto.repDto.OldRiskAssessQueryReqBO;
 import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessExportRespDTO;
 import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessQueryRespDTO;
+import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessResDTO;
 import com.gkhy.labRiskManage.commons.domain.Result;
 import com.gkhy.labRiskManage.commons.domain.SearchResult;
 import com.gkhy.labRiskManage.commons.enums.ResultCode;
@@ -15,7 +16,6 @@
 import com.gkhy.labRiskManage.domain.basic.repository.jpa.OldRiskAssessRepository;
 import com.gkhy.labRiskManage.domain.basic.service.OldRiskAssessService;
 import org.apache.poi.hssf.usermodel.*;
-import org.apache.poi.ss.usermodel.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -23,7 +23,6 @@
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.Base64Utils;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -31,14 +30,9 @@
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.OutputStream;
-import java.net.URLEncoder;
 import java.text.NumberFormat;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
@@ -454,6 +448,33 @@
     }
 
     @Override
+    public List<OldRiskAssessResDTO> getOldRiskAssessListByRegion(List<String> region) {
+
+        Specification<OldRiskAssess> specification = new Specification<OldRiskAssess>() {
+            @Override
+            public Predicate toPredicate(Root<OldRiskAssess> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
+                query.orderBy(criteriaBuilder.asc(root.get("region")));
+                List<Predicate> predicateList = new ArrayList<>();
+                predicateList.add(criteriaBuilder.in(root.get("region")).value(region));
+
+                predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"),StatusEnum.DELETE_NOT.getCode()));
+                //返回组装的条件
+                return criteriaBuilder.and(predicateList.toArray(predicateList.toArray(new Predicate[0])));
+            }
+        };
+
+        List<OldRiskAssess> all = repository.findAll(specification);
+        if (ObjectUtils.isEmpty(all)){
+            return null;
+        }
+        List<OldRiskAssessResDTO> oldRiskAssessResDTOS = BeanCopyUtils.copyBeanList(all, OldRiskAssessResDTO.class);
+        oldRiskAssessResDTOS.forEach(oldRiskAssessResDTO -> {
+            oldRiskAssessResDTO.setSort(oldRiskAssessResDTOS.indexOf(oldRiskAssessResDTO) + 1);
+        });
+        return oldRiskAssessResDTOS;
+    }
+
+    @Override
     public SearchResult<OldRiskAssessQueryRespDTO> getOldRiskAssessPage(Long currentUserId, OldRiskAssessQueryReqBO queryReqDO) {
 
         //校验参数
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentInfoServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentInfoServiceImpl.java
index c32183a..150d579 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentInfoServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentInfoServiceImpl.java
@@ -43,6 +43,7 @@
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.ObjectUtils;
 
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
index 235f60e..aedee64 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java
@@ -1,5 +1,7 @@
 package com.gkhy.labRiskManage.domain.riskReport.service.impl;
 
+import com.gkhy.labRiskManage.api.controller.basic.dto.respDto.OldRiskAssessResDTO;
+import com.gkhy.labRiskManage.api.controller.experiment.dto.req.ExperimentAndPersonInsertReqBO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.repDto.ReportReqBO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportExperimentSiteQueryRespDTO;
 import com.gkhy.labRiskManage.api.controller.riskReport.dto.respDto.ReportPersonQueryRespDTO;
@@ -19,10 +21,12 @@
 import com.gkhy.labRiskManage.domain.account.model.dto.UserInfoDomainDTO;
 import com.gkhy.labRiskManage.domain.account.service.UserDomainService;
 import com.gkhy.labRiskManage.domain.basic.entity.BasicRiskUnitType;
+import com.gkhy.labRiskManage.domain.basic.entity.OldRiskAssess;
 import com.gkhy.labRiskManage.domain.basic.model.dto.SiteQueryDTO;
 import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentPersonService;
 import com.gkhy.labRiskManage.domain.basic.service.BasicExperimentSiteService;
 import com.gkhy.labRiskManage.domain.basic.service.BasicRiskUnitTypeService;
+import com.gkhy.labRiskManage.domain.basic.service.OldRiskAssessService;
 import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAndSite;
 import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentAssessLog;
 import com.gkhy.labRiskManage.domain.experiment.entity.ExperimentInfo;
@@ -30,6 +34,7 @@
 import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentRectifyStatusEnum;
 import com.gkhy.labRiskManage.domain.experiment.model.dto.ExperimentInfoDTO;
 import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndSiteService;
+import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAndTypeService;
 import com.gkhy.labRiskManage.domain.experiment.service.ExperimentAssessLogService;
 import com.gkhy.labRiskManage.domain.experiment.service.ExperimentInfoService;
 import com.gkhy.labRiskManage.domain.riskReport.entity.*;
@@ -48,6 +53,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
 
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
@@ -56,6 +62,7 @@
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -103,6 +110,12 @@
     private RiskAssessPlanEvaluateMesService mesService;
     @Autowired
     private RiskAssessPlanEvaluateRsService rsService;
+
+    @Autowired
+    private ExperimentAndTypeService experimentAndTypeService;
+    
+    @Autowired
+    private OldRiskAssessService oldRiskAssessService;
 
 
     /**
@@ -191,6 +204,8 @@
         List<ReportAppQueryDTO> reportAppQueryDTOS = BeanCopyUtils.copyBeanList(reportQueryDTOS, ReportAppQueryDTO.class);
 
         List<UserInfoDomainDTO> userList = userDomainService.getUserList();
+
+
         for (ReportAppQueryDTO reportQueryDTO : reportAppQueryDTOS) {
             //获取审批人员
             List<ReportPersonQueryRespDTO> personByReportId = reportPersonService.listPersonByReportId(reportQueryDTO.getId());
@@ -205,6 +220,10 @@
             //获取评估计划
             List<AssessPlanQueryDTO> assessPlanByExperimentId = assessPlanService.getAssessPlanByExperimentId(reportQueryDTO.getExperimentId());
             reportQueryDTO.setEvaluateTime(experimentById.getCreateTime());
+            if (!ObjectUtils.isEmpty(experimentById.getProcess())){
+                reportQueryDTO.setProcess(experimentById.getProcess());
+            }
+
 
             if (!ObjectUtils.isEmpty(assessPlanByExperimentId)){
                 for (AssessPlanQueryDTO assessPlan : assessPlanByExperimentId) {
@@ -225,6 +244,16 @@
             }
             if (!ObjectUtils.isEmpty(siteByReportId)){
                 reportQueryDTO.setExperimentSite(BeanCopyUtils.copyBeanList(siteByReportId, ReportExperimentSiteQueryRespDTO.class));
+                if (queryBO.getExperimentId() != null){
+                    List<ReportExperimentSiteQueryRespDTO> experimentSite = reportQueryDTO.getExperimentSite();
+                    List<String> collect = experimentSite.stream().map(ReportExperimentSiteQueryRespDTO::getSiteName).collect(Collectors.toList());
+                    List<OldRiskAssessResDTO> oldRiskAssessListByRegion = oldRiskAssessService.getOldRiskAssessListByRegion(collect);
+                    if (!ObjectUtils.isEmpty(oldRiskAssessListByRegion)){
+
+                        reportQueryDTO.setOldRiskAssess(oldRiskAssessListByRegion);
+                    }
+                    reportQueryDTO.setExperimentAndType(experimentAndTypeService.getByExperimentId(reportQueryDTO.getExperimentId()));
+                }
             }
             reportQueryDTO.setExperimentCode(experimentById.getExperimentCode());
 
@@ -236,6 +265,9 @@
                     reportQueryDTO.setUpdateByUserName(userInfo.getRealName());
                 }
             }
+
+
+
         }
 
         searchResult.setData(reportAppQueryDTOS);
@@ -243,6 +275,7 @@
         return searchResult;
     }
 
+    
     /**
      * 风险评估报告 - 生成报告信息
      */
@@ -557,6 +590,9 @@
         reportById.setAssessPerson(reportUpdateBO.getAssessPerson());
         reportById.setAssessLevel(reportUpdateBO.getAssessLevel());
         reportById.setDescription(reportUpdateBO.getDescription());
+        if(!ObjectUtils.isEmpty(reportUpdateBO.getSafeRiskAnalysis())){
+            reportById.setSafeRiskAnalysis(reportUpdateBO.getSafeRiskAnalysis());
+        }
         reportById.setUpdateTime(LocalDateTime.now());
         reportById.setUpdateByUserId(currentUserId);
 
@@ -724,6 +760,7 @@
      * 风险评估报告 - 报告审核 - 新 - 单次审核
      */
     @Override
+    @Transactional
     public int reportNew(Long currentUserId, ReportReqBO reportReqBO) {
 
         if (currentUserId < 0){

--
Gitblit v1.9.2