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 ++++++++++++--
src/main/java/com/gkhy/labRiskManage/domain/riskReport/model/bo/AssessQueryBO.java | 8 ++++
src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/RiskAccessAppServiceImpl.java | 2 +
src/main/resources/config/application-dev.yaml | 11 ++++-
src/main/resources/config/application.yaml | 3 +
src/main/resources/mapper/RiskPlanDataMapper.xml | 43 +++++++++++++++++++++
src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/RiskAssessPlanRepository.java | 16 ++++++++
src/main/java/com/gkhy/labRiskManage/mapper/RiskPlanDataMapper.java | 2 +
src/main/resources/config/application-gslab.yaml | 5 ++
9 files changed, 110 insertions(+), 9 deletions(-)
diff --git a/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/RiskAccessAppServiceImpl.java b/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/RiskAccessAppServiceImpl.java
index f5ceb5b..886e335 100644
--- a/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/RiskAccessAppServiceImpl.java
+++ b/src/main/java/com/gkhy/labRiskManage/application/riskReport/service/impl/RiskAccessAppServiceImpl.java
@@ -564,6 +564,8 @@
if (currentUserId < 0){
throw new BusinessException(this.getClass(), ResultCode.BUSINESS_ERROR_NOT_ALLOWED.getCode(), "当前用户无效,请重新登录");
}
+ //todo 需要评价人员都评价完成才可以
+
//提交评价结果
AssessPlanUpdateDTO evaluateSubmitResult= assessPlanService.evaluateSubmit(currentUserId, id);
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/model/bo/AssessQueryBO.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/model/bo/AssessQueryBO.java
index 802afcb..b7de5c6 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/model/bo/AssessQueryBO.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/model/bo/AssessQueryBO.java
@@ -3,6 +3,8 @@
import lombok.Data;
+import java.util.List;
+
/**
* 风险辨识与评价
* */
@@ -32,4 +34,10 @@
* 评估计划执行状态:1-未开始;2-辨识阶段;3-评价阶段;4-评价完成
*/
private Byte planExecStatus;
+
+ List<Long> planIds;
+
+ private Long userId;
+
+ private Byte userTag;
}
diff --git a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/RiskAssessPlanRepository.java b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/RiskAssessPlanRepository.java
index c6acd34..2aa424c 100644
--- a/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/RiskAssessPlanRepository.java
+++ b/src/main/java/com/gkhy/labRiskManage/domain/riskReport/repository/jpa/RiskAssessPlanRepository.java
@@ -3,6 +3,7 @@
import com.gkhy.labRiskManage.domain.riskReport.entity.RiskAssessPlan;
import com.gkhy.labRiskManage.domain.riskReport.model.bo.ExecStatusSubmitBO;
import com.gkhy.labRiskManage.domain.riskReport.model.dto.AssessPlanQueryDTO;
+import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
@@ -63,5 +64,20 @@
@Query(value = "select t from RiskAssessPlan t where t.deleteStatus = 0 and t.riskUnitId = :basicId and riskType = 1")
List<RiskAssessPlan> getAssessPlanByInherentUnit(Long basicId);
+
+
+ @Query("SELECT COUNT(DISTINCT p.id) FROM RiskAssessPlan p " +
+ "WHERE p.deleteStatus = 0 " +
+ "AND (:assessPlanName IS NULL OR p.assessPlanName LIKE %:assessPlanName%) " +
+ "AND (:experimentId IS NULL OR p.experimentId = :experimentId) " +
+ "AND (:planUserId IS NULL OR p.planUserId = :planUserId) " +
+ "and(coalesce(:riskUnitIds,null) is null or p.riskUnitId in :riskUnitIds)")
+ Long countDynamic(
+ String assessPlanName,
+ Long experimentId,
+ Long planUserId,
+ List<Long> riskUnitIds);
+
+
}
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;
}
diff --git a/src/main/java/com/gkhy/labRiskManage/mapper/RiskPlanDataMapper.java b/src/main/java/com/gkhy/labRiskManage/mapper/RiskPlanDataMapper.java
index 496c3d0..755aa75 100644
--- a/src/main/java/com/gkhy/labRiskManage/mapper/RiskPlanDataMapper.java
+++ b/src/main/java/com/gkhy/labRiskManage/mapper/RiskPlanDataMapper.java
@@ -1,6 +1,7 @@
package com.gkhy.labRiskManage.mapper;
import com.gkhy.labRiskManage.domain.riskReport.entity.RiskAssessPlanIdentificationUser;
+import com.gkhy.labRiskManage.domain.riskReport.model.bo.AssessQueryBO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@@ -8,4 +9,5 @@
@Mapper
public interface RiskPlanDataMapper {
List<RiskAssessPlanIdentificationUser> pageList();
+ long getPageCount(AssessQueryBO queryBO);
}
diff --git a/src/main/resources/config/application-dev.yaml b/src/main/resources/config/application-dev.yaml
index e521946..7e098c1 100644
--- a/src/main/resources/config/application-dev.yaml
+++ b/src/main/resources/config/application-dev.yaml
@@ -6,12 +6,12 @@
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.2.6:7006/laboratory_risk_manage?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
+ url: jdbc:mysql://192.168.2.19:7006/laboratory_risk_manage?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
username: root
password: 2farwL3yPXfbH2AP
master:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://192.168.2.6:7006/laboratory_risk_manage?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
+ url: jdbc:mysql://192.168.2.19:7006/laboratory_risk_manage?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
username: root
password: 2farwL3yPXfbH2AP
type: com.alibaba.druid.pool.DruidDataSource
@@ -20,10 +20,15 @@
ddl-auto: none
# ddl-auto: update #自动更新
show-sql: true #日志中显示sql语句
+ properties:
+ hibernate:
+ format_sql: true
mybatis:
mapper-locations: classpath:mapper/*.xml
# type-aliases-package: com.gkhy.labRiskManage.domain.**
-
+logging:
+ level:
+ com.gkhy.labRiskManage: debug
redis:
# host: 192.168.0.52
# port: 6371
diff --git a/src/main/resources/config/application-gslab.yaml b/src/main/resources/config/application-gslab.yaml
index 95809da..2107c8e 100644
--- a/src/main/resources/config/application-gslab.yaml
+++ b/src/main/resources/config/application-gslab.yaml
@@ -69,4 +69,7 @@
mybatis:
mapper-locations: classpath:mapper/*.xml
- # type-aliases-package: com.gkhy.labRiskManage.domain.**
\ No newline at end of file
+ # type-aliases-package: com.gkhy.labRiskManage.domain.**
+logging:
+ level:
+ com.gkhy.labRiskManage: debug
\ No newline at end of file
diff --git a/src/main/resources/config/application.yaml b/src/main/resources/config/application.yaml
index bb2a5d3..5eadea2 100644
--- a/src/main/resources/config/application.yaml
+++ b/src/main/resources/config/application.yaml
@@ -3,4 +3,5 @@
name: labRiskManage
profiles:
active: dev
- # active: gslab
+ #active: gslab
+
diff --git a/src/main/resources/mapper/RiskPlanDataMapper.xml b/src/main/resources/mapper/RiskPlanDataMapper.xml
index c26ef96..b0aa752 100644
--- a/src/main/resources/mapper/RiskPlanDataMapper.xml
+++ b/src/main/resources/mapper/RiskPlanDataMapper.xml
@@ -8,4 +8,47 @@
select id,identification_user identificationUser,identification_user_id identificationUserId from risk_assess_plan_identification_user
</select>
+
+ <select id="getPageCount" resultType="Long" parameterType="com.gkhy.labRiskManage.domain.riskReport.model.bo.AssessQueryBO">
+ select count(a.id) from (
+ SELECT DISTINCT p.id as id FROM risk_assess_plan p
+ <if test="userTag != null and userTag == 0">
+ <if test="userId != null and tag != null and tag == 1">
+ INNER JOIN risk_assess_plan_identification_user q ON p.id = q.risk_assess_plan_id AND q.delete_status = 0
+ AND q.identification_user_id = #{userId}
+ </if>
+ <if test="userId != null and tag != null and tag == 2">
+ INNER JOIN risk_assess_plan_evaluate_user h ON p.id = h.risk_assess_plan_id AND h.delete_status = 0 AND
+ h.evaluate_user_id = #{userId}
+ </if>
+ </if>
+ WHERE p.delete_status = 0
+ <if test="experimentId != null">
+ AND p.experiment_id = #{experimentId}
+ </if>
+ <if test="assessPlanName != null and assessPlanName != ''">
+ AND p.assess_plan_name LIKE CONCAT('%',#{assessPlanName},'%')
+ </if>
+ <if test="tag != null and tag == 2">
+ AND p.identification_time IS NOT NULL
+ </if>
+ <if test="tag != null and tag == 3">
+ AND p.evaluate_time IS NOT NULL
+ </if>
+ <if test="planExecStatus != null and planExecStatus == 5">
+ AND p.plan_exec_status >= 3
+ </if>
+ <if test="planExecStatus != null and planExecStatus != 5">
+ AND p.plan_exec_status = #{planExecStatus}
+ </if>
+ <if test="planIds != null and !planIds.isEmpty()">
+ AND p.id IN
+ <foreach collection="planIds" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ GROUP BY p.id
+ ) a
+ </select>
+
</mapper>
\ No newline at end of file
--
Gitblit v1.9.2