mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-16 20:15:06 +08:00
仿钉钉流程设计- 获取审批记录第二版
This commit is contained in:
@ -1,68 +0,0 @@
|
||||
package cn.iocoder.yudao.module.bpm.enums.definition;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
|
||||
import cn.iocoder.yudao.module.bpm.enums.task.BpmTaskStatusEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 流程节点进度的枚举
|
||||
*
|
||||
* @author jason
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum BpmProcessNodeProgressEnum {
|
||||
|
||||
// 0 未开始
|
||||
NOT_START(0,"未开始"),
|
||||
// 1 ~ 20 进行中
|
||||
RUNNING(1, "进行中"), // 节点的进行
|
||||
// 特殊的进行中状态
|
||||
USER_TASK_DELEGATE(10, "委派中"), // 审批节点
|
||||
USER_TASK_APPROVING(11, "向后加签审批通过中"), //向后加签 审批通过中.
|
||||
USER_TASK_WAIT(12, "待审批"), // 一般用于先前加签
|
||||
|
||||
// 30 ~ 50 已经结束
|
||||
// 30 ~ 40 审批节点的结束状态
|
||||
USER_TASK_APPROVE(30, "审批通过"), // 审批节点
|
||||
USER_TASK_REJECT(31, "审批不通过"), // 审批节点
|
||||
USER_TASK_RETURN(32, "已退回"), // 审批节点
|
||||
USER_TASK_CANCEL(34, "已取消"), // 审批节点
|
||||
// 40 ~ 50 节点的通用结束状态
|
||||
FINISHED(41, "已结束"), // 一般节点的节点的结束状态
|
||||
SKIP(42, "跳过"); // 未执行,跳过的节点
|
||||
|
||||
private final Integer status;
|
||||
private final String name;
|
||||
|
||||
public static Integer convertBpmnTaskStatus(Integer taskStatus) {
|
||||
Integer convertStatus = null;
|
||||
if (BpmTaskStatusEnum.RUNNING.getStatus().equals(taskStatus)) {
|
||||
convertStatus = RUNNING.getStatus();
|
||||
} else if (BpmTaskStatusEnum.REJECT.getStatus().equals(taskStatus)) {
|
||||
convertStatus = USER_TASK_REJECT.getStatus();
|
||||
} else if( BpmTaskStatusEnum.APPROVE.getStatus().equals(taskStatus) ) {
|
||||
convertStatus = USER_TASK_APPROVE.getStatus();
|
||||
} else if (BpmTaskStatusEnum.DELEGATE.getStatus().equals(taskStatus)) {
|
||||
convertStatus = USER_TASK_DELEGATE.getStatus();
|
||||
} else if (BpmTaskStatusEnum.APPROVING.getStatus().equals(taskStatus)) {
|
||||
convertStatus = USER_TASK_APPROVE.getStatus();
|
||||
} else if (BpmTaskStatusEnum.CANCEL.getStatus().equals(taskStatus)) {
|
||||
convertStatus = USER_TASK_CANCEL.getStatus();
|
||||
} else if (BpmTaskStatusEnum.WAIT.getStatus().equals(taskStatus)) {
|
||||
convertStatus = USER_TASK_WAIT.getStatus();
|
||||
}
|
||||
return convertStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断用户节点是不是未通过
|
||||
*
|
||||
* @param status 状态
|
||||
*/
|
||||
public static boolean isUserTaskNotApproved(Integer status) {
|
||||
return ObjectUtils.equalsAny(status,
|
||||
USER_TASK_REJECT.getStatus(), USER_TASK_RETURN.getStatus(), USER_TASK_CANCEL.getStatus());
|
||||
}
|
||||
}
|
@ -18,26 +18,27 @@ import java.util.Objects;
|
||||
public enum BpmSimpleModelNodeType implements IntArrayValuable {
|
||||
|
||||
// 0 ~ 1 开始和结束
|
||||
START_NODE(0, "开始节点"),
|
||||
END_NODE(1, "结束节点"),
|
||||
START_NODE(0, "startEvent", "开始节点"),
|
||||
END_NODE(1, "endEvent", "结束节点"),
|
||||
|
||||
// 10 ~ 49 各种节点
|
||||
START_USER_NODE(10, "发起人节点"), // 发起人节点。前端的开始节点,Id 固定
|
||||
APPROVE_NODE(11, "审批人节点"),
|
||||
COPY_NODE(12, "抄送人节点"),
|
||||
START_USER_NODE(10, "userTask", "发起人节点"), // 发起人节点。前端的开始节点,Id 固定
|
||||
APPROVE_NODE(11, "userTask", "审批人节点"),
|
||||
COPY_NODE(12, "serviceTask", "抄送人节点"),
|
||||
|
||||
// 50 ~ 条件分支
|
||||
CONDITION_NODE(50, "条件节点"), // 用于构建流转条件的表达式
|
||||
CONDITION_BRANCH_NODE(51, "条件分支节点"), // TODO @jason:是不是改成叫 条件分支?
|
||||
PARALLEL_BRANCH_NODE(52, "并行分支节点"), // TODO @jason:是不是一个 并行分支 ?就可以啦? 后面是否去掉并行网关。只用包容网关
|
||||
INCLUSIVE_BRANCH_NODE(53, "包容分支节点"),
|
||||
CONDITION_NODE(50, "sequenceFlow", "条件节点"), // 用于构建流转条件的表达式
|
||||
CONDITION_BRANCH_NODE(51, " “parallelGateway”", "条件分支节点"), // TODO @jason:是不是改成叫 条件分支?
|
||||
PARALLEL_BRANCH_NODE(52, "exclusiveGateway", "并行分支节点"), // TODO @jason:是不是一个 并行分支 ?就可以啦? 后面是否去掉并行网关。只用包容网关
|
||||
INCLUSIVE_BRANCH_NODE(53, "inclusiveGateway", "包容分支节点"),
|
||||
// TODO @jason:建议整合 join,最终只有 条件分支、并行分支、包容分支,三种~
|
||||
// TODO @芋艿。 感觉还是分开好理解一点,也好处理一点。前端结构中把聚合节点显示并传过来。
|
||||
;
|
||||
|
||||
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BpmSimpleModelNodeType::getType).toArray();
|
||||
|
||||
public static final String BPMN_USER_TASK_TYPE ="userTask";
|
||||
private final Integer type;
|
||||
private final String bpmnType;
|
||||
private final String name;
|
||||
|
||||
/**
|
||||
@ -48,7 +49,17 @@ public enum BpmSimpleModelNodeType implements IntArrayValuable {
|
||||
public static boolean isBranchNode(Integer type) {
|
||||
return Objects.equals(CONDITION_BRANCH_NODE.getType(), type)
|
||||
|| Objects.equals(PARALLEL_BRANCH_NODE.getType(), type)
|
||||
|| Objects.equals(INCLUSIVE_BRANCH_NODE.getType(), type) ;
|
||||
|| Objects.equals(INCLUSIVE_BRANCH_NODE.getType(), type);
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否需要记录的节点
|
||||
*
|
||||
* @param bpmnType bpmn节点类型
|
||||
*/
|
||||
public static boolean isRecordNode(String bpmnType) {
|
||||
return Objects.equals(APPROVE_NODE.getBpmnType(), bpmnType)
|
||||
|| Objects.equals(END_NODE.getBpmnType(), bpmnType);
|
||||
}
|
||||
|
||||
public static BpmSimpleModelNodeType valueOf(Integer type) {
|
||||
|
@ -12,7 +12,7 @@ import lombok.Getter;
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum BpmTaskStatusEnum {
|
||||
|
||||
NOT_START(-1, "未开始"),
|
||||
RUNNING(1, "审批中"),
|
||||
APPROVE(2, "审批通过"),
|
||||
REJECT(3, "审批不通过"),
|
||||
@ -57,5 +57,9 @@ public enum BpmTaskStatusEnum {
|
||||
APPROVE.getStatus(), REJECT.getStatus(), CANCEL.getStatus(),
|
||||
RETURN.getStatus(), APPROVING.getStatus());
|
||||
}
|
||||
public static boolean isEndStatusButNotApproved(Integer status) {
|
||||
return ObjectUtils.equalsAny(status,
|
||||
REJECT.getStatus(), CANCEL.getStatus(), RETURN.getStatus());
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user