Files

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)