first commit

This commit is contained in:
那些花儿
2025-07-14 08:45:13 +08:00
commit 3e86198a82
2710 changed files with 610330 additions and 0 deletions
@@ -0,0 +1,47 @@
package com.budwk.app.bpm.models;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import java.util.List;
@Table("bpm_process_define")
@Comment("流程定义")
@Data
@EqualsAndHashCode(callSuper = true)
@TableMeta("{'mysql-charset':'utf8mb4'}")
public class BpmProcessDefine extends BaseModel implements Serializable {
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR,width = 30)
@Comment("编码")
private String code;
@Column
@ColDefine(type = ColType.VARCHAR,width = 50)
@Comment("名称")
private String name;
@Column
@ColDefine(type = ColType.VARCHAR,width = 1000)
@Comment("url")
private String url;
@Column
@ColDefine(type = ColType.VARCHAR,width = 1000)
@Comment("h5url")
private String h5url;
private List<BpmProcessNodeDefine> nodes;
}
@@ -0,0 +1,103 @@
package com.budwk.app.bpm.models;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Table("bpm_process_instance")
@Comment("流程实例")
@Data
@EqualsAndHashCode(callSuper = true)
@TableMeta("{'mysql-charset':'utf8mb4'}")
public class BpmProcessInstance extends BaseModel implements Serializable {
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR,width = 32)
@Comment("流程业务ID")
private String processInstanceBusinessId;
@Column
@ColDefine(type = ColType.VARCHAR,width = 32)
@Comment("流程定义ID")
private String processDefineId;
@Column
@ColDefine(type = ColType.VARCHAR,width = 200)
@Comment("流程实例名称")
private String processInstanceName;
@Column
@ColDefine(type = ColType.VARCHAR,width = 32)
@Comment("流程当前节点ID")
private String processInstanceNodeId;
@Column
@ColDefine(type = ColType.INT)
@Comment("流程当前节点code")
private Integer processInstanceNodeCode;
@Column
@ColDefine(type = ColType.VARCHAR,width = 50)
@Comment("流程当前节点名称")
private String processInstanceNodeName;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("流程当前任务ID")
private List<String> processInstanceTaskIds;
@Column
@ColDefine(type = ColType.VARCHAR,width = 32)
@Comment("流程发起人id")
private String processInstanceInitiatorId;
@Column
@ColDefine(type = ColType.VARCHAR,width = 50)
@Comment("流程发起人姓名")
private String processInstanceInitiatorName;
@Column
@ColDefine(type = ColType.VARCHAR,width = 50)
@Comment("流程发起人工号")
private String processInstanceInitiatorLoginName;
@Column
@ColDefine(type = ColType.VARCHAR,width = 100)
@Comment("流程发起人部门")
private String processInstanceInitiatorUnitName;
@Column
@ColDefine(type = ColType.DATETIME)
@Comment("流程发起时间")
private Date processInstanceInitiationTime;
@Column
@ColDefine(type = ColType.VARCHAR,width = 500)
@Comment("流程URL")
private String processInstanceUrl;
@Column
@ColDefine(type = ColType.VARCHAR,width = 500)
@Comment("流程H5URL")
private String processInstanceH5Url;
/**
* @see com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum
*/
@Column
@ColDefine(type = ColType.VARCHAR,width = 50)
@Comment("流程实例当前状态")
private String processInstanceStatus;
}
@@ -0,0 +1,105 @@
package com.budwk.app.bpm.models;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import java.io.Serializable;
import java.util.List;
@Table("bpm_process_node_define")
@Comment("流程节点定义")
@Data
@EqualsAndHashCode(callSuper = true)
@TableMeta("{'mysql-charset':'utf8mb4'}")
@TableIndexes({
@Index(name = "INDEX_BPM_PROCESS_NODE_DEFINE_NODE_CODE", fields = {"nodeCode"}, unique = false)
})
public class BpmProcessNodeDefine extends BaseModel implements Serializable {
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("流程定义ID")
private String processDefineId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("节点名称")
private String nodeName;
@Column
@ColDefine(type = ColType.INT)
@Comment("节点编码")
private Integer nodeCode;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("节点审批类型(pending、node_pass、node_reject,node_back")
private String nodeApprovalType;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("节点类型(start,task,end)")
private String nodeType;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("节点参与类型")
private String nodePerformType;
// @Column
// @ColDefine(type = ColType.VARCHAR,width = 100)
// @Comment("会签节点完成表达式")
// private String nodeCountersignExpression;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("通过下个节点")
private String passNextNodeId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("拒绝下个节点")
private String rejectNextNodeId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("退回下个节点")
private String backNextNodeId;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("动态决策(优先级最高)")
private List<DynamicDecision> dynamicDecisions;
@Column
@ColDefine(type = ColType.INT)
@Comment("排序")
private Integer sort;
@Data
public static class DynamicDecision {
//表达式
private String condition;
//描述
private String desc;
//节点ID
private String toNodeId;
}
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("url")
private String url;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("h5url")
private String h5url;
}
@@ -0,0 +1,167 @@
package com.budwk.app.bpm.models;
import cn.hutool.json.JSONObject;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Table("bpm_process_task")
@Comment("流程任务")
@Data
@EqualsAndHashCode(callSuper = true)
@TableMeta("{'mysql-charset':'utf8mb4'}")
@TableIndexes({
@Index(name = "INDEX_BPM_PROCESS_TASK_INSTANCE_NODE_CREATED", fields = {"processInstanceId","processTaskNodeCode","createdOn"},unique = false),
@Index(name = "INDEX_BPM_PROCESS_TASK_TRANSFER_AFTER_TASK",fields = {"transferAfterTaskId"},unique = false),
@Index(name = "INDEX_BPM_PROCESS_TASK_STATUS",fields = {"taskStatus"},unique = false),
})
public class BpmProcessTask extends BaseModel implements Serializable {
@Column
@Name
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("流程定义ID")
private String processDefineId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("流程实例ID")
private String processInstanceId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("所属节点ID")
private String processTaskNodeId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("所属节点名称")
private String processTaskNodeName;
@Column
@ColDefine(type = ColType.VARCHAR, width = 10)
@Comment("所属节点编码")
private Integer processTaskNodeCode;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("上个任务ID")
private String prevTaskId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("上个任务节点ID")
private String prevTaskNodeId;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("任务接收人")
private List<String> assignments;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("任务接收人姓名")
private List<String> assignmentUserNames;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("任务接收人单位")
private List<String> assignmentUnitNames;
@Column
@ColDefine(type = ColType.DATETIME)
@Comment("任务创建时间")
private Date createdOn;
@Column
@ColDefine(type = ColType.DATETIME)
@Comment("任务完成时间")
private Date endOn;
@Column
@ColDefine(type = ColType.VARCHAR, width = 32)
@Comment("办理人ID")
private String actualOwnerId;
@Column
@ColDefine(type = ColType.VARCHAR, width = 120)
@Comment("办理人工号")
private String actualOwnerLoginName;
@Column
@ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("办理人姓名")
private String actualOwnerUserName;
@Column
@ColDefine(type = ColType.VARCHAR, width = 100)
@Comment("办理人部门")
private String actualOwnerUnitName;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("任务的处理表单URL,用于待办任务的处理界面")
private String formUrl;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("任务的浏览表单URL,用于已办任务的表单查看")
private String formUrlView;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("手机端任务的处理表单URL,用于待办任务的处理界面")
private String formMobileUrl;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("手机端任务的浏览表单URL,用于已办任务的表单查看")
private String formMobileUrlView;
@Column
@ColDefine(type = ColType.VARCHAR, width = 20)
@Comment("状态")
private String taskStatus;
@Column
@ColDefine(type = ColType.VARCHAR, width = 1000)
@Comment("审批意见")
private String taskComment;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("是否已阅")
private Boolean isRead;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("扩展变量")
private JSONObject extVariable;
@Column
@ColDefine(type = ColType.MYSQL_JSON)
@Comment("任务生成时的变量")
private JSONObject createVariable;
@Column
@ColDefine(type = ColType.VARCHAR,width = 32)
@Comment("任务转办后的taskId")
private String transferAfterTaskId;
@Column
@ColDefine(type = ColType.BOOLEAN)
@Comment("是否自动完成")
@Default("0")
private Boolean isAutoComplete;
}