Commit e9a3773b7275ff60e03860f1dadd934629555620
1 parent
04fc7404
【代码评审】BPM:办理人的逻辑
Showing
4 changed files
with
12 additions
and
9 deletions
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,8 +85,8 @@ public class BpmTaskRespVO { | ||
| 85 | @Schema(description = "是否填写审批意见", example = "false") | 85 | @Schema(description = "是否填写审批意见", example = "false") |
| 86 | private Boolean reasonRequire; | 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 | @Data | 91 | @Data |
| 92 | @Schema(description = "流程实例") | 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 | package cn.iocoder.yudao.module.bpm.framework.flowable.core.enums; | 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 | * BPMN XML 常量信息 | 6 | * BPMN XML 常量信息 |
| 5 | * | 7 | * |
| @@ -131,6 +133,8 @@ public interface BpmnModelConstants { | @@ -131,6 +133,8 @@ public interface BpmnModelConstants { | ||
| 131 | 133 | ||
| 132 | /** | 134 | /** |
| 133 | * 节点类型 | 135 | * 节点类型 |
| 136 | + * | ||
| 137 | + * 目前只有 {@link BpmModelTypeEnum#SIMPLE} 的 UserTask 节点会设置该属性,用于区分是审批节点、还是办理节点 | ||
| 134 | */ | 138 | */ |
| 135 | String NODE_TYPE = "nodeType"; | 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,6 +5,7 @@ import cn.hutool.core.collection.ListUtil; | ||
| 5 | import cn.hutool.core.date.DateUtil; | 5 | import cn.hutool.core.date.DateUtil; |
| 6 | import cn.hutool.core.lang.Assert; | 6 | import cn.hutool.core.lang.Assert; |
| 7 | import cn.hutool.core.util.ArrayUtil; | 7 | import cn.hutool.core.util.ArrayUtil; |
| 8 | +import cn.hutool.core.util.ObjUtil; | ||
| 8 | import cn.hutool.core.util.ObjectUtil; | 9 | import cn.hutool.core.util.ObjectUtil; |
| 9 | import cn.hutool.core.util.StrUtil; | 10 | import cn.hutool.core.util.StrUtil; |
| 10 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 11 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| @@ -326,8 +327,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | @@ -326,8 +327,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | ||
| 326 | ActivityNode activityNode = new ActivityNode().setId(task.getTaskDefinitionKey()).setName(task.getName()) | 327 | ActivityNode activityNode = new ActivityNode().setId(task.getTaskDefinitionKey()).setName(task.getName()) |
| 327 | .setNodeType(START_USER_NODE_ID.equals(task.getTaskDefinitionKey()) | 328 | .setNodeType(START_USER_NODE_ID.equals(task.getTaskDefinitionKey()) |
| 328 | ? BpmSimpleModelNodeTypeEnum.START_USER_NODE.getType() | 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 | .setStatus(FlowableUtils.getTaskStatus(task)) | 332 | .setStatus(FlowableUtils.getTaskStatus(task)) |
| 332 | .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode)) | 333 | .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode)) |
| 333 | .setStartTime(DateUtils.of(task.getCreateTime())).setEndTime(DateUtils.of(task.getEndTime())) | 334 | .setStartTime(DateUtils.of(task.getCreateTime())).setEndTime(DateUtils.of(task.getEndTime())) |
| @@ -404,8 +405,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | @@ -404,8 +405,8 @@ public class BpmProcessInstanceServiceImpl implements BpmProcessInstanceService | ||
| 404 | HistoricActivityInstance firstActivity = CollUtil.getFirst(taskActivities); // 取第一个任务,会签/或签的任务,开始时间相同 | 405 | HistoricActivityInstance firstActivity = CollUtil.getFirst(taskActivities); // 取第一个任务,会签/或签的任务,开始时间相同 |
| 405 | ActivityNode activityNode = new ActivityNode().setId(firstActivity.getActivityId()) | 406 | ActivityNode activityNode = new ActivityNode().setId(firstActivity.getActivityId()) |
| 406 | .setName(firstActivity.getActivityName()) | 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 | .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()) | 410 | .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()) |
| 410 | .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode)) | 411 | .setCandidateStrategy(BpmnModelUtils.parseCandidateStrategy(flowNode)) |
| 411 | .setStartTime(DateUtils.of(CollUtil.getFirst(taskActivities).getStartTime())) | 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,9 +171,7 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | return BpmTaskConvert.INSTANCE.buildTodoTask(todoTask, childrenTasks, buttonsSetting, taskForm) | 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 | @Override | 177 | @Override |