From 4bfa5f712d529fbc8619350ce2b69f88eef5771e Mon Sep 17 00:00:00 2001 From: wangli <274027703@qq.com> Date: Sun, 18 Feb 2024 14:26:10 +0800 Subject: [PATCH] =?UTF-8?q?update=20-=20=E8=B0=83=E6=95=B4=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E7=B1=BB=E7=9A=84=E5=91=BD=E5=90=8D,=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E7=AE=80=E5=8D=95=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/core/common/utils/BpmTransformUtil.java | 2 +- .../listener/EngineExecutionStartListener.java | 4 ++-- .../service/impl/BpmnProcessInstanceServiceImpl.java | 3 ++- .../service/impl/BpmnProcessTaskServiceImpl.java | 7 +++++++ .../service/support/FlowNodeForecastService.java | 12 ++++++------ ...ava => BasedFixedPersonTaskAssigneeSelector.java} | 2 +- ...r.java => BasedIdentityTaskAssigneeSelector.java} | 6 +++--- ...nitiatorLeaderRecursionTaskAssigneeSelector.java} | 2 +- ...=> BasedInitiatorLeaderTaskAssigneeSelector.java} | 2 +- ...r.java => BasedPositionTaskAssigneeSelector.java} | 2 +- ...ector.java => BasedRoleTaskAssigneeSelector.java} | 2 +- ...java => TransferToAdminTaskAssigneeSelector.java} | 6 +++--- 12 files changed, 29 insertions(+), 21 deletions(-) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{FixedPersonTaskAssigneeSelector.java => BasedFixedPersonTaskAssigneeSelector.java} (93%) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{IdentityTaskAssigneeSelector.java => BasedIdentityTaskAssigneeSelector.java} (92%) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{InitiatorLeaderRecursionTaskAssigneeSelector.java => BasedInitiatorLeaderRecursionTaskAssigneeSelector.java} (91%) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{InitiatorLeaderTaskAssigneeSelector.java => BasedInitiatorLeaderTaskAssigneeSelector.java} (97%) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{PositionTaskAssigneeSelector.java => BasedPositionTaskAssigneeSelector.java} (96%) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{RoleTaskAssigneeSelector.java => BasedRoleTaskAssigneeSelector.java} (97%) rename workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/{AdminTaskAssigneeSelector.java => TransferToAdminTaskAssigneeSelector.java} (93%) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmTransformUtil.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmTransformUtil.java index d795131c3..86f58586a 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmTransformUtil.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/common/utils/BpmTransformUtil.java @@ -46,7 +46,7 @@ import static org.flowable.engine.delegate.BaseExecutionListener.EVENTNAME_END; import static org.flowable.engine.delegate.BaseExecutionListener.EVENTNAME_START; /** - * 该工具是以前枢智版本使用,候选迭代都通过 BpmnJsonConverterUtil 该工具操作 + * 该工具是以前枢智版本使用,后续迭代都通过 BpmnJsonConverterUtil 该工具操作 */ @Slf4j @Deprecated diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java index 3c8f9a1cc..49ba290bd 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/engine/listener/EngineExecutionStartListener.java @@ -221,8 +221,8 @@ public class EngineExecutionStartListener implements ExecutionListener { if (log.isDebugEnabled()) { log.debug("当前系统 Nacos 配置中开启了 mock: {}, 将使用 mock 方式查找审批人", mock); } - assigners.addAll(new MockTaskAssigneeSelector(assigneeMap, global, category).select(userTask, execution, - throwException)); + assigners.addAll(new MockTaskAssigneeSelector(assigneeMap, global, category) + .select(userTask, execution, throwException)); } else { selectors.forEach(select -> { if (select.support(type)) { diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java index 061a57730..9fa92b7a2 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessInstanceServiceImpl.java @@ -578,10 +578,11 @@ public class BpmnProcessInstanceServiceImpl implements BpmnProcessInstanceServic List flowElements = forecastService.performProcessForecasting(processInstanceId, instance); BpmnModel bpmnModel = repositoryService.getBpmnModel(instance.getProcessDefinitionId()); - List resultList = new ArrayList<>(flowElements.size() + 1); + List resultList = new ArrayList<>(flowElements.size()); flowElements.stream().filter(i -> (i instanceof UserTask || i instanceof ReceiveTask || i instanceof ServiceTask)) .forEach(i -> { ProcessNodeDetailVO node = new ProcessNodeDetailVO(); + // 每个节点设置的按钮配置 getButtonConfig(bpmnModel.getMainProcess(), i.getId()).ifPresent(node::setButtonConf); if (i instanceof UserTask) { UserTask userTask = (UserTask) i; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java index fef45d947..f20c11ed0 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmnProcessTaskServiceImpl.java @@ -278,6 +278,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { } @Override + @Transactional(rollbackFor = Exception.class) public void approveTask(BpmnTaskAuditDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); commandExecutor.execute(new CustomApproveTaskCmd(dto.getTaskId(), dto.getAdvice(), dto.getAttachmentList(), @@ -285,6 +286,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { } @Override + @Transactional(rollbackFor = Exception.class) public void rejectTask(BpmnTaskAuditDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); commandExecutor.execute(new CustomRejectionTaskCmd(dto.getTaskId(), dto.getAdvice(), dto.getAttachmentList(), @@ -453,6 +455,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { @Override + @Transactional(rollbackFor = Exception.class) public void transferTask(BpmnTaskTransferDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); commandExecutor.execute(new CustomTransferUserTaskCmd(dto.getTaskId(), @@ -461,6 +464,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { @Override + @Transactional(rollbackFor = Exception.class) public void commentTask(BpmnTaskCommentDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); commandExecutor.execute(new CustomCommentTaskCmd(dto.getProcessInstanceId(), @@ -480,6 +484,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { } @Override + @Transactional(rollbackFor = Exception.class) public void countersignTask(BpmnTaskCountersignDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); commandExecutor.execute(new CustomCountersignUserTaskCmd(BpmnCountersignTypeEnum.valueOfType(dto.getCountersignType()), dto.getTaskId(), @@ -527,6 +532,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { } @Override + @Transactional(rollbackFor = Exception.class) public String createRobotTask(BpmnRobotTaskCreateDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); return commandExecutor.execute(new CustomCreateDummyTaskCmd(dto.getProcessInstanceId(), @@ -535,6 +541,7 @@ public class BpmnProcessTaskServiceImpl implements BpmnProcessTaskService { } @Override + @Transactional(rollbackFor = Exception.class) public void completeRobotTask(BpmnRobotTaskCompleteDTO dto) { CommandExecutor commandExecutor = processEngineConfiguration.getCommandExecutor(); commandExecutor.execute(new CustomCompleteDummyTaskCmd(dto.getProcessInstanceId(), dto.getTaskId(), diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/support/FlowNodeForecastService.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/support/FlowNodeForecastService.java index 982e3ae35..dded5fc08 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/support/FlowNodeForecastService.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/support/FlowNodeForecastService.java @@ -121,17 +121,17 @@ public class FlowNodeForecastService implements InitializingBean { BpmnModel bpmnModel = repositoryService.getBpmnModel(instance.getProcessDefinitionId()); // 保持推测出来的节点执行顺序的容器 - List orderNodes = new ArrayList<>(); + List orderedNodes = new ArrayList<>(); // 流程定义中所有的FlowElement Collection flowElements = bpmnModel.getMainProcess().getFlowElements(); // 开始节点 findStartNode(flowElements).ifPresent(startNode -> { - addOrderFlowNodes(orderNodes, startNode); + addOrderFlowNodes(orderedNodes, startNode); }); - startForecasting(orderNodes, instance); - return orderNodes; + startForecasting(orderedNodes, instance); + return orderedNodes; } private void startForecasting(List orderNodes, ProcessInstance instance) { @@ -156,8 +156,8 @@ public class FlowNodeForecastService implements InitializingBean { */ private Optional findStartNode(Collection flowElements) { return Optional.ofNullable(flowElements.stream().filter(StartEvent.class::isInstance).findFirst() - .map(StartEvent.class::cast).orElseThrow(() -> new IllegalArgumentException("非法的参数, 正确的流程定义一定有一个 " + - "StartEvent 节点"))); + .map(StartEvent.class::cast) + .orElseThrow(() -> new IllegalArgumentException("非法的参数, 正确的流程定义一定有一个 StartEvent 节点"))); } diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/FixedPersonTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedFixedPersonTaskAssigneeSelector.java similarity index 93% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/FixedPersonTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedFixedPersonTaskAssigneeSelector.java index 7b6e6e159..152b62298 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/FixedPersonTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedFixedPersonTaskAssigneeSelector.java @@ -18,7 +18,7 @@ import java.util.List; * @since 2023/11/18 22:56 */ @Component -public class FixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class BasedFixedPersonTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Override public String getType() { return ApproverSpecifyEnum.fixedPerson.getType(); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityTaskAssigneeSelector.java similarity index 92% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityTaskAssigneeSelector.java index 82bc4008a..e990c487c 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/IdentityTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedIdentityTaskAssigneeSelector.java @@ -26,7 +26,7 @@ import java.util.stream.Collectors; */ @Slf4j @Component -public class IdentityTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class BasedIdentityTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Autowired private FlowSupportApi flowSupportApi; @@ -61,8 +61,8 @@ public class IdentityTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelect .build(); List flowTaskAssigners = - parseApiResult(() -> flowSupportApi.listTaskAssignerByIdentity(req), "审批节点: " + userTask.getId() + "," + - " 通过身份查询审批人", req); + parseApiResult(() -> flowSupportApi.listTaskAssignerByIdentity(req), + "审批节点: " + userTask.getId() + ", 通过身份查询审批人", req); if (CollUtil.isEmpty(flowTaskAssigners)) { return super.invokeService(userTask, execution, scopeDto); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderRecursionTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorLeaderRecursionTaskAssigneeSelector.java similarity index 91% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderRecursionTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorLeaderRecursionTaskAssigneeSelector.java index 7d701857f..ab0a3b18a 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderRecursionTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorLeaderRecursionTaskAssigneeSelector.java @@ -20,7 +20,7 @@ import static cn.axzo.workflow.core.common.code.FlowableEngineRespCode.ENGINE_US * @since 2023/11/16 11:42 */ @Component -public class InitiatorLeaderRecursionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class BasedInitiatorLeaderRecursionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Override public String getType() { return ApproverSpecifyEnum.initiatorLeaderRecursion.getType(); diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorLeaderTaskAssigneeSelector.java similarity index 97% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorLeaderTaskAssigneeSelector.java index 0d71b0184..f31fd3854 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/InitiatorLeaderTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedInitiatorLeaderTaskAssigneeSelector.java @@ -30,7 +30,7 @@ import static cn.axzo.workflow.common.constant.BpmnConstants.INTERNAL_INITIATOR; */ @Slf4j @Component -public class InitiatorLeaderTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class BasedInitiatorLeaderTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Autowired private OrganizationalNodeUserApi organizationalNodeUserApi; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedPositionTaskAssigneeSelector.java similarity index 96% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedPositionTaskAssigneeSelector.java index ea6dba68f..47bf0b544 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/PositionTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedPositionTaskAssigneeSelector.java @@ -26,7 +26,7 @@ import java.util.stream.Collectors; */ @Slf4j @Component -public class PositionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class BasedPositionTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Autowired private OrganizationalNodeUserApi organizationalNodeUserApi; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java similarity index 97% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java index b1c40426e..14bf165f5 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/RoleTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/BasedRoleTaskAssigneeSelector.java @@ -27,7 +27,7 @@ import java.util.stream.Collectors; */ @Slf4j @Component -public class RoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class BasedRoleTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Autowired private TyrSaasRoleUserApi tyrSaasRoleUserApi; diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java similarity index 93% rename from workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java rename to workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java index 38bf53ebd..91f9d8cd1 100644 --- a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/AdminTaskAssigneeSelector.java +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/controller/delegate/TransferToAdminTaskAssigneeSelector.java @@ -27,7 +27,7 @@ import java.util.stream.Collectors; */ @Slf4j @Component -public class AdminTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { +public class TransferToAdminTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector { @Autowired private FlowSupportApi flowSupportApi; @@ -64,8 +64,8 @@ public class AdminTaskAssigneeSelector extends AbstractBpmnTaskAssigneeSelector } ListFlowTaskAssignerReq req = builder.build(); List flowTaskAssigners = - parseApiResult(() -> flowSupportApi.listTaskAssignerAdmin(req), "审批节点: " + userTask.getId() + ", " + - "通过管理员查询审批人", req); + parseApiResult(() -> flowSupportApi.listTaskAssignerAdmin(req), + "审批节点: " + userTask.getId() + ", 通过管理员查询审批人", req); if (CollUtil.isEmpty(flowTaskAssigners)) { return super.invokeService(userTask, execution, scopeDto);