!164 从vue版本迁移flowable到cloud版本

* update 按照vue版逻辑改造工作流
* update 去除泛化调用逻辑
* update 更改 工作流 测试用例接口路径
* fix 去除无用修改,还原demo,testLeave挪入工作流模块
* fix 清理无效代码,还原配置
* update 修改监听器属性名
* update 集成工作流
This commit is contained in:
ZETA
2024-06-03 07:11:46 +00:00
committed by 疯狂的狮子Li
parent 0bfc3efc3a
commit 992adc8589
151 changed files with 13196 additions and 3 deletions

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-api</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-api-workflow</artifactId>
<description>
ruoyi-api-resource 资源服务接口模块
</description>
<dependencies>
<!-- RuoYi Common Core-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-core</artifactId>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-translation</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,86 @@
package org.dromara.workflow.api.domain;
import org.dromara.workflow.api.domain.dto.BusinessInstanceDTO;
import java.util.List;
import java.util.Map;
/**
* 通用 工作流服务
*
* @Author ZETA
* @Date 2024/6/3
*/
public interface RemoteWorkflowService {
/**
* 运行中的实例 删除程实例,删除历史记录,删除业务与流程关联信息
*
* @param businessKeys 业务id
* @return 结果
*/
boolean deleteRunAndHisInstance(List<String> businessKeys);
/**
* 获取当前流程状态
*
* @param taskId 任务id
*/
String getBusinessStatusByTaskId(String taskId);
/**
* 获取当前流程状态
*
* @param businessKey 业务id
*/
String getBusinessStatus(String businessKey);
/**
* 获取流程实例对象
*
* @param businessKey 业务id
*/
BusinessInstanceDTO getBusinessInstance(String businessKey);
/**
* 获取流程实例对象
*
* @param businessKeys 业务id集合
*/
List<BusinessInstanceDTO> getBusinessInstance(List<String> businessKeys);
/**
* 设置流程变量(全局变量)
*
* @param taskId 任务id
* @param variableName 变量名称
* @param value 变量值
*/
void setVariable(String taskId, String variableName, Object value);
/**
* 设置流程变量(全局变量)
*
* @param taskId 任务id
* @param variables 流程变量
*/
void setVariables(String taskId, Map<String, Object> variables);
/**
* 设置流程变量(本地变量,非全局变量)
*
* @param taskId 任务id
* @param variableName 变量名称
* @param value 变量值
*/
void setVariableLocal(String taskId, String variableName, Object value);
/**
* 设置流程变量(本地变量,非全局变量)
*
* @param taskId 任务id
* @param variables 流程变量
*/
void setVariablesLocal(String taskId, Map<String, Object> variables);
}

View File

@@ -0,0 +1,43 @@
package org.dromara.workflow.api.domain.bo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 流程实例请求对象
*
* @author may
*/
@Data
public class ProcessInstanceBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程名称
*/
private String name;
/**
* 流程key
*/
private String key;
/**
* 任务发起人
*/
private String startUserId;
/**
* 业务id
*/
private String businessKey;
/**
* 模型分类
*/
private String categoryCode;
}

View File

@@ -0,0 +1,31 @@
package org.dromara.workflow.api.domain.bo;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import java.io.Serial;
import java.io.Serializable;
/**
* 流程实例作废请求对象
*
* @author may
*/
@Data
public class ProcessInvalidBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 业务id
*/
@NotBlank(message = "业务id不能为空", groups = {AddGroup.class})
private String businessKey;
/**
* 作废原因
*/
private String deleteReason;
}

View File

@@ -0,0 +1,34 @@
package org.dromara.workflow.api.domain.bo;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 任务催办
*
* @author may
*/
@Data
public class TaskUrgingBo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程实例id
*/
private String processInstanceId;
/**
* 消息类型
*/
private List<String> messageType;
/**
* 催办内容(为空默认系统内置信息)
*/
private String message;
}

View File

@@ -0,0 +1,72 @@
package org.dromara.workflow.api.domain.dto;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 业务与流程实例关联对象
*
* @Author ZETA
* @Date 2024/6/3
*/
@Data
@NoArgsConstructor
public class BusinessInstanceDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程实例id
*/
private String id;
/**
* 流程定义id
*/
private String processDefinitionId;
/**
* 流程定义名称
*/
private String name;
/**
* 业务id
*/
private String businessKey;
/**
* 租户id
*/
private String tenantId;
/**
* 启动时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 启动人id
*/
private String startUserId;
/**
* 流程状态
*/
private String businessStatus;
/**
* 流程状态
*/
private String businessStatusName;
}

View File

@@ -0,0 +1,47 @@
package org.dromara.workflow.api.domain.event;
import jakarta.servlet.http.HttpServletRequest;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 总体流程监听
*
* @author may
*/
@Data
public class ProcessEvent implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程定义key
*/
private String key;
/**
* 业务id
*/
private String businessKey;
/**
* 状态
*/
private String status;
/**
* 当为true时为申请人节点办理
*/
private boolean submit;
/**
* 请求体
*/
private HttpServletRequest request;
}

View File

@@ -0,0 +1,41 @@
package org.dromara.workflow.api.domain.event;
import jakarta.servlet.http.HttpServletRequest;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 流程办理监听
*
* @author may
*/
@Data
public class ProcessTaskEvent implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 流程定义key与流程节点标识(拼接方式流程定义key_流程节点)
*/
private String keyNode;
/**
* 任务id
*/
private String taskId;
/**
* 业务id
*/
private String businessKey;
/**
* 请求体
*/
private HttpServletRequest request;
}