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/RiskAssessPlanServiceImpl.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/RiskAssessPlanServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/RiskAssessPlanServiceImpl.java
index 1682fd9..c80ef41 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/RiskAssessPlanServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/service/impl/RiskAssessPlanServiceImpl.java
@@ -369,8 +369,17 @@
                 if (queryParam.getExperimentId() != null) {
                     predicateList.add(criteriaBuilder.equal(root.get("experimentId"), queryParam.getExperimentId()));
                 }
-                Join<RiskAssessPlan, RiskAssessPlanIdentificationUser> identificationUserJoin = root.join("riskAssessPlanIdentificationUsers", JoinType.LEFT);
-                Join<RiskAssessPlan, RiskAssessPlanEvaluateUser> evaluateUserJoin = root.join("riskAssessPlanEvaluateUsers", JoinType.LEFT);
+//                Join<RiskAssessPlan, RiskAssessPlanIdentificationUser> identificationUserJoin = root.join("riskAssessPlanIdentificationUsers", JoinType.LEFT);
+//                Join<RiskAssessPlan, RiskAssessPlanEvaluateUser> evaluateUserJoin = root.join("riskAssessPlanEvaluateUsers", JoinType.LEFT);
+                Join<RiskAssessPlan, RiskAssessPlanIdentificationUser> identificationJoin =
+                        root.join("riskAssessPlanIdentificationUsers", JoinType.LEFT);
+                identificationJoin.on(criteriaBuilder.equal(identificationJoin.get("deleteStatus"), StatusEnum.DELETE_NOT.getCode()));
+
+                // LEFT JOIN riskAssessPlanEvaluateUsers
+                Join<RiskAssessPlan, RiskAssessPlanEvaluateUser> evaluateJoin =
+                        root.join("riskAssessPlanEvaluateUsers", JoinType.LEFT);
+                evaluateJoin.on(criteriaBuilder.equal(evaluateJoin.get("deleteStatus"), StatusEnum.DELETE_NOT.getCode()));
+
 
                 if (roleTag == UserTagEnum.USER_TAG_0.getCode()) {
                     predicateList.add(criteriaBuilder.equal(root.get("planUserId"), currentUserId));
@@ -382,6 +391,7 @@
 //                            )
 //                    );
                 }
+
                 query.groupBy(root.get("id"));
                 predicateList.add(criteriaBuilder.equal(root.get("deleteStatus"), StatusEnum.DELETE_NOT.getCode()));
                 return criteriaBuilder.and(predicateList.toArray(new Predicate[0]));
@@ -390,6 +400,11 @@
 
         PageRequest pageParam = PageRequest.of(queryParam.getPageIndex() - 1, queryParam.getPageSize(), Sort.Direction.DESC, "updateTime");
         Page<RiskAssessPlan> pageResult = assessPlanRepository.findAll(specification, pageParam);
+
+
+
+        Long countDynamic = assessPlanRepository.countDynamic(queryParam.getAssessPlanName(), queryParam.getExperimentId(), roleTag == UserTagEnum.USER_TAG_0.getCode() ? currentUserId : null, queryParam.getRiskUnitIds());
+
 
         List<RiskAssessPlanQueryDTO> assessPlanQueryDTOS = BeanCopyUtils.copyBeanList(pageResult.getContent(), RiskAssessPlanQueryDTO.class);
 
@@ -438,7 +453,7 @@
         }
 
         searchResult.setData(assessPlanQueryDTOS);
-        searchResult.setTotal(pageResult.getTotalElements());
+        searchResult.setTotal(countDynamic);
         return searchResult;
     }
 
@@ -1184,6 +1199,7 @@
                 }
                 if (planIds.size() > 0) {
                     predicateList.add(criteriaBuilder.in(root.get("id")).value(planIds));
+                    queryParam.setPlanIds(planIds);
                 }
 
                 Join<RiskAssessPlan, RiskAssessPlanIdentificationUser> identificationUserJoin = root.join("riskAssessPlanIdentificationUsers", JoinType.LEFT);
@@ -1192,6 +1208,8 @@
 
 
                 if (roleTag == UserTagEnum.USER_TAG_0.getCode()) {
+                    queryParam.setUserTag(UserTagEnum.USER_TAG_0.getCode().byteValue());
+                    queryParam.setUserId(currentUserId);
                     //辨识
                     if (queryParam.getTag() == 1) {
                         predicateList.add(criteriaBuilder.equal(identificationUserJoin.get("identificationUserId"), currentUserId));
@@ -1217,6 +1235,9 @@
 
         PageRequest pageParam = PageRequest.of(queryParam.getPageIndex() - 1, queryParam.getPageSize(), Sort.Direction.DESC, "updateTime");
         Page<RiskAssessPlan> pageResult = assessPlanRepository.findAll(specification, pageParam);
+        long pageCount = riskPlanDataMapper.getPageCount(queryParam);
+        System.out.println("pageCountpageCountpageCountpageCountpageCountpageCount:"+pageCount);
+
 
         //循环遍历结果集,封装查询结果
         List<AssessQueryDTO> assessQueryDTOList = new ArrayList<>();
@@ -1866,7 +1887,7 @@
         }
 
         searchResult.setData(assessQueryDTOList);
-        searchResult.setTotal(pageResult.getTotalElements());
+        searchResult.setTotal(pageCount);
         searchResult.setCount(assessQueryDTOList.size());
         return searchResult;
     }

--
Gitblit v1.9.2