From 5217bd6a1ff2489fb4d7b60be8ec006469f54c71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 22 May 2025 17:46:08 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=B7=A5?= =?UTF-8?q?=E4=BD=9C=E6=B5=81=E5=88=9B=E5=BB=BA=E4=BA=8B=E4=BB=B6=20?= =?UTF-8?q?=E5=B0=86=E7=8A=B6=E6=80=81=E4=BA=A4=E7=BB=99=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E6=96=B9=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/api/event/ProcessCreateTaskEvent.java | 5 +++++ .../dromara/workflow/handler/FlowProcessEventHandler.java | 1 + .../dromara/workflow/listener/WorkflowGlobalListener.java | 2 +- .../workflow/service/impl/TestLeaveServiceImpl.java | 8 +++++--- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java b/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java index d2db6d55..68216801 100644 --- a/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java +++ b/ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/event/ProcessCreateTaskEvent.java @@ -54,6 +54,11 @@ public class ProcessCreateTaskEvent extends RemoteApplicationEvent { */ private String businessId; + /** + * 流程状态 + */ + private String status; + public ProcessCreateTaskEvent() { super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null)); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java index a645ec1a..b02e32b4 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java @@ -68,6 +68,7 @@ public class FlowProcessEventHandler { processCreateTaskEvent.setNodeCode(instance.getNodeCode()); processCreateTaskEvent.setNodeName(instance.getNodeName()); processCreateTaskEvent.setTaskId(taskId); + processCreateTaskEvent.setStatus(instance.getFlowStatus()); SpringUtils.context().publishEvent(processCreateTaskEvent); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index e36bccc9..2da74b25 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -52,7 +52,7 @@ public class WorkflowGlobalListener implements GlobalListener { Instance instance = listenerVariable.getInstance(); Definition definition = listenerVariable.getDefinition(); Task task = listenerVariable.getTask(); - if (task != null && BusinessStatusEnum.WAITING.getStatus().equals(instance.getFlowStatus())) { + if (task != null) { // 判断流程状态(发布审批中事件) flowProcessEventHandler.processCreateTaskHandler(definition.getFlowCode(), instance, task.getId()); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java index fad73f6e..80f478a3 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java @@ -180,9 +180,11 @@ public class TestLeaveServiceImpl implements ITestLeaveService { public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) { TenantHelper.dynamic(processCreateTaskEvent.getTenantId(), () -> { log.info("当前任务创建了{}", processCreateTaskEvent.toString()); - TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId())); - testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); - baseMapper.updateById(testLeave); + if (BusinessStatusEnum.WAITING.getStatus().equals(processCreateTaskEvent.getStatus())) { + TestLeave testLeave = baseMapper.selectById(Long.valueOf(processCreateTaskEvent.getBusinessId())); + testLeave.setStatus(BusinessStatusEnum.WAITING.getStatus()); + baseMapper.updateById(testLeave); + } }); }