From 946ca495daf6dd1409ff81e4de9c230c774a0844 Mon Sep 17 00:00:00 2001
From: 16639036659 <577530412@qq.com>
Date: 星期五, 10 十一月 2023 16:20:16 +0800
Subject: [PATCH] 风险等级问题处理,检索条件

---
 src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/req/ExperimentInfoQueryReqBO.java      |   35 +----------
 src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/ReportRiskAssessInfoServiceImpl.java  |    3 
 src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/ReportRiskAssessInfoRepository.java |    3 +
 src/main/java/com/gkhy/labRiskManage/domain/experiment/service/impl/ExperimentInfoServiceImpl.java        |   13 ++++
 src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java    |   32 ++++++++--
 src/main/java/com/gkhy/labRiskManage/domain/experiment/model/bo/ExperimentInfoQueryBO.java                |    1 
 src/main/java/com/gkhy/labRiskManage/application/experiment/dto/bo/ExperimentInfoAppQueryBO.java          |   35 +----------
 7 files changed, 52 insertions(+), 70 deletions(-)

diff --git a/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/req/ExperimentInfoQueryReqBO.java b/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/req/ExperimentInfoQueryReqBO.java
index b4fc567..f6dc0ea 100644
--- a/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/req/ExperimentInfoQueryReqBO.java
+++ b/src/main/java/com/gkhy/labRiskManage/api/controller/experiment/dto/req/ExperimentInfoQueryReqBO.java
@@ -1,5 +1,7 @@
 package com.gkhy.labRiskManage.api.controller.experiment.dto.req;
 
+import lombok.Data;
+
 import java.time.LocalDateTime;
 
 /**
@@ -8,41 +10,12 @@
  * @date: 2022/12/26
  * @time: 14:46
  */
+@Data
 public class ExperimentInfoQueryReqBO {
     private LocalDateTime startTime;
     private LocalDateTime endTime;
     private Byte experimentType;
     private String experimentName;
+    private Byte assessLevel;
 
-    public LocalDateTime getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(LocalDateTime startTime) {
-        this.startTime = startTime;
-    }
-
-    public LocalDateTime getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(LocalDateTime endTime) {
-        this.endTime = endTime;
-    }
-
-    public Byte getExperimentType() {
-        return experimentType;
-    }
-
-    public void setExperimentType(Byte experimentType) {
-        this.experimentType = experimentType;
-    }
-
-    public String getExperimentName() {
-        return experimentName;
-    }
-
-    public void setExperimentName(String experimentName) {
-        this.experimentName = experimentName;
-    }
 }
diff --git a/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/bo/ExperimentInfoAppQueryBO.java b/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/bo/ExperimentInfoAppQueryBO.java
index 1f8b49a..c5b8db4 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/bo/ExperimentInfoAppQueryBO.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/experiment/dto/bo/ExperimentInfoAppQueryBO.java
@@ -1,5 +1,7 @@
 package com.gkhy.labRiskManage.application.experiment.dto.bo;
 
+import lombok.Data;
+
 import java.time.LocalDateTime;
 
 /**
@@ -8,41 +10,12 @@
  * @date: 2022/12/26
  * @time: 14:46
  */
+@Data
 public class ExperimentInfoAppQueryBO {
     private LocalDateTime startTime;
     private LocalDateTime endTime;
     private Byte experimentType;
     private String experimentName;
+    private Byte assessLevel;
 
-    public LocalDateTime getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(LocalDateTime startTime) {
-        this.startTime = startTime;
-    }
-
-    public LocalDateTime getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(LocalDateTime endTime) {
-        this.endTime = endTime;
-    }
-
-    public Byte getExperimentType() {
-        return experimentType;
-    }
-
-    public void setExperimentType(Byte experimentType) {
-        this.experimentType = experimentType;
-    }
-
-    public String getExperimentName() {
-        return experimentName;
-    }
-
-    public void setExperimentName(String experimentName) {
-        this.experimentName = experimentName;
-    }
 }
diff --git a/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java
index df6ab53..02e1d60 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/experiment/service/impl/ExperimentAppServiceImpl.java
@@ -22,6 +22,7 @@
 import com.gkhy.labRiskManage.domain.experiment.enums.TimeoutEnum;
 import com.gkhy.labRiskManage.domain.experiment.model.dto.ExperimentInfoDTO;
 import com.gkhy.labRiskManage.domain.experiment.service.*;
+import com.gkhy.labRiskManage.domain.riskReport.entity.ReportRiskAssessInfo;
 import com.gkhy.labRiskManage.domain.riskReport.service.ReportRiskAssessInfoService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -176,14 +177,21 @@
             BeanUtils.copyProperties(searchResult,result);
         }
         List<ExperimentInfoDTO> experimentInfoDTOS = (List<ExperimentInfoDTO>)searchResult.getData();
-        for (ExperimentInfoDTO experimentInfo : experimentInfoDTOS) {
+        List<ExperimentInfoAppQueryDTO> experimentInfoAppQueryDTOS = BeanCopyUtils.copyBeanList(experimentInfoDTOS, ExperimentInfoAppQueryDTO.class);
+
+        for (ExperimentInfoAppQueryDTO experimentInfo : experimentInfoAppQueryDTOS) {
             List<ExperimentAssessLog> assessLogs = experimentAssessLogService.getAssessLogs(experimentInfo.getExperimentCode());
             if (assessLogs.size() > 0){
                 experimentInfo.setExperimentAssessLogs(assessLogs);
             }
+            ReportRiskAssessInfo byExperimentId = reportRiskAssessInfoService.getByExperimentId(experimentInfo.getId());
+            if (!ObjectUtils.isEmpty(byExperimentId)){
+                experimentInfo.setAssessLevel(byExperimentId.getAssessLevel());
+                experimentInfo.setAssessTime(byExperimentId.getAssessTime());
+            }
         }
 
-        result.setData(getExperimentInfoAppQueryDTO(experimentInfoDTOS));
+        result.setData(experimentInfoAppQueryDTOS);
         //获取分页数据
         return result;
     }
@@ -267,15 +275,21 @@
             BeanUtils.copyProperties(searchResult,result);
         }
         List<ExperimentInfoDTO> experimentInfoDTOS = (List<ExperimentInfoDTO>)searchResult.getData();
+        List<ExperimentInfoAppQueryDTO> experimentInfoAppQueryDTOS = BeanCopyUtils.copyBeanList(experimentInfoDTOS, ExperimentInfoAppQueryDTO.class);
 
-        for (ExperimentInfoDTO experimentInfo : experimentInfoDTOS) {
+        for (ExperimentInfoAppQueryDTO experimentInfo : experimentInfoAppQueryDTOS) {
             List<ExperimentAssessLog> assessLogs = experimentAssessLogService.getAssessLogs(experimentInfo.getExperimentCode());
             if (assessLogs.size() > 0){
                 experimentInfo.setExperimentAssessLogs(assessLogs);
             }
+            ReportRiskAssessInfo byExperimentId = reportRiskAssessInfoService.getByExperimentId(experimentInfo.getId());
+            if (!ObjectUtils.isEmpty(byExperimentId)){
+                experimentInfo.setAssessLevel(byExperimentId.getAssessLevel());
+                experimentInfo.setAssessTime(byExperimentId.getAssessTime());
+            }
         }
 
-        result.setData(getExperimentInfoAppQueryDTO(experimentInfoDTOS));
+        result.setData(experimentInfoAppQueryDTOS);
         //获取分页数据
         return result;
     }
@@ -297,15 +311,21 @@
             BeanUtils.copyProperties(searchResult,result);
         }
         List<ExperimentInfoDTO> experimentInfoDTOS = (List<ExperimentInfoDTO>)searchResult.getData();
+        List<ExperimentInfoAppQueryDTO> experimentInfoAppQueryDTOS = BeanCopyUtils.copyBeanList(experimentInfoDTOS, ExperimentInfoAppQueryDTO.class);
 
-        for (ExperimentInfoDTO experimentInfo : experimentInfoDTOS) {
+        for (ExperimentInfoAppQueryDTO experimentInfo : experimentInfoAppQueryDTOS) {
             List<ExperimentAssessLog> assessLogs = experimentAssessLogService.getAssessLogs(experimentInfo.getExperimentCode());
             if (assessLogs.size() > 0){
                 experimentInfo.setExperimentAssessLogs(assessLogs);
             }
+            ReportRiskAssessInfo byExperimentId = reportRiskAssessInfoService.getByExperimentId(experimentInfo.getId());
+            if (!ObjectUtils.isEmpty(byExperimentId)){
+                experimentInfo.setAssessLevel(byExperimentId.getAssessLevel());
+                experimentInfo.setAssessTime(byExperimentId.getAssessTime());
+            }
         }
 
-        result.setData(getExperimentInfoAppQueryDTO(experimentInfoDTOS));
+        result.setData(experimentInfoAppQueryDTOS);
         //获取分页数据
         return result;
     }
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/bo/ExperimentInfoQueryBO.java b/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/bo/ExperimentInfoQueryBO.java
index d1c9b00..04b21e2 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/bo/ExperimentInfoQueryBO.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/experiment/model/bo/ExperimentInfoQueryBO.java
@@ -19,5 +19,6 @@
     private Byte experimentTag;
     private Byte status;
 
+    private Byte assessLevel;
 
 }
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 f3b5b59..c9d64fb 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
@@ -532,6 +532,14 @@
         ExperimentInfoQueryBO queryBO = pageQuery.getSearchParams();
         UserInfoDomainDTO user = userDomainService.getUserById(currentUserId);
         int roleTag = GetRoleTagUtils.GetRoleTagUtils(user);
+
+        // TODO: 2023/11/10
+        List<ReportRiskAssessInfo> byLevel = reportRiskAssessInfoRepository.getByLevel(queryBO.getAssessLevel());
+        List<Long> ids = new ArrayList<>();
+        for (ReportRiskAssessInfo reportRiskAssessInfo : byLevel) {
+            ids.add(reportRiskAssessInfo.getExperimentId());
+        }
+
         Specification<ExperimentInfo> specification = new Specification<ExperimentInfo>() {
             @Override
             public Predicate toPredicate(Root<ExperimentInfo> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
@@ -555,7 +563,10 @@
                 if (!ObjectUtils.isEmpty(queryBO.getEndTime())){
                     predicateList.add(criteriaBuilder.lessThanOrEqualTo(root.get("createTime"), queryBO.getEndTime()));
                 }
-                if(roleTag == UserTagEnum.USER_TAG_0.getCode()){  // todo
+                if (!ObjectUtils.isEmpty(queryBO.getAssessLevel())){
+                    predicateList.add(criteriaBuilder.in(root.get("id")).value(ids));
+                }
+                if(roleTag == UserTagEnum.USER_TAG_0.getCode()){
                     Join<ExperimentInfo, RiskAssessPlan> experimentJion = root.join("riskAssessPlans", JoinType.LEFT);
                     predicateList.add(criteriaBuilder.or(
                             criteriaBuilder.equal(root.get("liabilityUserId"), currentUserId),
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/ReportRiskAssessInfoRepository.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/ReportRiskAssessInfoRepository.java
index ff699af..e235687 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/ReportRiskAssessInfoRepository.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/ReportRiskAssessInfoRepository.java
@@ -34,5 +34,8 @@
 
     @Query(value = "select t from ReportRiskAssessInfo t where t.experimentId = :id and t.deleteStatus = 0")
     ReportRiskAssessInfo getByExperimentId(Long id);
+
+    @Query(value = "select t from ReportRiskAssessInfo t where t.assessLevel = :assessLevel and t.deleteStatus = 0")
+    List<ReportRiskAssessInfo> getByLevel(Byte assessLevel);
 }
 
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 185f7fe..235f60e 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
@@ -165,7 +165,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()){

--
Gitblit v1.9.2