254 lines
6.2 KiB
Markdown
254 lines
6.2 KiB
Markdown
# 评查点预检结果判读模板
|
|
|
|
> 适用范围:`precheck_evaluation_points_tenant_cleanup.sql` 执行结果判读
|
|
> 更新日期:2026-05-21
|
|
> 文档定位:把评查点预检 SQL 的输出结果直接翻译成“可执行 / 需人工确认 / 必须阻断”,避免预检跑完后不知道该怎么判断。
|
|
|
|
---
|
|
|
|
## 1. 使用方式
|
|
|
|
先执行:
|
|
|
|
- [precheck_evaluation_points_tenant_cleanup.sql](/home/wren-dev/Porject/leaudit-platform/scripts/创建sql/precheck_evaluation_points_tenant_cleanup.sql)
|
|
|
|
再按本文逐项判读。
|
|
|
|
本文默认把每一类结果分成 3 个等级:
|
|
|
|
1. `可直接执行`
|
|
2. `需人工确认后执行`
|
|
3. `必须阻断,先处理再执行`
|
|
|
|
---
|
|
|
|
## 2. 表结构确认结果怎么判
|
|
|
|
预检项:
|
|
|
|
1. `evaluation_points` 当前列清单
|
|
|
|
### 可直接执行
|
|
|
|
满足任一情况即可:
|
|
|
|
1. 旧库尚未存在 `tenant_code / tenant_name`
|
|
2. 或者已存在其中一列 / 两列,但类型与脚本兼容
|
|
|
|
### 需人工确认后执行
|
|
|
|
1. 已存在 `tenant_code / tenant_name`,但长度与脚本不一致
|
|
2. 已存在同名列,但注释、默认值、约束来源不明确
|
|
|
|
### 必须阻断
|
|
|
|
1. 存在同名列但类型明显不兼容
|
|
2. `evaluation_point_groups_id / evaluation_point_groups_pid` 缺失
|
|
3. 目标库实际不是当前应用正在使用的 `evaluation_points` 表
|
|
|
|
---
|
|
|
|
## 3. `area` 值分布怎么判
|
|
|
|
预检项:
|
|
|
|
1. `area` 值分布统计
|
|
2. 共享域残留统计
|
|
|
|
### 可直接执行
|
|
|
|
1. 分布值主要来自真实租户名
|
|
2. 共享域值主要集中在:
|
|
- `公共`
|
|
- `default`
|
|
- 空值
|
|
- `省级`
|
|
- `省局`
|
|
|
|
### 需人工确认后执行
|
|
|
|
1. 出现少量疑似历史缩写、空格变体、大小写混用
|
|
2. 出现 1 到 3 个可判断含义但未录入 alias 的地区别名
|
|
|
|
处理建议:
|
|
|
|
1. 先补 `sys_tenant_aliases`
|
|
2. 再执行正式脚本
|
|
|
|
### 必须阻断
|
|
|
|
1. 大量 `area` 值不是租户名也不是共享域兼容值
|
|
2. 大量值含义不清,无法判断归属
|
|
3. 同一业务范围内明显混入多套地区命名体系
|
|
|
|
---
|
|
|
|
## 4. 无法映射租户的残留怎么判
|
|
|
|
预检项:
|
|
|
|
1. `area` 无法映射租户编码的残留清单
|
|
|
|
### 可直接执行
|
|
|
|
1. 查询结果为空
|
|
|
|
### 需人工确认后执行
|
|
|
|
1. 只有极少量残留
|
|
2. 且这些残留能通过补 alias 或人工指定租户解决
|
|
|
|
处理建议:
|
|
|
|
1. 先补齐 `sys_tenant_aliases`
|
|
2. 或整理人工修正清单
|
|
3. 再执行正式脚本
|
|
|
|
### 必须阻断
|
|
|
|
1. 残留记录很多
|
|
2. 残留涉及核心高频业务数据
|
|
3. 无法明确这些记录应归属哪个租户
|
|
|
|
---
|
|
|
|
## 5. alias / tenant_name 冲突怎么判
|
|
|
|
预检项:
|
|
|
|
1. `tenant_name` 映射冲突预检
|
|
2. `alias_value` 映射冲突预检
|
|
|
|
### 可直接执行
|
|
|
|
1. 两项结果都为空
|
|
|
|
### 需人工确认后执行
|
|
|
|
1. 只有历史遗留冲突
|
|
2. 且冲突值本轮不会参与 `evaluation_points.area` 的回填
|
|
|
|
### 必须阻断
|
|
|
|
满足任一项即阻断:
|
|
|
|
1. 同一个 `alias_value` 对应多个 `tenant_code`
|
|
2. 同一个 `tenant_name` 对应多个 `tenant_code`
|
|
3. 冲突值恰好已经出现在 `evaluation_points.area` 分布中
|
|
|
|
原因:
|
|
|
|
1. 这会导致同一条评查点记录回填到不同租户存在不确定性
|
|
2. 正式脚本虽然按 `id ASC` 选第一条,但这只能算技术兜底,不能当业务正确性依据
|
|
|
|
---
|
|
|
|
## 6. `code` 唯一性结果怎么判
|
|
|
|
预检项:
|
|
|
|
1. 全局重复编码清单
|
|
2. 未来按租户内唯一时的跨租户重复清单
|
|
|
|
### 可直接执行
|
|
|
|
1. 当前全局无重复编码
|
|
2. 或者已有重复但已确认不在用、可后续清理
|
|
|
|
### 需人工确认后执行
|
|
|
|
1. 当前全局无重复
|
|
2. 但“未来若按租户内唯一”模拟结果显示跨租户会有重复
|
|
|
|
这类情况本轮通常仍可执行,因为:
|
|
|
|
1. 当前后端仍按全局唯一校验 `code`
|
|
2. 本轮并不修改编码唯一性策略
|
|
|
|
### 必须阻断
|
|
|
|
1. 当前就已经存在全局重复编码
|
|
2. 且业务接口仍依赖 `code` 作为稳定标识
|
|
3. 无法确认是否会影响现有创建、更新、查询逻辑
|
|
|
|
---
|
|
|
|
## 7. 共享域结果怎么判
|
|
|
|
预检项:
|
|
|
|
1. `公共 / default / 空值 / 省级 / 省局` 残留统计
|
|
|
|
### 可直接执行
|
|
|
|
1. 这些值主要就是历史共享域语义
|
|
2. 数量可解释
|
|
|
|
### 需人工确认后执行
|
|
|
|
1. 共享域值数量异常高
|
|
2. 需要业务确认这些记录到底应保留共享,还是应回归具体租户
|
|
|
|
### 必须阻断
|
|
|
|
1. 共享域值被业务长期当作“具体地区”使用
|
|
2. 一旦统一回填到 `PUBLIC / PROVINCIAL` 会直接改变业务语义
|
|
|
|
---
|
|
|
|
## 8. 最终执行判定规则
|
|
|
|
### 可以直接执行正式脚本
|
|
|
|
必须同时满足:
|
|
|
|
1. 无法映射租户残留为空,或仅有极少量且已明确处理方式
|
|
2. `tenant_name / alias` 无冲突
|
|
3. 当前全局 `code` 唯一性没有实质性风险
|
|
4. 共享域语义可确认
|
|
|
|
### 可以带人工清单执行
|
|
|
|
满足下面这种情况可接受:
|
|
|
|
1. 预检结果存在少量人工待处理项
|
|
2. 但这些项已形成明确修复清单
|
|
3. 且不会影响大部分数据正确回填
|
|
|
|
此时建议:
|
|
|
|
1. 先补 alias 或人工修正小批量数据
|
|
2. 再执行正式脚本
|
|
3. 执行后再复跑预检和验收 SQL
|
|
|
|
### 必须先暂停
|
|
|
|
满足任一情况应暂停:
|
|
|
|
1. 租户映射冲突未解
|
|
2. 大量无法映射记录未解
|
|
3. 当前全局重复编码风险未解
|
|
4. 共享域值语义未达成一致
|
|
|
|
---
|
|
|
|
## 9. 推荐落地动作
|
|
|
|
预检结果出来后,建议按这个顺序处理:
|
|
|
|
1. 先解决 alias / tenant_name 冲突
|
|
2. 再补无法映射记录对应的 alias 或人工归属
|
|
3. 再确认 `code` 唯一性是否只影响未来策略,不影响当前策略
|
|
4. 最后执行正式补列与回填脚本
|
|
|
|
---
|
|
|
|
## 10. 本文和其他文档的关系
|
|
|
|
建议连着看:
|
|
|
|
1. [评查点数据库执行说明与验证SQL.md](/home/wren-dev/Porject/leaudit-platform/docs/权限与地区隔离/评查点数据库执行说明与验证SQL.md)
|
|
2. [评查点模块收尾清单.md](/home/wren-dev/Porject/leaudit-platform/docs/权限与地区隔离/评查点模块收尾清单.md)
|
|
3. [schema_evaluation_points_tenant_cleanup.sql](/home/wren-dev/Porject/leaudit-platform/scripts/创建sql/schema_evaluation_points_tenant_cleanup.sql)
|
|
4. [precheck_evaluation_points_tenant_cleanup.sql](/home/wren-dev/Porject/leaudit-platform/scripts/创建sql/precheck_evaluation_points_tenant_cleanup.sql)
|