Commit 808f23ec490e97a610bcd3b7ec1b721fcc237059

Authored by 芋道源码
Committed by Gitee
2 parents 8a8dc67d e548d445

!1204 BPM:更多设置-自动去重

Merge pull request !1204 from Lesan/feature/bpm-自动去重
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmAutoApproveType.java
@@ -15,10 +15,9 @@ import java.util.Arrays; @@ -15,10 +15,9 @@ import java.util.Arrays;
15 @AllArgsConstructor 15 @AllArgsConstructor
16 public enum BpmAutoApproveType implements IntArrayValuable { 16 public enum BpmAutoApproveType implements IntArrayValuable {
17 17
18 - // TODO @lesan:0、1、/2 会不会好理解一点哈。  
19 - NONE(1, "不自动通过"),  
20 - APPROVE_ALL(2, "仅审批一次,后续重复的审批节点均自动通过"),  
21 - APPROVE_SEQUENT(3, "仅针对连续审批的节点自动通过"); 18 + NONE(0, "不自动通过"),
  19 + APPROVE_ALL(1, "仅审批一次,后续重复的审批节点均自动通过"),
  20 + APPROVE_SEQUENT(2, "仅针对连续审批的节点自动通过");
22 21
23 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BpmAutoApproveType::getType).toArray(); 22 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BpmAutoApproveType::getType).toArray();
24 23
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
@@ -62,8 +62,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU @@ -62,8 +62,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
62 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*; 62 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
63 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*; 63 import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
64 import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_RETURN_FLAG; 64 import static cn.iocoder.yudao.module.bpm.framework.flowable.core.enums.BpmnVariableConstants.PROCESS_INSTANCE_VARIABLE_RETURN_FLAG;
65 -import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.parseReasonRequire;  
66 -import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.parseSignEnable; 65 +import static cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils.*;
67 66
68 /** 67 /**
69 * 流程任务实例 Service 实现类 68 * 流程任务实例 Service 实现类
@@ -1197,17 +1196,8 @@ public class BpmTaskServiceImpl implements BpmTaskService { @@ -1197,17 +1196,8 @@ public class BpmTaskServiceImpl implements BpmTaskService {
1197 log.error("[processTaskAssigned][taskId({}) 没有找到流程模型({})]", task.getId(), task.getProcessDefinitionId()); 1196 log.error("[processTaskAssigned][taskId({}) 没有找到流程模型({})]", task.getId(), task.getProcessDefinitionId());
1198 return; 1197 return;
1199 } 1198 }
1200 - // TODO @lesan:这里的逻辑,要不在 BpmnModelUtils 抽个方法???尽量收敛  
1201 - FlowNode taskElement = (FlowNode) BpmnModelUtils.getFlowElementById(bpmnModel, task.getTaskDefinitionKey());  
1202 - List<SequenceFlow> incomingFlows = taskElement.getIncomingFlows();  
1203 - List<String> sourceTaskIds = new ArrayList<>();  
1204 - // TODO @lesan:这种 CollUtil.isnotempty 简化  
1205 - if (incomingFlows != null && !incomingFlows.isEmpty()) {  
1206 - // TODO @lesan:这种,idea 一般会告警,可以处理掉哈。一切警告,皆是错误  
1207 - incomingFlows.forEach(flow -> {  
1208 - sourceTaskIds.add(flow.getSourceRef());  
1209 - });  
1210 - } 1199 + List<String> sourceTaskIds = getElementIncomingFlows(getFlowElementById(bpmnModel, task.getTaskDefinitionKey()))
  1200 + .stream().map(SequenceFlow::getSourceRef).toList();
1211 if (sameAssigneeQuery.taskDefinitionKeys(sourceTaskIds).count() > 0) { 1201 if (sameAssigneeQuery.taskDefinitionKeys(sourceTaskIds).count() > 0) {
1212 getSelf().approveTask(Long.valueOf(task.getAssignee()), new BpmTaskApproveReqVO().setId(task.getId()) 1202 getSelf().approveTask(Long.valueOf(task.getAssignee()), new BpmTaskApproveReqVO().setId(task.getId())
1213 .setReason(BpmAutoApproveType.APPROVE_SEQUENT.getName())); 1203 .setReason(BpmAutoApproveType.APPROVE_SEQUENT.getName()));