初始代码

This commit is contained in:
wangmingwei
2026-04-21 17:15:37 +08:00
parent 321382cac0
commit 349295e4c4
48 changed files with 5660 additions and 0 deletions

View 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>

View File

@@ -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;
}
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<>();
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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<>();
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -0,0 +1,8 @@
package com.yunzhupaas.workflow.common.util;
public class FlowUtil {
public static boolean isDM(String url) {
return url.startsWith("jdbc:dm");
}
}