Commit e9a3773b7275ff60e03860f1dadd934629555620

Authored by YunaiV
1 parent 04fc7404

【代码评审】BPM:办理人的逻辑

yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/task/BpmTaskRespVO.java
... ... @@ -85,8 +85,8 @@ public class BpmTaskRespVO {
85 85 @Schema(description = "是否填写审批意见", example = "false")
86 86 private Boolean reasonRequire;
87 87  
88   - @Schema(description = "节点类型", example = "10") // 只有Simple设计器的场景下才会使用此字段
89   - private Integer nodeType;
  88 + @Schema(description = "节点类型", example = "10")
  89 + private Integer nodeType; // 参见 BpmSimpleModelNodeTypeEnum 枚举。
90 90  
91 91 @Data
92 92 @Schema(description = "流程实例")
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/enums/BpmnModelConstants.java
1 1 package cn.iocoder.yudao.module.bpm.framework.flowable.core.enums;
2 2  
  3 +import cn.iocoder.yudao.module.bpm.enums.definition.BpmModelTypeEnum;
  4 +
3 5 /**
4 6 * BPMN XML 常量信息
5 7 *
... ... @@ -131,6 +133,8 @@ public interface BpmnModelConstants {
131 133  
132 134 /**
133 135 * 节点类型
  136 + *
  137 + * 目前只有 {@link BpmModelTypeEnum#SIMPLE} 的 UserTask 节点会设置该属性,用于区分是审批节点、还是办理节点
134 138 */
135 139 String NODE_TYPE = "nodeType";
136 140  
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceServiceImpl.java
... ... @@ -5,6 +5,7 @@ import cn.hutool.core.collection.ListUtil;
5 5 import cn.hutool.core.date.DateUtil;
6 6 import cn.hutool.core.lang.Assert;
7 7 import cn.hutool.core.util.ArrayUtil;
  8 +import cn.hutool.core.util.ObjUtil;
8 9 import cn.hutool.core.util.ObjectUtil;
9 10 import cn.hutool.core.util.StrUtil;
10 11 import cn.iocoder.yudao.framework.common.pojo.PageResult;
... ... @@ -326,8 +327,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
326 327 ActivityNode activityNode = new ActivityNode().setId(task.getTaskDefinitionKey()).setName(task.getName())
327 328 .setNodeType(START_USER_NODE_ID.equals(task.getTaskDefinitionKey())
328 329 ? BpmSimpleModelNodeTypeEnum.START_USER_NODE.getType()
329   - : ObjectUtil.isNull(parseNodeType(flowNode)) ?
330   - BpmSimpleModelNodeTypeEnum.APPROVE_NODE.getType() : parseNodeType(flowNode))
  330 + : ObjUtil.defaultIfNull(parseNodeType(flowNode), // 目的:解决“办理节点”的识别
  331 + BpmSimpleModelNodeTypeEnum.APPROVE_NODE.getType()))
331 332 .setStatus(FlowableUtils.getTaskStatus(task))
332 333 .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode))
333 334 .setStartTime(DateUtils.of(task.getCreateTime())).setEndTime(DateUtils.of(task.getEndTime()))
... ... @@ -404,8 +405,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService
404 405 HistoricActivityInstance firstActivity = CollUtil.getFirst(taskActivities); // 取第一个任务,会签/或签的任务,开始时间相同
405 406 ActivityNode activityNode = new ActivityNode().setId(firstActivity.getActivityId())
406 407 .setName(firstActivity.getActivityName())
407   - .setNodeType(ObjectUtil.isNull(parseNodeType(flowNode)) ?
408   - BpmSimpleModelNodeTypeEnum.APPROVE_NODE.getType() : parseNodeType(flowNode))
  408 + .setNodeType(ObjUtil.defaultIfNull(parseNodeType(flowNode), // 目的:解决“办理节点”的识别
  409 + BpmSimpleModelNodeTypeEnum.APPROVE_NODE.getType()))
409 410 .setStatus(BpmTaskStatusEnum.RUNNING.getStatus())
410 411 .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode))
411 412 .setStartTime(DateUtils.of(CollUtil.getFirst(taskActivities).getStartTime()))
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
... ... @@ -171,9 +171,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
171 171 }
172 172  
173 173 return BpmTaskConvert.INSTANCE.buildTodoTask(todoTask, childrenTasks, buttonsSetting, taskForm)
174   - .setSignEnable(signEnable)
175   - .setReasonRequire(reasonRequire)
176   - .setNodeType(nodeType);
  174 + .setNodeType(nodeType).setSignEnable(signEnable).setReasonRequire(reasonRequire);
177 175 }
178 176  
179 177 @Override
... ...