From 960f3f9b37ccf484f875d5e52d853b90885c298b Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Thu, 25 Jul 2024 11:30:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=B5=81=E7=A8=8B)=EF=BC=9A=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E6=97=B6=E4=BF=9D=E5=AD=98=E5=BF=AB=E7=85=A7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process/common/utility/FlowUtility.java | 144 ++++++++++++++++++ .../impl/EsDeclareFlowServiceImpl.java | 12 +- .../impl/EsInspectFlowServiceImpl.java | 12 +- .../EsInspectDelayApplyFlowServiceImpl.java | 12 +- .../impl/EsInspectPlanFlowServiceImpl.java | 12 +- .../impl/EsInspectRectifyFlowServiceImpl.java | 12 +- .../EsPermissionApplyFlowServiceImpl.java | 12 +- .../impl/ProcessFbEntryChangeServiceImpl.java | 3 +- ...cessFbStandardConsultationServiceImpl.java | 5 +- .../ProcessFbStandardPurchaseServiceImpl.java | 3 +- .../impl/MeetingManageFlowServiceImpl.java | 12 +- 11 files changed, 228 insertions(+), 11 deletions(-) create mode 100644 laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java new file mode 100644 index 00000000..fda9b040 --- /dev/null +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/common/utility/FlowUtility.java @@ -0,0 +1,144 @@ +package com.jero.modules.activiti.process.common.utility; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.jero.common.exception.JeroBootException; +import com.jero.common.system.vo.LoginUser; +import com.jero.common.util.SnowflakeUtils; +import com.jero.modules.activiti.entity.ProcessAll; +import com.jero.modules.activiti.entity.ProcessApprovalRecord; +import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.process.common.entity.ProcessSnapshot; +import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.service.ProcessSnapshotService; +import com.jero.modules.activiti.service.ProcessAllService; +import com.jero.modules.activiti.service.ProcessApprovalRecordService; +import lombok.RequiredArgsConstructor; +import org.activiti.engine.RuntimeService; +import org.activiti.engine.runtime.ProcessInstance; +import org.apache.shiro.SecurityUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @ClassName: FlowUtility + * @Description: + * @Author: yjz + * @Date: 2024-06-24 16:08 + * @Version: 1.0 + **/ +@RequiredArgsConstructor +@Transactional(rollbackFor = {Exception.class, JeroBootException.class}) +@Component +public class FlowUtility { + + private final ProcessAllService processAllService; + private final ProcessApprovalRecordService processApprovalRecordService; + private final ProcessDraftService processDraftService; + private final RuntimeService runtimeService; + private final ProcessSnapshotService processSnapshotService; + + public void flowApprovalUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){ + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + // 更新流程总表信息 + processAllService.updateById(processAll); + // 更新流程审批信息 + processApprovalRecordService.update( + new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getUserId, loginUser.getId()) + .eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId()) + .set(StringUtils.isNotBlank(processApprovalRecord.getCommitText()), + ProcessApprovalRecord::getCommitText, processApprovalRecord.getCommitText()) + .set(ProcessApprovalRecord::getCommitFlag, processApprovalRecord.getCommitFlag()) + .set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue()) + .set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile()) + .set(ProcessApprovalRecord::getEndTime, new Date())); + } + + public void flowSaveUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){ + // 更新流程信息 + processAllService.update(new LambdaUpdateWrapper() + .eq(ProcessAll::getId, processAll.getId()) + .set(ProcessAll::getPrcName, processAll.getPrcName()) + .set(ProcessAll::getPrcMes, processAll.getPrcMes()) + .set(ProcessAll::getDueTime, processAll.getDueTime())); + // 更新流程审批信息 + processApprovalRecordService.update(new LambdaUpdateWrapper() + .eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId()) + .set(ProcessApprovalRecord::getCommitText, processApprovalRecord.getCommitText()) + .set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile())); + } + + public void flowSaveSnapshot(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord, String infoJsonStr){ + // 保存快照 + ProcessSnapshot processSnapshot = new ProcessSnapshot(); + BeanUtils.copyProperties(processAll, processSnapshot); + processSnapshot.setId(String.valueOf(SnowflakeUtils.snowflake())); + processSnapshot.setCreateBy(null); + processSnapshot.setCreateTime(null); + processSnapshot.setUpdateBy(null); + processSnapshot.setUpdateTime(null); + if (StringUtils.isNotBlank(processApprovalRecord.getCommitFile())){ + processSnapshot.setHandleFile(processApprovalRecord.getCommitFile()); + } + if (StringUtils.isNotBlank(processApprovalRecord.getCommitText())){ + processSnapshot.setHandleText(processApprovalRecord.getCommitFile()); + } + if (!Objects.isNull(processAll.getDueTime())){ + processSnapshot.setProcessDueDate(processAll.getDueTime()); + } + if (StringUtils.isNotBlank(processAll.getPrcMes())){ + processSnapshot.setProcessDescription(processAll.getPrcMes()); + } + if (StringUtils.isNotBlank(infoJsonStr)){ + processSnapshot.setInfoJsonStr(infoJsonStr); + } + if (StringUtils.isNotBlank(processApprovalRecord.getTaskId())){ + processSnapshot.setTaskId(processApprovalRecord.getTaskId()); + } + if (StringUtils.isNotBlank(processApprovalRecord.getUserId())){ + processSnapshot.setUserId(processApprovalRecord.getUserId()); + } + processSnapshotService.save(processSnapshot); + } + + /** + * 流程是否结束 + * @param processInstanceId + * @return + */ + public boolean isLastNode(String processInstanceId) { + // 查询流程实例状态 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + + // 如果流程实例为null,表示流程已结束 + return processInstance == null; + } + + /** + * 将Map中值为List类型的元素转换为以逗号分隔的字符串。 + * 这样做的目的是为了简化Map的表示,尤其是当List中包含多个元素时。 + * 对于非List类型的值,直接保留原样。 + * + * @param map 原始的Map,可能包含值为List类型的元素。 + * @return 返回一个新的Map,其中所有值为List类型的元素都被转换为以逗号分隔的字符串。 + */ + public static Map listToString(Map map) { + Map stringObjectHashMap = new HashMap<>(map); + stringObjectHashMap = stringObjectHashMap.entrySet().stream().map(v -> { + if (v.getValue() instanceof List) { + List list = (List)v.getValue(); + v.setValue(String.join(",", list)); + } + return v; + }).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + return stringObjectHashMap; + } + +} diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esdeclare/service/impl/EsDeclareFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esdeclare/service/impl/EsDeclareFlowServiceImpl.java index a7c9b773..ef881b84 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esdeclare/service/impl/EsDeclareFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esdeclare/service/impl/EsDeclareFlowServiceImpl.java @@ -18,6 +18,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.utility.FlowUtility; import com.jero.modules.activiti.process.esdeclare.common.EsDeclareCommon; import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare; import com.jero.modules.activiti.process.esdeclare.service.IEsDeclareFlowService; @@ -66,6 +67,7 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService { private final IOSSFileService ossFileService; private final SendMessageAPI sendMessageAPI; private final ISysUserService sysUserService; + private final FlowUtility flowUtility; public EsDeclareFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, @@ -75,7 +77,8 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService { EnterpriseStandardDeclareService enterpriseStandardDeclareService, IOSSFileService ossFileService, SendMessageAPI sendMessageAPI, - ISysUserService sysUserService) { + ISysUserService sysUserService, + FlowUtility flowUtility) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; @@ -85,6 +88,7 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService { this.ossFileService = ossFileService; this.sendMessageAPI = sendMessageAPI; this.sysUserService = sysUserService; + this.flowUtility = flowUtility; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -143,6 +147,12 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService { // 自动完成第一个节点 taskService.complete(task.getId()); + // 保存快照 + processAll.setProcessInstanceId(task.getProcessInstanceId()); + processApprovalRecord.setTaskId(task.getId()); + processApprovalRecord.setUserId(loginUser.getId()); + flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esDeclareFlowVO.getInfoJsonStr()); + // 发起即结束 ProcessEsDeclare processEsDeclare = processEsDeclareService.queryByProjectId(processAll.getProjectId()); // 保存数据至企标宣贯 diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java index 14cdedc4..ea9f61b0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspect/service/impl/EsInspectFlowServiceImpl.java @@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.utility.FlowUtility; import com.jero.modules.activiti.process.esinspect.common.EsInspectCommon; import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; import com.jero.modules.activiti.process.esinspect.service.IEsInspectFlowService; @@ -80,6 +81,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { private final EnterpriseStandardInspectReportService enterpriseStandardInspectReportService; private final IEsInspectRectifyFlowService esInspectReportFlowService; private final IProcessEsInspectRectifyService processEsInspectRectifyService; + private final FlowUtility flowUtility; public EsInspectFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, ProcessDraftService processDraftService, @@ -91,7 +93,8 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { EnterpriseStandardInspectRectifyPlanService enterpriseStandardInspectRectifyPlanService, EnterpriseStandardInspectReportService enterpriseStandardInspectReportService, IEsInspectRectifyFlowService esInspectReportFlowService, - IProcessEsInspectRectifyService processEsInspectReportService) { + IProcessEsInspectRectifyService processEsInspectReportService, + FlowUtility flowUtility) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; @@ -104,6 +107,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { this.enterpriseStandardInspectReportService = enterpriseStandardInspectReportService; this.esInspectReportFlowService = esInspectReportFlowService; this.processEsInspectRectifyService = processEsInspectReportService; + this.flowUtility = flowUtility; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -164,6 +168,12 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService { // 更新企标稽查状态 updateLawsEnterpriseStandardStatus(processAll.getProjectId()); + + // 保存快照 + processAll.setProcessInstanceId(task.getProcessInstanceId()); + processApprovalRecord.setTaskId(task.getId()); + processApprovalRecord.setUserId(loginUser.getId()); + flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectFlowVO.getInfoJsonStr()); } private void handleBusinessData(EsInspectFlowVO esInspectFlowVO) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java index 314f5e91..dc00d547 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectdelayapply/service/impl/EsInspectDelayApplyFlowServiceImpl.java @@ -15,6 +15,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.utility.FlowUtility; import com.jero.modules.activiti.process.esinspect.common.EsInspectCommon; import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect; import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService; @@ -67,6 +68,7 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF private final EnterpriseStandardInspectService enterpriseStandardInspectService; private final IProcessEsInspectDelayApplyService processEsInspectDelayApplyService; private final EnterpriseStandardInspectDelayService enterpriseStandardInspectDelayService; + private final FlowUtility flowUtility; public EsInspectDelayApplyFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, @@ -75,7 +77,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF IProcessEsInspectService processEsInspectService, EnterpriseStandardInspectService enterpriseStandardInspectService, IProcessEsInspectDelayApplyService processEsInspectDelayApplyService, - EnterpriseStandardInspectDelayService enterpriseStandardInspectDelayService) { + EnterpriseStandardInspectDelayService enterpriseStandardInspectDelayService, + FlowUtility flowUtility) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; @@ -84,6 +87,7 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF this.enterpriseStandardInspectService = enterpriseStandardInspectService; this.processEsInspectDelayApplyService = processEsInspectDelayApplyService; this.enterpriseStandardInspectDelayService = enterpriseStandardInspectDelayService; + this.flowUtility = flowUtility; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -141,6 +145,12 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF // 自动完成第一个节点 taskService.complete(task.getId()); + + // 保存快照 + processAll.setProcessInstanceId(task.getProcessInstanceId()); + processApprovalRecord.setTaskId(task.getId()); + processApprovalRecord.setUserId(loginUser.getId()); + flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectDelayApplyFlowVO.getInfoJsonStr()); } private void handleBusinessData(EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java index d34c4a22..2df1d034 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectplan/service/impl/EsInspectPlanFlowServiceImpl.java @@ -20,6 +20,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.utility.FlowUtility; import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish; import com.jero.modules.activiti.process.esAbolish.service.ProcessEsAbolishService; import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive; @@ -82,6 +83,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { private final IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService; private final ProcessEsAbolishService processEsAbolishService; private final ProcessEsArchiveService processEsArchiveService; + private final FlowUtility flowUtility; public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, ProcessDraftService processDraftService, @@ -95,7 +97,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService, IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService, ProcessEsAbolishService processEsAbolishService, - ProcessEsArchiveService processEsArchiveService) { + ProcessEsArchiveService processEsArchiveService, + FlowUtility flowUtility) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; @@ -110,6 +113,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { this.processEsInspectPlanOpinionService = processEsInspectPlanOpinionService; this.processEsAbolishService = processEsAbolishService; this.processEsArchiveService = processEsArchiveService; + this.flowUtility = flowUtility; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -170,6 +174,12 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService { // 自动完成第一个节点 taskService.complete(task.getId()); + + // 保存快照 + processAll.setProcessInstanceId(task.getProcessInstanceId()); + processApprovalRecord.setTaskId(task.getId()); + processApprovalRecord.setUserId(loginUser.getId()); + flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectPlanFlowVO.getInfoJsonStr()); } private void handleBusinessData(EsInspectPlanFlowVO esInspectPlanFlowVO) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java index c31a42b0..7bf09bae 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esinspectrectify/service/impl/EsInspectRectifyFlowServiceImpl.java @@ -19,6 +19,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.utility.FlowUtility; import com.jero.modules.activiti.process.esinspectrectify.common.EsInspectRectifyCommon; import com.jero.modules.activiti.process.esinspectrectify.entity.ProcessEsInspectRectify; import com.jero.modules.activiti.process.esinspectrectify.service.IEsInspectRectifyFlowService; @@ -67,6 +68,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer private final IProcessEsInspectRectifyService processEsInspectRectifyService; private final EnterpriseStandardInspectRectifyPlanService enterpriseStandardInspectRectifyPlanService; private final ISysUserService sysUserService; + private final FlowUtility flowUtility; public EsInspectRectifyFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, @@ -74,7 +76,8 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer ProcessNodeLinkService processNodeLinkService, IProcessEsInspectRectifyService processEsInspectReportService, EnterpriseStandardInspectRectifyPlanService enterpriseStandardInspectRectifyPlanService, - ISysUserService sysUserService) { + ISysUserService sysUserService, + FlowUtility flowUtility) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; @@ -82,6 +85,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer this.processEsInspectRectifyService = processEsInspectReportService; this.enterpriseStandardInspectRectifyPlanService = enterpriseStandardInspectRectifyPlanService; this.sysUserService = sysUserService; + this.flowUtility = flowUtility; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -142,6 +146,12 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer // 自动完成第一个节点 taskService.complete(task.getId()); + + // 保存快照 + processAll.setProcessInstanceId(task.getProcessInstanceId()); + processApprovalRecord.setTaskId(task.getId()); + processApprovalRecord.setUserId(loginUser.getId()); + flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectReportFlowVO.getInfoJsonStr()); } @Override diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java index 654c430f..95303671 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/espermissionapply/service/impl/EsPermissionApplyFlowServiceImpl.java @@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum; import com.jero.modules.activiti.process.common.entity.ProcessDraft; import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.service.ProcessDraftService; +import com.jero.modules.activiti.process.common.utility.FlowUtility; import com.jero.modules.activiti.process.espermissionapply.common.ProcessEsPermissionApplyCommon; import com.jero.modules.activiti.process.espermissionapply.entity.ProcessEsPermissionApply; import com.jero.modules.activiti.process.espermissionapply.service.EsPermissionApplyFlowService; @@ -62,16 +63,19 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe private final ProcessDraftService processDraftService; private final ProcessNodeLinkService processNodeLinkService; private final IProcessEsPermissionApplyService processEsPermissionApplyService; + private final FlowUtility flowUtility; public EsPermissionApplyFlowServiceImpl(ProcessAllService processAllService, ProcessApprovalRecordService processApprovalRecordService, ProcessDraftService processDraftService, ProcessNodeLinkService processNodeLinkService, - IProcessEsPermissionApplyService processEsPermissionApplyService) { + IProcessEsPermissionApplyService processEsPermissionApplyService, + FlowUtility flowUtility) { this.processAllService = processAllService; this.processApprovalRecordService = processApprovalRecordService; this.processDraftService = processDraftService; this.processNodeLinkService = processNodeLinkService; this.processEsPermissionApplyService = processEsPermissionApplyService; + this.flowUtility = flowUtility; } ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); @@ -133,6 +137,12 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe // 自动完成第一个节点 taskService.complete(task.getId()); + + // 保存快照 + processAll.setProcessInstanceId(task.getProcessInstanceId()); + processApprovalRecord.setTaskId(task.getId()); + processApprovalRecord.setUserId(loginUser.getId()); + flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esPermissionApplyFlowVO.getInfoJsonStr()); } private void handleBusinessData(EsPermissionApplyFlowVO esPermissionApplyFlowVO) { diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java index a20551cb..632f572a 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbEntryChangeServiceImpl.java @@ -191,7 +191,8 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl departLeaderList = Arrays.asList(departLeaders.split(",")); List linkList = new ArrayList<>(); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java index e665561a..76207829 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/fb/service/impl/ProcessFbStandardPurchaseServiceImpl.java @@ -125,7 +125,8 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl