From 8485affcb0d4de05059d80cb1e844d6b18291654 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期五, 16 五月 2025 14:35:49 +0800
Subject: [PATCH] 修正

---
 src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java |   87 ++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 77 insertions(+), 10 deletions(-)

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 4d42004..b106467 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,17 +21,21 @@
 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.model.dto.PersonQueryDTO;
+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;
 import com.gkhy.labRiskManage.domain.experiment.enums.ExperimentApprovalStatusEnum;
 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.*;
 import com.gkhy.labRiskManage.domain.riskReport.model.bo.ReportQueryBO;
@@ -39,7 +45,6 @@
 import com.gkhy.labRiskManage.domain.riskReport.service.*;
 import com.gkhy.labRiskManage.domain.riskReport.utils.GetRoleTagUtils;
 import com.gkhy.labRiskManage.domain.riskReport.utils.RiskSourceTypeUtils;
-import lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -48,16 +53,16 @@
 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;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
-import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -91,6 +96,8 @@
     private ReportExperimentRiskSourceTypeService reportSourceTypeService;
     @Autowired
     private ReportExperimentRiskSourceService reportSourceService;
+    @Autowired
+    private ExperimentAssessLogService experimentAssessLogService;
 
     @Autowired
     private UserDomainService userDomainService;
@@ -103,6 +110,12 @@
     private RiskAssessPlanEvaluateMesService mesService;
     @Autowired
     private RiskAssessPlanEvaluateRsService rsService;
+
+    @Autowired
+    private ExperimentAndTypeService experimentAndTypeService;
+    
+    @Autowired
+    private OldRiskAssessService oldRiskAssessService;
 
 
     /**
@@ -122,7 +135,7 @@
         if (ObjectUtils.isEmpty(queryBO.getTag())){
             throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode() ,"查询报告类别参数缺失");
         }
-        if (queryBO.getExperimentName() == "null"){
+        if (queryBO.getExperimentName() == ""){
             queryBO.setExperimentName(null);
         }
         UserInfoDomainDTO user = userDomainService.getUserById(currentUserId);
@@ -157,7 +170,7 @@
                     predicateList.add(criteriaBuilder.equal(root.get("experimentId"),queryParam.getExperimentId()));
                 }
                 if (!ObjectUtils.isEmpty(queryParam.getExperimentName())){
-                    predicateList.add(criteriaBuilder.equal(root.get("experimentName"), queryParam.getExperimentName()));
+                    predicateList.add(criteriaBuilder.like(root.get("experimentName"),"%"+queryParam.getExperimentName()+"%"));
                 }
                 if (roleTag == UserTagEnum.USER_TAG_0.getCode()){
                     predicateList.add(criteriaBuilder.equal(root.get("personUserId"), currentUserId));
@@ -165,7 +178,8 @@
                 if (queryParam.getTag() == 1){
                     predicateList.add(criteriaBuilder.isNull(root.get("assessPerson")));
                 }else if (queryParam.getTag() == 2){
-                    predicateList.add(criteriaBuilder.isNotNull(root.get("assessPerson")));
+                    predicateList.add(criteriaBuilder.isNotNull(root.get("assessPerson"))
+                    );
                 }
                 //现在领导能查看所有的报告
 //                if (roleTag == UserTagEnum.USER_TAG_2.getCode()){
@@ -190,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());
@@ -204,12 +220,19 @@
             //获取评估计划
             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) {
-                    if (reportQueryDTO.getEvaluateTime().isBefore(assessPlan.getEvaluateTime())){
-                        reportQueryDTO.setEvaluateTime(assessPlan.getEvaluateTime());
+                    if (assessPlan.getEvaluateTime() != null){
+                        if (reportQueryDTO.getEvaluateTime().isBefore(assessPlan.getEvaluateTime())){
+                            reportQueryDTO.setEvaluateTime(assessPlan.getEvaluateTime());
+                        }
                     }
+
                 }
             }
 
@@ -224,6 +247,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());
 
@@ -235,6 +268,9 @@
                     reportQueryDTO.setUpdateByUserName(userInfo.getRealName());
                 }
             }
+
+
+
         }
 
         searchResult.setData(reportAppQueryDTOS);
@@ -242,6 +278,7 @@
         return searchResult;
     }
 
+    
     /**
      * 风险评估报告 - 生成报告信息
      */
@@ -555,8 +592,10 @@
 
         reportById.setAssessPerson(reportUpdateBO.getAssessPerson());
         reportById.setAssessLevel(reportUpdateBO.getAssessLevel());
-//        reportById.setSafeRiskAnalysis(reportUpdateBO.getSafeRiskAnalysis());
         reportById.setDescription(reportUpdateBO.getDescription());
+        if(!ObjectUtils.isEmpty(reportUpdateBO.getSafeRiskAnalysis())){
+            reportById.setSafeRiskAnalysis(reportUpdateBO.getSafeRiskAnalysis());
+        }
         reportById.setUpdateTime(LocalDateTime.now());
         reportById.setUpdateByUserId(currentUserId);
 
@@ -724,6 +763,7 @@
      * 风险评估报告 - 报告审核 - 新 - 单次审核
      */
     @Override
+    @Transactional
     public int reportNew(Long currentUserId, ReportReqBO reportReqBO) {
 
         if (currentUserId < 0){
@@ -820,6 +860,19 @@
                 if (ObjectUtils.isEmpty(experimentInfo)){
                     throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息状态修改失败");
                 }
+
+                //添加评估记录  todo
+                ExperimentAssessLog experimentAssessLog = new ExperimentAssessLog();
+                experimentAssessLog.setExperimentCode(experimentInfo.getExperimentCode());
+                experimentAssessLog.setAssessEndTime(date);
+                experimentAssessLog.setAssessUser(user.getRealName());
+                experimentAssessLog.setAssessResult(StatusEnum.APPROVED_PASS.getCode().byteValue());
+                ExperimentAssessLog experimentAssessLogResult = experimentAssessLogService.saveExperimentAssessLog(experimentAssessLog);
+                if (ObjectUtils.isEmpty(experimentAssessLogResult)){
+                    throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息评估记录写入失败");
+                }
+            }else {
+                throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"无操作权限");
             }
         }
 
@@ -843,6 +896,8 @@
                 if (ObjectUtils.isEmpty(assessPerson)){
                     throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"审核信息保存失败");
                 }
+            }else {
+                throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"无操作权限");
             }
             //修改报告状态
             reportById.setApprovePlanStatus(StatusEnum.REPORT_NOT_APPROVED.getCode().byteValue());
@@ -860,6 +915,18 @@
             if (ObjectUtils.isEmpty(experimentInfo)){
                 throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息状态修改失败");
             }
+
+
+            //添加评估记录 todo
+            ExperimentAssessLog experimentAssessLog = new ExperimentAssessLog();
+            experimentAssessLog.setExperimentCode(experimentInfo.getExperimentCode());
+            experimentAssessLog.setAssessEndTime(date);
+            experimentAssessLog.setAssessUser(user.getRealName());
+            experimentAssessLog.setAssessResult(StatusEnum.APPROVED_NOT_PASS.getCode().byteValue());
+            ExperimentAssessLog experimentAssessLogResult = experimentAssessLogService.saveExperimentAssessLog(experimentAssessLog);
+            if (ObjectUtils.isEmpty(experimentAssessLogResult)){
+                throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode() ,"实验信息评估记录写入失败");
+            }
         }
 
         return StatusEnum.SUCCESS.getCode();

--
Gitblit v1.9.2