BPM:流程任务的 status 状态实现,使用 Flowable 的 variables 存储,移除 bpm_task_ext

This commit is contained in:
YunaiV
2024-03-17 10:10:42 +08:00
parent 7967a2a195
commit d40fa0f929
15 changed files with 260 additions and 298 deletions

View File

@ -55,12 +55,8 @@ public interface ErrorCodeConstants {
ErrorCode TASK_ADD_SIGN_USER_REPEAT = new ErrorCode(1_009_005_011, "任务加签失败,加签人与现有审批人[{}]重复");
ErrorCode TASK_SUB_SIGN_NO_PARENT = new ErrorCode(1_009_005_011, "任务减签失败,被减签的任务必须是通过加签生成的任务");
// ========== 流程任务分配规则 1-009-006-000 ==========
ErrorCode TASK_ASSIGN_RULE_EXISTS = new ErrorCode(1_009_006_000, "流程({}) 的任务({}) 已经存在分配规则");
ErrorCode TASK_ASSIGN_RULE_NOT_EXISTS = new ErrorCode(1_009_006_001, "流程任务分配规则不存在");
ErrorCode TASK_UPDATE_FAIL_NOT_MODEL = new ErrorCode(1_009_006_002, "只有流程模型的任务分配规则,才允许被修改");
// ========== 流程任务分配规则 1-009-006-000 TODO 芋艿:这里要改下 ==========
ErrorCode TASK_CREATE_FAIL_NO_CANDIDATE_USER = new ErrorCode(1_009_006_003, "操作失败,原因:找不到任务的审批人!");
ErrorCode TASK_ASSIGN_SCRIPT_NOT_EXISTS = new ErrorCode(1_009_006_004, "操作失败,原因:任务分配脚本({}) 不存在");
// ========== 动态表单模块 1-009-010-000 ==========
ErrorCode FORM_NOT_EXISTS = new ErrorCode(1_009_010_000, "动态表单不存在");

View File

@ -4,9 +4,6 @@ import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
/**
* 流程实例的结果
*
@ -16,38 +13,34 @@ import java.util.List;
@AllArgsConstructor
public enum BpmProcessInstanceResultEnum {
PROCESS(1, "处理"),
APPROVE(2, "通过"),
REJECT(3, "不通过"),
RUNNING(1, "审批"),
APPROVE(2, "审批通过"),
REJECT(3, "审批不通过"),
CANCEL(4, "已取消"),
// ========== 流程任务独有的状态 ==========
BACK(5, "驳回"), // 退回
DELEGATE(6, "委派"),
BACK(5, "驳回"), // 退回
DELEGATE(6, "委派"),
/**
* 【加签】源任务已经审批完成,但是它使用了后加签,后加签的任务未完成,源任务就会是这个状态
* 相当于是 通过 APPROVE 的特殊状态
* 例如A审批 A 后加签了 B并且审批通过了任务但是 B 还未审批,则当前任务状态为“待后加签任务完成”
* 例如A 审批A 后加签了 B并且审批通过了任务但是 B 还未审批,则当前任务状态为“待后加签任务完成”
*/
SIGN_AFTER(7, "待后加签任务完成"),
APPROVING(7, "审批通过中"),
/**
* 【加签】源任务未审批,但是向前加签了,所以源任务状态变为“待前加签任务完成”
* 相当于是 处理中 PROCESS 的特殊状态
* 例如A 审批, A 前加签了 BB 还未审核
* 例如A 审批A 前加签了 BB 还未审核
*/
SIGN_BEFORE(8, "前加签任务完成"),
/**
* 【加签】后加签任务被创建时的初始状态
* 相当于是 处理中 PROCESS 的特殊状态
* 因为需要源任务先完成,才能到后加签的人来审批,所以加了一个状态区分
*/
WAIT_BEFORE_TASK(9, "待前置任务完成");
/**
* 能被减签的状态
*/
public static final List<Integer> CAN_SUB_SIGN_STATUS_LIST = Arrays.asList(PROCESS.result, WAIT_BEFORE_TASK.result);
WAIT(0, "审批");
// /**
// * 【加签】后加签任务被创建时的初始状态
// * 相当于是 处理中 PROCESS 的特殊状态
// * 因为需要源任务先完成,才能到后加签的人来审批,所以加了一个状态区分
// */
// WAIT_BEFORE_TASK(9, "处理中【待前置任务完成】");
/**
* 结果
@ -69,9 +62,9 @@ public enum BpmProcessInstanceResultEnum {
* @return 是否
*/
public static boolean isEndResult(Integer result) {
return ObjectUtils.equalsAny(result, APPROVE.getResult(), REJECT.getResult(),
CANCEL.getResult(), BACK.getResult(),
SIGN_AFTER.getResult());
return ObjectUtils.equalsAny(result,
APPROVE.getResult(), REJECT.getResult(), CANCEL.getResult(),
BACK.getResult(), APPROVING.getResult());
}
}

View File

@ -12,9 +12,9 @@ import lombok.Getter;
@AllArgsConstructor
public enum BpmProcessInstanceStatusEnum {
RUNNING(1, "进行"),
APPROVE(2, "通过"),
REJECT(3, "不通过"),
RUNNING(1, "审批"),
APPROVE(2, "审批通过"),
REJECT(3, "审批不通过"),
CANCEL(4, "已取消");
/**

View File

@ -17,15 +17,11 @@ public enum BpmTaskAddSignTypeEnum {
/**
* 向后加签,需要后置任务全部审批完,才会通过原审批人节点
*/
AFTER("after", "向后加签"),
/**
* 创建后置加签时的过度状态,用于控制向后加签生成的任务状态
*/
AFTER_CHILDREN_TASK("afterChildrenTask", "向后加签生成的子任务");
AFTER("after", "向后加签");
private final String type;
private final String desc;
private final String desc; // TODO 芋艿desc
public static String formatDesc(String type) {
for (BpmTaskAddSignTypeEnum value : values()) {
@ -37,4 +33,3 @@ public enum BpmTaskAddSignTypeEnum {
}
}