feat(REQ-4586) - 调整检测下个节点内部的逻辑异常问题
This commit is contained in:
parent
78be7e5a45
commit
0a74e0c4cd
@ -80,12 +80,13 @@ public class NextActivityConfigCheckJobHandler extends AbstractJobHandler implem
|
||||
ListUtils.emptyIfNull(flowElements).stream()
|
||||
.filter(i -> i instanceof UserTask || i instanceof ReceiveTask || i instanceof ServiceTask)
|
||||
.findFirst().ifPresent(flowElement -> {
|
||||
log.info("NextActivityConfigCheckJobHandler 计算节点为:{}", flowElement.getId());
|
||||
log.info("NextActivityConfigCheckJobHandler, 实例 ID:{}, 计算节点为:{}", job.getJobHandlerConfiguration(), flowElement.getId());
|
||||
getApprovalMethod(flowElement).ifPresent(method -> {
|
||||
switch (method) {
|
||||
case autoPassed:
|
||||
case autoRejection:
|
||||
case bizSpecify:
|
||||
case nobody:
|
||||
break;
|
||||
default:
|
||||
List<Execution> executions = processEngineConfiguration.getRuntimeService().createExecutionQuery()
|
||||
@ -101,7 +102,7 @@ public class NextActivityConfigCheckJobHandler extends AbstractJobHandler implem
|
||||
});
|
||||
|
||||
// 审批候选人为空时的兜底
|
||||
emptyAssigneeHandle(assigners, (UserTask) flowElement, (DelegateExecution) executions.get(0));
|
||||
emptyAssigneeHandle(assigners, flowElement, (DelegateExecution) executions.get(0));
|
||||
break;
|
||||
}
|
||||
});
|
||||
@ -130,17 +131,17 @@ public class NextActivityConfigCheckJobHandler extends AbstractJobHandler implem
|
||||
* 计算节点的待审批人为空时, 执行模型配置中的审批人为空时的处理方式
|
||||
*
|
||||
* @param assigners 节点计算的待审批人集合, 可能为空
|
||||
* @param userTask 当前节点
|
||||
* @param flowElement 当前节点
|
||||
* @param execution 当前执行实例
|
||||
*/
|
||||
private void emptyAssigneeHandle(List<BpmnTaskDelegateAssigner> assigners, UserTask userTask,
|
||||
private void emptyAssigneeHandle(List<BpmnTaskDelegateAssigner> assigners, FlowElement flowElement,
|
||||
DelegateExecution execution) {
|
||||
// 审批人为空并且当前节点设置了自动跳过条件
|
||||
if (!CollectionUtils.isEmpty(assigners)) {
|
||||
return;
|
||||
}
|
||||
log.info("NextActivityConfigCheckJobHandler-当前节点id: [{}], name: [{}] 审批人为空, 将执行审批人为空的兜底配置!", userTask.getId(), userTask.getName());
|
||||
getApproverEmptyHandleType(userTask).ifPresent(type -> {
|
||||
log.info("NextActivityConfigCheckJobHandler-当前节点id: [{}], name: [{}] 审批人为空, 将执行审批人为空的兜底配置!", flowElement.getId(), flowElement.getName());
|
||||
getApproverEmptyHandleType(flowElement).ifPresent(type -> {
|
||||
log.info("NextActivityConfigCheckJobHandler-节点兜底的配置模式:[{}]", type.getType());
|
||||
switch (type) {
|
||||
case autoPassed:
|
||||
@ -148,7 +149,7 @@ public class NextActivityConfigCheckJobHandler extends AbstractJobHandler implem
|
||||
break;
|
||||
case transferToAdmin:
|
||||
try {
|
||||
assigners.addAll(approverSelect(ApproverEmptyHandleTypeEnum.transferToAdmin.getType(), userTask,
|
||||
assigners.addAll(approverSelect(ApproverEmptyHandleTypeEnum.transferToAdmin.getType(), flowElement,
|
||||
execution, true));
|
||||
if (CollectionUtils.isEmpty(assigners)) {
|
||||
throw new IllegalArgumentException("审批人为空后转交管理员仍然为空");
|
||||
@ -163,7 +164,7 @@ public class NextActivityConfigCheckJobHandler extends AbstractJobHandler implem
|
||||
break;
|
||||
case specifyAssignee:
|
||||
try {
|
||||
assigners.addAll(approverSelect(ApproverEmptyHandleTypeEnum.specifyAssignee.getType(), userTask,
|
||||
assigners.addAll(approverSelect(ApproverEmptyHandleTypeEnum.specifyAssignee.getType(), flowElement,
|
||||
execution, true));
|
||||
if (CollectionUtils.isEmpty(assigners)) {
|
||||
throw new IllegalArgumentException("审批人为空后转交指定人员仍然为空,可能被指定人员已离职");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user