From 11842742462d031b4744f1214fabb029ddd16d49 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 03 六月 2024 15:48:46 +0800 Subject: [PATCH] update 优化 去除工作流无用接口 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 67 ++++++++++++++------------------- 1 files changed, 28 insertions(+), 39 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 75739c1..9dd0d60 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -18,16 +18,14 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.workflow.common.constant.FlowConstant; -import org.dromara.workflow.common.enums.BusinessStatusEnum; +import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.ActHiTaskinst; import org.dromara.workflow.domain.WfTaskBackNode; import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.vo.*; import org.dromara.workflow.flowable.cmd.*; -import org.dromara.workflow.flowable.strategy.FlowEventStrategy; -import org.dromara.workflow.flowable.strategy.FlowProcessEventHandler; -import org.dromara.workflow.flowable.strategy.FlowTaskEventHandler; +import org.dromara.workflow.flowable.handler.FlowProcessEventHandler; import org.dromara.workflow.mapper.ActHiTaskinstMapper; import org.dromara.workflow.mapper.ActTaskMapper; import org.dromara.workflow.service.IActTaskService; @@ -75,13 +73,13 @@ private final HistoryService historyService; private final IdentityService identityService; private final ManagementService managementService; - private final FlowEventStrategy flowEventStrategy; private final ActTaskMapper actTaskMapper; private final IWfTaskBackNodeService wfTaskBackNodeService; private final ActHiTaskinstMapper actHiTaskinstMapper; private final IWfNodeConfigService wfNodeConfigService; private final IWfDefinitionConfigService wfDefinitionConfigService; private final UserService userService; + private final FlowProcessEventHandler flowProcessEventHandler; /** * 鍚姩浠诲姟 @@ -159,15 +157,8 @@ @Transactional(rollbackFor = Exception.class) public boolean completeTask(CompleteTaskBo completeTaskBo) { try { - List<RoleDTO> roles = LoginHelper.getLoginUser().getRoles(); String userId = String.valueOf(LoginHelper.getUserId()); - TaskQuery taskQuery = QueryUtils.taskQuery(); - taskQuery.taskId(completeTaskBo.getTaskId()).taskCandidateOrAssigned(userId); - if (CollUtil.isNotEmpty(roles)) { - List<String> groupIds = StreamUtils.toList(roles, e -> String.valueOf(e.getRoleId())); - taskQuery.taskCandidateGroupIn(groupIds); - } - Task task = taskQuery.singleResult(); + Task task = WorkflowUtils.getTaskByCurrentUser(completeTaskBo.getTaskId()); if (task == null) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -186,19 +177,15 @@ //闄勪欢涓婁紶 AttachmentCmd attachmentCmd = new AttachmentCmd(completeTaskBo.getFileId(), task.getId(), task.getProcessInstanceId()); managementService.executeCommand(attachmentCmd); - FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey()); - String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId()); + String businessStatus = WorkflowUtils.getBusinessStatus(processInstance.getBusinessKey()); + //娴佺▼鎻愪氦鐩戝惉 if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) { - if (processHandler != null) { - processHandler.handleProcess(processInstance.getBusinessKey(), businessStatus, true); - } + flowProcessEventHandler.processHandler(processInstance.getProcessDefinitionKey(), processInstance.getBusinessKey(), businessStatus, true); } runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus()); - String key = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey(); - FlowTaskEventHandler taskHandler = flowEventStrategy.getTaskHandler(key); - if (taskHandler != null) { - taskHandler.handleTask(task.getId(), processInstance.getBusinessKey()); - } + //鍔炵悊鐩戝惉 + String keyNode = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey(); + flowProcessEventHandler.processTaskHandler(keyNode, task.getId(), processInstance.getBusinessKey()); //鍔炵悊鎰忚 taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), TaskStatusEnum.PASS.getStatus(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "鍚屾剰" : completeTaskBo.getMessage()); //鍔炵悊浠诲姟 @@ -214,9 +201,8 @@ if (pi == null) { UpdateBusinessStatusCmd updateBusinessStatusCmd = new UpdateBusinessStatusCmd(task.getProcessInstanceId(), BusinessStatusEnum.FINISH.getStatus()); managementService.executeCommand(updateBusinessStatusCmd); - if (processHandler != null) { - processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false); - } + flowProcessEventHandler.processHandler(processInstance.getProcessDefinitionKey(), processInstance.getBusinessKey(), + BusinessStatusEnum.FINISH.getStatus(), false); } else { List<Task> list = QueryUtils.taskQuery(task.getProcessInstanceId()).list(); for (Task t : list) { @@ -470,8 +456,8 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean delegateTask(DelegateBo delegateBo) { - TaskQuery query = QueryUtils.taskQuery(); - TaskEntity task = (TaskEntity) query.taskId(delegateBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); + Task task = WorkflowUtils.getTaskByCurrentUser(delegateBo.getTaskId()); + if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -527,10 +513,9 @@ runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus()); runtimeService.deleteProcessInstance(task.getProcessInstanceId(), StrUtil.EMPTY); } - FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey()); - if (processHandler != null) { - processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.TERMINATION.getStatus(), false); - } + //娴佺▼缁堟鐩戝惉 + flowProcessEventHandler.processHandler(historicProcessInstance.getProcessDefinitionKey(), + historicProcessInstance.getBusinessKey(), BusinessStatusEnum.TERMINATION.getStatus(), false); return true; } catch (Exception e) { throw new ServiceException(e.getMessage()); @@ -544,7 +529,7 @@ */ @Override public boolean transferTask(TransmitBo transmitBo) { - Task task = QueryUtils.taskQuery().taskId(transmitBo.getTaskId()).taskCandidateOrAssigned(String.valueOf(LoginHelper.getUserId())).singleResult(); + Task task = WorkflowUtils.getTaskByCurrentUser(transmitBo.getTaskId()); if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -669,9 +654,9 @@ @Override @Transactional(rollbackFor = Exception.class) public String backProcess(BackProcessBo backProcessBo) { - TaskQuery query = QueryUtils.taskQuery(); String userId = String.valueOf(LoginHelper.getUserId()); - Task task = query.taskId(backProcessBo.getTaskId()).taskCandidateOrAssigned(userId).singleResult(); + Task task = WorkflowUtils.getTaskByCurrentUser(backProcessBo.getTaskId()); + if (ObjectUtil.isEmpty(task)) { throw new ServiceException(FlowConstant.MESSAGE_CURRENT_TASK_IS_NULL); } @@ -728,10 +713,8 @@ WfTaskBackNode wfTaskBackNode = wfTaskBackNodeService.getListByInstanceIdAndNodeId(task.getProcessInstanceId(), backProcessBo.getTargetActivityId()); if (ObjectUtil.isNotNull(wfTaskBackNode) && wfTaskBackNode.getOrderNo() == 0) { runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.BACK.getStatus()); - FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey()); - if (processHandler != null) { - processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.BACK.getStatus(), false); - } + flowProcessEventHandler.processHandler(processInstance.getProcessDefinitionKey(), + processInstance.getBusinessKey(), BusinessStatusEnum.BACK.getStatus(), false); } //鍒犻櫎椹冲洖鍚庣殑娴佺▼鑺傜偣 wfTaskBackNodeService.deleteBackTaskNode(processInstanceId, backProcessBo.getTargetActivityId()); @@ -781,6 +764,12 @@ return variableVoList; } + /** + * 鏌ヨ宸ヤ綔娴佷换鍔$敤鎴烽�夋嫨鍔犵浜哄憳 + * + * @param taskId 浠诲姟id + * @return + */ @Override @SuppressWarnings("unchecked") public String getTaskUserIdsByAddMultiInstance(String taskId) { -- Gitblit v1.9.3