From 5ea2b16d369ce724875876a1c27a62f85f5248c0 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Tue, 25 Aug 2026 15:04:25 +0800 Subject: [PATCH] archive file --- .../institution/EvalSignTaskExecutor.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) 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 3acc89d2..818f677a 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 @@ -13,6 +13,8 @@ import org.qinan.safetyeval.client.dto.SingleResponse; import org.qinan.safetyeval.client.dto.institution.EditSignTaskSaveCmd; import org.qinan.safetyeval.client.dto.institution.EvalSignTaskPageQuery; import org.qinan.safetyeval.client.dto.institution.EvalSignTaskSaveCmd; +import org.qinan.safetyeval.domain.constant.ArchiveTypeEnum; +import org.qinan.safetyeval.domain.constant.ProjectArchiveFileSourceEnum; import org.qinan.safetyeval.domain.constant.ProjectRoleEnum; import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.constant.SignTaskStatusEnum; @@ -27,6 +29,9 @@ import org.qinan.safetyeval.domain.service.EvalSignTaskDomainService; import org.qinan.safetyeval.domain.service.ProjectStageSyncService; import org.qinan.safetyeval.infrastructure.dataobject.*; import org.qinan.safetyeval.infrastructure.mapper.*; +import org.qinan.safetyeval.infrastructure.persistence.domainobject.EvalProjectArchiveFileDO; +import org.qinan.safetyeval.infrastructure.persistence.mapper.EvalProjectArchiveFileMapper; +import org.qinan.safetyeval.infrastructure.support.InsertFieldDefaults; import org.qinan.safetyeval.infrastructure.support.InstitutionOrgSupport; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -66,6 +71,8 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { @Autowired private EvalProcessControlMapper evalProcessControlMapper; @Autowired + private EvalProjectArchiveFileMapper evalProjectArchiveFileMapper; + @Autowired private EvalProjectMemberMapper evalProjectMemberMapper; @Autowired private ProjectStageSyncService projectStageSyncService; @@ -174,6 +181,8 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { .eq(EvalInternalReviewDO::getProjectId, evalSignTaskDO.getProjectId()) .set(EvalInternalReviewDO::getReviewerSignatureUrl, cmd.getSignerUrl()) .set(EvalInternalReviewDO::getReviewerSignatureTaskStatus, SignatureTaskStatusEnum.COMPLETED.getCode())); + saveAutoArchiveFile(evalSignTaskDO, ArchiveTypeEnum.REVIEW_RECORD, + ProjectStageEnum.INTERNAL_REVIEW.getMsg(), cmd.getSignerUrl()); } if (ProjectStageEnum.TECHNICAL_REVIEW.getVal().equals(evalSignTaskDO.getNodeCode())) { evalTechReviewMapper.update(new LambdaUpdateWrapper() @@ -181,6 +190,8 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { .eq(EvalTechReviewDO::getProjectId, evalSignTaskDO.getProjectId()) .set(EvalTechReviewDO::getReviewerSignatureUrl, cmd.getSignerUrl()) .set(EvalTechReviewDO::getReviewerSignatureTaskStatus, SignatureTaskStatusEnum.COMPLETED.getCode())); + saveAutoArchiveFile(evalSignTaskDO, ArchiveTypeEnum.REVIEW_RECORD, + ProjectStageEnum.TECHNICAL_REVIEW.getMsg() , cmd.getSignerUrl()); } if (ProjectStageEnum.PROCESS_CONTROL.getVal().equals(evalSignTaskDO.getNodeCode())) { doProcessController(evalSignTaskDO, cmd); @@ -188,6 +199,28 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { return SingleResponse.success(true); } + /** + * 签字完成后自动写入项目档案文件(来源:流程自动记录) + * + * @param evalSignTaskDO 签字任务 + * @param archiveType 档案类型 ArchiveTypeEnum + * @param fileName 文件名称 + * @param fileUrl 文件地址 + */ + private void saveAutoArchiveFile(EvalSignTaskDO evalSignTaskDO, ArchiveTypeEnum archiveType, String fileName, String fileUrl) { + EvalProjectArchiveFileDO archiveFileDO = new EvalProjectArchiveFileDO(); + archiveFileDO.setOrgId(evalSignTaskDO.getOrgId()); + archiveFileDO.setProjectId(String.valueOf(evalSignTaskDO.getProjectId())); + archiveFileDO.setFileUrl(fileUrl); + archiveFileDO.setFileName(fileName); + archiveFileDO.setArchiveType(archiveType.getCode()); + archiveFileDO.setBusinessNode(evalSignTaskDO.getNodeCode()); + archiveFileDO.setRecordSource(ProjectArchiveFileSourceEnum.AUTO_PROCESS_RECORD.getCode()); + archiveFileDO.setEnv(evalSignTaskDO.getEnv()); + InsertFieldDefaults.apply(archiveFileDO); + evalProjectArchiveFileMapper.insert(archiveFileDO); + } + /** * doProcessController * @@ -208,6 +241,8 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { .set(EvalProcessControlDO::getReviewerSignatureUrl, cmd.getSignerUrl()) .set(EvalProcessControlDO::getControllerPersonnelSignTime, LocalDateTime.now()) .set(EvalProcessControlDO::getReviewerSignatureTaskStatus, SignatureTaskStatusEnum.COMPLETED.getCode())); + saveAutoArchiveFile(evalSignTaskDO, ArchiveTypeEnum.PROCESS_CONTROL, + ProjectStageEnum.PROCESS_CONTROL.getMsg() + "人签字", cmd.getSignerUrl()); } if (evalProcessControlDO.getReviewerSignatureTaskStatus().equals(code) && !evalProcessControlDO.getOrgHeadSignatureTaskStatus().equals(code)) { @@ -217,6 +252,8 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi { .set(EvalProcessControlDO::getOrgHeadSignatureUrl, cmd.getSignerUrl()) .set(EvalProcessControlDO::getControlTime, LocalDateTime.now()) .set(EvalProcessControlDO::getOrgHeadSignatureTaskStatus, SignatureTaskStatusEnum.COMPLETED.getCode())); + saveAutoArchiveFile(evalSignTaskDO, ArchiveTypeEnum.PROCESS_CONTROL, + ProjectStageEnum.ORG_HEAD_MSG + "签字", cmd.getSignerUrl()); projectStageSyncService.onNodeCompleted(evalSignTaskDO.getProjectId(), ProjectStageEnum.PROCESS_CONTROL.getNode()); }