From 30a62941ab369ba48466cd8009d43f1093799bbe Mon Sep 17 00:00:00 2001 From: zhanglei Date: Thu, 23 Jul 2026 18:09:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=A1=B9=E7=9B=AE=E5=8B=98=E6=8E=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/institution/EvalProjectExecutor.java | 9 +++++---- .../institution/EvalSurveyAttachExecutor.java | 7 +++++++ .../support/EvalProjectNodeSupport.java | 14 ++++++++------ .../domain/constant/ProjectDocumentEnum.java | 1 + .../domain/entity/EvalContractEntity.java | 2 +- .../gatewayimpl/EvalProjectGatewayImpl.java | 2 -- .../main/resources/mapper/EvalProjectMapper.xml | 2 +- 7 files changed, 23 insertions(+), 14 deletions(-) diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java index 7fc4791..f82cc0a 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProjectExecutor.java @@ -178,17 +178,18 @@ public class EvalProjectExecutor implements EvalProjectApi { EvalProjectMemberQuery query = new EvalProjectMemberQuery(); query.setOrgId(ThreadLocalUserInfoAdapter.getOrgId()); query.setPersonnelId(AuthUserContextAdapter.getCurrentUserId()); - query.setProjectIds(null); query.setPageNum(1L); query.setPageSize(200L); query.setProjectIds(data.stream().map(EvalProjectCO::getId).map(Long::valueOf).collect(Collectors.toList())); List pIds = evalProjectMemberGateway.page(query).getRecords().stream().map(EvalProjectMemberEntity::getProjectId).distinct().collect(Collectors.toList()); - long onSiteTaskSum = evalProjectMapper.onSiteTaskSum(pIds, ProjectStageEnum.SITE_SURVEY.getVal()); - co.setOnSiteTaskSum(onSiteTaskSum); + if (!CollectionUtils.isEmpty(pIds)) { + long onSiteTaskSum = evalProjectMapper.onSiteTaskSum(pIds, ProjectStageEnum.SITE_SURVEY.getVal()); + co.setOnSiteTaskSum(onSiteTaskSum); + } } co.setPendingMyHandlingSum(data.stream().filter(item -> "NORMAL".equals(item.getProjectPhaseCode()) && item.getArchiveFlag() == 0).count()); co.setParticipatingProjectSum((long) data.size()); - return null; + return SingleResponse.success(co); } /** diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyAttachExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyAttachExecutor.java index c4fdff1..4a34855 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyAttachExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSurveyAttachExecutor.java @@ -5,8 +5,10 @@ import org.qinan.safetyeval.client.api.institution.EvalSurveyAttachApi; import org.qinan.safetyeval.client.co.institution.EvalSurveyAttachCO; import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.EvalSurveyAttachSaveCmd; +import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.entity.EvalSurveyAttachEntity; import org.qinan.safetyeval.domain.service.EvalSurveyDomainService; +import org.qinan.safetyeval.domain.service.ProjectStageSyncService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -24,6 +26,8 @@ public class EvalSurveyAttachExecutor implements EvalSurveyAttachApi { @Lazy @Autowired(required = false) private EvalSurveyCmdConvertor evalSurveyCmdConvertor; + @Autowired + private ProjectStageSyncService projectStageSyncService; @Override @Transactional(rollbackFor = Exception.class) @@ -32,6 +36,9 @@ public class EvalSurveyAttachExecutor implements EvalSurveyAttachApi { EvalSurveyAttachEntity entity = evalSurveyCmdConvertor.convertAttachSaveCmdToE(cmd); evalSurveyDomainService.saveOrUpdateAttach(entity); } + if (cmdList.get(0).getProjectId() != null) { + projectStageSyncService.onNodeCompleted(Long.valueOf(cmdList.get(0).getProjectId()), ProjectStageEnum.SITE_SURVEY.getNode()); + } return SingleResponse.success(true); } diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/support/EvalProjectNodeSupport.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/support/EvalProjectNodeSupport.java index a43df46..4fc21de 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/support/EvalProjectNodeSupport.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/support/EvalProjectNodeSupport.java @@ -64,12 +64,14 @@ public class EvalProjectNodeSupport { */ public void afterNodeSaved(Long projectId, String nodeCode, Integer statusCode) { // NODE_01:1暂存 2已完成;NODE_02:保存即完成(2);其余节点仍为 3已完成 - boolean completed = true; - if (EvalNodeCodes.NODE_01.equals(nodeCode)) { - completed = statusCode == 2; - } - if (completed) { - projectStageSyncService.onNodeCompleted(projectId, nodeCode); + if (EvalNodeCodes.NODE_01.equals(nodeCode) || EvalNodeCodes.NODE_02.equals(nodeCode)) { + boolean completed = true; + if (EvalNodeCodes.NODE_01.equals(nodeCode)) { + completed = statusCode == 2; + } + if (completed) { + projectStageSyncService.onNodeCompleted(projectId, nodeCode); + } } } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectDocumentEnum.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectDocumentEnum.java index 52e60af..840e5b4 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectDocumentEnum.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/ProjectDocumentEnum.java @@ -34,6 +34,7 @@ public enum ProjectDocumentEnum { } /** + * * 根据英文标识(忽略大小写)获取枚举常量 */ public static ProjectDocumentEnum fromValIgnoreCase(String val) { diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalContractEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalContractEntity.java index 8809ac4..09a9658 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalContractEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalContractEntity.java @@ -39,6 +39,6 @@ public class EvalContractEntity { private Integer staffCount; private String scanFileUrl; /** 2已完成(合同无暂存,保存即完成) */ - private Integer statusCode; + private Integer statusCode = 2; private Long tenantId; } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java index f754fc0..96a8409 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/gatewayimpl/EvalProjectGatewayImpl.java @@ -125,8 +125,6 @@ public class EvalProjectGatewayImpl implements EvalProjectGateway { for (ProjectNodeCO projectNodeCO : projectNodeCOS) { if (projectNodeCO.getType().equals(val)) { projectNodeCO.setState(1); - } else { - projectNodeCO.setState(0); } } evalProjectMapper.update(new LambdaUpdateWrapper() diff --git a/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml b/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml index 5c8a39d..62ca2e1 100644 --- a/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml +++ b/safety-eval-infrastructure/src/main/resources/mapper/EvalProjectMapper.xml @@ -75,7 +75,7 @@ #{id} and - JSON_CONTAINS(project_node, JSON_OBJECT('type', #{val},'state', 1)) + JSON_CONTAINS(project_node, JSON_OBJECT('type', #{val},'state', 0))