feat: 提交流程中心后端代码
build / build-push (push) Successful in 28s

Spring Boot 流程引擎服务:流程定义/实例/任务、审批人解析、
回调分发、oapi 接口及单元测试。
保留远程 .gitea/workflows/build.yml 与 docker/Dockerfile,
新增 .gitignore 排除 target/ 构建产物。
This commit is contained in:
chenxing
2026-09-15 10:42:56 +08:00
parent 0296b2b5dd
commit c1103aeb29
65 changed files with 7119 additions and 0 deletions
@@ -0,0 +1,67 @@
package com.yunhai.flowcenter.entity;
import com.yunhai.flowcenter.enums.FlwEnums;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import java.time.LocalDateTime;
/**
* 流程定义(概览 §4.1 + V2.0 Part D #2/#3 修订)。
* flow_guid 绑定"这条流程线"而非某个版本:升版后业务方绑定关系零改动,新发起自动走
* 当前已发布最高版本;item_code/form_id 留可空列(M1 不启用,原生模式/表单二期)。
*/
@Getter
@Setter
@Entity
@Table(name = "flw_def",
uniqueConstraints = @UniqueConstraint(name = "uk_flw_def_sch_code_ver",
columnNames = {"sch_id", "code", "version"}),
indexes = @Index(name = "idx_flw_def_guid", columnList = "sch_id, flow_guid, status, version"))
public class FlwDef extends BaseEntity {
/** 租户键 */
@Column(name = "sch_id", nullable = false)
private Long schId;
/** 对外稳定流程标识:创建草稿时生成(UUID 去横线小写),同一 code 跨版本不变 */
@Column(name = "flow_guid", nullable = false, length = 32)
private String flowGuid;
/** 流程编码(本应用内部管理键) */
@Column(name = "code", nullable = false, length = 64)
private String code;
/** 流程名 */
@Column(name = "name", nullable = false, length = 128)
private String name;
/** 版本,发布后不可改,改定义=升版本 */
@Column(name = "version", nullable = false)
private Integer version;
/** 关联 CMS 事项业务键(原生模式用,M1 不启用;与外部模式的 biz_* 互斥) */
@Column(name = "item_code", length = 64)
private String itemCode;
/** 关联表单定义(外部托管模式可无表单,M1 恒 null;二期通用表单预留) */
@Column(name = "form_id")
private Long formId;
/** §5.1 流程定义 JSON */
@Column(name = "content_json", nullable = false, columnDefinition = "LONGTEXT")
private String contentJson;
/** 0 草稿 / 1 已发布 / 2 停用(停用=不可新发起,存量跑完) */
@Column(name = "status", nullable = false)
private Integer status = FlwEnums.DefStatus.DRAFT.getCode();
/** 发布时间 */
@Column(name = "publish_time")
private LocalDateTime publishTime;
}