数据结构描述¶
本文档描述 OBPM 平台数据库表的分类、命名规范与生成机制。
平台支持多种数据库:MySQL、Oracle、PostgreSQL、SQL Server、KingBase、OceanBase、DM、DB2、HSQLDB/H2、Oscar。连接池使用 Druid(com.alibaba.druid)。
系统表¶
系统库以 JPA 或 Hibernate 作为 ORM,启动时通过 ddl-auto=update 自动创建/增量更新表结构(仅新增,不删除)。
基础配置见 obpm-common/src/main/resources/application-base.properties:
spring.jpa.database=mysql
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
两类映射方式并存:
- Hibernate
*.hbm.xml映射(旧体系):usercenter 模块的 PO,如UserVO.hbm.xml、DepartmentVO.hbm.xml、DomainVO.hbm.xml、Form.hbm.xml - JPA
@Entity注解(新模块):KMS、AI、Message、Logger 等
按模块分组如下:
obpm-usercenter¶
- 表前缀:
T_ - 实体位置:
obpm-usercenter/.../dao/ - 代表表:
- 用户体系:
T_USER、T_DEPARTMENT、T_DOMAIN、T_ACCOUNT、T_USERGROUP、T_USER_GROUP_SET、T_USER_DEPARTMENT_ROLE_SET、T_USER_DEFINED - 工作日历:
T_CALENDAR、T_STANDARDDAY、T_SPECIALDAY - 其他:
T_SYNCLOG、T_MEDIA、T_FIELD_EXTENDS
T_USER¶
用户主表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 姓名 |
| NAME_LETTER | VARCHAR | 姓名首字母 |
| CALENDAR | VARCHAR | 日历类型 |
| LEVELS | INT | 级别 |
| REMARKS | VARCHAR | 备注 |
| SUPERIOR | VARCHAR | 上级 ID |
| PROXYUSER | VARCHAR | 代理人 ID |
| EQUIPMENTID | VARCHAR | 设备 ID |
| DEFAULTDEPARTMENT | VARCHAR | 默认部门 |
| DEFAULTAPPLICATION | VARCHAR | 默认应用 |
| STATUS | INT | 状态 |
| DOMAINID | VARCHAR | 域 ID |
| DEPARTMENTUSER | BOOLEAN | 是否部门用户 |
| STARTPROXYTIME | DATE | 代理开始时间 |
| ENDPROXYTIME | DATE | 代理结束时间 |
| USEIM | BOOLEAN | 是否使用 IM |
| ORDERBYNO | INT | 排序号(默认 10000) |
| LASTMODIFYTIME | DATE | 最后修改时间 |
| PASSWORDARRAY | VARCHAR(1000) | 密码数组 |
| LOCKFLAG | INT | 锁定标记(默认 1) |
| PUBLICKEY | VARCHAR(1000) | 公钥 |
| AVATAR | TEXT | 头像 |
| FAVORITE_CONTACTS | TEXT | 常用联系人 |
| PERMISSION_TYPE | VARCHAR | 权限类型 |
| LIAISON_OFFICER | BOOLEAN | 是否联络员 |
| DDUSERID | VARCHAR | 钉钉用户 ID |
| FSUSERID | VARCHAR | 飞书用户 ID |
| TELEPHONEPUBLIC | BOOLEAN | 电话是否公开 |
| TELEPHONEPUBLIC2 | BOOLEAN | 电话2是否公开 |
| EMAILPUBLIC | BOOLEAN | 邮箱是否公开 |
| USERINFOPUBLIC | BOOLEAN | 用户信息是否公开 |
| SIGNS | TEXT | 个性签名 |
| CONFIGURE | TEXT | 配置 |
| COMMON_OPINION | TEXT | 常用意见 |
| FIELD1 ~ FIELD25 | VARCHAR/TEXT | 扩展字段(FIELD18-20 为 TEXT) |
| showEmail | BOOLEAN | 是否显示邮箱 |
| MANAGE_DEPARTMENTS | VARCHAR | 管理部门 |
| INTERFACE_DEPARTMENTS | VARCHAR | 接口部门 |
| VIEWSETTINGS | TEXT | 视图设置 |
| SECRET | VARCHAR | 密级 |
| ACCOUNTID | VARCHAR | 账户 ID(外键 T_ACCOUNT) |
T_ACCOUNT¶
账户/登录信息表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| ISFIRSTLOGIN | BOOLEAN | 是否首次登录 |
| LOGINNO | VARCHAR | 登录账号 |
| LOGINPWD | VARCHAR | 登录密码 |
| VARCHAR | 邮箱 | |
| TELEPHONE | VARCHAR | 电话 |
| TELEPHONE2 | VARCHAR | 电话2 |
T_DEPARTMENT¶
部门表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 部门名称 |
| SUPERIOR | VARCHAR | 上级部门 ID |
| DOMAIN_ID | VARCHAR | 域 ID(外键 T_DOMAIN) |
| LEVELS | INT | 级别 |
| INDEXCODE | VARCHAR(1000) | 索引码 |
| CODE | VARCHAR | 部门编码 |
| SORTID | VARCHAR | 排序号 |
| VALID | INT | 是否有效(默认 1) |
| ORDERBYNO | INT | 排序号(默认 10000) |
| WEIXIN_DEPT_ID | VARCHAR | 微信部门 ID |
| LANXIN_DEPT_ID | VARCHAR | 蓝信部门 ID |
| DINGDING_DEPT_ID | VARCHAR | 钉钉部门 ID |
| FS_DEPT_ID | VARCHAR | 飞书部门 ID |
| LASTMODIFYTIME | DATE | 最后修改时间 |
| FIELD1 ~ FIELD20 | VARCHAR/TEXT | 扩展字段(FIELD17-20 为 TEXT) |
T_DOMAIN¶
域/租户表(多租户隔离的核心,含微信/钉钉/飞书/邮件等集成配置)。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 域名称 |
| SORTID | VARCHAR | 排序号 |
| SKINTYPE | VARCHAR | 皮肤类型 |
| DESCRIPTION | TEXT | 描述 |
| STATUS | INT | 状态 |
| yun_api_key | VARCHAR | 云 API Key |
| IS_LOG | BOOLEAN | 是否启用日志 |
| SYSTEM_NAME | VARCHAR | 系统名称 |
| LOGO_URL | VARCHAR | Logo 地址 |
| WEIXIN_CORP_ID | VARCHAR | 微信企业 ID |
| WEIXIN_CORP_SECRET | VARCHAR | 微信密钥 |
| WEIXIN_AGENT_ID | VARCHAR | 微信应用 ID |
| WEIXIN_PROXY_TYPE | VARCHAR | 微信代理类型 |
| SERVER_HOST | VARCHAR | 服务器地址 |
| WEIXIN_TOKEN | VARCHAR | 微信 Token |
| WEIXIN_QRCODE_AGENTID | VARCHAR | 微信扫码应用 ID |
| WEIXIN_QRCODE_SECRET | VARCHAR | 微信扫码密钥 |
| WEIXIN_QRCODE_CALLBACKURL | VARCHAR | 微信扫码回调地址 |
| DINGDING_QRCODE_APPID | VARCHAR | 钉钉扫码 AppId |
| DINGDING_QRCODE_APPSECRET | VARCHAR | 钉钉扫码密钥 |
| DINGDING_QRCODE_CALLBACKURL | VARCHAR | 钉钉扫码回调 |
| WEIXIN_ENCODING_AESKEY | VARCHAR | 微信加密 AESKey |
| DINGDING_PROXY_TYPE | VARCHAR | 钉钉代理类型 |
| DINGDING_CORP_ID | VARCHAR | 钉钉企业 ID |
| DINGDING_APP_SECRET | VARCHAR | 钉钉密钥 |
| DINGDING_APP_KEY | VARCHAR | 钉钉 Key |
| DINGDING_AGENT_ID | VARCHAR | 钉钉应用 ID |
| DINGDING_SERVER_HOST | VARCHAR | 钉钉服务器 |
| DINGDING_TOKEN | VARCHAR | 钉钉 Token |
| DINGDING_CONFIG | TEXT | 钉钉配置 JSON |
| FS_PROXY_TYPE | VARCHAR | 飞书代理类型 |
| FS_CORP_ID | VARCHAR | 飞书企业 ID |
| FS_APP_SECRET | VARCHAR | 飞书密钥 |
| FS_APP_KEY | VARCHAR | 飞书 Key |
| FS_SERVER_HOST | VARCHAR | 飞书服务器 |
| FS_TOKEN | VARCHAR | 飞书 Token |
| FS_CONFIG | TEXT | 飞书配置 JSON |
| SYSTEM_MODULE_CONFIG | TEXT | 系统模块配置 |
| BIND_APPLICATIONS | TEXT | 绑定应用 |
| WEIXIN_CONFIG | TEXT | 微信配置 JSON |
| SEND_HOST | VARCHAR | 邮件服务器 |
| SEND_ADDRESS | VARCHAR | 发件地址 |
| SEND_ACCOUNT | VARCHAR | 发件账号 |
| SEND_PASSWORD | VARCHAR | 发件密码 |
| CC_ADDRESS | VARCHAR | 抄送地址 |
| ISUSE_CLIENT | VARCHAR | 是否使用客户端 |
| FUNCTION_DOMAIN | VARCHAR | 功能域 |
| TRASH | VARCHAR | 废件箱 |
| SENDER | VARCHAR | 发件人 |
| DRAFT | VARCHAR | 草稿箱 |
| REMOVED | VARCHAR | 已删除 |
| FETCH_SERVER | VARCHAR | 收件服务器 |
| FETCH_SERVER_PORT | VARCHAR | 收件端口 |
| FETCH_PROTOCOL | VARCHAR | 收件协议 |
| FETCH_SSL | VARCHAR | 收件 SSL |
| SMTP_SERVER | VARCHAR | SMTP 服务器 |
| SMTP_SERVER_PORT | VARCHAR | SMTP 端口 |
| SMTP_AUTH_ENTICATED | VARCHAR | SMTP 认证 |
| SMTP_SSL | VARCHAR | SMTP SSL |
| PARENTS | VARCHAR | 父级 |
| FIELD1 ~ FIELD20 | VARCHAR/TEXT | 扩展字段(FIELD8-10、18-20 为 TEXT) |
| SECRET | VARCHAR | 密级 |
| ABBREVIATION | VARCHAR | 简称 |
T_USER_DEFINED¶
用户自定义配置表(首页/模板)。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键(UUID) |
| APPLICATIONID | VARCHAR | 应用 ID |
| USERID | VARCHAR | 用户 ID |
| TEMPLATESTYLE | TEXT | 模板样式 |
| TEMPLATEELEMENT | TEXT | 模板元素 |
| NAME | VARCHAR | 名称 |
| TYPE | VARCHAR | 类型 |
| DISPLAYTO | VARCHAR | 显示对象 |
| ROLEIDS | TEXT | 角色 ID 列表 |
| ROLENAMES | TEXT | 角色姓名 |
| CREATOR | VARCHAR | 创建者 |
| DEFINEMODE | INT | 定义模式 |
| TEMPLATECONTEXT | TEXT | 模板内容 |
| PUBLISHED | BOOLEAN | 是否发布 |
| USEDDEFINED | INT | 是否用户自定义 |
| USUALSTARTMENUS | TEXT | 常用菜单 |
T_USER_DEPARTMENT_ROLE_SET¶
用户-部门-角色关联表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键(UUID) |
| DEPARTMENTID | VARCHAR | 部门 ID |
| USERID | VARCHAR | 用户 ID |
| ROLEID | VARCHAR | 角色 ID |
T_USERGROUP¶
用户组表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 用户组名 |
| OWNERID | VARCHAR | 拥有者 ID |
| DOMAINID | VARCHAR | 域 ID |
T_USER_GROUP_SET¶
用户组成员关联表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| USERID | VARCHAR | 用户 ID |
| USERGROUPID | VARCHAR | 用户组 ID |
T_SYNCLOG¶
数据同步日志表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| ACTION | VARCHAR | 动作 |
| ACTIONTIME | DATE | 动作时间 |
| TABLENAME | VARCHAR | 表名 |
| STATUS | INT | 状态 |
| DATAOPERATION | TEXT | 数据操作内容 |
| MSG | TEXT | 消息 |
T_CALENDAR¶
工作日历表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| CALENDARTYPE | VARCHAR | 日历类型 |
| CALENDARNAME | VARCHAR | 日历名称 |
| LASTMODIFYDATE | DATE | 最后修改时间 |
| SORTID | VARCHAR | 排序号 |
| DOMAINID | VARCHAR | 域 ID |
| REMARK | VARCHAR | 备注 |
| WORKINGTIME | INT | 工作时长 |
| FROMCALENDARID | VARCHAR | 来源日历 ID |
T_STANDARDDAY¶
标准工作日表(含 5 段上下班时间)。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| CALENDAR | VARCHAR | 所属日历 ID |
| STATUS | VARCHAR | 工作日状态 |
| STARTTIME1 ~ STARTTIME5 | VARCHAR | 5 段上班时间 |
| ENDTIME1 ~ ENDTIME5 | VARCHAR | 5 段下班时间 |
| WEEKDAYS | INT | 星期几 |
| LASTMODIFYDATE | DATE | 最后修改时间 |
| SORTID | VARCHAR | 排序号 |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
| REMARK | VARCHAR | 备注 |
T_SPECIALDAY¶
特殊日表(节假日/调休,含 5 段上下班时间)。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| CALENDAR | VARCHAR | 所属日历 ID |
| STATUS | VARCHAR | 工作日状态 |
| STARTDATE | DATE | 开始日期 |
| ENDDATE | DATE | 结束日期 |
| STARTTIME1 ~ STARTTIME5 | VARCHAR | 5 段上班时间 |
| ENDTIME1 ~ ENDTIME5 | VARCHAR | 5 段下班时间 |
| WORKDAYS | INT | 工作日 |
| DOMAINID | VARCHAR | 域 ID |
| LASTMODIFYDATE | DATE | 最后修改时间 |
| SORTID | VARCHAR | 排序号 |
| APPLICATIONID | VARCHAR | 应用 ID |
| REMARK | VARCHAR | 备注 |
T_FIELD_EXTENDS¶
字段扩展配置表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键(UUID) |
| FOR_TABLE | VARCHAR | 所属表 |
| NAME | VARCHAR | 字段名 |
| LABEL | VARCHAR | 显示名 |
| TYPE | VARCHAR | 类型 |
| IS_NOT_NULL | BOOLEAN | 是否非空 |
| ENABEL | BOOLEAN | 是否启用 |
| SORT_NUMBER | INT | 排序号 |
| OPTIONS | VARCHAR | 选项 |
| IS_READ_ONLY | BOOLEAN | 是否只读 |
| IS_SUPPORT_SEARCH | BOOLEAN | 是否支持搜索 |
| IS_SUPPORT_IMPORT | BOOLEAN | 是否支持导入 |
| DOMAINID | VARCHAR | 域 ID |
T_MEDIA¶
媒体资源表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| TYPE | VARCHAR | 类型 |
| SIZE | BIGINT | 大小 |
| NAME | VARCHAR | 名称 |
| MEDIAID | VARCHAR | 媒体 ID |
| DOMAINID | VARCHAR | 域 ID |
| CREATEDATE | DATE | 创建时间 |
obpm-signon¶
- 表前缀:
T_ - 实体位置:
obpm-signon/.../auth/model/ - 代表表:
T_USER、T_DOMAIN、T_ACCOUNT - 说明:用
@Entity+@Table(name="T_USER")覆盖同名表,与 usercenter 的 hbm.xml 映射指向同一物理表(字段定义以 usercenter 的 hbm.xml 为准)
obpm-core¶
- 表前缀:
T_ - 实体位置:
obpm-core/.../ - 代表表:
- 表单定义:
T_DYNAFORM_FORM、T_PAGE、T_COMPONENT - 其他:
T_LINK
T_DYNAFORM_FORM¶
表单定义主表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| APPLICATIONID | VARCHAR | 应用 ID |
| SORTID | VARCHAR | 排序号 |
| ACTIVITYXML | TEXT(16M) | 活动 XML |
| RELATIONTEXT | TEXT | 关联文本 |
| MAPPINGSTR | TEXT | 映射字符串 |
| ISOPENABLESCRIPT | TEXT | 打开脚本 |
| ISEDITABLESCRIPT | TEXT | 编辑脚本 |
| VERSIONS | INT | 版本 |
| NAME | VARCHAR | 表单名 |
| RELATIONNAME | VARCHAR | 关联名 |
| TYPE | INT | 类型 |
| TEMPLATECONTEXT | TEXT(16M) | 模板内容 |
| DISCRIPTION | TEXT(1000) | 描述 |
| LASTMODIFIER | VARCHAR | 最后修改人 |
| LASTMODIFYTIME | DATE | 最后修改时间 |
| STYLE | VARCHAR | 样式 |
| SHOWLOG | BOOLEAN | 是否显示日志 |
| SHOWWATERMARK | BOOLEAN | 是否显示水印 |
| WATERMARK_SCRIPT | TEXT | 水印脚本 |
| ONSAVESTARTFLOW | BOOLEAN | 保存时启动流程 |
| DOC_SUMMARY_XML | TEXT | 文档摘要 XML |
| CHECKOUT | BOOLEAN | 是否检出(默认 0) |
| CHECKOUTHANDLER | VARCHAR | 检出人 |
| ORDERNO | INT | 排序号(默认 10000) |
| PERMISSION_TYPE | VARCHAR | 权限类型 |
| LAYOUT_TYPE | VARCHAR | 布局类型 |
注:
T_PAGE、T_COMPONENT为T_DYNAFORM_FORM的 joined-subclass,当前映射代码已注释,仅在历史版本中存在。
T_LINK¶
链接表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 链接名 |
| DESCRIPTION | VARCHAR | 描述 |
| TYPE | VARCHAR | 类型 |
| APPLICATIONID | VARCHAR | 应用 ID |
| MODULEID | VARCHAR | 模块 ID |
| ACTIONCONTENT | VARCHAR(2000) | 动作内容 |
| QUERYSTRING | TEXT | 查询字符串 |
| DIRECTORY | VARCHAR | 目录 |
| SORTID | VARCHAR | 排序号 |
obpm-kms¶
- 表前缀:
KMS_ - 实体位置:
obpm-kms/.../model/ - 代表表:
KMS_FILEOBJECT、KMS_DISK、KMS_CATEGORY、KMS_FILE_WIKI等 20+ 张 - 详细字段结构见 KMS 模块数据表
obpm-ai¶
- 表前缀:
ai_ - 实体位置:
obpm-ai/.../entity/ - 代表表:
ai_system_prompt、ai_chat_memory
ai_system_prompt¶
系统提示词表。
| 列名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | BIGINT | PK(自增) | 主键 |
| user_id | VARCHAR(255) | 用户 ID | |
| prompt_name | VARCHAR(255) | 提示词名称 | |
| prompt_content | LONGTEXT | 提示词内容 | |
| is_default | BOOLEAN | 是否默认 | |
| created_at | DATETIME | 创建时间 | |
| updated_at | DATETIME | 更新时间 |
ai_chat_memory¶
聊天记忆表。
| 列名 | 类型 | 主键 | 说明 |
|---|---|---|---|
| id | BIGINT | PK(自增) | 主键 |
| memory_id | VARCHAR(255) | 记忆 ID | |
| message_index | INT | 消息序号 | |
| message_type | VARCHAR(50) | 消息类型 | |
| message_content | LONGTEXT | 消息内容 | |
| created_at | DATETIME | 创建时间 |
obpm-message¶
- 表前缀:
mc_ - 实体位置:
obpm-message/.../ - 代表表:
mc_message、mc_notification、mc_notice、mc_comment
mc_message¶
消息表(站内消息,继承 AuthtimeValueObject)。
| 列名 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR | 主键 |
| TITLE | VARCHAR | 标题 |
| CONTENT | VARCHAR | 内容 |
| ATTACHMENT | VARCHAR(4000) | 附件(JSON) |
| CREATE_TIME | DATE | 发表时间 |
| SENDER | VARCHAR | 发送者 |
| SENDER_ID | VARCHAR | 发送者 ID |
| SENDER_DEPT | VARCHAR | 发送者部门 |
| SENDER_DEPT_ID | VARCHAR | 发送者部门 ID |
| SCOPE | INT | 可见范围(0 全公司/1 仅自己/2 自定义) |
| RECEIVER_INFO | VARCHAR | 接收者信息(JSON) |
| RECEIVER_ID | VARCHAR | 接收者 ID |
| RECEIVER_DEPT_ID | VARCHAR | 接收者部门 ID |
| COMMENT_COUNT | INT | 评论数 |
| TYPE | INT | 消息类型(0 常规/1 公告/2 提醒) |
| IS_STICKY | BOOLEAN | 是否置顶 |
| IS_COMMENT | BOOLEAN | 是否可评论 |
| MODULE | VARCHAR | 来源模块 |
| DOMAIN_ID | VARCHAR | 域 ID |
mc_notification¶
消息推送表。
| 列名 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR | 主键 |
| MESSAGE_ID | VARCHAR | 被推送消息 ID |
| SENDER | VARCHAR | 发送者 |
| SENDER_ID | VARCHAR | 发送者 ID |
| RECEIVER_ID | VARCHAR | 接收者 ID |
| MODULE | VARCHAR | 模块 |
| MESSAGE_TYPE | INT | 类型(0 消息/1 通知/2 评论/3 提醒) |
| SUMMARY | VARCHAR | 摘要 |
| LINK_PARAMS | VARCHAR | 链接参数(JSON) |
| CREATE_TIME | DATE | 创建时间 |
| DOMAIN_ID | VARCHAR | 域 ID |
mc_notice¶
工作事项通知/提醒表。
| 列名 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR | 主键 |
| SUMMARY | LONGTEXT | 通知摘要 |
| CONTENT | VARCHAR | 通知内容(JSON) |
| TO_USER_ID | VARCHAR | 接收用户 ID |
| CREATE_TIME | DATE | 创建时间 |
| IS_READ | BOOLEAN | 是否已读 |
| MODULE | VARCHAR | 来源模块 |
| LINK_PARAMS | VARCHAR | 链接参数(JSON) |
| SUBJECT_TYPE | INT | 类型 |
| DOMAIN_ID | VARCHAR | 域 ID |
| message_ID | VARCHAR | 站内消息 ID |
mc_comment¶
消息评论表。
| 列名 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR | 主键 |
| CONTENT | VARCHAR | 内容 |
| ATTACHMENT | VARCHAR | 附件(JSON) |
| CREATE_TIME | DATE | 发表时间 |
| SENDER | VARCHAR | 评论者姓名 |
| SENDER_ID | VARCHAR | 评论者 ID |
| MESSAGE_ID | VARCHAR | 被评论消息 ID |
| COMMENT_ID | VARCHAR | 被回复评论 ID |
| TO_USER | VARCHAR | 被回复评论作者 |
| TO_USER_ID | VARCHAR | 被回复评论作者 ID |
| avatar | VARCHAR | 头像(无 @Column,列名为 AVATAR) |
| TO_CONTENT | VARCHAR | 被回复内容 |
| MODULE | VARCHAR | 所属模块 |
| IS_READ | BOOLEAN | 是否已读 |
| DOMAIN_ID | VARCHAR | 域 ID |
obpm-logger¶
- 表前缀:
T_ - 实体位置:
obpm-logger/.../model/ - 代表表:
T_LOG
T_LOG¶
日志表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| USER_ID | VARCHAR | 用户 ID |
| OPERATOR | VARCHAR | 操作人 |
| DESCRIPTION | LONGTEXT | 描述 |
| TYPE | VARCHAR | 类型 |
| IP | VARCHAR | IP 地址 |
| APPLICATIONID | VARCHAR | 应用 ID |
| DOMAINID | VARCHAR | 域 ID |
| LOGDATE | DATE | 日志时间 |
| SORTID | VARCHAR | 排序号 |
| LOGRES | VARCHAR | 结果 |
静态表¶
前缀 T_XXXX 表,指运行时核心业务表。其 schema 在 AbstractApplicationInitDAO 中以代码定义,启动时自动创建。与系统表的区别:这些表承载工作流、文档、待办等运行时数据,结构由平台代码(非 ORM 映射文件)维护。
定义位置:obpm-core/src/main/java/cn/myapps/core/common/dao/application/AbstractApplicationInitDAO.java
T_DOCUMENT¶
文档/业务数据主表(文档头),通过 MAPPINGID 关联 TLK_ 动态表。是 OBPM 文档体系的中枢。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| LASTMODIFIED | TIMESTAMP | 最后修改时间 |
| FORMNAME | VARCHAR | 表单名称 |
| AUDITDATE | TIMESTAMP | 审批时间 |
| AUTHOR | VARCHAR | 创建人 |
| AUTHORDEPTID | VARCHAR | 创建人部门 ID |
| AUTHOR_DEPT_INDEX | VARCHAR(2000) | 创建人部门索引 |
| AUTHOR_USER_INDEX | VARCHAR(2000) | 创建人索引 |
| CREATED | TIMESTAMP | 创建时间 |
| FORMID | VARCHAR | 表单 ID |
| SUBFORMIDS | LONGTEXT | 子表单 ID 列表 |
| ISTMP | BIT | 是否临时文档 |
| VERSIONS | INT | 版本号 |
| SORTID | VARCHAR | 排序号 |
| APPLICATIONID | VARCHAR | 应用 ID |
| STATELABEL | VARCHAR | 状态标签 |
| INITIATOR | VARCHAR | 发起人 |
| AUDITUSER | VARCHAR | 审批人 |
| AUDITORNAMES | LONGTEXT | 审批人姓名列表 |
| LASTFLOWOPERATION | VARCHAR | 最近流程操作 |
| PARENT | VARCHAR | 父文档 ID |
| STATE | VARCHAR | 流程状态 |
| STATEINT | INT | 状态码 |
| LASTMODIFIER | VARCHAR | 最后修改人 |
| DOMAINID | VARCHAR | 域 ID |
| AUDITORLIST | LONGTEXT | 审批人 ID 列表 |
| COAUDITORLIST | LONGTEXT | 协办人列表 |
| STATELABELINFO | LONGTEXT | 状态标签信息 |
| PREVAUDITNODE | LONGTEXT | 上一审批节点 |
| PREVAUDITUSER | LONGTEXT | 上一审批人 |
| OPTIONITEM | LONGTEXT | 选项项 |
| SIGN | LONGTEXT | 签名 |
| SECRET | VARCHAR | 密级 |
| MAPPINGID | VARCHAR | 映射 ID(关联 TLK_ 表主键) |
T_FLOWSTATERT¶
流程实例运行时状态表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| DOCID | VARCHAR | 文档 ID |
| FLOWID | VARCHAR | 流程定义 ID |
| STATE | INT | 状态码 |
| PARENT | VARCHAR | 父流程实例 |
| FLOWNAME | VARCHAR | 流程名称 |
| FLOWXML | LONGTEXT | 流程实例 XML |
| LASTMODIFIERID | VARCHAR | 最后修改人 ID |
| LASTMODIFIED | TIMESTAMP | 最后修改时间 |
| APPLICATIONID | VARCHAR | 应用 ID |
| SUBFLOWNODEID | VARCHAR | 子流程节点 ID |
| COMPLETE | BIT | 是否完成 |
| CALLBACK | BIT | 是否回退 |
| TOKEN | VARCHAR(400) | 令牌 |
| STATELABEL | VARCHAR | 状态标签 |
| INITIATOR | VARCHAR | 发起人 |
| AUDITUSER | VARCHAR | 审批人 |
| AUDITORNAMES | LONGTEXT | 审批人姓名 |
| AUDITORLIST | LONGTEXT | 审批人 ID |
| COAUDITORLIST | LONGTEXT | 协办人列表 |
| LASTFLOWOPERATION | VARCHAR | 最近操作 |
| AUDITDATE | TIMESTAMP | 审批时间 |
| SUB_POSITION | INT | 子流程位置 |
| ISARCHIVED | BIT | 是否归档 |
| ISTERMINATED | BIT | 是否终止 |
| PREV_AUDIT_NODE | VARCHAR | 上一审批节点 |
| PREV_AUDIT_USER | VARCHAR | 上一审批人 |
| WORKFLOW_TYPE | INT | 工作流类型 |
| ACTIONTIME | TIMESTAMP | 操作时间 |
| SUMMARY | LONGTEXT | 摘要 |
| INITIATORID | VARCHAR | 发起人 ID |
| FIRSTPROCESSTIME | TIMESTAMP | 首次处理时间 |
| DOMAINID | VARCHAR | 域 ID |
T_ACTORRT¶
流程当前待办人运行时表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| ACTORID | VARCHAR | 待办人 ID |
| NAME | VARCHAR | 待办人姓名 |
| ISPROCESSED | BIT | 是否已处理 |
| TYPE | INT | 类型 |
| NODERT_ID | VARCHAR | 节点运行时 ID |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| DOC_ID | VARCHAR | 文档 ID |
| DEADLINE | TIMESTAMP | 截止时间 |
| PENDING | BIT | 是否挂起 |
| ISREAD | BIT | 是否已读 |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
| APPROVAL_POSITION | INT | 审批位置 |
| REMINDER_TIMES | INT | 催办次数 |
| BAK | LONGTEXT | 备份字段 |
T_NODERT¶
流程当前节点运行时表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 节点名称 |
| NODEID | VARCHAR | 节点定义 ID |
| FLOWID | VARCHAR | 流程 ID |
| DOCID | VARCHAR | 文档 ID |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| NOTIFIABLE | BIT | 是否通知 |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
| STATELABEL | VARCHAR | 状态标签 |
| FLOWOPTION | VARCHAR | 流程选项 |
| SPLITTOKEN | VARCHAR | 分支令牌 |
| PASSCONDITION | INT | 通过条件 |
| PARENTNODERTID | VARCHAR | 父节点 ID |
| DEADLINE | TIMESTAMP | 截止时间 |
| ORDERLY | BIT | 是否顺序审批 |
| APPROVAL_POSITION | INT | 审批位置 |
| STATE | INT | 状态 |
| LASTPROCESSTIME | TIMESTAMP | 最后处理时间 |
| REMINDER_TIMES | INT | 催办次数 |
| ACTIONTIME | TIMESTAMP | 操作时间 |
T_RELATIONHIS¶
流程审批历史关系表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| ACTIONTIME | TIMESTAMP | 操作时间 |
| PROCESSTIME | TIMESTAMP | 处理时间 |
| STARTNODENAME | VARCHAR | 起始节点名 |
| FLOWID | VARCHAR | 流程 ID |
| FLOWNAME | VARCHAR | 流程名称 |
| DOCID | VARCHAR | 文档 ID |
| ENDNODEID | VARCHAR | 结束节点 ID |
| ENDNODENAME | VARCHAR | 结束节点名 |
| STARTNODEID | VARCHAR | 起始节点 ID |
| ISPASSED | BIT | 是否通过 |
| ATTITUDE | VARCHAR(2000) | 审批意见 |
| AUDITOR | VARCHAR | 审批人 |
| FLOWOPERATION | VARCHAR | 流程操作 |
| REMINDERCOUNT | INT | 催办次数 |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
T_ACTORHIS¶
流程审批人历史表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| ACTORID | VARCHAR | 审批人 ID |
| NAME | VARCHAR | 审批人姓名 |
| AGENTID | VARCHAR | 代理人 ID |
| AGENTNAME | VARCHAR | 代理人姓名 |
| TYPE | INT | 类型 |
| PROCESSTIME | TIMESTAMP | 处理时间 |
| ATTITUDE | VARCHAR(2000) | 审批意见 |
| NODEHIS_ID | VARCHAR | 节点历史 ID |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| DOC_ID | VARCHAR | 文档 ID |
| SIGNATURE | CLOB | 签名 |
| RECEIVERINFO | LONGTEXT | 接收人信息 |
| ACTIONTIME | TIMESTAMP | 操作时间 |
T_FLOWHISTORY¶
流程审批历史明细表(完整审批轨迹)。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| FLOWID | VARCHAR | 流程 ID |
| NODEHIS_ID | VARCHAR | 节点历史 ID |
| STARTNODENAME | VARCHAR | 起始节点名 |
| ENDNODENAME | VARCHAR | 结束节点名 |
| NAME | VARCHAR | 名称 |
| DOC_ID | VARCHAR | 文档 ID |
| ATTITUDE | VARCHAR(2000) | 审批意见 |
| PROCESSTIME | TIMESTAMP | 处理时间 |
| FLOWOPERATION | VARCHAR | 流程操作 |
| STARTNODEID | VARCHAR | 起始节点 ID |
| ENDNODEID | VARCHAR | 结束节点 ID |
| AGENTNAME | VARCHAR | 代理人姓名 |
| AGENTID | VARCHAR | 代理人 ID |
| SIGNATURE | CLOB | 签名 |
| ACTORID | VARCHAR | 审批人 ID |
| RECEIVERINFO | LONGTEXT | 接收人信息 |
| ACTIONTIME | TIMESTAMP | 操作时间 |
| FLOWNAME | VARCHAR | 流程名称 |
| INITIATOR | VARCHAR | 发起人 |
| INITIATORID | VARCHAR | 发起人 ID |
| SUMMARY | LONGTEXT | 摘要 |
| FIRSTPROCESSTIME | TIMESTAMP | 首次处理时间 |
| STATELABEL | LONGTEXT | 状态标签 |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
T_COUNTER¶
计数器表(编号生成)。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| COUNTER | INT | 计数值 |
| NAME | VARCHAR | 计数器名 |
| APPLICATIONID | VARCHAR | 应用 ID |
| DOMAINID | VARCHAR | 域 ID |
T_UPLOAD¶
文件附件存储表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 文件名 |
| IMGBINARY | BLOB | 文件二进制 |
| FIELDID | VARCHAR | 字段 ID |
| TYPE | VARCHAR | 文件类型 |
| FILESIZE | INT | 文件大小 |
| USERID | VARCHAR | 上传人 ID |
| MODIFYDATE | TIMESTAMP | 修改时间 |
| PATH | LONGTEXT | 存储路径 |
| FOLDERPATH | LONGTEXT | 文件夹路径 |
| SOURCEFILEID | VARCHAR | 源文件 ID |
| VERSIONNO | VARCHAR | 版本号 |
| DOCID | VARCHAR | 文档 ID |
| RELATEMSG | VARCHAR | 关联信息 |
T_FLOW_PROXY¶
流程代理设置表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| FLOWNAME | VARCHAR | 流程名称 |
| FLOWID | VARCHAR | 流程 ID |
| DESCRIPTION | VARCHAR | 描述 |
| STATE | VARCHAR | 状态 |
| AGENTS | LONGTEXT | 代理人 ID 列表 |
| AGENTSNAME | LONGTEXT | 代理人姓名 |
| OWNER | VARCHAR | 委托人 |
| APPLICATIONID | VARCHAR | 应用 ID |
| DOMAINID | VARCHAR | 域 ID |
| VERSION | INT | 版本 |
| PROXYMODE | INT | 代理模式 |
| STARTPROXYTIME | TIMESTAMP | 代理开始时间 |
| ENDPROXYTIME | TIMESTAMP | 代理结束时间 |
T_CIRCULATOR¶
抄送人表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 抄送人姓名 |
| USERID | VARCHAR | 抄送人 ID |
| DOC_ID | VARCHAR | 文档 ID |
| NODERT_ID | VARCHAR | 节点 ID |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| CCTIME | TIMESTAMP | 抄送时间 |
| READTIME | TIMESTAMP | 阅读时间 |
| DEADLINE | TIMESTAMP | 截止时间 |
| ISREAD | BIT | 是否已读 |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
| SUMMARY | LONGTEXT | 摘要 |
| VERSION | INT | 版本 |
T_COACTORRT¶
流程协办人表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| NAME | VARCHAR | 协办人姓名 |
| USERID | VARCHAR | 协办人 ID |
| DOC_ID | VARCHAR | 文档 ID |
| NODERT_ID | VARCHAR | 节点 ID |
| FLOWSTATERT_ID | VARCHAR | 流程实例 ID |
| CREATE_TIME | TIMESTAMP | 创建时间 |
| READTIME | TIMESTAMP | 阅读时间 |
| DEADLINE | TIMESTAMP | 截止时间 |
| ISREAD | BIT | 是否已读 |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
| VERSION | INT | 版本 |
T_WORKFLOW_REMINDER_HISTORY¶
流程催办历史表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| REMINDER_CONTENT | VARCHAR | 催办内容 |
| USER_ID | VARCHAR | 被催办人 ID |
| USER_NAME | VARCHAR | 被催办人姓名 |
| NODE_NAME | VARCHAR | 节点名 |
| DOC_ID | VARCHAR | 文档 ID |
| FLOW_INSTANCE_ID | VARCHAR | 流程实例 ID |
| DOMAINID | VARCHAR | 域 ID |
| APPLICATIONID | VARCHAR | 应用 ID |
| PROCESS_TIME | TIMESTAMP | 催办时间 |
T_TRIGGER¶
触发器 / 定时任务表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| TOKEN | VARCHAR(400) | 令牌 |
| JOB_TYPE | INT | 任务类型 |
| JOB_DATA | LONGTEXT | 任务数据 |
| STATE | VARCHAR(255) | 状态 |
| DEADLINE | BIGINT | 截止时间戳 |
| IS_LOOP | BIT | 是否循环 |
| APPLICATIONID | VARCHAR(255) | 应用 ID |
| DOCUMENTS | LONGTEXT | 关联文档 |
| RUNTIMES | INT | 运行次数 |
| LASTMODIFIDATE | TIMESTAMP | 最后修改时间 |
| TASKID | VARCHAR(255) | 任务 ID |
T_SHORTMESSAGE_RECEIVED¶
短消息收件表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| CONTENT | LONGTEXT | 内容 |
| SENDER | VARCHAR(255) | 发送人 |
| RECEIVER | VARCHAR(255) | 接收人 |
| RECEIVEDATE | VARCHAR(255) | 接收时间 |
| STATUS | INT | 状态 |
| PARENT | VARCHAR(255) | 父消息 |
| DOCID | VARCHAR(255) | 文档 ID |
| APPLICATIONID | VARCHAR(255) | 应用 ID |
| DOMAINID | VARCHAR(255) | 域 ID |
| CREATED | TIMESTAMP | 创建时间 |
T_SHORTMESSAGE_SUBMIT¶
短消息发件表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| CONTENTTYPE | INT | 内容类型 |
| TITLE | VARCHAR(255) | 标题 |
| CONTENT | VARCHAR(255) | 内容 |
| SENDDATE | TIMESTAMP | 发送时间 |
| REPLYCODE | VARCHAR(255) | 回复码 |
| SENDER | VARCHAR(255) | 发送人 |
| RECEIVER | LONGTEXT | 接收人列表 |
| SUBMISSION | BIT | 是否提交 |
| ISFAILURE | BIT | 是否失败 |
| ISREPLY | BIT | 是否已回复 |
| ISTRASH | BIT | 是否废弃 |
| ISDRAFT | BIT | 是否草稿 |
| NEEDREPLY | BIT | 是否需要回复 |
| MASS | BIT | 是否群发 |
| DOCID | VARCHAR(255) | 文档 ID |
| APPLICATIONID | VARCHAR(255) | 应用 ID |
| DOMAINID | VARCHAR(255) | 域 ID |
| RECEIVERUSERID | VARCHAR(255) | 接收人 ID |
| RECEIVERNAME | VARCHAR(255) | 接收人姓名 |
T_COMMENT¶
评论表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| FLAG | VARCHAR | 标识 |
| APPLICATION_ID | VARCHAR | 应用 ID |
| DOMAIN_ID | VARCHAR | 域 ID |
| USER_ID | VARCHAR | 用户 ID |
| USER_NAME | VARCHAR | 用户姓名 |
| COMMENTS | LONGTEXT | 评论内容 |
| UNLIKE_NUM | INT | 踩数 |
| LIKE_NUM | INT | 赞数 |
| CREATE_DATE | TIMESTAMP | 创建时间 |
| PARENT_ID | VARCHAR | 父评论 ID |
T_CHECKIN¶
签到表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| WIDGET_ID | VARCHAR | 组件 ID |
| APPLICATION_ID | VARCHAR | 应用 ID |
| DOMAIN_ID | VARCHAR | 域 ID |
| USER_ID | VARCHAR | 用户 ID |
| USER_NAME | VARCHAR | 用户姓名 |
| CHECKIN_TIME | TIMESTAMP | 签到时间 |
T_LOGS¶
系统操作审计日志表。
| 列名 | 类型 | 说明 |
|---|---|---|
| ID | VARCHAR | 主键 |
| OPERATORID | VARCHAR | 操作人 ID |
| OPERATOR | VARCHAR | 操作人姓名 |
| OPERATIONTIME | TIMESTAMP | 操作时间 |
| OPERATIONTYPE | VARCHAR | 操作类型 |
| SOURCEID | VARCHAR | 资源 ID |
| PARENTSOURCEID | VARCHAR | 父资源 ID |
| SOURCE | VARCHAR | 资源 |
| SOURCETYPE | VARCHAR | 资源类型 |
| DESCRIPTION | LONGTEXT | 描述 |
| APPLICATIONID | VARCHAR | 应用 ID |
动态表¶
前缀 TLK_XXX 表 / LOG_XXX 表 / PARM_XXX 表。每个表单(Form)保存时会自动生成对应数据库表,用于存储该表单的业务数据——这是 OBPM 低代码平台的核心特性。
前缀常量定义于 obpm-core/src/main/java/cn/myapps/core/runtime/dynaform/document/dql/DQLASTUtil.java:
| 前缀 | 类型常量 | 用途 | 生成条件 |
|---|---|---|---|
TLK_ |
TABEL_TYPE_CONTENT (1) |
表单业务数据存储表(最常见) | 普通表单(FORM_TYPE_NORMAL)保存 |
LOG_ |
TABEL_TYPE_LOG (2) |
表单数据变更历史表 | 表单开启 showLog=true |
PARM_ |
TABLE_TYPE_PARM (4) |
流程参数表 | 流程参数表单(FORM_TYPE_FLOW_PARAMETER) |
命名规则:前缀 + 表单名(form.name),全大写。例如表单 Leave → TLK_LEAVE、LOG_LEAVE。
列结构¶
每张动态表由 4 部分列组成:
① 固定列(所有动态表共有,来自 ChangeLog.getFixedColumns()):
| 列名 | 类型 | 说明 |
|---|---|---|
| PARENT | VARCHAR | 父文档 ID |
| LASTMODIFIED | TIMESTAMP | 最后修改时间 |
| FORMNAME | VARCHAR | 表单名称 |
| STATE | VARCHAR | 流程状态 |
| AUDITUSER | VARCHAR | 审批人 |
| AUDITDATE | TIMESTAMP | 审批时间 |
| AUTHOR | VARCHAR | 创建人 |
| AUTHORDEPTID | VARCHAR | 创建人部门 ID |
| AUTHOR_DEPT_INDEX | VARCHAR(2000) | 创建人部门索引 |
| AUTHOR_USER_INDEX | VARCHAR(2000) | 创建人索引 |
| CREATED | TIMESTAMP | 创建时间 |
| FORMID | VARCHAR | 表单 ID |
| SUBFORMIDS | CLOB | 子表单 ID 列表 |
| INITIATOR | VARCHAR | 发起人 |
| ISTMP | BIT | 是否临时文档 |
| VERSIONS | INTEGER | 版本号 |
| APPLICATIONID | VARCHAR | 应用 ID |
| STATEINT | INTEGER | 状态码 |
| STATELABEL | VARCHAR | 状态标签 |
| AUDITORNAMES | CLOB | 审批人姓名列表 |
| LASTFLOWOPERATION | VARCHAR | 最近流程操作 |
| LASTMODIFIER | VARCHAR | 最后修改人 |
| DOMAINID | VARCHAR | 域 ID |
| AUDITORLIST | CLOB | 审批人 ID 列表 |
| COAUDITORLIST | CLOB | 协办人列表 |
| STATELABELINFO | CLOB | 状态标签信息 |
| PREVAUDITNODE | CLOB | 上一审批节点 |
| PREVAUDITUSER | CLOB | 上一审批人 |
| OPTIONITEM | CLOB | 选项项 |
| SIGN | CLOB | 签名 |
| KINGGRIDSIGNATURE | CLOB | 金格签名 |
| SECRET | VARCHAR | 密级 |
② 业务字段列:表单中每个字段对应一列,列名 = ITEM_ + 字段名(大写),如字段 reason → ITEM_REASON。以 $ 开头的系统字段不加 ITEM_ 前缀,也不建列(在 compareFieldsToAddOrModify 中被跳过)。
③ 主键列:由表单配置的主键名决定(TableMapping.getPrimaryKeyName()),类型为 VARCHAR。
④ LOG 表额外列:DOC_ID(VARCHAR,关联 T_DOCUMENT.ID),仅 LOG_ 表有。
生成机制¶
表单保存时触发动态表创建/更新,调用链:
FormDesignTimeServiceImpl.save/update(设计时服务入口)FormTableProcessBean.createDynaTable/createOrUpdateDynaTableAbstractFormTableDAO.createDynaTableChangeLog.compare对比新旧表单结构,生成变更日志AbstractTableDefinition.processChanges执行 DDLSQLBuilder(如MysqlBuilder)生成数据库特定 SQL- JDBC
Statement批量执行
各数据库的 DDL 实现位于 obpm-core/src/main/java/cn/myapps/core/designtime/table/ddlutil/<db>/,每个数据库目录包含三件套:
| 数据库 | SQLBuilder | TableDefinition | Validator |
|---|---|---|---|
| MySQL | MysqlBuilder |
MysqlTableDefinition |
MysqlValidator |
| Oracle | OracleBuilder |
OracleTableDefinition |
OracleValidator |
| PostgreSQL | PostgreSQLBuilder |
PostgreSQLTableDefinition |
PostgreSQLValidator |
| SQL Server | MssqlBuilder |
MssqlTableDefinition |
MssqlValidator |
| KingBase | KingBaseBuilder |
KingBaseDefinition |
KingBaseValidator |
| OceanBase | OceanBaseBuilder |
OceanBaseDefinition |
OceanBaseValidator |
| DM | DmSQLBuilder |
DmSQLTableDefinition |
DmSQLValidator |
| DB2 | DB2Builder |
DB2TableDefinition |
DB2Validator |
| HSQLDB/H2 | HsqldbBuilder |
HsqldbTableDefinition |
HsqldbValidator |
| Oscar | OscarBuilder |
OscarTableDefinition |
OscarValidator |
数据关联¶
T_DOCUMENT.MAPPINGID → TLK_<表单名>.ID:文档头通过映射 ID 指向动态表主键,实现文档元数据与业务数据的分离存储。
动态表的读写由 AbstractDocStaticTblDAO 及其各数据库子类实现(MysqlDocStaticTblDAO、OracleDocStaticTblDAO、PostgreSQLDocStaticTblDAO 等),由 createDocument(doc, tabelType) 的 tabelType 参数决定写入 TLK_ 表(类型 1)还是 LOG_ 表(类型 2)。
表结构总览¶
flowchart LR
A["<b>系统表</b>(T_ / KMS_ / ai_ / mc_,JPA/Hibernate 管理)<br/>用户:T_USER / T_DEPARTMENT / T_DOMAIN / T_ACCOUNT<br/>表单定义:T_DYNAFORM_FORM<br/>KMS / AI / Message / Logger …"]
B["<b>静态表</b>(T_ 前缀,代码定义,AbstractApplicationInitDAO)<br/>T_DOCUMENT(文档头,核心)<br/>流程:T_FLOWSTATERT / T_ACTORRT / T_NODERT /<br/> T_FLOWHISTORY / T_RELATIONHIS …<br/>其他:T_UPLOAD / T_TRIGGER / T_COUNTER …"]
C["<b>动态表</b>(运行时按表单生成,DDL 代码生成)<br/>TLK_<表单名>:业务数据(每表单一张)<br/>LOG_<表单名>:变更历史(可选)<br/>PARM_<表单名>:流程参数"]
A -->|"表单定义保存后生成"| B
B -->|"T_DOCUMENT.MAPPINGID 关联"| C
关键文件索引¶
| 主题 | 文件路径 |
|---|---|
| 全局配置 | obpm-common/src/main/resources/application-base.properties |
| 静态表定义 | obpm-core/src/main/java/cn/myapps/core/common/dao/application/AbstractApplicationInitDAO.java |
| 动态表前缀常量 | obpm-core/src/main/java/cn/myapps/core/runtime/dynaform/document/dql/DQLASTUtil.java |
| 动态表创建接口 | obpm-core/src/main/java/cn/myapps/core/runtime/dynaform/form/ejb/FormTableProcess.java |
| 动态表创建业务 | obpm-core/src/main/java/cn/myapps/core/runtime/dynaform/form/ejb/FormTableProcessBean.java |
| 动态表 DAO 基类 | obpm-core/src/main/java/cn/myapps/core/runtime/dynaform/form/dao/AbstractFormTableDAO.java |
| 动态表 DDL 生成 | obpm-core/src/main/java/cn/myapps/core/designtime/table/ddlutil/ChangeLog.java |
| 动态表数据 CRUD | obpm-core/src/main/java/cn/myapps/core/runtime/dynaform/document/dao/AbstractDocStaticTblDAO.java |
| 初始化入口 | obpm-core/src/main/java/cn/myapps/core/init/InitApplicationTable.java |