潘志宝
9 天以前 9d5be382e52f9ac57199d5ef75cc23f925a4cdb0
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.bpm.dal.dataobject.definition;
H 2
bb2880 3 import com.baomidou.mybatisplus.annotation.KeySequence;
e7c126 4 import com.baomidou.mybatisplus.annotation.TableField;
H 5 import com.baomidou.mybatisplus.annotation.TableId;
6 import com.baomidou.mybatisplus.annotation.TableName;
7 import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
bb2880 8 import com.iailab.framework.mybatis.core.dataobject.BaseDO;
H 9 import com.iailab.framework.mybatis.core.type.LongListTypeHandler;
10 import com.iailab.framework.mybatis.core.type.StringListTypeHandler;
11 import com.iailab.module.bpm.enums.definition.BpmModelFormTypeEnum;
12 import com.iailab.module.bpm.enums.definition.BpmModelTypeEnum;
13 import com.iailab.module.system.api.user.dto.AdminUserRespDTO;
e7c126 14 import lombok.AllArgsConstructor;
H 15 import lombok.Builder;
16 import lombok.Data;
17 import lombok.NoArgsConstructor;
bb2880 18 import org.flowable.engine.repository.Model;
H 19 import org.flowable.engine.repository.ProcessDefinition;
e7c126 20
H 21 import java.util.List;
22
23 /**
24  * BPM 流程定义的拓信息
bb2880 25  * 主要解决 Flowable {@link ProcessDefinition} 不支持拓展字段,所以新建该表
e7c126 26  *
H 27  * @author iailab
28  */
29 @TableName(value = "bpm_process_definition_info", autoResultMap = true)
bb2880 30 @KeySequence("bpm_process_definition_info_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
e7c126 31 @Data
H 32 @Builder
33 @NoArgsConstructor
34 @AllArgsConstructor
35 public class BpmProcessDefinitionInfoDO extends BaseDO {
36
37     /**
38      * 编号
39      */
40     @TableId
41     private Long id;
42     /**
43      * 流程定义的编号
44      *
bb2880 45      * 关联 {@link ProcessDefinition#getId()} 属性
e7c126 46      */
H 47     private String processDefinitionId;
48     /**
49      * 流程模型的编号
50      *
bb2880 51      * 关联 {@link Model#getId()} 属性
e7c126 52      */
H 53     private String modelId;
bb2880 54     /**
H 55      * 流程模型的类型
56      *
57      * 枚举 {@link BpmModelTypeEnum}
58      */
59     private Integer modelType;
e7c126 60
H 61     /**
62      * 图标
63      */
64     private String icon;
65     /**
66      * 描述
67      */
68     private String description;
69
70     /**
71      * 表单类型
72      *
bb2880 73      * 枚举 {@link BpmModelFormTypeEnum}
e7c126 74      */
H 75     private Integer formType;
76     /**
77      * 动态表单编号
bb2880 78      *
e7c126 79      * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时
H 80      *
81      * 关联 {@link BpmFormDO#getId()}
82      */
83     private Long formId;
84     /**
85      * 表单的配置
bb2880 86      *
e7c126 87      * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时
H 88      *
89      * 冗余 {@link BpmFormDO#getConf()}
90      */
91     private String formConf;
92     /**
93      * 表单项的数组
bb2880 94      *
e7c126 95      * 在表单类型为 {@link BpmModelFormTypeEnum#NORMAL} 时
H 96      *
bb2880 97      * 冗余 {@link BpmFormDO#getFields()}
e7c126 98      */
H 99     @TableField(typeHandler = JacksonTypeHandler.class)
100     private List<String> formFields;
101     /**
102      * 自定义表单的提交路径,使用 Vue 的路由地址
bb2880 103      *
e7c126 104      * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时
H 105      */
106     private String formCustomCreatePath;
107     /**
108      * 自定义表单的查看路径,使用 Vue 的路由地址
bb2880 109      *
e7c126 110      * 在表单类型为 {@link BpmModelFormTypeEnum#CUSTOM} 时
H 111      */
112     private String formCustomViewPath;
113
bb2880 114     /**
H 115      * SIMPLE 设计器模型数据 json 格式
116      *
117      * 目的:当使用仿钉钉设计器时。流程模型发布的时候,需要保存流程模型设计器的快照数据。
118      */
119     private String simpleModel;
120     /**
121      * 是否可见
122      *
123      * 目的:如果 false 不可见,则不展示在“发起流程”的列表里
124      */
125     private Boolean visible;
126     /**
127      * 排序值
128      */
129     private Long sort;
130
131     /**
132      * 可发起用户编号数组
133      *
134      * 关联 {@link AdminUserRespDTO#getId()} 字段的数组
135      *
136      * 如果为空,则表示“全部可以发起”!
137      *
138      * 它和 {@link #visible} 的区别在于:
139      * 1. {@link #visible} 只是决定是否可见。即使不可见,还是可以发起
140      * 2. startUserIds 决定某个用户是否可以发起。如果该用户不可发起,则他也是不可见的
141      */
142     @TableField(typeHandler = LongListTypeHandler.class) // 为了可以使用 find_in_set 进行过滤
143     private List<Long> startUserIds;
144
145     /**
146      * 可管理用户编号数组
147      *
148      * 关联 {@link AdminUserRespDTO#getId()} 字段的数组
149      */
150     @TableField(typeHandler = StringListTypeHandler.class) // 为了可以使用 find_in_set 进行过滤
151     private List<Long> managerUserIds;
152
e7c126 153 }