feat(flow): 支持业务表单,提供业务表单示例

This commit is contained in:
lengleng authored and pigcloud committed 2025-10-09 14:50:27 +08:00
1 parent 0d5326ff77
commit cd1854e498
17 files changed
+2185 -128

No files matched your search

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