mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-26 01:01:52 +08:00
【代码评审】BPM:review 快搭的实现
This commit is contained in:
parent
1ec94e5bbc
commit
dff1ff90a7
@ -16,9 +16,9 @@ public enum BpmApproveMethodEnum {
|
|||||||
|
|
||||||
SINGLE_PERSON_APPROVE(1, "单人审批"),
|
SINGLE_PERSON_APPROVE(1, "单人审批"),
|
||||||
ALL_APPROVE(2, "多人会签(需所有审批人同意)"), // 会签
|
ALL_APPROVE(2, "多人会签(需所有审批人同意)"), // 会签
|
||||||
APPROVE_BY_RATIO(3, "多人会签(按比例投票)"),
|
APPROVE_BY_RATIO(3, "多人会签(按比例投票)"), // 会签(按比例投票)
|
||||||
ANY_APPROVE_ALL_REJECT(4, "多人会签(通过只需一人,拒绝需要全员)"), // 通过只需一人,拒绝需要全员
|
ANY_APPROVE_ALL_REJECT(4, "多人会签(通过只需一人,拒绝需要全员)"), // 会签(通过只需一人,拒绝需要全员)
|
||||||
ANY_APPROVE(5, "多人或签(一名审批人通过即可)"), // 或签
|
ANY_APPROVE(5, "多人或签(一名审批人通过即可)"), // 或签(通过只需一人,拒绝只需一人)
|
||||||
SEQUENTIAL_APPROVE(6, "依次审批"); // 依次审批
|
SEQUENTIAL_APPROVE(6, "依次审批"); // 依次审批
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -353,22 +353,26 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
return;
|
return;
|
||||||
} else if (userTaskRejectHandlerType == BpmUserTaskRejectHandlerType.FINISH_PROCESS_BY_REJECT_RATIO) {
|
} else if (userTaskRejectHandlerType == BpmUserTaskRejectHandlerType.FINISH_PROCESS_BY_REJECT_RATIO) {
|
||||||
// 3.3 按拒绝人数比例终止流程
|
// 3.3 按拒绝人数比例终止流程
|
||||||
|
// TODO @jason:建议抛出系统异常
|
||||||
if (!flowElement.hasMultiInstanceLoopCharacteristics()) {
|
if (!flowElement.hasMultiInstanceLoopCharacteristics()) {
|
||||||
throw exception(TASK_REJECT_HANDLER_TYPE_BY_REJECT_RATIO_ERROR);
|
throw exception(TASK_REJECT_HANDLER_TYPE_BY_REJECT_RATIO_ERROR);
|
||||||
}
|
}
|
||||||
Execution execution = runtimeService.createExecutionQuery().processInstanceId(task.getProcessInstanceId())
|
Execution execution = runtimeService.createExecutionQuery().processInstanceId(task.getProcessInstanceId())
|
||||||
.executionId(task.getExecutionId()).singleResult();
|
.executionId(task.getExecutionId()).singleResult();
|
||||||
// 获取并行任务总数
|
// 获取并行任务总数 TODO @jason:这个注释,其实挪到 Execution execution 前面好,更有整体性。
|
||||||
Integer nrOfInstances = runtimeService.getVariable(execution.getParentId(), "nrOfInstances", Integer.class);
|
Integer nrOfInstances = runtimeService.getVariable(execution.getParentId(), "nrOfInstances", Integer.class);
|
||||||
// 获取未完成任务列表
|
// 获取未完成任务列表
|
||||||
List<Task> taskList = getAssignedTaskListByConditions(task.getProcessInstanceId(), null, task.getTaskDefinitionKey());
|
List<Task> taskList = getAssignedTaskListByConditions(task.getProcessInstanceId(), null,
|
||||||
|
task.getTaskDefinitionKey());
|
||||||
// 获取已经拒绝的任务数
|
// 获取已经拒绝的任务数
|
||||||
int rejectNumber = 0;
|
int rejectNumber = 0;
|
||||||
|
// TODO @jason: CollectionUtils.getSumValue() 替代
|
||||||
for (Task item : taskList) {
|
for (Task item : taskList) {
|
||||||
if (Objects.equals(BpmTaskStatusEnum.REJECT.getStatus(), FlowableUtils.getTaskStatus(item))) {
|
if (Objects.equals(BpmTaskStatusEnum.REJECT.getStatus(), FlowableUtils.getTaskStatus(item))) {
|
||||||
rejectNumber ++;
|
rejectNumber ++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// TODO @jason:如果这样的话,后续会不会在【已完成】里面查询不到哈?【重要!!!!】
|
||||||
// 拒绝任务后,任务分配人清空。但不能完成任务
|
// 拒绝任务后,任务分配人清空。但不能完成任务
|
||||||
taskService.setAssignee(task.getId(), "");
|
taskService.setAssignee(task.getId(), "");
|
||||||
// 不是所有人拒绝返回。 TODO 后续需要做按拒绝人数比例来判断
|
// 不是所有人拒绝返回。 TODO 后续需要做按拒绝人数比例来判断
|
||||||
@ -478,6 +482,7 @@ public class BpmTaskServiceImpl implements BpmTaskService {
|
|||||||
return taskService.createTaskQuery().taskId(id).includeTaskLocalVariables().singleResult();
|
return taskService.createTaskQuery().taskId(id).includeTaskLocalVariables().singleResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @jason:改成 getTaskListByProcessInstanceIdAndAssigned;其它条件就不写了。主要考虑,还是动名词
|
||||||
@Override
|
@Override
|
||||||
public List<Task> getAssignedTaskListByConditions(String processInstanceId, String executionId, String defineKey) {
|
public List<Task> getAssignedTaskListByConditions(String processInstanceId, String executionId, String defineKey) {
|
||||||
Assert.notNull(processInstanceId, "processInstanceId 不能为空");
|
Assert.notNull(processInstanceId, "processInstanceId 不能为空");
|
||||||
|
Loading…
Reference in New Issue
Block a user