From 60fa183f77d4bb5a50c5369ec79f0b9ec5faeb8d Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Fri, 22 Aug 2025 10:55:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-4418)=20-=20=E5=A2=9E=E5=8A=A0=20Start?= =?UTF-8?q?er=20=E4=B8=AD=EF=BC=8C=E5=AE=9E=E4=BE=8B=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=99=A8=E7=9A=84=E6=8A=BD=E8=B1=A1=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/feign/bpmn/ProcessActivityApi.java | 1 + .../AbstractProcessInstanceEventHandler.java | 26 +++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java index 75ba4ccd9..79ee6bd16 100644 --- a/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java +++ b/workflow-engine-api/src/main/java/cn/axzo/workflow/client/feign/bpmn/ProcessActivityApi.java @@ -37,6 +37,7 @@ public interface ProcessActivityApi { */ @Deprecated @GetMapping("/api/process/activity/trigger") + @Manageable @InvokeMode(SYNC) CommonResponse trigger(@NotBlank(message = "触发 ID 不能为空") @RequestParam String triggerId); diff --git a/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/handler/AbstractProcessInstanceEventHandler.java b/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/handler/AbstractProcessInstanceEventHandler.java index 8b5120e7a..2718fdd2e 100644 --- a/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/handler/AbstractProcessInstanceEventHandler.java +++ b/workflow-engine-spring-boot-starter/src/main/java/cn/axzo/workflow/starter/handler/AbstractProcessInstanceEventHandler.java @@ -15,24 +15,40 @@ public abstract class AbstractProcessInstanceEventHandler implements ProcessInst @Override public void onCompleted(ProcessInstanceDTO dto) { - onFinished(dto, BpmnProcessInstanceResultEnum.APPROVED); + onFailed(dto, BpmnProcessInstanceResultEnum.APPROVED); } @Override public void onCancelled(ProcessInstanceDTO dto) { - onFinished(dto, BpmnProcessInstanceResultEnum.CANCELLED); + onPassed(dto, BpmnProcessInstanceResultEnum.CANCELLED); } @Override public void onRejected(ProcessInstanceDTO dto) { - onFinished(dto, BpmnProcessInstanceResultEnum.REJECTED); + onPassed(dto, BpmnProcessInstanceResultEnum.REJECTED); } @Override public void onAborted(ProcessInstanceDTO dto) { - onFinished(dto, BpmnProcessInstanceResultEnum.ABORTED); + onPassed(dto, BpmnProcessInstanceResultEnum.ABORTED); } - public abstract void onFinished(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum); + /** + * 审批通过的回调, 该接口只处理审批通过的情况 + * + * @param dto + * @param resultEnum 审批终态状态枚举 + */ + public abstract void onPassed(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum); + + /** + * 审批不通过的回调,该接口会将 撤销、驳回、中止 事件归拢到一起处理 + *

+ * 如业务需要,可以在实现类中根据不同的 resultEnum 进行区分处理,或者实现类直接实现 {@link ProcessInstanceEventHandler} 接口 + * + * @param dto + * @param resultEnum + */ + public abstract void onFailed(ProcessInstanceDTO dto, BpmnProcessInstanceResultEnum resultEnum); }