Commit d02e1e1d6be194345e61c65a84437f151f808169

Authored by YunaiV
1 parent 4d15396e

【代码评审】BPM:获取审批任务的记录列表

yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/definition/BpmProcessNodeProgressEnum.java
... ... @@ -29,7 +29,7 @@ public enum BpmProcessNodeProgressEnum {
29 29 USER_TASK_REJECT(31, "审批不通过"), // 审批节点
30 30 USER_TASK_RETURN(32, "已退回"), // 审批节点
31 31 USER_TASK_CANCEL(34, "已取消"), // 审批节点
32   - // 40 ~ 50 一般节点的接榫状态
  32 + // 40 ~ 50 一般节点的接榫状态 // TODO @jason:接榫 是啥呀?
33 33 FINISHED(41, "已结束"), // 一般节点的节点的结束状态
34 34 SKIP(42, "跳过"); // 未执行,跳过的节点
35 35  
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/task/vo/instance/BpmProcessInstanceProgressRespVO.java
... ... @@ -32,6 +32,7 @@ public class BpmProcessInstanceProgressRespVO {
32 32 @Schema(description = "节点类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
33 33 private Integer nodeType; // 参见 BpmSimpleModelNodeType 枚举
34 34  
  35 + // TODO @jason:可以复用 BpmTaskStatusEnum 么?非必要不加太多状态枚举哈
35 36 @Schema(description = "节点状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
36 37 private Integer status; // 参见 BpmProcessNodeProgressEnum 枚举
37 38  
... ... @@ -42,6 +43,8 @@ public class BpmProcessInstanceProgressRespVO {
42 43  
43 44 @Schema(description = "用户列表")
44 45 private List<User> userList;
  46 +
  47 + // TODO @jason:如果条件信息,怎么展示哈?
45 48 @Schema(description = "分支节点")
46 49 private List<ProcessNodeProgress> branchNodes; // 有且仅有条件、并行、包容节点才会有分支节点
47 50  
... ... @@ -62,6 +65,8 @@ public class BpmProcessInstanceProgressRespVO {
62 65 @Schema(description = "用户头像", example = "芋艿")
63 66 private String avatar;
64 67  
  68 + // TODO @jason:是不是把 processed 和 userTaskStatus 合并?
  69 +
65 70 @Schema(description = "是否已处理", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
66 71 private Boolean processed;
67 72  
... ...
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java
... ... @@ -654,10 +654,11 @@ public class SimpleModelUtils {
654 654 }
655 655 buildNodeProgress(processInstance, simpleModel, nodeProgresses, historicActivityList, activityInstanceMap, returnNodePosition);
656 656 // 如果有“子”节点,则递归处理子节点
  657 + // TODO @jason:需要根据条件,是否继续递归。例如说,一共有 3 个 node;第 2 个 node 审批不通过了。那么第 3 个 node 就不用了。(微信讨论下)
657 658 traverseNodeToBuildNodeProgress(processInstance, simpleModel.getChildNode(), historicActivityList, activityInstanceMap, nodeProgresses, returnNodePosition);
658 659 }
659 660  
660   - // TODO @芋艿:重点在 review 下
  661 + // TODO @芋艿,@jason:可重构优化的点,SimpleModelUtils 负责提供一个遍历的方法,有个 Function 进行每个节点的处理。目的是,把逻辑拿回到 Service 里面;或者说,减少 Utils 去调用 Service
661 662 private static void buildNodeProgress(HistoricProcessInstance processInstance, BpmSimpleModelNodeVO node, List<ProcessNodeProgress> nodeProgresses,
662 663 List<HistoricActivityInstance> historicActivityList, Map<String, HistoricActivityInstance> activityInstanceMap, List<Integer> returnNodePosition) {
663 664 BpmSimpleModelNodeType nodeType = BpmSimpleModelNodeType.valueOf(node.getType());
... ... @@ -674,6 +675,7 @@ public class SimpleModelUtils {
674 675 // 2. 设置节点状态
675 676 nodeProgress.setStatus(activityService.getNotRunActivityProgressStatus(processInstanceStatus));
676 677 // 3. 抄送节点, 审批节点设置用户列表
  678 + // TODO @芋艿:抄送节点,要不要跳过(不展示)
677 679 if (COPY_NODE.getType().equals(node.getType()) ||
678 680 (APPROVE_NODE.getType().equals(node.getType()) && USER.getType().equals(node.getApproveType()))) {
679 681 nodeProgress.setUserList(activityService.getNotRunActivityUserList(processInstance.getId()
... ... @@ -707,6 +709,7 @@ public class SimpleModelUtils {
707 709 }
708 710 break;
709 711 }
  712 + // TODO @芋艿:抄送节点,要不要跳过(不展示)
710 713 case COPY_NODE: { // 抄送节点
711 714 // 1. 设置节点的状态
712 715 nodeProgress.setStatus(activityService.getHistoricActivityProgressStatus(historicActivity, false, historicActivityList));
... ...