# 2026-06-30 上线前总体验收记录

## 1. 验收范围

本次验收覆盖 2026-06-29 至 2026-06-30 本地提交与未提交变更，重点包括：

- 项目分析预警交互：风险模型区、项目分析弹窗、外部人员详情页、资金图谱页签。
- 外部人员预警：外部人员识别、7 条外部人员流水打标规则、外部人员总览与模型人员列表。
- 涉疑交易导出：涉疑交易明细导出字段调整为接近流水明细，并保留关联员工与异常标签。
- 报告导出：项目总览 PDF 与风险明细工作簿外部人员相关内容。
- 专项分析员工范围：专项分析仅统计项目范围员工。
- 前端页面文案与联动：详情页关闭/返回、外部人员不再跳流水明细、统计卡片调整。

## 2. 上线验收清单

### 2.1 变更范围与生产包清单

- [ ] 已识别本次真实业务变更文件。
- [ ] 已识别不应进入生产提交/制品的本地生成物。
- [ ] SQL 迁移脚本与代码规则口径一致。
- [ ] 配置文件变更已确认是否需要进入生产。

### 2.2 数据库与 SQL

- [ ] 外部人员 7 条规则可幂等写入 `ccdi_bank_tag_rule`。
- [ ] 外部人员主体口径：`bs.cret_no` 非空，且不是员工、不是员工亲属。
- [ ] 外部人员与员工/亲属交易规则不使用对手方证件号。
- [ ] 对手方关联对象账号优先：账号命中信贷客户时显示信贷客户；员工/亲属账号优先，账号未命中时才按名称。
- [ ] 对象级外部人员命中可进入结果总览统计。

### 2.3 后端规则与接口

- [ ] 7 条外部人员规则能被打标服务分发。
- [ ] 外部人员阈值读取正确：大额类复用 `LARGE_TRANSACTION`，疑似赌博对象规则复用 `SUSPICIOUS_GAMBLING`。
- [ ] 涉疑交易导出字段包含流水基础字段、关联员工、异常标签。
- [ ] 风险明细工作簿导出仍保留员工负面征信和异常账户 sheet。
- [ ] PDF 报告外部人员汇总与明细输出正常。

### 2.4 前端页面

- [ ] 结果总览统计卡片展示符合最新口径。
- [ ] 外部人员详情页查看异常明细，不跳转流水明细。
- [ ] 外部人员详情页关闭/返回入口可用。
- [ ] 资金图谱页签外部人员场景显示为资金，不出现“关联对象”等不清晰文案。
- [ ] 风险模型区员工模型与外部人员模型展示正常。

### 2.5 构建与自动化测试

- [ ] 后端相关单元测试通过。
- [ ] 后端模块编译通过。
- [ ] 主应用打包通过。
- [ ] 前端生产构建通过。
- [ ] 本地后端启动并登录接口可用。
- [ ] 浏览器打开真实页面完成基本冒烟验证。

## 3. 执行记录

### 3.1 本地提交范围

2026-06-29 至 2026-06-30 本地提交共 4 个：

- `dc5574cd` 调整专项分析员工范围口径。
- `8caf914b` 完善项目分析功能清单。
- `2efaf573` 完善外部人员详情与预警显示。
- `0ceddbc3` 完善项目分析预警交互。

### 3.2 数据库与 SQL 验收

- [x] 使用 `bin/mysql_utf8_exec.sh` 执行 `sql/migration/2026-06-29-add-external-person-bank-tag-rules.sql` 成功。
- [x] 数据库 `ccdi_bank_tag_rule` 已存在 7 条外部人员规则，且均为启用状态。
- [x] 外部人员大额类规则风险等级调整为中风险，员工/亲属资金往来和同日多对手方疑似赌博交易保持高风险。
- [x] 外部人员主体范围 SQL 使用 `bs.cret_no is not null` 且排除员工、员工亲属。
- [x] 外部人员与员工/亲属交易规则未使用对手方证件号；账号命中优先，账号未命中时才按名称命中员工或亲属。
- [x] 外部人员结果总览 SQL 包含流水级命中和 `EXTERNAL_CERT_NO` 对象级命中。

### 3.3 后端验收

- [x] 外部人员 7 条规则已接入 `CcdiBankTagServiceImpl` 分发逻辑。
- [x] 阈值映射已验证：外部单笔/累计/年流水复用 `LARGE_TRANSACTION`；外部多对手方疑似赌博复用 `SUSPICIOUS_GAMBLING`。
- [x] 涉疑交易导出接口验收通过，`涉疑交易明细` sheet 表头为：交易时间、本方账户、本方主体、对方名称、对方账户、关联员工、摘要、交易类型、异常标签、交易金额。
- [x] 风险明细工作簿仍保留 `员工负面征信信息`、`异常账户人员信息` 两个 sheet。
- [x] 接口烟测通过：`/external-persons/summary`、`/external-persons`、`/external-risk-models/cards`、`/suspicious-transactions` 对项目 `90629003`、`90629002` 返回 `code=200`。

### 3.4 前端验收

- [x] 真实页面登录成功，进入项目 `90629002`。
- [x] 结果总览展示总人数、风险等级、外部人员统计；外部人员预警页签可见。
- [x] 外部人员列表展示主体类型、涉及对象、最近交易时间；涉及对象显示为员工、员工亲属、中介库人员、资金等业务词。
- [x] 外部人员查看详情打开弹窗，不跳转流水明细查询。
- [x] 外部人员详情页右上角存在关闭按钮，异常明细按流水明细表格展示。
- [x] 风险模型区域员工模型与外部模型均可展示；验收中发现 duplicate key 后已修复，复验控制台 0 error、0 warning。

### 3.5 构建与测试

- [x] 后端针对性单测通过：13 个测试类、82 个用例，0 失败、0 错误。
- [x] `mvn -pl ccdi-project -am compile -DskipTests` 通过。
- [x] `mvn -pl ruoyi-admin -am package -DskipTests` 通过。
- [x] `npm run build:prod` 使用 Node `22.22.3` 构建通过。
- [x] 浏览器真实页面验收通过，截图保存在 `output/playwright/2026-06-30-external-person-detail.png`。

## 4. 风险与处理

- [ ] 生产包阻断：`ruoyi-ui/public/!cLEZGP.docx`、`0uS5znL.docx`、`AlhOgYW.docx` 会被复制到 `ruoyi-ui/dist/`，必须在生产打包前移除或排除。
- [ ] 生产提交阻断：工作区存在多处未跟踪随机 `.docx` 文件，分布在 `assets/`、`lsfx-mock-server/`、`ruoyi-admin/src/main/resources/`、`ruoyi-ui/public/`，不得纳入生产提交。
- [ ] 配置确认项：`tongweb_62318.properties` 记录了本机路径 `C:\Users\20696\Desktop\chuhe\ccdi`，不得作为生产配置提交。
- [ ] 配置确认项：`ruoyi-admin/src/main/resources/application-dev.yml` 新增 `spring.main.allow-circular-references: true`，需确认该 dev 配置变更是否允许进入生产分支。
- [ ] 既有构建警告：`ccdi-info-collection/pom.xml` 重复声明 `ccdi-lsfx` 依赖，当前不阻断本次构建，但建议上线前单独清理。

结论：业务功能链路验收通过；当前工作区不能直接整体打包上线，必须先剔除上述生产包/提交阻断项。
