diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowProcessEventHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowProcessEventHandler.java index a9015d122..4af2c4784 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowProcessEventHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowProcessEventHandler.java @@ -10,10 +10,11 @@ package org.dromara.workflow.flowable.strategy; public interface FlowProcessEventHandler { /** - * 执行办理任务监听 当状态为草稿,驳回,撤销时说明流程为申请人节点提交办理 + * 执行办理任务监听 * - * @param processInstanceId 流程实例id - * @param status 状态 + * @param businessKey 业务id + * @param status 状态 + * @param submit 当为true时为申请人节点办理 */ - void handleProcess(String processInstanceId, String status); + void handleProcess(String businessKey, String status, boolean submit); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowTaskEventHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowTaskEventHandler.java index 32ae62ba6..4cf9d8931 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowTaskEventHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/strategy/FlowTaskEventHandler.java @@ -13,7 +13,8 @@ public interface FlowTaskEventHandler { /** * 执行办理任务监听 * - * @param task 任务 + * @param task 任务 + * @param businessKey 业务id */ - void handleTask(Task task); + void handleTask(Task task, String businessKey); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomProcessHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomProcessHandler.java index b24ecdf35..dbb32aef8 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomProcessHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomProcessHandler.java @@ -18,7 +18,7 @@ public class TestCustomProcessHandler implements FlowProcessEventHandler { @Override - public void handleProcess(String processInstanceId, String status) { - log.info("流程实例ID:" + processInstanceId + ",状态:" + status); + public void handleProcess(String businessKey, String status, boolean submit) { + log.info("业务ID:" + businessKey + ",状态:" + status); } } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomTaskHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomTaskHandler.java index 0dd2d6f79..478328391 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomTaskHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/TestCustomTaskHandler.java @@ -18,7 +18,7 @@ import org.springframework.stereotype.Component; public class TestCustomTaskHandler implements FlowTaskEventHandler { @Override - public void handleTask(Task task) { - log.info("任务名称:" + task.getName()); + public void handleTask(Task task, String businessKey) { + log.info("任务名称:" + task.getName() + ",业务ID:" + businessKey); } } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index 53ee343b9..829dd9589 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -371,7 +371,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService runtimeService.deleteProcessInstance(processInvalidBo.getProcessInstanceId(), deleteReason); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey()); if (processHandler != null) { - processHandler.handleProcess(historicProcessInstance.getId(), BusinessStatusEnum.INVALID.getStatus()); + processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.INVALID.getStatus(), false); } return true; } catch (Exception e) { @@ -504,7 +504,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.CANCEL.getStatus()); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey()); if (processHandler != null) { - processHandler.handleProcess(processInstanceId, BusinessStatusEnum.CANCEL.getStatus()); + processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.CANCEL.getStatus(), false); } return true; } catch (Exception e) { 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 84fd56111..5d85ed580 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 @@ -154,14 +154,14 @@ public class ActTaskServiceImpl implements IActTaskService { String businessStatus = WorkflowUtils.getBusinessStatus(task.getProcessInstanceId()); if (BusinessStatusEnum.DRAFT.getStatus().equals(businessStatus) || BusinessStatusEnum.BACK.getStatus().equals(businessStatus) || BusinessStatusEnum.CANCEL.getStatus().equals(businessStatus)) { if (processHandler != null) { - processHandler.handleProcess(processInstance.getId(), businessStatus); + processHandler.handleProcess(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); + taskHandler.handleTask(task, processInstance.getBusinessKey()); } //办理意见 taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), TaskStatusEnum.PASS.getStatus(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "同意" : completeTaskBo.getMessage()); @@ -176,7 +176,7 @@ public class ActTaskServiceImpl implements IActTaskService { UpdateBusinessStatusCmd updateBusinessStatusCmd = new UpdateBusinessStatusCmd(task.getProcessInstanceId(), BusinessStatusEnum.FINISH.getStatus()); managementService.executeCommand(updateBusinessStatusCmd); if (processHandler != null) { - processHandler.handleProcess(processInstance.getId(), BusinessStatusEnum.FINISH.getStatus()); + processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.FINISH.getStatus(), false); } } else { sendMessage(list, processInstance.getName(), completeTaskBo.getMessageType(), null); @@ -443,7 +443,7 @@ public class ActTaskServiceImpl implements IActTaskService { runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.TERMINATION.getStatus()); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(historicProcessInstance.getProcessDefinitionKey()); if (processHandler != null) { - processHandler.handleProcess(historicProcessInstance.getId(), BusinessStatusEnum.TERMINATION.getStatus()); + processHandler.handleProcess(historicProcessInstance.getBusinessKey(), BusinessStatusEnum.TERMINATION.getStatus(), false); } return true; } catch (Exception e) { @@ -616,7 +616,7 @@ public class ActTaskServiceImpl implements IActTaskService { runtimeService.updateBusinessStatus(processInstanceId, BusinessStatusEnum.BACK.getStatus()); FlowProcessEventHandler processHandler = flowEventStrategy.getProcessHandler(processInstance.getProcessDefinitionKey()); if (processHandler != null) { - processHandler.handleProcess(processInstanceId, BusinessStatusEnum.BACK.getStatus()); + processHandler.handleProcess(processInstance.getBusinessKey(), BusinessStatusEnum.BACK.getStatus(), false); } } catch (Exception e) { throw new ServiceException(e.getMessage());