diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalProjectController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalProjectController.java index abb3f88..69417da 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalProjectController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/institution/app/AppEvalProjectController.java @@ -42,7 +42,7 @@ public class AppEvalProjectController { @ApiOperation("我的项目统计") @GetMapping("/projectStatistics") public SingleResponse projectStatistics() { - return evalProjectApi.projectStatistics(); + return evalProjectApi.appProjectStatistics(); } @ApiOperation("安评项目枚举映射") 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 25b951a..1d4d43c 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 @@ -278,6 +278,28 @@ public class EvalProjectExecutor implements EvalProjectApi { return PageResponse.of(co, pageResult.getTotal()); } + @Override + public SingleResponse appProjectStatistics() { + EvalProjectPageQuery evalProjectPageQuery = new EvalProjectPageQuery(); + List data = myPage(evalProjectPageQuery).getData(); + EvalProjectStatisticsCO co = new EvalProjectStatisticsCO(); + if (!CollectionUtils.isEmpty(data)) { + EvalProjectMemberQuery query = new EvalProjectMemberQuery(); + query.setOrgId(ThreadLocalUserInfoAdapter.getOrgId()); + query.setPersonnelId(AuthUserContextAdapter.getCurrentUserId()); + 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()); + 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()); + return SingleResponse.success(co); + } + private CustomerEvalProjectCO convertToCustomerCO(EvalProjectEntity entity) { CustomerEvalProjectCO co = new CustomerEvalProjectCO(); co.setId(entity.getId() == null ? null : String.valueOf(entity.getId())); 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 ccf3f11..43207f1 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 @@ -11,13 +11,16 @@ import org.qinan.safetyeval.domain.entity.EvalSurveyAttachEntity; import org.qinan.safetyeval.domain.service.EvalSurveyDomainService; import org.qinan.safetyeval.domain.service.ProjectStageSyncService; import org.qinan.safetyeval.infrastructure.dataobject.EvalSurveyAttachDO; +import org.qinan.safetyeval.infrastructure.dataobject.EvalSurveyDO; import org.qinan.safetyeval.infrastructure.mapper.EvalSurveyAttachMapper; +import org.qinan.safetyeval.infrastructure.mapper.EvalSurveyMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Objects; @Service public class EvalSurveyAttachExecutor implements EvalSurveyAttachApi { @@ -33,6 +36,8 @@ public class EvalSurveyAttachExecutor implements EvalSurveyAttachApi { private ProjectStageSyncService projectStageSyncService; @Autowired private EvalSurveyAttachMapper evalSurveyAttachMapper; + @Autowired + private EvalSurveyMapper evalSurveyMapper; @Override @Transactional(rollbackFor = Exception.class) @@ -44,7 +49,9 @@ public class EvalSurveyAttachExecutor implements EvalSurveyAttachApi { EvalSurveyAttachEntity entity = evalSurveyCmdConvertor.convertAttachSaveCmdToE(cmd); evalSurveyDomainService.saveOrUpdateAttach(entity); } - if (cmdList.get(0).getProjectId() != null) { + Long num = evalSurveyMapper.selectCount(new LambdaQueryWrapper() + .eq(EvalSurveyDO::getProjectId, cmdList.get(0).getProjectId())); + if (cmdList.get(0).getProjectId() != null && (Objects.isNull(num) ? 0 : num) >= 2) { projectStageSyncService.onNodeCompleted(Long.valueOf(cmdList.get(0).getProjectId()), ProjectStageEnum.SITE_SURVEY.getNode()); } return SingleResponse.success(true); diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java index f8302c6..fb1f466 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/institution/EvalProjectApi.java @@ -44,4 +44,6 @@ public interface EvalProjectApi { PageResponse customerPage(CustomerEvalProjectPageQuery query); PageResponse myPage(EvalProjectPageQuery query); + + SingleResponse appProjectStatistics(); } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSurveyDomainService.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSurveyDomainService.java index f034386..81bdd16 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSurveyDomainService.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/EvalSurveyDomainService.java @@ -1,6 +1,5 @@ package org.qinan.safetyeval.domain.service; -import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.entity.EvalSurveyAttachEntity; import org.qinan.safetyeval.domain.entity.EvalSurveyEntity; import org.qinan.safetyeval.domain.exception.BizException; @@ -40,9 +39,9 @@ public class EvalSurveyDomainService { entity.setOrgId(existing.getOrgId()); result = evalSurveyGateway.modify(entity); } - if (result.getProjectId() != null) { - projectStageSyncService.onNodeCompleted(result.getProjectId(), ProjectStageEnum.SITE_SURVEY.getNode()); - } +// if (result.getProjectId() != null) { +// projectStageSyncService.onNodeCompleted(result.getProjectId(), ProjectStageEnum.SITE_SURVEY.getNode()); +// } return result; }