mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-12 13:39:01 +08:00
feat(flow): 支持业务表单,提供业务表单示例
This commit is contained in:
1 parent
0d5326ff77
commit
cd1854e498
17 files changed
+2185
-128
No files matched your search
+58
@@ -0,0 +1,58 @@
|
||||
package com.pig4cloud.pigx.flow.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流程实例参数数据传输对象
|
||||
* <p>
|
||||
* 该DTO用于启动流程实例或操作流程实例时传递参数。 包含流程定义信息、流程变量、发起人等核心信息。 主要用于流程引擎的实例创建和流程变量设置。
|
||||
* </p>
|
||||
*
|
||||
* @author pigx
|
||||
*/
|
||||
@Data
|
||||
public class ProcessInstanceParamDto {
|
||||
|
||||
/**
|
||||
* 流程定义ID
|
||||
* <p>
|
||||
* 要启动的流程定义的唯一标识。 对应已部署的流程模板ID,如:leave_process_v1。
|
||||
* </p>
|
||||
*/
|
||||
private String flowId;
|
||||
|
||||
/**
|
||||
* 流程变量集合
|
||||
* <p>
|
||||
* 存储流程执行过程中需要的各种变量,如: - 表单数据:申请金额、请假天数等 - 控制变量:审批级别、分支条件等 - 业务数据:关联的业务ID、业务类型等
|
||||
* 这些变量会在流程执行过程中被各个节点使用。
|
||||
* </p>
|
||||
*/
|
||||
private Map<String, Object> paramMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 流程发起人ID
|
||||
* <p>
|
||||
* 发起流程实例的用户ID。 用于记录流程的发起者,也可能作为第一个任务的执行人。
|
||||
* </p>
|
||||
*/
|
||||
private String startUserId;
|
||||
|
||||
/**
|
||||
* 流程实例ID
|
||||
* <p>
|
||||
* 已存在的流程实例ID,用于对已有流程实例进行操作。 如果是启动新流程,此字段为空; 如果是操作已有流程(如设置变量),则需要提供此ID。
|
||||
* </p>
|
||||
*/
|
||||
private String processInstanceId;
|
||||
|
||||
/** 状态 */
|
||||
private Integer status;
|
||||
|
||||
/** 完成原因 */
|
||||
private String finishReason;
|
||||
|
||||
}
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
package com.pig4cloud.pigx.flow.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 流程节点记录参数数据传输对象
|
||||
* <p>
|
||||
* 该DTO用于创建流程节点的执行记录。记录节点的执行信息, 包括节点类型、表单数据、执行上下文等。 主要用于流程历史记录的创建和流程轨迹的追踪。
|
||||
* </p>
|
||||
*
|
||||
* @author pigx
|
||||
*/
|
||||
@Data
|
||||
public class ProcessNodeRecordParamDto {
|
||||
|
||||
/**
|
||||
* 流程定义ID
|
||||
* <p>
|
||||
* 流程模板的唯一标识。 标识该记录所属的流程定义。
|
||||
* </p>
|
||||
*/
|
||||
private String flowId;
|
||||
|
||||
/**
|
||||
* 流程实例ID
|
||||
* <p>
|
||||
* 运行中的流程实例唯一标识。 用于关联到具体的流程实例。
|
||||
* </p>
|
||||
*/
|
||||
private String processInstanceId;
|
||||
|
||||
/**
|
||||
* 表单数据
|
||||
* <p>
|
||||
* JSON格式的表单数据,包含节点执行时的业务数据。 记录节点处理时的表单内容快照。
|
||||
* </p>
|
||||
*/
|
||||
private String data;
|
||||
|
||||
/**
|
||||
* 节点ID
|
||||
* <p>
|
||||
* 流程节点的唯一标识。 标识具体执行的是哪个节点。
|
||||
* </p>
|
||||
*/
|
||||
private String nodeId;
|
||||
|
||||
/**
|
||||
* 节点类型
|
||||
* <p>
|
||||
* 节点的类型标识,对应NodeTypeEnum: - ROOT: 发起人节点 - APPROVAL: 审批节点 - CC: 抄送节点 - CONDITION: 条件节点
|
||||
* - CONCURRENT: 并行节点 - DELAY: 延迟节点 - TRIGGER: 触发器节点 - EMPTY: 空节点 - END: 结束节点
|
||||
* </p>
|
||||
*/
|
||||
private String nodeType;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
* <p>
|
||||
* 流程节点的显示名称,如"部门经理审批"、"财务审核"等。 用于在界面上展示,便于用户理解。
|
||||
* </p>
|
||||
*/
|
||||
private String nodeName;
|
||||
|
||||
/**
|
||||
* 执行ID
|
||||
* <p>
|
||||
* Flowable引擎的执行ID。 用于关联流程引擎中的执行实例。
|
||||
* </p>
|
||||
*/
|
||||
private String executionId;
|
||||
|
||||
/**
|
||||
* 任务ID
|
||||
* <p>
|
||||
* Flowable引擎生成的任务ID。 对于用户任务节点,记录对应的任务ID。
|
||||
* </p>
|
||||
*/
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 审批意见
|
||||
* <p>
|
||||
* 节点执行时的意见或备注。 通常用于审批节点记录审批意见。
|
||||
* </p>
|
||||
*/
|
||||
private String approveDesc;
|
||||
|
||||
/**
|
||||
* 任务类型
|
||||
* <p>
|
||||
* 标识任务的具体类型,用于区分不同的处理逻辑: - APPROVAL: 审批任务 - COPY: 抄送任务 - NOTIFY: 通知任务 - SYSTEM: 系统任务
|
||||
* </p>
|
||||
*/
|
||||
private String taskType;
|
||||
|
||||
/** 状态 */
|
||||
private Integer status;
|
||||
|
||||
/** 完成原因 */
|
||||
private String finishReason;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
package com.pig4cloud.pigx.flow.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.pig4cloud.pigx.common.core.util.TenantTable;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 流程定义实体类
|
||||
* <p>
|
||||
* 该实体类用于存储工作流程的定义信息,包括流程的基本信息、表单配置、流程配置等。 每个流程定义可以创建多个流程实例,支持多租户隔离。
|
||||
* </p>
|
||||
*
|
||||
* @author Vincent
|
||||
* @since 2023-07-06
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TenantTable
|
||||
@Accessors(chain = true)
|
||||
@TableName("process")
|
||||
public class Process {
|
||||
|
||||
/**
|
||||
* 流程唯一标识ID 用于唯一标识一个流程定义,在流程实例创建时使用
|
||||
*/
|
||||
@TableField("flow_id")
|
||||
private String flowId;
|
||||
|
||||
/**
|
||||
* 流程名称 流程的显示名称,用于在流程列表中展示
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 流程图标配置 存储流程的图标信息,支持自定义图标样式
|
||||
*/
|
||||
@TableField("logo")
|
||||
private String logo;
|
||||
|
||||
/**
|
||||
* 流程设置项 JSON格式存储流程的各种配置信息,如通知设置、权限设置等
|
||||
*/
|
||||
@TableField("settings")
|
||||
private String settings;
|
||||
|
||||
/**
|
||||
* 流程分组ID 关联process_group表,用于对流程进行分类管理
|
||||
*/
|
||||
@TableField("group_id")
|
||||
private Long groupId;
|
||||
|
||||
/** 表单配置 */
|
||||
@TableField("form_config")
|
||||
private String formConfig;
|
||||
|
||||
/**
|
||||
* 表单配置内容 JSON格式存储表单的结构定义,包括表单项类型、验证规则、默认值等
|
||||
*/
|
||||
@TableField("form_items")
|
||||
private String formItems;
|
||||
|
||||
/**
|
||||
* 流程配置内容 JSON格式存储流程的节点信息、流转条件、审批规则等核心流程定义
|
||||
*/
|
||||
@TableField("process")
|
||||
private String process;
|
||||
|
||||
/**
|
||||
* 流程备注说明 用于记录流程的用途、注意事项等补充信息
|
||||
*/
|
||||
@TableField("remark")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 排序号 用于控制流程在列表中的显示顺序,数值越小越靠前
|
||||
*/
|
||||
@TableField("sort")
|
||||
private Integer sort;
|
||||
|
||||
/**
|
||||
* 流程隐藏标识 0=正常显示,1=隐藏(隐藏的流程不在列表中显示,但仍可使用)
|
||||
*/
|
||||
@TableField("is_hidden")
|
||||
private String hidden;
|
||||
|
||||
/**
|
||||
* 流程停用标识 0=正常启用,1=停用(停用的流程不能创建新实例)
|
||||
*/
|
||||
@TableField("is_stop")
|
||||
private String stop;
|
||||
|
||||
/**
|
||||
* 流程管理员ID 主管理员用户ID,拥有该流程的完全管理权限
|
||||
*/
|
||||
@TableField("admin_id")
|
||||
private Long adminId;
|
||||
|
||||
/**
|
||||
* 流程全局唯一ID 用于流程的版本控制和跨系统识别
|
||||
*/
|
||||
@TableField("unique_id")
|
||||
private String uniqueId;
|
||||
|
||||
/**
|
||||
* 管理员列表 JSON格式存储多个管理员ID,支持多人共同管理流程
|
||||
*/
|
||||
@TableField("admin_list")
|
||||
private String adminList;
|
||||
|
||||
/**
|
||||
* 流程使用范围描述 显示该流程的适用部门、人员范围等信息
|
||||
*/
|
||||
@TableField("range_show")
|
||||
private String rangeShow;
|
||||
|
||||
/**
|
||||
* 主键ID 使用雪花算法生成的分布式ID
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 逻辑删除字段
|
||||
*/
|
||||
@TableLogic
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user