From 0811bff14b6c30948e54b924a5b62279f96bf8df Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Thu, 23 Jul 2026 14:44:57 +0800 Subject: [PATCH] waring --- .../EvalInternalReviewExecutor.java | 26 ++++++++--- .../EvalProcessControlExecutor.java | 45 +++++++++---------- .../institution/EvalTechReviewExecutor.java | 26 ++++++++--- .../EvalInternalReviewConvertor.java | 8 ++++ 4 files changed, 69 insertions(+), 36 deletions(-) diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalInternalReviewExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalInternalReviewExecutor.java index d8ea46cc..51d19e8f 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalInternalReviewExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalInternalReviewExecutor.java @@ -15,11 +15,10 @@ import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewConfirmCmd; import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewSaveCmd; import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd; import org.qinan.safetyeval.client.item.response.EvalReviewItemCo; -import org.qinan.safetyeval.domain.constant.EvalReviewEnum; -import org.qinan.safetyeval.domain.constant.ProjectStageEnum; -import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum; +import org.qinan.safetyeval.domain.constant.*; import org.qinan.safetyeval.domain.entity.EvalInternalReviewEntity; import org.qinan.safetyeval.domain.entity.EvalProjectEntity; +import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.domain.exception.ErrorCode; import org.qinan.safetyeval.domain.gateway.EvalInternalReviewGateway; @@ -28,8 +27,11 @@ import org.qinan.safetyeval.domain.item.model.EvalReviewItemE; import org.qinan.safetyeval.domain.service.ProjectStageSyncService; import org.qinan.safetyeval.domain.support.EvalNodeCodes; import org.qinan.safetyeval.infrastructure.convertor.EvalInternalReviewConvertor; +import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor; import org.qinan.safetyeval.infrastructure.dataobject.EvalInternalReviewDO; +import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO; import org.qinan.safetyeval.infrastructure.mapper.EvalInternalReviewMapper; +import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper; import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -60,6 +62,10 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi { private ProjectStageSyncService projectStageSyncService; @Resource private EvalInternalReviewMapper evalInternalReviewMapper; + @Resource + private EvalProjectMemberMapper evalProjectMemberMapper; + @Resource + private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor; @Override public SingleResponse getOrSave(EvalInternalReviewSaveCmd cmd) { @@ -152,10 +158,20 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi { @Override public SingleResponse getDetailByProject(Long projectId) { - // 查询内审记录,未查询到则内审记录字段为空(成员角色模型已变更,不再按旧角色筛选内审人) + // 1. 查询项目成员中的内审人信息(role包含INTERNAL_AUDITOR) + List reviewers = evalProjectMemberMapper.selectList( + new LambdaQueryWrapper() + .eq(EvalProjectMemberDO::getProjectId, projectId) + .eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue()) + .like(EvalProjectMemberDO::getRole, ProjectRoleEnum.INTERNAL_AUDITOR.getVal())) + .stream() + .map(evalProjectMemberDoConvertor::convertDoToE) + .collect(Collectors.toList()); + + // 2. 查询内审记录,未查询到则内审记录字段为空 EvalInternalReviewEntity entity = evalInternalReviewGateway.getByProjectId(projectId, null); EvalInternalReviewDetailCO detailCO = new EvalInternalReviewDetailCO(); - detailCO.setReviewers(java.util.Collections.emptyList()); + detailCO.setReviewers(evalInternalReviewConvertor.toMemberCOs(reviewers)); if (entity != null) { detailCO.setInternalReview(evalInternalReviewConvertor.toInternalCO(entity)); // 3. 通过内审记录id查询审核项列表 diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java index 9ce3d9b8..066fb599 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java @@ -1,5 +1,6 @@ package org.qinan.safetyeval.app.executor.institution; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.qinan.safetyeval.app.executor.institution.support.EvalCmdCopy; import org.qinan.safetyeval.app.executor.institution.support.EvalNodeCoConverter; import org.qinan.safetyeval.app.executor.institution.support.EvalProjectNodeSupport; @@ -15,24 +16,14 @@ import org.qinan.safetyeval.client.dto.institution.EvalProcessControlSaveCmd; import org.qinan.safetyeval.client.dto.institution.EvalProcessHandoverFormCmd; import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd; import org.qinan.safetyeval.client.item.response.EvalReviewItemCo; -import org.qinan.safetyeval.domain.constant.EvalTypeEnum; -import org.qinan.safetyeval.domain.constant.ProjectStageEnum; -import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum; -import org.qinan.safetyeval.domain.entity.EvalProjectEntity; -import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; -import org.qinan.safetyeval.domain.entity.EvalProcessControlEntity; -import org.qinan.safetyeval.domain.entity.EvalReportDraftEntity; -import org.qinan.safetyeval.domain.entity.EvalReportEntity; -import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity; +import org.qinan.safetyeval.domain.constant.*; import org.qinan.safetyeval.domain.entity.*; import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.domain.exception.ErrorCode; import org.qinan.safetyeval.domain.gateway.EvalProcessControlGateway; -import org.qinan.safetyeval.domain.gateway.EvalProjectMemberGateway; import org.qinan.safetyeval.domain.gateway.EvalReportDraftGateway; import org.qinan.safetyeval.domain.gateway.EvalReportGateway; import org.qinan.safetyeval.domain.gateway.EvalSignTaskGateway; -import org.qinan.safetyeval.domain.gateway.*; import org.qinan.safetyeval.domain.item.gateway.EvalReviewItemGateway; import org.qinan.safetyeval.domain.item.model.EvalReviewItemE; import org.qinan.safetyeval.domain.query.EvalReportDraftQuery; @@ -44,15 +35,10 @@ import org.qinan.safetyeval.domain.support.EvalNodeCodes; import org.qinan.safetyeval.domain.waring.gateway.EvalProjectWaringGateway; import org.qinan.safetyeval.domain.waring.model.EvalProjectWaringE; import org.qinan.safetyeval.infrastructure.convertor.EvalProcessControlConvertor; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalContractQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalInternalReviewQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalProcessControlQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReportDraftQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReportQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalSurveyAttachQueryService; -import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalTechReviewQueryService; -import org.qinan.safetyeval.infrastructure.support.NodeWriteAuthority; +import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor; +import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO; +import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper; +import org.qinan.safetyeval.infrastructure.persistence.queryservice.*; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -82,7 +68,9 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { @Resource private EvalProcessControlConvertor evalProcessControlConvertor; @Resource - private EvalProjectMemberGateway evalProjectMemberGateway; + private EvalProjectMemberMapper evalProjectMemberMapper; + @Resource + private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor; @Resource private EvalReviewItemQueryService evalReviewItemQueryService; @Resource @@ -178,14 +166,21 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { @Override public SingleResponse getDetailByProject(Long projectId) { - // 1. 查询项目成员中的过程控制负责人信息 -// List members = evalProjectMemberGateway -// .listByProjectIdAndRoleCode(projectId, NodeWriteAuthority.ROLE_PROCESS_OWNER); + // 1. 查询项目成员中的过程控制负责人信息(role包含EVALUATION_AGENCY_HEAD或PROCESS_CONTROL_LEAD) + List members = evalProjectMemberMapper.selectList( + new LambdaQueryWrapper() + .eq(EvalProjectMemberDO::getProjectId, projectId) + .eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue()) + .and(w -> w.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal()) + .or().like(EvalProjectMemberDO::getRole, ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal()))) + .stream() + .map(evalProjectMemberDoConvertor::convertDoToE) + .collect(Collectors.toList()); // 2. 查询过程控制记录,未查询到则过程控制记录字段为空 EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, null); EvalProcessControlDetailCO detailCO = new EvalProcessControlDetailCO(); -// detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(members)); + detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(members)); if (entity != null) { detailCO.setProcessControl(EvalNodeCoConverter.toProcessCO(entity)); // 3. 通过过程控制记录id查询审核项列表 diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalTechReviewExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalTechReviewExecutor.java index ced8b857..e8aaf8b1 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalTechReviewExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalTechReviewExecutor.java @@ -14,26 +14,32 @@ import org.qinan.safetyeval.client.dto.institution.EvalTechReviewConfirmCmd; import org.qinan.safetyeval.client.dto.institution.EvalTechReviewSaveCmd; import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd; import org.qinan.safetyeval.client.item.response.EvalReviewItemCo; +import org.qinan.safetyeval.domain.constant.BooleanQAEnum; +import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum; import org.qinan.safetyeval.domain.entity.EvalProjectEntity; +import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.entity.EvalTechReviewEntity; import org.qinan.safetyeval.domain.exception.BizException; import org.qinan.safetyeval.domain.exception.ErrorCode; -import org.qinan.safetyeval.domain.gateway.EvalProjectMemberGateway; import org.qinan.safetyeval.domain.gateway.EvalTechReviewGateway; import org.qinan.safetyeval.domain.item.gateway.EvalReviewItemGateway; import org.qinan.safetyeval.domain.item.model.EvalReviewItemE; import org.qinan.safetyeval.domain.service.ProjectStageSyncService; import org.qinan.safetyeval.domain.support.EvalNodeCodes; +import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor; import org.qinan.safetyeval.infrastructure.convertor.EvalTechReviewConvertor; +import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO; import org.qinan.safetyeval.infrastructure.dataobject.EvalTechReviewDO; +import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper; import org.qinan.safetyeval.infrastructure.mapper.EvalTechReviewMapper; import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.List; import java.util.stream.Collectors; import static org.qinan.safetyeval.domain.exception.ErrorCode.ASSIGN_SIGN_TASK; @@ -47,7 +53,9 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi { @Resource private EvalProjectNodeSupport evalProjectNodeSupport; @Resource - private EvalProjectMemberGateway evalProjectMemberGateway; + private EvalProjectMemberMapper evalProjectMemberMapper; + @Resource + private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor; @Resource private EvalReviewItemQueryService evalReviewItemQueryService; @Resource @@ -148,14 +156,20 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi { @Override public SingleResponse getDetailByProject(Long projectId) { - // 1. 查询项目成员中的技审人信息 -// List members = evalProjectMemberGateway -// .listByProjectIdAndRoleCode(projectId, NodeWriteAuthority.ROLE_TECH_REVIEWER); + // 1. 查询项目成员中的技审人信息(role包含TECHNICAL_LEAD) + List members = evalProjectMemberMapper.selectList( + new LambdaQueryWrapper() + .eq(EvalProjectMemberDO::getProjectId, projectId) + .eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue()) + .like(EvalProjectMemberDO::getRole, ProjectRoleEnum.TECHNICAL_LEAD.getVal())) + .stream() + .map(evalProjectMemberDoConvertor::convertDoToE) + .collect(Collectors.toList()); // 2. 查询技审记录,未查询到则技审记录字段为空 EvalTechReviewEntity entity = evalTechReviewGateway.getByProjectId(projectId, null); EvalTechReviewDetailCO detailCO = new EvalTechReviewDetailCO(); -// detailCO.setReviewers(evalTechReviewConvertor.toMemberCOs(members)); + detailCO.setReviewers(evalTechReviewConvertor.toMemberCOs(members)); if (entity != null) { detailCO.setTechReview(evalTechReviewConvertor.toTechCO(entity)); // 3. 通过技审记录id查询审核项列表 diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalInternalReviewConvertor.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalInternalReviewConvertor.java index c889e85f..7ae45cc1 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalInternalReviewConvertor.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/convertor/EvalInternalReviewConvertor.java @@ -2,8 +2,12 @@ package org.qinan.safetyeval.infrastructure.convertor; import org.mapstruct.Mapper; import org.qinan.safetyeval.client.co.institution.EvalInternalReviewCO; +import org.qinan.safetyeval.client.co.institution.EvalProjectMemberCO; import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewConfirmCmd; import org.qinan.safetyeval.domain.entity.EvalInternalReviewEntity; +import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; + +import java.util.List; /** * 内审相关对象转换器。 @@ -13,6 +17,10 @@ public interface EvalInternalReviewConvertor { EvalInternalReviewCO toInternalCO(EvalInternalReviewEntity entity); + EvalProjectMemberCO toMemberCO(EvalProjectMemberEntity entity); + + List toMemberCOs(List entities); + /** * 将 ConfirmCmd 转换为新的 entity(projectId、reviewerPersonnelId 由 String 转 Long)。 */