Commit 5519fdcd4cbc67c0c458de801b727bf06ebf2fbf
1 parent
234df7bd
【代码评审】BPM:review 快搭相关实现
Showing
6 changed files
with
11 additions
and
8 deletions
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmCommentTypeEnum.java
| @@ -22,6 +22,7 @@ public enum BpmCommentTypeEnum { | @@ -22,6 +22,7 @@ public enum BpmCommentTypeEnum { | ||
| 22 | TRANSFER("7", "转派", "[{}]将任务转派给[{}],转派理由为:{}"), | 22 | TRANSFER("7", "转派", "[{}]将任务转派给[{}],转派理由为:{}"), |
| 23 | ADD_SIGN("8", "加签", "[{}]{}给了[{}],理由为:{}"), | 23 | ADD_SIGN("8", "加签", "[{}]{}给了[{}],理由为:{}"), |
| 24 | SUB_SIGN("9", "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"), | 24 | SUB_SIGN("9", "减签", "[{}]操作了【减签】,审批人[{}]的任务被取消"), |
| 25 | + // TODO @芋艿:这个枚举状态,需要关注下! | ||
| 25 | REJECT_BY_ADD_SIGN_TASK_REJECT("10", "不通过","系统自动不通过,原因是:加签任务不通过") | 26 | REJECT_BY_ADD_SIGN_TASK_REJECT("10", "不通过","系统自动不通过,原因是:加签任务不通过") |
| 26 | ; | 27 | ; |
| 27 | 28 |
yudao-module-bpm/yudao-module-bpm-api/src/main/java/cn/iocoder/yudao/module/bpm/enums/task/BpmDeleteReasonEnum.java
| @@ -22,6 +22,7 @@ public enum BpmDeleteReasonEnum { | @@ -22,6 +22,7 @@ public enum BpmDeleteReasonEnum { | ||
| 22 | // ========== 流程任务的独有原因 ========== | 22 | // ========== 流程任务的独有原因 ========== |
| 23 | 23 | ||
| 24 | CANCEL_BY_SYSTEM("系统自动取消"), // 场景:非常多,比如说:1)多任务审批已经满足条件,无需审批该任务;2)流程实例被取消,无需审批该任务;等等 | 24 | CANCEL_BY_SYSTEM("系统自动取消"), // 场景:非常多,比如说:1)多任务审批已经满足条件,无需审批该任务;2)流程实例被取消,无需审批该任务;等等 |
| 25 | + // TODO @芋艿:这个枚举状态,需要关注下! | ||
| 25 | AUTO_REJECT_BY_ADD_SIGN_REJECT("系统自动拒绝,原因:加签任务被拒绝") // 加签任务审批不通过,导致任务不通过 | 26 | AUTO_REJECT_BY_ADD_SIGN_REJECT("系统自动拒绝,原因:加签任务被拒绝") // 加签任务审批不通过,导致任务不通过 |
| 26 | ; | 27 | ; |
| 27 | 28 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java
| @@ -56,20 +56,20 @@ public class BpmSimpleModelNodeVO { | @@ -56,20 +56,20 @@ public class BpmSimpleModelNodeVO { | ||
| 56 | 56 | ||
| 57 | @Schema(description = "候选人策略", example = "30") | 57 | @Schema(description = "候选人策略", example = "30") |
| 58 | @InEnum(BpmTaskCandidateStrategyEnum.class) | 58 | @InEnum(BpmTaskCandidateStrategyEnum.class) |
| 59 | - private Integer candidateStrategy; // 用于审批,抄送节点 | 59 | + private Integer candidateStrategy; // 用于审批,抄送节点 |
| 60 | 60 | ||
| 61 | @Schema(description = "候选人参数") | 61 | @Schema(description = "候选人参数") |
| 62 | - private String candidateParam; // 用于审批,抄送节点 | 62 | + private String candidateParam; // 用于审批,抄送节点 |
| 63 | 63 | ||
| 64 | @Schema(description = "多人审批方式", example = "1") | 64 | @Schema(description = "多人审批方式", example = "1") |
| 65 | - @InEnum(BpmApproveMethodEnum.class) // 用于审批节点 | ||
| 66 | - private Integer approveMethod; | 65 | + @InEnum(BpmApproveMethodEnum.class) |
| 66 | + private Integer approveMethod; // 用于审批节点 | ||
| 67 | 67 | ||
| 68 | @Schema(description = "表单权限", example = "[]") | 68 | @Schema(description = "表单权限", example = "[]") |
| 69 | private List<Map<String, String>> fieldsPermission; | 69 | private List<Map<String, String>> fieldsPermission; |
| 70 | 70 | ||
| 71 | @Schema(description = "通过比例", example = "100") | 71 | @Schema(description = "通过比例", example = "100") |
| 72 | - private Integer approveRatio; // 通过比例 当多人审批方式为:多人会签(按通过比例) 需要设置 | 72 | + private Integer approveRatio; // 通过比例,当多人审批方式为:多人会签(按通过比例) 需要设置 |
| 73 | 73 | ||
| 74 | /** | 74 | /** |
| 75 | * 审批节点拒绝处理 | 75 | * 审批节点拒绝处理 |
| @@ -123,5 +123,4 @@ public class BpmSimpleModelNodeVO { | @@ -123,5 +123,4 @@ public class BpmSimpleModelNodeVO { | ||
| 123 | // TODO @芋艿:⑨ 超时配置;要支持指定时间点、指定时间间隔; | 123 | // TODO @芋艿:⑨ 超时配置;要支持指定时间点、指定时间间隔; |
| 124 | // TODO @芋艿:条件;建议可以固化的一些选项;然后有个表达式兜底;要支持 | 124 | // TODO @芋艿:条件;建议可以固化的一些选项;然后有个表达式兜底;要支持 |
| 125 | 125 | ||
| 126 | - | ||
| 127 | } | 126 | } |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/listener/BpmTaskEventListener.java
| @@ -54,6 +54,7 @@ public class BpmTaskEventListener extends AbstractFlowableEngineEventListener { | @@ -54,6 +54,7 @@ public class BpmTaskEventListener extends AbstractFlowableEngineEventListener { | ||
| 54 | 54 | ||
| 55 | @Override | 55 | @Override |
| 56 | protected void activityCancelled(FlowableActivityCancelledEvent event) { | 56 | protected void activityCancelled(FlowableActivityCancelledEvent event) { |
| 57 | + // TODO @jason:如果用户主动取消,可能需要考虑这个 | ||
| 57 | // @芋艿。 这里是不是就可以不要了, 取消的任务状态,在rejectTask 里面做了, 如果在 updateTaskStatusWhenCanceled 里面修改会报错。 | 58 | // @芋艿。 这里是不是就可以不要了, 取消的任务状态,在rejectTask 里面做了, 如果在 updateTaskStatusWhenCanceled 里面修改会报错。 |
| 58 | // List<HistoricActivityInstance> activityList = activityService.getHistoricActivityListByExecutionId(event.getExecutionId()); | 59 | // List<HistoricActivityInstance> activityList = activityService.getHistoricActivityListByExecutionId(event.getExecutionId()); |
| 59 | // if (CollUtil.isEmpty(activityList)) { | 60 | // if (CollUtil.isEmpty(activityList)) { |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmProcessInstanceCopyServiceImpl.java
| @@ -56,7 +56,6 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy | @@ -56,7 +56,6 @@ public class BpmProcessInstanceCopyServiceImpl implements BpmProcessInstanceCopy | ||
| 56 | createProcessInstanceCopy(userIds, processInstanceId, task.getId(), task.getName()); | 56 | createProcessInstanceCopy(userIds, processInstanceId, task.getId(), task.getName()); |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | - // TODO @芋艿:这里多加了一个 name; | ||
| 60 | @Override | 59 | @Override |
| 61 | public void createProcessInstanceCopy(Collection<Long> userIds, String processInstanceId, String taskId, String taskName) { | 60 | public void createProcessInstanceCopy(Collection<Long> userIds, String processInstanceId, String taskId, String taskName) { |
| 62 | // 1.1 校验流程实例存在 | 61 | // 1.1 校验流程实例存在 |
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/BpmTaskServiceImpl.java
| @@ -371,8 +371,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { | @@ -371,8 +371,10 @@ public class BpmTaskServiceImpl implements BpmTaskService { | ||
| 371 | } | 371 | } |
| 372 | 372 | ||
| 373 | // 4.2.1 更新其它正在运行的任务状态为取消。需要过滤掉当前任务和被加签的任务 | 373 | // 4.2.1 更新其它正在运行的任务状态为取消。需要过滤掉当前任务和被加签的任务 |
| 374 | + // TODO @jason:如果过滤掉被加签的任务,这些任务被对应的审批人看到是啥状态哈? | ||
| 374 | List<Task> taskList = getRunningTaskListByProcessInstanceId(instance.getProcessInstanceId(), false, null, null); | 375 | List<Task> taskList = getRunningTaskListByProcessInstanceId(instance.getProcessInstanceId(), false, null, null); |
| 375 | - updateTaskStatusWhenCanceled(CollectionUtils.filterList(taskList, item -> !item.getId().equals(task.getId()) && !item.getId().equals(task.getParentTaskId())), | 376 | + updateTaskStatusWhenCanceled( |
| 377 | + CollectionUtils.filterList(taskList, item -> !item.getId().equals(task.getId()) && !item.getId().equals(task.getParentTaskId())), | ||
| 376 | reqVO.getReason()); | 378 | reqVO.getReason()); |
| 377 | // 4.2.2 终止流程 | 379 | // 4.2.2 终止流程 |
| 378 | Set<String> activityIds = convertSet(taskList, Task::getTaskDefinitionKey); | 380 | Set<String> activityIds = convertSet(taskList, Task::getTaskDefinitionKey); |