Skip to content

工程变更监管 · 数据库设计文档 ​

字段中文含义参考 2026-11-02 开发库、生产库只读回读的字段注释及原有业务资料;历史物理结构、核验日期和设计差异仍以各表原记录为准。

文档版本:1.00 | 最近核对日期:2026-09-10

1. 设计范围与核验状态 ​

项目内容
模块名称工程变更监管;施工单位发起流程
设计数据库逻辑类型:可迁移;物理类型:DM8(以 MCP 实测为准)
数据库交付基线业务表和索引已通过项目 MCP 写入开发库;施工单位流程定义以 engineering_change_construction.json 通过项目 MCP 导入
实体/Mapper 来源business.engineeringchange.domain / mapper(开发中)
MCP 结构核验已通过项目 MCP 执行迁移并回读核验
总体状态设计中;物理字段、索引、字典和流程依赖已核对;办理预览不落库

2. 实体关系 ​

text
biz_engineering_change 1 ── N biz_engineering_change_class_log

两表通过 change_id 逻辑关联,不建立数据库外键,避免跨版本迁移阻断;主表逻辑删除不物理删除,类别日志只追加,保留原预计金额/类别与最终金额/类别快照。origin_type 继续表示四类发起页面;申请人首次填写的“系统设备公司/分公司”属于同一发起单位归属变量,由流程实例和首节点快照保存,不另行拆成流程定义或业务分类。

2.1 开发库遗留分表说明 ​

当前代码与本次交付模型只使用 BIZ_ENGINEERING_CHANGE(业务主表)和 BIZ_ENGINEERING_CHANGE_CLASS_LOG(分类判定日志)。开发库中曾存在的 BIZ_ENGINEERING_CHANGE_DSGN、BIZ_ENGINEERING_CHANGE_OWNER、BIZ_ENGINEERING_CHANGE_SUPERVISION 是历史/并行开发遗留表;当前工程变更 Entity、Mapper、Service 均没有对这三张表的读写引用,它们不属于当前四类页面的运行时分表模型。

这三张遗留表的 CHANGE_NO 长度、可空性,以及 CHANGE_SCOPE、附件、总包标志、逻辑删除字段的类型/可空性与主表不一致,说明它们来自另一版字段模型,不能继续作为当前主流程的补字段依据。当前模型由 ORIGIN_TYPE 区分四类发起单位,类别历史由分类日志记录,不再按发起单位拆四张业务表。经项目 DM8 MCP 核对,三张遗留表删除前均为 0 条数据,且未发现外键、视图依赖、触发器或同义词引用;已于 2026-09-05 从开发库删除。其他环境如仍存在同名表,必须先完成依赖审计和可恢复备份后再单独迁移清理。

3. 全量字段矩阵 ​

3.1 biz_engineering_change(工程变更主表) ​

序号字段名中文含义逻辑类型物理类型长度/精度可空默认值主键/外键/唯一/索引来源或生成规则核心核验状态/证据
1id主键BIGINTBIGINT—否—PK平台生成是已核对(代码)
2bid_id所属标段IDBIGINTBIGINT—可NULLIDX三轨标段选择器是已核对(MCP)
3site_id所属工点IDBIGINTBIGINT—可NULLIDX三轨工点选择器是已核对(MCP)
4unit_project_id单位工程IDBIGINTBIGINT—可NULLIDX三轨单位工程级联选择器是已核对(MCP)
5line_id所属线路IDBIGINTBIGINT—可NULLIDX空间线路外键是已核对(MCP)
6project_name_snapshot实际工程名称快照VARCHARVARCHAR2000否——以单位工程路径为初始值,允许发起人自由删改并补充具体变更事项是已核对(代码)
7project_path_snapshot单位工程名称/路径快照VARCHARVARCHAR2000否——选择单位工程后保存完整路径是已核对(代码)
5line_name线路名称快照VARCHARVARCHAR500可NULLIDX提交时快照否设计中
6origin_type发起单位类型VARCHARVARCHAR32否CONSTRUCTIONIDX页面固定值是设计中
7change_title变更标题VARCHARVARCHAR300否——由实际工程名称生成是已核对(代码)
8change_reason历史变更原因(兼容)CLOBCLOB—可NULL—仅保留存量数据兼容,新表单不再输入否已核对(MCP)
9change_scope工程变更内容、原因(含合理性及可行性分析)CLOBCLOB—可NULL—发起表单统一输入;提交时必填是已核对(MCP)
10estimated_amount预计变更金额DECIMALDECIMAL18,2否—IDX万元,正增负减是设计中
11contract_amount合同金额(万元)DECIMALDECIMAL18,2可NULL—仅施工单位发起时输入并在提交时必填;其他发起类型不采集是已核对(MCP)
12changed_contract_amount变更后合同金额(万元)DECIMALDECIMAL18,2可NULL—仅施工单位发起时输入并在提交时必填;其他发起类型不采集是已核对(MCP)
13duration_impact_days工期影响(天)INTEGERINTEGER—可NULL—发起表单输入;提交时必填,可正可负是已核对(MCP)
14estimated_class预计变更类别CHARVARCHAR8可NULLIDX申请人填写预计类别;服务端提交时校验,不用于选择流程定义;草稿允许为空是已核对(MCP:Y)
15consulting_amount造价咨询估价金额DECIMALDECIMAL18,2可NULL—造价咨询估价节点正式写入是已核对(MCP)
16determined_class系统判定正式类别CHARVARCHAR8可NULLIDX按造价咨询估价金额由服务端自动判定是已核对(MCP)
17affiliation_type发起单位归属VARCHARVARCHAR32可NULL—申请人首次选择 SYSTEM_DEVICE/BRANCH是已核对(MCP)
18final_amount最终核量核价金额DECIMALDECIMAL18,2可NULL—核量核价阶段写入是设计中
19final_class最终变更类别/结果CHARVARCHAR8可NULLIDX最终核量核价阶段记录最终结果;不触发补审是设计中
20has_general_contractor是否有总包CHARCHAR1否0—表单输入是设计中
21document_name业务文书名称(内部兼容)VARCHARVARCHAR200否《工程洽商及技术核定签证表》—保留历史默认值;界面附件统一使用“附件”否已核对(MCP)
22document_attachment发起附件 JSONCLOBCLOB—可NULL—平台文件组件,允许上传多个附件是已核对(MCP)
23site_survey_attachment现场踏勘附件 JSONCLOBCLOB—可NULL—平台文件组件否设计中
24design_change_attachment设计变更/施工图附件 JSONCLOBCLOB—可NULL—平台文件组件否设计中
25node_record_json正式节点动态字段快照 JSONCLOBCLOB—可NULL—同意/退回时由流程事件回写;预览不写入是设计中
26approval_status审批状态VARCHARVARCHAR32否draftIDX平台业务状态是设计中
27supplement_status补充审批状态(历史兼容字段)VARCHARVARCHAR32否noneIDX保留兼容;最终核量核价不触发补审否已确认不使用
28instance_id流程实例 IDVARCHARVARCHAR64可NULLIDX启动流程后回写否设计中
29archive_status归档状态VARCHARVARCHAR32否pendingIDX模块内归档/待同步否设计中
30create_dept创建部门BIGINTBIGINT—可NULL—BaseEntity否设计中
31create_by创建人BIGINTBIGINT—可NULL—BaseEntity否设计中
32create_time创建时间TIMESTAMPTIMESTAMP(0)—可NULL—BaseEntity否设计中
33update_by更新人BIGINTBIGINT—可NULL—BaseEntity否设计中
34update_time更新时间TIMESTAMPTIMESTAMP(0)—可NULL—BaseEntity否设计中
35del_flag逻辑删除CHARCHAR1否0IDX@TableLogic否设计中
36change_no变更编号VARCHARVARCHAR32可NULL—前端按当前时间生成 yyyyMMddHHmmssSSS,保存后作为单据编号是已核对(MCP)
37construct_unit_name施工单位VARCHARVARCHAR300可NULL—发起人填写并保存快照是已核对(MCP)
38design_unit_name设计单位VARCHARVARCHAR300可NULL—发起人填写并保存快照是已核对(MCP)
39supervision_unit_name监理单位VARCHARVARCHAR300可NULL—发起人填写并保存快照是已核对(MCP)
40original_drawing_no原施工图号VARCHARVARCHAR300可NULL—发起人填写;选填,留空不影响提交是已核对(MCP)
41application_date申请日期DATEDATE—可NULL—发起人填写;流程表单按年月日展示是已核对(MCP)
42original_investment原估算投资(万元)DECIMALDECIMAL18,2可NULL—发起人填写;提交时校验两位小数是已核对(MCP)
43sub_unit_project_name分部(子分部)工程名称VARCHARVARCHAR2000可NULL—施工单位发起人手动填写并保存名称快照;施工单位提交时必填是已核对(MCP:43 列)
44process_overview流程概述CLOBCLOB—可NULL—分公司负责人、设计部经办人在领导审批前填写;后填节点覆盖前值是已核对(MCP:44 列)

3.2 biz_engineering_change_class_log(分类判定日志) ​

序号字段名中文含义逻辑类型物理类型长度/精度可空默认值主键/外键/唯一/索引来源或生成规则核心核验状态/证据
1id主键BIGINTBIGINT—否—PK平台生成是设计中
2change_id变更主表 IDBIGINTBIGINT—否—IDX;逻辑外键主表 ID是设计中
3amount_stage金额阶段VARCHARVARCHAR16否—IDXESTIMATE/CLASSIFICATION/FINAL;不使用 SUPPLEMENT是设计中
4amount记录金额DECIMALDECIMAL18,2否——对应阶段金额是设计中
5change_class记录类别VARCHARVARCHAR8否—IDX服务端根据估价/分类阶段变量记录 I/II/III/IV是设计中
6reason判定说明VARCHARVARCHAR1000可NULL—金额/类别判定说明,不用于补审否设计中
7create_dept创建部门BIGINTBIGINT—可NULL—BaseEntity否设计中
8create_by创建人BIGINTBIGINT—可NULL—BaseEntity否设计中
9create_time创建时间TIMESTAMPTIMESTAMP(0)—可NULLIDXBaseEntity否设计中
10update_by更新人BIGINTBIGINT—可NULL—BaseEntity否已核对(MCP)
11update_time更新时间TIMESTAMPTIMESTAMP(0)—可NULL—BaseEntity否已核对(MCP)
12del_flag逻辑删除CHARCHAR1否0—只追加日志兼容逻辑删除否已核对(MCP)

4. 约束、索引与字典 ​

类型名称/表达式作用设计/物理差异核验状态
PKpk_biz_engineering_change主表唯一与脚本一致已核对
PKpk_biz_engineering_change_class_log日志唯一与脚本一致已核对
IDXidx_eng_change_project/status/class/origin台账检索与数据范围6 个索引已存在已核对
字典engineering_change_classI/II/III/IV已建立 4 条已核对
字典engineering_change_affiliation系统设备公司/分公司已建立 2 条已核对(MCP)
字典engineering_change_origin四类发起单位已建立 4 条已核对

5. 设计字段与实际字段差异 ​

表差异字段差异类型设计值实际值处理方式状态
biz_engineering_changeestimated_class 可空、consulting_amount、determined_class、affiliation_type、contract_amount、changed_contract_amount、duration_impact_days、change_no、construct_unit_name、design_unit_name、supervision_unit_name、original_drawing_no、application_date、original_investment基线表补充见字段矩阵已按 DM8 MCP 回读(42 个字段)已通过 MCP 补列并纳入交付数据库;发起页从系统参建单位选择单位,并填写原图号、申请日期、原估算投资及前端时间编号已核对
biz_engineering_changesub_unit_project_name本次需求新增字段VARCHAR(2000),可空已通过 DM8 MCP 新增并回读施工单位发起页手动填写;服务端施工单位提交流程时校验非空;三类参建单位继续保存名称快照已核对
biz_engineering_change_class_logupdate_by、update_time基线表遗漏 BaseEntity 审计字段见字段矩阵已按 DM8 MCP 回读(12 个字段)已通过 MCP 补齐并纳入交付数据库,避免 MyBatis-Plus 插入时列不存在已核对

6. 迁移与兼容说明 ​

首版基线表、索引和字典已通过项目 MCP 写入并纳入交付数据库;2026-08-30 的施工单位字段变更已通过项目 DM8 MCP 执行并回读核验,草稿类别字段已放宽为可空,补齐正式估价/类别/归属字段。2026-08-31 通过项目 DM8 MCP 新增合同金额、变更后合同金额和工期影响三列;2026-09-01 再新增 change_no、参建单位、原施工图号、申请日期和原估算投资七列并回读为 42 个字段,以上新增字段对草稿保持可空,正式提交时由服务端校验;其中 original_drawing_no 自 2026-09-17 起调整为选填,正式提交时不再要求非空(本列结构无变化,属服务端校验口径调整)。2026-09-10 通过项目 DM8 MCP 新增 sub_unit_project_name VARCHAR(2000) 并回读为 43 个字段;本次 DDL 未修改既有 5 条记录,新字段均为空,草稿保持可空,施工单位正式提交时由服务端校验。change_reason 保留存量兼容,新表单统一写入 change_scope。同日,在开发库按确认范围清空施工单位工程变更台账、分类日志、流程实例、待办、历史任务及旧流程定义,再导入最新的 engineering_change_construction 主流程 V1;回读为 1 条已发布且启用的定义、90 个节点、105 条 FLOW_SKIP 连线,施工单位业务表、分类日志、流程实例、待办及历史待办均为 0 条。其他发起单位流程不受影响。流程坐标采用横向优先、必要时折返的多行布局,四向锚点连线不得穿过无关节点。approval_config 不落库,办理人通过 Warm-Flow 标准变量和任务弹窗传递,避免保存个人审批配置快照。办理弹窗中的 预览 只改变当前页面的只读表单显示,不新增草稿表、不写入正式业务字段、不生成流程记录;只有 同意 或 退回 才正式写入节点数据。节点附件统一使用 Warm-Flow 流程附件,表单默认不渲染空附件区域;节点正式办理上传附件后,才在对应节点卡片底部显示并支持预览。发起页只展示到工期影响,使用通用附件入口且不展示具体文书名称,历史节点专属附件字段不再兼容。2026-10-23 通过项目 DM8 MCP 新增 process_overview CLOB 可空列并回读为 44 列,未回填既有 4 条记录;合同金额两列仍可空,服务端改为仅施工单位提交时校验。生产库于 2026-10-24 通过同一纳管入口新增该列并回读为 44 列,既有 2 条记录未回填;生产发布包 20261024-gis 已包含本批前后端。