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 22777d8..a3494ff 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 @@ -151,13 +151,13 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { entity.setControllerPersonnelId(cmd.getSignTaskPersonCmd().getSignerPersonnelId()); entity.setControllerName(cmd.getSignTaskPersonCmd().getSignerName()); + entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode()); if (evalProcessControlDO != null) { entity.setId(evalProcessControlDO.getId()); entity = evalProcessControlGateway.modify(entity); } else { // id为空,新增数据 entity.setOrgId(project.getOrgId()); - entity.setReviewerSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode()); entity = evalProcessControlGateway.save(entity); } @@ -258,35 +258,19 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { @Override public SingleResponse getDetailByProject(Long projectId) { + EvalProcessControlDetailCO detailCO = new EvalProcessControlDetailCO(); // 1. 查询项目成员中的过程控制负责人和机构负责人信息(role包含PROCESS_CONTROL_LEAD或EVALUATION_AGENCY_HEAD) - List members = evalProjectMemberMapper.selectList( - new LambdaQueryWrapper() - .eq(EvalProjectMemberDO::getProjectId, projectId) - .eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue()) - .and(w -> w.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal()) - .or().like(EvalProjectMemberDO::getRole, ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal()))) - .stream() - .map(evalProjectMemberDoConvertor::convertDoToE) - .collect(Collectors.toList()); - // 按角色分别过滤 - List controllers = members.stream() - .filter(m -> m.getRole() != null && m.getRole().contains(ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal())) - .collect(Collectors.toList()); - List orgHeads = members.stream() - .filter(m -> m.getRole() != null && m.getRole().contains(ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal())) - .collect(Collectors.toList()); + fillProcessControlMembers(detailCO, projectId); // 2. 查询过程控制记录,未查询到则过程控制记录字段为空 EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, null); - EvalProcessControlDetailCO detailCO = new EvalProcessControlDetailCO(); - detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(controllers)); - detailCO.setOrgHeads(evalProcessControlConvertor.toMemberCOs(orgHeads)); // 查询项目归档信息 EvalProjectEntity project = evalProjectNodeSupport.requireProject(projectId); detailCO.setArchiveTransferorName(project.getArchiveTransferorName()); detailCO.setArchiveArchivistName(project.getArchiveArchivistName()); detailCO.setArchiveDate(project.getArchiveDate()); + detailCO.setArchiveFlag(project.getArchiveFlag()); if (entity != null) { detailCO.setProcessControl(evalProcessControlConvertor.toProcessCO(entity)); @@ -313,6 +297,30 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { return SingleResponse.success(detailCO); } + /** + * 查询项目成员中的过程控制负责人和机构负责人信息,并设置到 detailCO 中。 + */ + private void fillProcessControlMembers(EvalProcessControlDetailCO detailCO, Long projectId) { + List members = evalProjectMemberMapper.selectList( + new LambdaQueryWrapper() + .eq(EvalProjectMemberDO::getProjectId, projectId) + .eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue()) + .and(w -> w.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal()) + .or().like(EvalProjectMemberDO::getRole, ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal()))) + .stream() + .map(evalProjectMemberDoConvertor::convertDoToE) + .collect(Collectors.toList()); + // 按角色分别过滤 + List controllers = members.stream() + .filter(m -> m.getRole() != null && m.getRole().contains(ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal())) + .collect(Collectors.toList()); + List orgHeads = members.stream() + .filter(m -> m.getRole() != null && m.getRole().contains(ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal())) + .collect(Collectors.toList()); + detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(controllers)); + detailCO.setOrgHeads(evalProcessControlConvertor.toMemberCOs(orgHeads)); + } + @Override public SingleResponse generateProcessControlForm(EvalgenerateProcessControlFormCmd cmd) { Long projectId = Long.parseLong(cmd.getProjectId()); diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSignTaskExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSignTaskExecutor.java index 66ac264..5f63db1 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSignTaskExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalSignTaskExecutor.java @@ -190,7 +190,8 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { .set(EvalProcessControlDO::getReviewerSignatureUrl, cmd.getSignerUrl()) .set(EvalProcessControlDO::getReviewerSignatureTaskStatus, SignatureTaskStatusEnum.COMPLETED.getCode())); } - if (!evalProcessControlDO.getOrgHeadSignatureTaskStatus().equals(code)) { + if (evalProcessControlDO.getReviewerSignatureTaskStatus().equals(code) + && !evalProcessControlDO.getOrgHeadSignatureTaskStatus().equals(code)) { evalProcessControlMapper.update(new LambdaUpdateWrapper() .eq(EvalProcessControlDO::getId, evalSignTaskDO.getBizRefId()) .eq(EvalProcessControlDO::getProjectId, evalSignTaskDO.getProjectId()) diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java index 834eabe..0658689 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java @@ -41,4 +41,7 @@ public class EvalProcessControlDetailCO { @ApiModelProperty("项目归档时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime archiveDate; + + @ApiModelProperty("项目归档状态 1归档 0未归档") + private Integer archiveFlag; }