# 评查点预检结果判读模板

> 适用范围：`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)
