diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java index 4265e7cd..ef712afd 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/aspect/ProcessAspect.java @@ -11,9 +11,10 @@ import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; import com.jero.modules.activiti.enums.CommitFlagEnum; import com.jero.modules.activiti.enums.FinishFlagEnum; +import com.jero.modules.activiti.process.common.entity.ProcessDraft; +import com.jero.modules.activiti.process.common.service.ProcessDraftService; import com.jero.modules.activiti.process.esinspectplan.common.EsInspectPlanCommon; import com.jero.modules.activiti.service.ProcessApprovalRecordService; -import com.jero.modules.activiti.service.ProcessNodeLinkService; import lombok.extern.slf4j.Slf4j; import org.activiti.bpmn.model.Process; import org.activiti.bpmn.model.UserTask; @@ -55,10 +56,15 @@ public class ProcessAspect { @Resource private ProcessApprovalRecordService processApprovalRecordService; @Resource - private ProcessNodeLinkService processNodeLinkService; + private ProcessDraftService processDraftService; private static final String PROCESS_ALL = "processAll"; private static final List SPECIAL_NODE = Arrays.asList(EsInspectPlanCommon.PROCESS_NODE_3); + // 流程发起 + @Pointcut("execution(public * com.jero.modules.activiti.process..*Controller.flowStart(..))") + public void processServiceFlowStart() { + } + // 流程审批 @Pointcut("execution(public * com.jero.modules.activiti.process..*Controller.flowApproval(..))") public void processServiceFlowApproval() { @@ -134,6 +140,7 @@ public class ProcessAspect { } @AfterReturning("processServiceFlowReject()") + @Order(1) public void doAfter(JoinPoint jp) { log.info("==========流程驳回,若驳回到的节点之前经过转办,则驳回到转办人手里后置方法开始=========="); if (!Objects.isNull(jp.getArgs())) { @@ -175,6 +182,26 @@ public class ProcessAspect { log.info("==========流程驳回,若驳回到的节点之前经过转办,则驳回到转办人手里后置方法结束=========="); } + @AfterReturning("processServiceFlowStart() || processServiceFlowApproval() || processServiceFlowReject()") + @Order(2) + public void doAfterRemoveDraft(JoinPoint jp) { + log.info("==========流程发起、审批、驳回。删除草稿后置方法开始=========="); + if (!Objects.isNull(jp.getArgs())) { + LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + Map map = JSON.parseObject(JSON.toJSONString(jp.getArgs()[0]), Map.class); + Object object = map.get(PROCESS_ALL); + if (!Objects.isNull(object)){ + // 发起、审批、驳回 + ProcessAll processAll = JSON.parseObject(JSON.toJSONString(object), ProcessAll.class); + // 删除草稿 + processDraftService.remove(new LambdaQueryWrapper() + .eq(ProcessDraft::getProjectId, processAll.getProjectId()) + .eq(ProcessDraft::getUserId, loginUser.getId())); + } + } + log.info("==========流程发起、审批、驳回。删除草稿后置方法结束=========="); + } + /** * 是否会签节点 * @param taskId