Skip to content

勘察管理 · 数据库设计 ​

文档版本:1.10 | 最近核对日期:2026-11-03

项目内容
结构核验2026-11-03 已通过项目纳管入口在开发库创建六表及索引并回读;生产未访问

需求见需求分析,读写契约见详细设计。当前 DM8 只是运行环境,以下物理类型为建议映射,不是已存在表结构,也不是可直接执行的建表脚本。

1. 对象、关系与取舍 ​

设计六张业务表,不创建审批历史副本、不存文件二进制、不创建通用动态表单表。计划调整与生效使用计划扩展表自关联表达,不新增通用版本表。本次数量从选孔明细派生,累计在查询时求和,不存可反复累加的累计计数器。

主数据逻辑关系:task.project_id → BIZ_PROJECT.PROJECT_ID;line_id → BIZ_LINE.LINE_ID;bid_id → BIZ_BID_SECTION.BID_ID;site_id → BIZ_SITE_MASTER.SITE_MASTER_ID;oss_id → SYS_OSS.OSS_ID;发起单位/人员 → SYS_DEPT/SYS_USER;instance_id 为 Warm-Flow 实例关联。不为文件、工程、用户主数据复制维护表,不把旧工程树节点 ID 写入新主数据列。

关系默认采用项目现有的逻辑关联与 Service 校验;是否增加物理 FK 在开发库结构核对时沿用同模块约定,禁止假称当前已建立 FK。主键为项目雪花 Long;前端大整数保持原值。所有表的审计列明示在下方每张完整矩阵中。

公共矩阵约定 ​

每行同时列出逻辑类型、建议 DM8 物理类型及长度/精度、空值、默认、键/索引、来源与核验状态。无表示无数据库默认值,不能自动推断空串或 0;矩阵核验状态已按 2026-11-03 开发库回读填写;生产结构仍待发布前核对。时间采用 TIMESTAMP,日期 DATE,文案 VARCHAR 长度需按数据库字符语义核对。表不含 tenant_id、version 等无需求字段;逻辑删除显式声明,不假设 BaseEntity 提供。

2. biz_survey_task:共同任务头 ​

此表完整列为本矩阵全部行,包含 BaseEntity 审计列和显式逻辑删除列。

字段业务含义逻辑类型物理类型及长度/精度可空默认键/索引来源/生成规则核验状态
task_id任务主键LongBIGINT否无PK服务端雪花ID已建(开发库)
task_type五类业务类型StringVARCHAR(20)否无索引I_TASK_LISToutline/fieldPlan/progress/special/result;由Controller确定已建(开发库)
project_id关联项目LongBIGINT是无逻辑关联BIZ_PROJECT项目选择;与线路不同已建(开发库)
project_name项目名称快照StringVARCHAR(500)是无—服务端取主数据已建(开发库)
line_id线路归属LongBIGINT否无I_TASK_LIST工程选择及后端归属校验已建(开发库)
line_name线路名称快照StringVARCHAR(200)否无—服务端取主数据已建(开发库)
bid_id勘察标段归属LongBIGINT是无I_TASK_SCOPE标段暂未建立时允许为空;有值必须属于当前线路已建(开发库);2026-11-03 改为可空
bid_name标段名称快照StringVARCHAR(200)是无—服务端取主数据;标段为空时为空已建(开发库);2026-11-03 改为可空
site_id工点归属LongBIGINT是无I_TASK_SCOPE工点可空;有标段时必须在标段管辖范围内,无标段时按工点共享范围已建(开发库)
site_name工点名称快照StringVARCHAR(200)是无—服务端取主数据已建(开发库)
contract_no合同编号快照StringVARCHAR(100)是无—适用合同核对;不从项目名截取已建(开发库)
survey_stage勘察阶段编码StringVARCHAR(32)是无—草稿可空;提交时核对字典已建(开发库)
task_name任务名称StringVARCHAR(300)是无—草稿可未完成;提交必备已建(开发库)
content报审内容说明StringCLOB是无—大纲/专项/成果说明;服务端设合理输入长度已建(开发库)
status业务状态StringVARCHAR(20)否'draft'I_TASK_LISTBusinessStatusEnum稳定编码;引擎驱动已建(开发库)
instance_id流程实例关联LongBIGINT是无普通索引I_TASK_INSTANCE提交后回写已建(开发库)
initiator_dept_id发起单位LongBIGINT是无逻辑关联SYS_DEPT发起时服务端解析单位,不能直接用任意部门冒充单位已建(开发库)
initiator_dept_name发起单位快照StringVARCHAR(200)是无—发起时主数据快照已建(开发库)
initiator_id发起人LongBIGINT是无逻辑关联SYS_USER首次提交当前登录人已建(开发库)
initiator_name发起人快照StringVARCHAR(100)是无—首次提交用户名快照已建(开发库)
submit_time首次发起时间LocalDateTimeTIMESTAMP是无—首次提交;退回重提不改写首报时间已建(开发库)
create_dept创建部门LongBIGINT是无逻辑关联SYS_DEPTBaseEntity插入填充已建(开发库)
create_by创建者LongBIGINT否无逻辑关联SYS_USERBaseEntity插入填充已建(开发库)
create_time创建时间LocalDateTimeTIMESTAMP否无—BaseEntity插入填充已建(开发库)
update_by更新者LongBIGINT是无逻辑关联SYS_USERBaseEntity更新填充已建(开发库)
update_time更新时间LocalDateTimeTIMESTAMP是无—BaseEntity更新填充已建(开发库)
del_flag逻辑删除StringCHAR(1)否'0'逻辑删除有效值0/删除值1实体@TableLogic显式配置;同平台逻辑删除契约已建(开发库)

2.1 标段可选变更(2026-11-03) ​

用户确认开发库暂未建立勘察标段主数据,标段先不作为必选。通过项目纳管入口在开发库执行并回读:

对象变更回读结果
BIZ_SURVEY_TASK.BID_IDBIGINT NULLNULLABLE='Y'
BIZ_SURVEY_TASK.BID_NAMEVARCHAR(200) NULLNULLABLE='Y'

现有 20 行测试数据未修改;生产未访问。标段为空时,任务按线路+工点或线路级范围判定授权;后续建立勘察标段后,新记录必须校验标段属于线路、工点在标段管辖范围内、项目属于标段关联项目。

3. biz_survey_plan:外业计划扩展 ​

此表完整列为本矩阵全部行,包含 BaseEntity 审计列和显式逻辑删除列。

字段业务含义逻辑类型物理类型及长度/精度可空默认键/索引来源/生成规则核验状态
task_id计划任务IDLongBIGINT否无PK;逻辑FK task.task_id必须是fieldPlan任务已建(开发库)
root_plan_task_id同一业务计划的根任务IDLongBIGINT否无I_PLAN_ROOT;逻辑FK plan.task_id初始版为自身task_id;调整版复制根ID已建(开发库)
revision_no调整记录序号IntegerINTEGER否0U_PLAN_REV(root_plan_task_id,revision_no)初始0;服务端取同根含软删除行的最大序号+1,创建调整时分配,编辑/重提不变已建(开发库)
previous_plan_task_id调整来源有效版本LongBIGINT是无逻辑FK plan.task_id初始版为空;调整创建时取当前有效版本已建(开发库)
effective_plan_task_id当前生效版本指针LongBIGINT是无逻辑FK plan.task_id仅根记录维护;初次通过指自身,调整最终通过后切换已建(开发库)
effective_time本版本实际生效时间LocalDateTimeTIMESTAMP是无—最终通过并生效时写入一次;用于历史与调整计数已建(开发库)
plan_start_date计划开始LocalDateDATE是无—录入;提交完整性校验已建(开发库)
plan_end_date计划完成LocalDateDATE是无—录入;不得早于开始已建(开发库)
urgency紧急程度编码StringVARCHAR(32)是无—平台字典待核定值集已建(开发库)
machine_count计划钻机台数IntegerINTEGER是无—录入非负整数已建(开发库)
description计划说明StringCLOB是无—录入已建(开发库)
create_dept创建部门LongBIGINT是无逻辑关联SYS_DEPTBaseEntity插入填充已建(开发库)
create_by创建者LongBIGINT否无逻辑关联SYS_USERBaseEntity插入填充已建(开发库)
create_time创建时间LocalDateTimeTIMESTAMP否无—BaseEntity插入填充已建(开发库)
update_by更新者LongBIGINT是无逻辑关联SYS_USERBaseEntity更新填充已建(开发库)
update_time更新时间LocalDateTimeTIMESTAMP是无—BaseEntity更新填充已建(开发库)
del_flag逻辑删除StringCHAR(1)否'0'逻辑删除有效值0/删除值1实体@TableLogic显式配置;同平台逻辑删除契约已建(开发库)

4. biz_survey_borehole:计划钻孔明细 ​

此表完整列为本矩阵全部行,包含 BaseEntity 审计列和显式逻辑删除列。

字段业务含义逻辑类型物理类型及长度/精度可空默认键/索引来源/生成规则核验状态
borehole_id钻孔记录主键LongBIGINT否无PK服务端雪花ID;进度引用后保持身份稳定已建(开发库)
plan_task_id所属计划任务LongBIGINT否无I_HOLE_PLAN;逻辑FK plan.task_id父级服务端校验已建(开发库)
source_borehole_id调整前钻孔版本行IDLongBIGINT是无逻辑FK borehole.borehole_id复制来源孔时由后端赋值;新孔为空;仅可指向previous_plan_task_id所属孔,用于前后比对已建(开发库)
hole_code地探孔编号StringVARCHAR(100)否无有效行内同计划唯一U_HOLE_CODE录入或导入;去首尾空白,不擅自改大小写已建(开发库)
design_x设计坐标X,mBigDecimalDECIMAL(18,4)是无—录入/导入;精度为设计建议,禁止套原型坐标系已建(开发库)
design_y设计坐标Y,mBigDecimalDECIMAL(18,4)是无—同上;坐标系未给不做GIS定位已建(开发库)
expected_depth预计孔深,mBigDecimalDECIMAL(10,3)是无—已填非负;超精度报错,不静默截断已建(开发库)
order_num行序IntegerINTEGER否0I_HOLE_PLAN保存时按页面顺序生成已建(开发库)
create_dept创建部门LongBIGINT是无逻辑关联SYS_DEPTBaseEntity插入填充已建(开发库)
create_by创建者LongBIGINT否无逻辑关联SYS_USERBaseEntity插入填充已建(开发库)
create_time创建时间LocalDateTimeTIMESTAMP否无—BaseEntity插入填充已建(开发库)
update_by更新者LongBIGINT是无逻辑关联SYS_USERBaseEntity更新填充已建(开发库)
update_time更新时间LocalDateTimeTIMESTAMP是无—BaseEntity更新填充已建(开发库)
del_flag逻辑删除StringCHAR(1)否'0'逻辑删除有效值0/删除值1实体@TableLogic显式配置;同平台逻辑删除契约已建(开发库)

5. biz_survey_progress:进度上报扩展 ​

此表完整列为本矩阵全部行,包含 BaseEntity 审计列和显式逻辑删除列。

字段业务含义逻辑类型物理类型及长度/精度可空默认键/索引来源/生成规则核验状态
task_id进度任务IDLongBIGINT否无PK;逻辑FK task.task_id必须是progress任务已建(开发库)
plan_task_id关联计划版本任务LongBIGINT否无I_PROGRESS_PLAN;逻辑FK plan.task_id创建时引用当前有效已通过版本;已保存进度不静默改绑已建(开发库)
root_plan_task_id业务计划根IDLongBIGINT否无I_PROGRESS_ROOT;逻辑FK plan.task_id后端从计划版本读取,跨调整归组累计已建(开发库)

| plan_start_date | 计划开始快照 | LocalDate | DATE | 是 | 无 | — | 选计划时服务端读取并保存 | 已建(开发库) | | plan_end_date | 计划完成快照 | LocalDate | DATE | 是 | 无 | — | 同上 | 已建(开发库) | | actual_start_date | 实际开始时间 | LocalDate | DATE | 是 | 无 | — | 录入;与逐孔汇总关系未明确不自动覆写 | 已建(开发库) | | actual_end_date | 实际完成时间 | LocalDate | DATE | 是 | 无 | — | 录入;已填起止合法 | 已建(开发库) | | description | 完成说明 | String | CLOB | 是 | 无 | — | 录入 | 已建(开发库) | | create_dept | 创建部门 | Long | BIGINT | 是 | 无 | 逻辑关联SYS_DEPT | BaseEntity插入填充 | 已建(开发库) | | create_by | 创建者 | Long | BIGINT | 否 | 无 | 逻辑关联SYS_USER | BaseEntity插入填充 | 已建(开发库) | | create_time | 创建时间 | LocalDateTime | TIMESTAMP | 否 | 无 | — | BaseEntity插入填充 | 已建(开发库) | | update_by | 更新者 | Long | BIGINT | 是 | 无 | 逻辑关联SYS_USER | BaseEntity更新填充 | 已建(开发库) | | update_time | 更新时间 | LocalDateTime | TIMESTAMP | 是 | 无 | — | BaseEntity更新填充 | 已建(开发库) | | del_flag | 逻辑删除 | String | CHAR(1) | 否 | '0' | 逻辑删除有效值0/删除值1 | 实体@TableLogic显式配置;同平台逻辑删除契约 | 已建(开发库) |

6. biz_survey_progress_hole:逐孔进度及计划快照 ​

此表完整列为本矩阵全部行,包含 BaseEntity 审计列和显式逻辑删除列。

字段业务含义逻辑类型物理类型及长度/精度可空默认键/索引来源/生成规则核验状态
progress_hole_id上报逐孔主键LongBIGINT否无PK服务端雪花ID已建(开发库)
progress_task_id所属进度任务LongBIGINT否无I_PROGRESS_HOLE;逻辑FK progress.task_id父级任务校验已建(开发库)
borehole_id来源计划钻孔LongBIGINT否无有效行同上报单唯一U_PROGRESS_HOLE;逻辑FK borehole不能引用其他计划的孔已建(开发库)
hole_code钻孔编号快照StringVARCHAR(100)否无—服务端从计划读取已建(开发库)
design_x设计坐标X快照,mBigDecimalDECIMAL(18,4)是无—服务端取计划已建(开发库)
design_y设计坐标Y快照,mBigDecimalDECIMAL(18,4)是无—服务端取计划已建(开发库)
expected_depth预计孔深快照,mBigDecimalDECIMAL(10,3)是无—服务端取计划已建(开发库)
actual_depth实际孔深,mBigDecimalDECIMAL(10,3)是无—录入;不以达到预计孔深强行推断已完成已建(开发库)
actual_start_date该孔实际开始LocalDateDATE是无—录入已建(开发库)
actual_end_date该孔实际完成LocalDateDATE是无—录入;不参与选孔计数,未填完成日期的已选孔仍计入本次数量已建(开发库)
order_num行序IntegerINTEGER否0I_PROGRESS_HOLE页面选择顺序已建(开发库)
create_dept创建部门LongBIGINT是无逻辑关联SYS_DEPTBaseEntity插入填充已建(开发库)
create_by创建者LongBIGINT否无逻辑关联SYS_USERBaseEntity插入填充已建(开发库)
create_time创建时间LocalDateTimeTIMESTAMP否无—BaseEntity插入填充已建(开发库)
update_by更新者LongBIGINT是无逻辑关联SYS_USERBaseEntity更新填充已建(开发库)
update_time更新时间LocalDateTimeTIMESTAMP是无—BaseEntity更新填充已建(开发库)
del_flag逻辑删除StringCHAR(1)否'0'逻辑删除有效值0/删除值1实体@TableLogic显式配置;同平台逻辑删除契约已建(开发库)

7. biz_survey_attachment:按任务/钻孔分类附件 ​

此表完整列为本矩阵全部行,包含 BaseEntity 审计列和显式逻辑删除列。

字段业务含义逻辑类型物理类型及长度/精度可空默认键/索引来源/生成规则核验状态
attachment_id附件关系主键LongBIGINT否无PK服务端雪花ID已建(开发库)
task_id所属业务任务LongBIGINT否无I_ATTACHMENT_TASK;逻辑FK task业务任务鉴权已建(开发库)
progress_hole_id所属上报钻孔LongBIGINT是无I_ATTACHMENT_HOLE;逻辑FK progress_hole仅HOLE_IMAGE使用;必须属于该task已建(开发库)
category资料分类StringVARCHAR(32)否无I_ATTACHMENT_TASKOUTLINE/SAFETY_ORGANIZATION/SPECIAL_REPORT/RESULT_REPORT/OTHER/PLAN_LAYOUT/PROGRESS_LAYOUT/HOLE_IMAGE已建(开发库)
oss_id文件对象IDLongBIGINT否无逻辑FK SYS_OSS上传后关联;文件可访问性校验已建(开发库)
file_name文件名称快照StringVARCHAR(500)否无—服务端查OSS元数据,不能信前端URL已建(开发库)
order_num排序IntegerINTEGER否0—分类内顺序已建(开发库)
create_dept创建部门LongBIGINT是无逻辑关联SYS_DEPTBaseEntity插入填充已建(开发库)
create_by创建者LongBIGINT否无逻辑关联SYS_USERBaseEntity插入填充已建(开发库)
create_time创建时间LocalDateTimeTIMESTAMP否无—BaseEntity插入填充已建(开发库)
update_by更新者LongBIGINT是无逻辑关联SYS_USERBaseEntity更新填充已建(开发库)
update_time更新时间LocalDateTimeTIMESTAMP是无—BaseEntity更新填充已建(开发库)
del_flag逻辑删除StringCHAR(1)否'0'逻辑删除有效值0/删除值1实体@TableLogic显式配置;同平台逻辑删除契约已建(开发库)

8. 约束、索引与删除 ​

名称目标字段/语义设计原因
I_TASK_LISTtask_type, line_id, status, create_time类型与线路筛选、时间排序;实际执行计划核验后决定列序
I_TASK_SCOPEbid_id, site_id工程范围关联;权限EXISTS仍需查实际计划
I_TASK_INSTANCEinstance_id流程事件回写定位,不声明一对多历史实例已支持
I_HOLE_PLANplan_task_id, order_num计划明细分页及展示
U_HOLE_CODE同计划有效 hole_code 不重复Service去空白查重;物理有效行唯一实现依DM8能力核对
I_PROGRESS_PLANplan_task_id按实际引用版本穿透
I_PROGRESS_ROOTroot_plan_task_id同一业务计划跨版本累计归组;通过task_id关联主任务的create_time、task_id限定累计前缀
I_PLAN_ROOTroot_plan_task_id版本历史及生效调整次数
U_PLAN_REVroot_plan_task_id, revision_no调整序号唯一;逻辑删除不释放序号,不与业务生效次数混用
I_PROGRESS_HOLEprogress_task_id, order_num逐孔列表
U_PROGRESS_HOLE同上报单有效 borehole_id 不重复防止同一单重复选择一孔;不同单能否重复上报不据此禁止
I_ATTACHMENT_TASKtask_id, category, order_num分类附件回显
I_ATTACHMENT_HOLEprogress_hole_id逐孔影像数量与明细

软删除与唯一性必须联动:不要简单用 (plan_task_id,hole_code,del_flag) 唯一索引而导致同编号二次删除失败。优先复用项目有效行唯一模式;若当前库未有可移植实现,则 Service 校验有效行唯一,并把数据库约束能力如实记录,不为理论并发新增锁和版本字段。所有派生查询排除已删除行。

主任务删除必须先校验状态及关联。被任何有效进度引用的计划/钻孔不得物理删除或重建ID;不能用“删光明细再插入”更新已引用计划。已通过计划仅以新调整版本修改,原版本及其孔ID保持不变。删除草稿任务在一个事务中处理本任务扩展、明细和附件引用;不删除OSS原文件,不删除引擎历史,不清理其他任务。

9. 累计派生值与计划版本生效 ​

本次数量currentCompletedCount为本单有效progress_hole行数,明细就是已勾选要报的孔,同单重复borehole_id拒绝;不存current_completed_count列,不以日期、深度或影像判定数量,也不另存isSelected。计划孔数为本单plan_task_id指向版本的有效borehole数;影像数为有效附件数。先按progress_task_id分别聚合选孔数和附件数,再连接父任务,禁止孔与附件一对多连接放大孔数。累计按root_plan_task_id归组、task.create_time/task_id稳定顺序,取截至本单的有效已提交记录;主任务和扩展del_flag=0、submit_time非空、status IN(waiting,back,finish),选孔明细del_flag=0。草稿/cancel/invalid/termination/删除排除;草稿仅本单编辑预览临时加当前选孔数,退回编辑替换本单旧值。跨上报不按孔去重,不累计累计值,不写增量计数器。求和用Long且正确序列化;空选孔为0。列表/详情/导出/预览共享计算,筛选分页不改变基数。完成率以本单引用版本孔数为分母,BigDecimal乘100后除法保留2位HALF_UP,响应十进制字符串;分母0为null,前端“—”,超过100不截断。完整预览与排除状态展示见详细设计4.3节。

计划原版和各调整版各占一条fieldPlan任务与plan扩展,使用root_plan_task_id归组、previous_plan_task_id指向来源。仅根行的effective_plan_task_id表示当前有效版,任意调整版本详情必须回查根行解析该指针;effective_time记录版本曾生效;调整通过前指针不变,通过后与业务状态在同一事务切换。旧版本仍finish且不可覆盖。调整次数按同根非初始且effective_time非空的版本计数,不因保存、提交或重提加一。root/previous/effective指针与effective_time均由服务端维护,普通BO不得绑定。调整继承根的项目/线路/标段/工点/阶段,复制时清除审批实例、生效和原审计字段。版本钻孔是独立行,source_borehole_id指向来源版本行,用于识别改号等修改;新增孔为空。revision_no标识调整记录序号,previous_plan_task_id保存前侧,当前task_id为后侧,历史比对不需另存一份易失配的差异JSON。已有进度始终引用旧行;无需通用版本框架或额外并发锁。

计划表单布孔图用 PLAN_LAYOUT,进度布孔/进度图用 PROGRESS_LAYOUT,逐孔影像用 HOLE_IMAGE,审批意见附件由平台流程历史承载。分类必须与task_type、progress_hole_id匹配;非进度附件不得挂孔ID。

10. 实际结构差异与核验清单 ​

2026-11-03 仓库检索未发现本设计的勘察业务实现;BaseEntity 源码已核对五个审计字段。开发库已通过纳管入口完成六表、主键与业务索引创建并逐项回读;生产库未访问,生产状态待发布前回读。

对象设计目标当前实际核验后续处理
六张新表及全部列上述矩阵开发库已创建并回读:BIZ_SURVEY_TASK、BIZ_SURVEY_PLAN、BIZ_SURVEY_BOREHOLE、BIZ_SURVEY_PROGRESS、BIZ_SURVEY_PROGRESS_HOLE、BIZ_SURVEY_ATTACHMENT;2026-11-03 将 BID_ID、BID_NAME 改为可空并回读生产发布前回读生产库并同步结构
主数据关系、唯一性、索引本文逻辑模型主键及业务索引已建:I_TASK_LIST、I_TASK_SCOPE、I_TASK_INSTANCE、I_PLAN_ROOT、U_PLAN_REV、I_HOLE_PLAN、I_PROGRESS_PLAN、I_PROGRESS_ROOT、I_PROGRESS_HOLE、I_ATTACHMENT_TASK、I_ATTACHMENT_HOLE;未建立物理外键,沿用项目逻辑关联与 Service 校验生产发布前回读索引状态
审批关联instance_id + task_id字符串businessId五条流程已在开发库导入、发布并回读节点与连线;实例、任务与业务记录关联已验证生产按流程专项规则同步
计划调整版本与统计计划自关联、有效指针、选孔明细派生数量与查询累计已按六表实现;V0→V1 调整通过后有效指针切换、初始版自身生效、退回/重提同实例均已验证生产发布前回读结构与定义

实施时必须通过 dcp-dm8-dev 或 .agents/mcp/launch.ps1 纳管入口执行结构查询、DDL/DML和回读;仓库不保存业务SQL,禁止外部连接。写前核对目标环境与对象,写后核对列/默认/索引及影响对象;验证主表、扩展、附件多表回滚、空值、Decimal精度、雪花ID和逻辑删除。不得执行DROP/TRUNCATE、无WHERE整表写入或清理无关数据。普通表结构开发与生产发布分离,本次仅完成开发库结构,生产未访问、待发布。

11. 开发库实施结果 ​

2026-11-03 通过项目纳管入口在开发库执行了 6 条 CREATE TABLE、11 条业务索引及 U_PLAN_REV 唯一索引,并逐项回读:

对象类别实际结果
表六表均存在,列、类型、可空、默认值与本文矩阵一致;审计列显式建列
主键六表主键均为 BIGINT,实体按任务/明细分别使用 ASSIGN_ID 或由任务主键写入
业务索引任务列表/范围/实例、计划根、调整序号唯一、钻孔计划、进度计划/根、逐孔、附件任务/孔索引均存在
逻辑删除DEL_FLAG CHAR(1) DEFAULT '0',实体 @TableLogic(value="0", delval="1"),与平台默认一致
物理外键未建立,沿用项目逻辑关联与 Service 校验,避免跨厂商迁移限制
标段可选2026-11-03 执行 ALTER TABLE BIZ_SURVEY_TASK MODIFY BID_ID BIGINT NULL、MODIFY BID_NAME VARCHAR(200) NULL,回读 NULLABLE='Y';现有 20 行未修改
测试数据仅使用本任务可识别的 UI验证 草稿/计划/进度数据;未清理共享对象,未删除无关数据

兼容人大金仓、openGauss 时,重点核验 CLOB→文本类型、字符长度语义、DATE/TIMESTAMP、逻辑删除的有效行唯一索引及大小写。厂商差异集中在持久化适配层,不成为业务规则。