初始代码
This commit is contained in:
65
yunzhupaas-workflow-common/pom.xml
Normal file
65
yunzhupaas-workflow-common/pom.xml
Normal file
@@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>yunzhupaas-workflow-common</artifactId>
|
||||
|
||||
<parent>
|
||||
<groupId>com.yunzhupaas</groupId>
|
||||
<artifactId>yunzhupaas-workflow-core</artifactId>
|
||||
<version>1.0.0-RELEASE</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
<!-- lombok 工具类 -->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</dependency>
|
||||
<!-- hutool 工具类 -->
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>${hutool.version}</version>
|
||||
</dependency>
|
||||
<!--<dependency>
|
||||
<groupId>org.springdoc</groupId>
|
||||
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
|
||||
<version>${springdoc.openapi.version}</version>
|
||||
</dependency>-->
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>boot3</id>
|
||||
<activation>
|
||||
<jdk>[17,)</jdk>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>boot2</id>
|
||||
<activation>
|
||||
<jdk>(,17)</jdk>
|
||||
</activation>
|
||||
<dependencies>
|
||||
<!--引入Knife4j的官方start包,该指南选择Spring Boot版本<3.0,开发者需要注意-->
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.yunzhupaas.workflow.common.exception;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* 业务异常类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 15:31
|
||||
*/
|
||||
@Getter
|
||||
public class BizException extends RuntimeException {
|
||||
public ResultCode resultCode;
|
||||
|
||||
public BizException(ResultCode errorCode) {
|
||||
super(errorCode.getMsg());
|
||||
this.resultCode = errorCode;
|
||||
}
|
||||
|
||||
public BizException(String message) {
|
||||
super(message);
|
||||
this.resultCode = ResultCode.SYSTEM_EXECUTION_ERROR;
|
||||
}
|
||||
|
||||
public BizException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
this.resultCode = ResultCode.SYSTEM_EXECUTION_ERROR;
|
||||
}
|
||||
|
||||
public BizException(Throwable cause) {
|
||||
super(cause);
|
||||
this.resultCode = ResultCode.SYSTEM_EXECUTION_ERROR;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.yunzhupaas.workflow.common.exception;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 统一返回结果枚举类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 15:08
|
||||
*/
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Getter
|
||||
public enum ResultCode implements Serializable {
|
||||
|
||||
SUCCESS("200", "请求成功"),
|
||||
FAILURE("999", "请求失败"),
|
||||
|
||||
DELETE_SUCCESS("1101", "删除成功"),
|
||||
DELETE_FAILURE("1102", "删除失败"),
|
||||
DEPLOY_FAILURE("1103", "部署失败"),
|
||||
START_FAILURE("1104", "启动失败"),
|
||||
COMPLETE_SUCCESS("1105", "任务完成成功"),
|
||||
COMPLETE_FAILURE("1106", "任务完成失败"),
|
||||
RETRACT_SUCCESS("1107", "撤回成功"),
|
||||
RETRACT_FAILURE("1108", "撤回失败"),
|
||||
JUMP_SUCCESS("1109", "跳转成功"),
|
||||
JUMP_FAILURE("1110", "跳转失败"),
|
||||
|
||||
DEPLOY_ERROR("9001", "部署错误,请检查XML格式、内容等是否有误"),
|
||||
DEFINITION_NOT_EXIST("9002", "找不到流程模板,请重新发布该流程"),
|
||||
INSTANCE_NOT_EXIST("9003", "实例不存在"),
|
||||
TASK_NOT_EXIST("9004", "任务不存在"),
|
||||
TASK_COMPLETE_ERROR("9005", "任务完成错误"),
|
||||
TASK_JUMP_ERROR("9006", "节点跳转错误"),
|
||||
|
||||
SYSTEM_EXECUTION_ERROR("9901", "系统执行出错"),
|
||||
REQUEST_PARAM_IS_NULL("9701", "请求必填参数为空");
|
||||
|
||||
private String code;
|
||||
private String msg;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 类的描述
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/6/4 11:31
|
||||
*/
|
||||
@Data
|
||||
public class CompensateFo {
|
||||
/**
|
||||
* 实例主键
|
||||
*/
|
||||
private String instanceId;
|
||||
/**
|
||||
* 原先的节点
|
||||
*/
|
||||
private List<String> source;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程定义删除参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 11:37
|
||||
*/
|
||||
@Data
|
||||
public class DefinitionDeleteFo implements Serializable {
|
||||
/**
|
||||
* 引擎部署ID
|
||||
*/
|
||||
@NotBlank(message = "引擎部署ID不能为空")
|
||||
@Schema(name = "deploymentId", description = "引擎部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 是否级联删除流程定义下的流程实例等
|
||||
*/
|
||||
@Schema(name = "cascade", description = "是否级联删除流程定义下的流程实例等")
|
||||
private Boolean cascade;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程定义部署参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 11:45
|
||||
*/
|
||||
@Data
|
||||
public class DefinitionDeployFo implements Serializable {
|
||||
/**
|
||||
* bpmn xml字符串
|
||||
*/
|
||||
@NotBlank(message = "bpmn xml字符串不能为空")
|
||||
@Schema(name = "bpmnXml", description = "bpmn xml字符串")
|
||||
private String bpmnXml;
|
||||
/**
|
||||
* 业务名称
|
||||
*/
|
||||
@Schema(name = "name", description = "业务名称")
|
||||
private String name;
|
||||
/**
|
||||
* 业务Key
|
||||
*/
|
||||
@Schema(name = "key", description = "业务Key")
|
||||
private String key;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 连接线目标任务
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/4/17 17:36
|
||||
*/
|
||||
@Data
|
||||
public class FlowTargetTaskFo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 线的Key
|
||||
*/
|
||||
@Schema(name = "flowKey", description = "线的Key")
|
||||
private String flowKey;
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 类的描述
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/9/30 15:09
|
||||
*/
|
||||
@Data
|
||||
public class InfoModel implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 节点Key
|
||||
*/
|
||||
@Schema(name = "key", description = "节点Key")
|
||||
private String key;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程实例删除参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 15:55
|
||||
*/
|
||||
@Data
|
||||
public class InstanceDeleteFo implements Serializable {
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@NotBlank(message = "实例ID不能为空")
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
/**
|
||||
* 删除原因
|
||||
*/
|
||||
@Schema(name = "deleteReason", description = "删除原因")
|
||||
private String deleteReason;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流程实例启动参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 15:14
|
||||
*/
|
||||
@Data
|
||||
public class InstanceStartFo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@NotBlank(message = "部署ID不能为空")
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 变量
|
||||
*/
|
||||
@Schema(name = "variables", description = "变量")
|
||||
private Map<String, Object> variables;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 跳转参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/10 11:18
|
||||
*/
|
||||
@Data
|
||||
public class JumpFo implements Serializable {
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@NotBlank(message = "实例ID不能为空")
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
/**
|
||||
* 源节点集合
|
||||
*/
|
||||
@Schema(name = "source", description = "源节点集合")
|
||||
private List<String> source;
|
||||
/**
|
||||
* 目标节点集合
|
||||
*/
|
||||
@Schema(name = "target", description = "目标节点集合")
|
||||
private List<String> target;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 多节点跳转单节点参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/9 14:23
|
||||
*/
|
||||
@Data
|
||||
public class MoveMultiToSingleFo implements Serializable {
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@NotBlank(message = "实例ID不能为空")
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
/**
|
||||
* 当前节点集合
|
||||
*/
|
||||
@NotNull(message = "当前节点集合不能为空")
|
||||
@Schema(name = "sourceKeys", description = "当前节点集合")
|
||||
private List<String> sourceKeys;
|
||||
/**
|
||||
* 目标节点
|
||||
*/
|
||||
@NotBlank(message = "目标节点不能为空")
|
||||
@Schema(name = "targetKey", description = "目标节点")
|
||||
private String targetKey;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 单节点跳转多节点参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 16:36
|
||||
*/
|
||||
@Data
|
||||
public class MoveSingleToMultiFo implements Serializable {
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@NotBlank(message = "实例ID不能为空")
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
/**
|
||||
* 当前节点
|
||||
*/
|
||||
@NotBlank(message = "当前节点不能为空")
|
||||
@Schema(name = "sourceKey", description = "当前节点")
|
||||
private String sourceKey;
|
||||
/**
|
||||
* 目标节点集合
|
||||
*/
|
||||
@NotNull(message = "目标节点集合不能为空")
|
||||
@Schema(name = "targetKeys", description = "目标节点集合")
|
||||
private List<String> targetKeys;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 类的描述
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/5/8 20:03
|
||||
*/
|
||||
@Data
|
||||
public class TaskAfterFo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 节点Key
|
||||
*/
|
||||
@Schema(name = "taskKeys", description = "节点Key")
|
||||
private List<String> taskKeys = new ArrayList<>();
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 任务退回参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 16:05
|
||||
*/
|
||||
@Data
|
||||
public class TaskBackFo implements Serializable {
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@NotBlank(message = "任务ID不能为空")
|
||||
@Schema(name = "taskId", description = "任务ID")
|
||||
private String taskId;
|
||||
/**
|
||||
* 目标节点ID
|
||||
*/
|
||||
@Schema(name = "targetKey", description = "目标节点ID")
|
||||
private String targetKey;
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 任务完成参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 13:57
|
||||
*/
|
||||
@Data
|
||||
public class TaskCompleteFo implements Serializable {
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@NotBlank(message = "任务ID不能为空")
|
||||
@Schema(name = "taskId", description = "任务ID")
|
||||
private String taskId;
|
||||
/**
|
||||
* 变量
|
||||
*/
|
||||
@Schema(name = "variables", description = "变量")
|
||||
private Map<String, Object> variables;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 下一级任务参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 17:03
|
||||
*/
|
||||
@Data
|
||||
public class TaskNextFo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 节点Key
|
||||
*/
|
||||
@Schema(name = "taskKey", description = "节点Key")
|
||||
private String taskKey;
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@Schema(name = "taskId", description = "任务ID")
|
||||
private String taskId;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 查询参数类
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/9 9:53
|
||||
*/
|
||||
@Data
|
||||
public class TaskOutgoingFo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 节点Key
|
||||
*/
|
||||
@Schema(name = "taskKey", description = "节点Key")
|
||||
private String taskKey;
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@Schema(name = "taskId", description = "任务ID")
|
||||
private String taskId;
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.yunzhupaas.workflow.common.model.fo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 上一级任务参数类
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/4/23 10:38
|
||||
*/
|
||||
@Data
|
||||
public class TaskPrevFo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
private String deploymentId;
|
||||
/**
|
||||
* 节点Key
|
||||
*/
|
||||
@Schema(name = "taskKey", description = "节点Key")
|
||||
private String taskKey;
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@Schema(name = "taskId", description = "任务ID")
|
||||
private String taskId;
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程定义VO
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 14:26
|
||||
*/
|
||||
@Data
|
||||
public class DefinitionVo implements Serializable {
|
||||
/**
|
||||
* 定义ID
|
||||
*/
|
||||
@Schema(name = "id", description = "定义ID")
|
||||
String definitionId;
|
||||
/**
|
||||
* 定义名称
|
||||
*/
|
||||
@Schema(name = "name", description = "定义名称")
|
||||
String definitionName;
|
||||
/**
|
||||
* 定义Key
|
||||
*/
|
||||
@Schema(name = "key", description = "定义Key")
|
||||
String definitionKey;
|
||||
/**
|
||||
* 定义版本
|
||||
*/
|
||||
@Schema(name = "version", description = "定义版本")
|
||||
Integer definitionVersion;
|
||||
/**
|
||||
* 定义部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "定义部署ID")
|
||||
String deploymentId;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 定义部署Vo
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 9:35
|
||||
*/
|
||||
@Data
|
||||
public class DeploymentVo implements Serializable {
|
||||
/**
|
||||
* 部署ID
|
||||
*/
|
||||
@Schema(name = "deploymentId", description = "部署ID")
|
||||
String deploymentId;
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 类的描述
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/6/11 10:33
|
||||
*/
|
||||
@Data
|
||||
public class FlowElementVo {
|
||||
private String id;
|
||||
private String name;
|
||||
/**
|
||||
* 线的源
|
||||
*/
|
||||
private String sourceRef;
|
||||
/**
|
||||
* 线的目标
|
||||
*/
|
||||
private String targetRef;
|
||||
/**
|
||||
* 节点进线
|
||||
*/
|
||||
private List<String> incomingList;
|
||||
/**
|
||||
* 节点出线
|
||||
*/
|
||||
private List<String> outgoingList;
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 类的描述
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/8/13 13:31
|
||||
*/
|
||||
@Data
|
||||
public class FlowVo {
|
||||
private String key;
|
||||
private List<FlowVo> children = new ArrayList<>();
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 历史流程实例Vo
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 17:04
|
||||
*/
|
||||
@Data
|
||||
public class HistoricInstanceVo implements Serializable {
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@Schema(name = "startTime", description = "开始时间")
|
||||
private LocalDateTime startTime;
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@Schema(name = "endTime", description = "结束时间")
|
||||
private LocalDateTime endTime;
|
||||
/**
|
||||
* 耗时
|
||||
*/
|
||||
@Schema(name = "durationInMillis", description = "耗时")
|
||||
private Long durationInMillis;
|
||||
/**
|
||||
* 删除原因
|
||||
*/
|
||||
@Schema(name = "deleteReason", description = "删除原因")
|
||||
private String deleteReason;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 类的描述
|
||||
*
|
||||
* @author YUNZHUPAASYUNZHUPAAS开发组
|
||||
* @version 5.0.x
|
||||
* @since 2024/6/17 16:06
|
||||
*/
|
||||
@Data
|
||||
public class HistoricNodeVo implements Serializable {
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
private String taskId;
|
||||
/**
|
||||
* 节点编码
|
||||
*/
|
||||
private String code;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private Long startTime;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程实例Vo
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 14:42
|
||||
*/
|
||||
@Data
|
||||
public class InstanceVo implements Serializable {
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 元素Vo
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 17:48
|
||||
*/
|
||||
@Data
|
||||
public class NodeElementVo implements Serializable {
|
||||
/**
|
||||
* 元素ID
|
||||
*/
|
||||
@Schema(name = "id", description = "元素ID")
|
||||
private String id;
|
||||
/**
|
||||
* 元素名称
|
||||
*/
|
||||
@Schema(name = "name", description = "元素名称")
|
||||
private String name;
|
||||
/**
|
||||
* 进线ID
|
||||
*/
|
||||
@Schema(name = "incoming", description = "进线ID")
|
||||
private List<String> incomingList;
|
||||
/**
|
||||
* 出线ID
|
||||
*/
|
||||
@Schema(name = "outgoingList", description = "出线ID")
|
||||
private List<String> outgoingList;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.yunzhupaas.workflow.common.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 流程任务VO
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 11:22
|
||||
*/
|
||||
@Data
|
||||
public class TaskVo implements Serializable {
|
||||
/**
|
||||
* 任务ID
|
||||
*/
|
||||
@Schema(name = "taskId", description = "任务ID")
|
||||
private String taskId;
|
||||
/**
|
||||
* 任务名称
|
||||
*/
|
||||
@Schema(name = "taskName", description = "任务名称")
|
||||
private String taskName;
|
||||
/**
|
||||
* 任务Key
|
||||
*/
|
||||
@Schema(name = "taskKey", description = "任务Key")
|
||||
private String taskKey;
|
||||
/**
|
||||
* 实例ID
|
||||
*/
|
||||
@Schema(name = "instanceId", description = "实例ID")
|
||||
private String instanceId;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.yunzhupaas.workflow.common.service;
|
||||
|
||||
import com.yunzhupaas.workflow.common.model.fo.DefinitionDeleteFo;
|
||||
import com.yunzhupaas.workflow.common.model.fo.DefinitionDeployFo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.DefinitionVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.DeploymentVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.FlowElementVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程定义服务接口
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/3 11:36
|
||||
*/
|
||||
public interface IDefinitionService {
|
||||
/**
|
||||
* 部署流程定义
|
||||
*
|
||||
* @param fo {@link DefinitionDeployFo}
|
||||
* @return {@link DeploymentVo}
|
||||
* @since 2024/4/7 10:51
|
||||
**/
|
||||
DeploymentVo deployDefinition(DefinitionDeployFo fo);
|
||||
|
||||
/**
|
||||
* 列表查询流程定义
|
||||
*
|
||||
* @return {@link List<DefinitionVo>}
|
||||
* @since 2024/4/7 11:23
|
||||
**/
|
||||
List<DefinitionVo> listDefinition();
|
||||
|
||||
/**
|
||||
* 删除流程定义
|
||||
*
|
||||
* @param fo {@link DefinitionDeleteFo}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/7 13:51
|
||||
**/
|
||||
boolean deleteDefinition(DefinitionDeleteFo fo);
|
||||
|
||||
/**
|
||||
* 获取流程元素
|
||||
*
|
||||
* @param deploymentId 部署ID
|
||||
*/
|
||||
List<FlowElementVo> getStructure(String deploymentId);
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.yunzhupaas.workflow.common.service;
|
||||
|
||||
import com.yunzhupaas.workflow.common.model.fo.InstanceDeleteFo;
|
||||
import com.yunzhupaas.workflow.common.model.fo.InstanceStartFo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.HistoricInstanceVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.InstanceVo;
|
||||
|
||||
/**
|
||||
* 流程实例服务接口
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/7 14:31
|
||||
*/
|
||||
public interface IInstanceService {
|
||||
/**
|
||||
* 根据ID启动实例
|
||||
*
|
||||
* @param fo {@link InstanceStartFo}
|
||||
* @return {@link InstanceVo}
|
||||
* @since 2024/4/7 15:44
|
||||
**/
|
||||
InstanceVo startById(InstanceStartFo fo);
|
||||
|
||||
/**
|
||||
* 获取历史流程实例
|
||||
*
|
||||
* @param processInstanceId {@link String}
|
||||
* @return {@link HistoricInstanceVo}
|
||||
* @since 2024/4/7 17:30
|
||||
**/
|
||||
HistoricInstanceVo getHistoricProcessInstance(String processInstanceId);
|
||||
|
||||
/**
|
||||
* 删除流程实例
|
||||
*
|
||||
* @param fo {@link InstanceDeleteFo}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/7 16:07
|
||||
**/
|
||||
boolean deleteInstance(InstanceDeleteFo fo);
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
package com.yunzhupaas.workflow.common.service;
|
||||
|
||||
import com.yunzhupaas.workflow.common.model.fo.*;
|
||||
import com.yunzhupaas.workflow.common.model.vo.FlowVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.HistoricNodeVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.NodeElementVo;
|
||||
import com.yunzhupaas.workflow.common.model.vo.TaskVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 流程任务服务接口
|
||||
*
|
||||
* @author YUNZHUPAAS FlowableYUNZHUPAAS开发组
|
||||
* @version 1.0.0
|
||||
* @since 2024/4/8 11:11
|
||||
*/
|
||||
public interface ITaskService {
|
||||
|
||||
/**
|
||||
* 根据流程实例ID获取任务
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link List<TaskVo>}
|
||||
* @since 2024/4/8 14:15
|
||||
**/
|
||||
List<TaskVo> getTask(String instanceId);
|
||||
|
||||
/**
|
||||
* 完成任务
|
||||
*
|
||||
* @param fo {@link TaskCompleteFo}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/8 14:21
|
||||
**/
|
||||
boolean complete(TaskCompleteFo fo);
|
||||
|
||||
/**
|
||||
* 单节点跳转多节点
|
||||
*
|
||||
* @param fo {@link MoveSingleToMultiFo}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/9 14:48
|
||||
**/
|
||||
boolean moveSingleToMulti(MoveSingleToMultiFo fo);
|
||||
|
||||
/**
|
||||
* 多节点跳转单节点
|
||||
*
|
||||
* @param fo {@link MoveMultiToSingleFo}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/9 14:48
|
||||
**/
|
||||
boolean moveMultiToSingle(MoveMultiToSingleFo fo);
|
||||
|
||||
/**
|
||||
* 节点跳转
|
||||
*
|
||||
* @param fo {@link JumpFo}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/10 11:35
|
||||
**/
|
||||
boolean jump(JumpFo fo);
|
||||
|
||||
/**
|
||||
* 获取可回退的节点ID
|
||||
*
|
||||
* @param taskId {@link String}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/8 15:39
|
||||
**/
|
||||
List<String> getFallbacks(String taskId);
|
||||
|
||||
/**
|
||||
* 回退目标节点
|
||||
*
|
||||
* @param fo {@link TaskBackFo}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/8 16:11
|
||||
**/
|
||||
List<String> back(TaskBackFo fo);
|
||||
|
||||
/**
|
||||
* 获取上一级任务节点ID集合,用于自动处置的相邻选项
|
||||
*
|
||||
* @param fo {@link TaskPrevFo}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/8 16:30
|
||||
**/
|
||||
List<String> getPrevUserTask(TaskPrevFo fo);
|
||||
|
||||
/**
|
||||
* 获取下一级任务节点集合
|
||||
*
|
||||
* @param fo {@link TaskNextFo}
|
||||
* @return {@link List< NodeElementVo >}
|
||||
* @since 2024/4/9 9:20
|
||||
**/
|
||||
List<NodeElementVo> getNextUserTask(TaskNextFo fo);
|
||||
|
||||
/**
|
||||
* 获取线之后的任务节点
|
||||
*
|
||||
* @param fo {@link FlowTargetTaskFo}
|
||||
* @return {@link String}
|
||||
* @since 2024/4/17 17:45
|
||||
**/
|
||||
List<String> getTaskKeyAfterFlow(FlowTargetTaskFo fo);
|
||||
|
||||
/**
|
||||
* 撤回
|
||||
*
|
||||
* @param taskId {@link String}
|
||||
* @return {@link boolean}
|
||||
* @since 2024/4/9 9:30
|
||||
**/
|
||||
boolean retract(String taskId);
|
||||
|
||||
/**
|
||||
* 获取出线Key集合(若出线的出口为网关,则一并获取网关的出线)
|
||||
*
|
||||
* @param fo {@link TaskOutgoingFo}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/9 10:54
|
||||
**/
|
||||
List<String> getOutgoingFlows(TaskOutgoingFo fo);
|
||||
|
||||
/**
|
||||
* 获取出线
|
||||
*
|
||||
* @param fo 参数
|
||||
*/
|
||||
List<FlowVo> getOutgoing(TaskOutgoingFo fo);
|
||||
|
||||
/**
|
||||
* 获取完成的节点Key
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/9 13:51
|
||||
**/
|
||||
List<String> getKeysOfFinished(String instanceId);
|
||||
|
||||
/**
|
||||
* 获取进线的Key
|
||||
*
|
||||
* @param taskId {@link String}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/9 13:56
|
||||
**/
|
||||
List<String> getIncomingFlows(String taskId);
|
||||
|
||||
/**
|
||||
* 获取未经过的节点
|
||||
*
|
||||
* @param instanceId {@link String}
|
||||
* @return {@link List<String>}
|
||||
* @since 2024/4/29 10:01
|
||||
**/
|
||||
List<String> getToBePass(String instanceId);
|
||||
|
||||
/**
|
||||
* 获取节点的后续节点
|
||||
*
|
||||
* @param fo 参数
|
||||
*/
|
||||
List<String> getAfter(TaskAfterFo fo);
|
||||
|
||||
/**
|
||||
* 异常补偿
|
||||
*
|
||||
* @param fo 参数
|
||||
*/
|
||||
List<TaskVo> compensate(CompensateFo fo);
|
||||
|
||||
/**
|
||||
* 获取历史节点
|
||||
*
|
||||
* @param instanceId 实例主键
|
||||
*/
|
||||
List<HistoricNodeVo> getHistoric(String instanceId);
|
||||
|
||||
/**
|
||||
* 获取历史结束节点
|
||||
*
|
||||
* @param instanceId 实例主键
|
||||
*/
|
||||
List<String> getHistoricEnd(String instanceId);
|
||||
|
||||
/**
|
||||
* 获取元素信息
|
||||
*
|
||||
* @param model 参数
|
||||
*/
|
||||
NodeElementVo getElementInfo(InfoModel model);
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.yunzhupaas.workflow.common.util;
|
||||
|
||||
public class FlowUtil {
|
||||
|
||||
public static boolean isDM(String url) {
|
||||
return url.startsWith("jdbc:dm");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user