From 810691b5df3d21ab1391ca57d317a2728db175ee Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: 星期六, 08 六月 2024 09:22:20 +0800 Subject: [PATCH] update 优化流程办理监听,优化示例说明 --- ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java | 9 +++++++-- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java | 7 ++++++- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/handler/FlowProcessEventHandler.java | 12 +++++++----- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java | 4 ++-- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java index 09c84bd..019ca82 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/event/ProcessTaskEvent.java @@ -18,9 +18,14 @@ private static final long serialVersionUID = 1L; /** - * 娴佺▼瀹氫箟key涓庢祦绋嬭妭鐐规爣璇�(鎷兼帴鏂瑰紡锛氭祦绋嬪畾涔塳ey_娴佺▼鑺傜偣) + * 娴佺▼瀹氫箟key */ - private String keyNode; + private String key; + + /** + * 瀹℃壒鑺傜偣key + */ + private String taskDefinitionKey; /** * 浠诲姟id diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/handler/FlowProcessEventHandler.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/handler/FlowProcessEventHandler.java index 17dba8c..69ae70a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/handler/FlowProcessEventHandler.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/handler/FlowProcessEventHandler.java @@ -34,13 +34,15 @@ /** * 鎵ц鍔炵悊浠诲姟鐩戝惉 * - * @param keyNode 娴佺▼瀹氫箟key涓庢祦绋嬭妭鐐规爣璇�(鎷兼帴鏂瑰紡锛氭祦绋嬪畾涔塳ey_娴佺▼鑺傜偣) - * @param taskId 浠诲姟id - * @param businessKey 涓氬姟id + * @param key 娴佺▼key + * @param taskDefinitionKey 瀹℃壒鑺傜偣key + * @param taskId 浠诲姟id + * @param businessKey 涓氬姟id */ - public void processTaskHandler(String keyNode, String taskId, String businessKey) { + public void processTaskHandler(String key, String taskDefinitionKey, String taskId, String businessKey) { ProcessTaskEvent processTaskEvent = new ProcessTaskEvent(); - processTaskEvent.setKeyNode(keyNode); + processTaskEvent.setKey(key); + processTaskEvent.setTaskDefinitionKey(taskDefinitionKey); processTaskEvent.setTaskId(taskId); processTaskEvent.setBusinessKey(businessKey); SpringUtils.context().publishEvent(processTaskEvent); 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 523a77c..32be130 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 @@ -184,8 +184,8 @@ } runtimeService.updateBusinessStatus(task.getProcessInstanceId(), BusinessStatusEnum.WAITING.getStatus()); //鍔炵悊鐩戝惉 - String keyNode = processInstance.getProcessDefinitionKey() + "_" + task.getTaskDefinitionKey(); - flowProcessEventHandler.processTaskHandler(keyNode, task.getId(), processInstance.getBusinessKey()); + flowProcessEventHandler.processTaskHandler(processInstance.getProcessDefinitionKey(), task.getTaskDefinitionKey(), + task.getId(), processInstance.getBusinessKey()); //鍔炵悊鎰忚 taskService.addComment(completeTaskBo.getTaskId(), task.getProcessInstanceId(), TaskStatusEnum.PASS.getStatus(), StringUtils.isBlank(completeTaskBo.getMessage()) ? "鍚屾剰" : completeTaskBo.getMessage()); //鍔炵悊浠诲姟 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 e437a56..13a1bb2 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 @@ -134,10 +134,15 @@ /** * 鎵ц鍔炵悊浠诲姟鐩戝惉 + * 绀轰緥锛氫篃鍙�氳繃 @EventListener(condition = "#processTaskEvent.key=='leave1'")杩涜鍒ゆ柇 + * 鍦ㄦ柟娉曚腑鍒ゆ柇娴佺▼鑺傜偣key + * if ("xxx".equals(processTaskEvent.getTaskDefinitionKey())) { + * //鎵ц涓氬姟閫昏緫 + * } * * @param processTaskEvent 鍙傛暟 */ - @EventListener(condition = "#processTaskEvent.keyNode=='leave1_Activity_14633hx'") + @EventListener(condition = "#processTaskEvent.key=='leave1' && #processTaskEvent.taskDefinitionKey=='Activity_14633hx'") public void processTaskHandler(ProcessTaskEvent processTaskEvent) { log.info("褰撳墠浠诲姟鎵ц浜唟}", processTaskEvent.toString()); TestLeave testLeave = baseMapper.selectById(Long.valueOf(processTaskEvent.getBusinessKey())); -- Gitblit v1.9.3