From 8a9161869c7cc188d119f84e2c360e31a01a2e18 Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Thu, 3 Apr 2025 18:11:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3769)=20-=20=E7=AD=BE=E7=BD=B2?= =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E4=B8=AD,=20=E5=A2=9E=E5=8A=A0=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=AE=9E=E4=BE=8B=E7=9A=84=E5=87=A0=E4=B8=AA=E7=94=9F?= =?UTF-8?q?=E5=91=BD=E5=91=A8=E6=9C=9F=E6=93=8D=E4=BD=9C=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FileArchiveProcessEventListener.java | 51 +++++++++++++++++-- 1 file changed, 46 insertions(+), 5 deletions(-) diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/FileArchiveProcessEventListener.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/FileArchiveProcessEventListener.java index 837ef2d37..7520de611 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/FileArchiveProcessEventListener.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/listener/process/FileArchiveProcessEventListener.java @@ -22,6 +22,7 @@ import org.flowable.common.engine.api.delegate.event.FlowableEngineEntityEvent; import org.flowable.common.engine.impl.interceptor.CommandExecutor; import org.flowable.engine.HistoryService; import org.flowable.engine.ProcessEngineConfiguration; +import org.flowable.engine.delegate.event.FlowableProcessStartedEvent; import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl; import org.flowable.engine.impl.util.CommandContextUtil; @@ -30,6 +31,7 @@ import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Scope; import org.springframework.core.Ordered; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; @@ -64,6 +66,11 @@ public class FileArchiveProcessEventListener extends AbstractBpmnEventListener

docs = commandExecutor.execute(new CustomGetModelDocsCmd(event.getProcessInstanceId(), extAxModelDocMapper)); + List docs = commandExecutor.execute(new CustomGetModelDocsCmd(event.getProcessInstanceId(), true, extAxModelDocMapper)); + if (CollectionUtils.isEmpty(docs)) { + return; + } List files = new ArrayList<>(); docs.forEach(doc -> { @@ -111,6 +121,35 @@ public class FileArchiveProcessEventListener extends AbstractBpmnEventListener

archives = new ArrayList<>(); + processSign.getDocTemplate().forEach(template -> { + SignFileDTO signFileDTO = new SignFileDTO(); + signFileDTO.setId(template.getId()); + signFileDTO.setFileTag(template.getFileTag()); + signFileDTO.setFileType(template.getFileType()); + // TODO 替换变量后,获得新生成的文档code + signFileDTO.setFileCode(""); + archives.add(signFileDTO); + }); + + processSign.setFileArchive(archives); + extAxProcessSignService.updateById(processSign); + + } + @Override public void onCompleted(FlowableEngineEntityEvent event) { // TODO 将该模型关联的文档统一进行归档, 加载变量, 并发送业务待办 @@ -127,18 +166,20 @@ public class FileArchiveProcessEventListener extends AbstractBpmnEventListener

processVariables = instance.getProcessVariables(); // 文件归档,将审批过程中产生的数据全部替换文档模板变量 - archiveEnableDocs(processVariables, instance); + archiveFinalDocs(processVariables, instance); // 发送业务待办 sendSignPending(signConfig.get(), processVariables); } - private void archiveEnableDocs(Map processVariables, HistoricProcessInstance instance) { + private void archiveFinalDocs(Map processVariables, HistoricProcessInstance instance) { ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl) getEngineConfiguration(); List fileTags = getFileTags(processVariables); - List needFirstArchiveDocs = processEngineConfiguration.getCommandExecutor().execute(new CustomGetModelDocsCmd(instance.getId(), extAxModelDocMapper)) + List needFirstArchiveDocs = processEngineConfiguration.getCommandExecutor().execute(new CustomGetModelDocsCmd(instance.getId(), true, extAxModelDocMapper)) .stream().filter(i -> fileTags.contains(i.getTag())).collect(Collectors.toList()); - + if (CollectionUtils.isEmpty(needFirstArchiveDocs)) { + return; + } List fileArchives = new ArrayList<>(); needFirstArchiveDocs.forEach(docBaseVO -> { // TODO 进行文档变量替换,替换后,返回 fileKey