# 09 · 复核差异清单修复 - **Status:** resolved - **Type:** task - **Blocked by:** 08-audit-prototype ## 目标 修复 08 号票产出的 `audit-findings.md` 差异清单中"能机械修"的部分;"需决策"项单开票走 grilling。 ## 范围(08 产出回填,2026-09-04) 依据 `audit-findings.md`(三节:镜头一 S 项 + 镜头二 F 项 + 归并建议): **机械修(本票直接做):** - S1:`OpportunityRuleConstants.CODE_SCHEME_TPL_INVALID` 64018→64022(解重复;引用处+测试同步); - F3:import 端点 tag 补挂"客户公海"(a4-1-1 工具条实证有导入入口,ADR-0024 多值)——补 5 个 import 端点注解 + bruno 侧副本生成; - F10 若用户选"客户 oplog 扩操作类型"轻方案,则属本票;选独立表则单开票。 **需决策(grill 后归票):** - F5 战略协议(补 or 划出——原型有完整三页,翻案需确认); - F6 批量更新工商信息;F7 内置检索视图过滤参数(我负责/我协同/待跟进/我关注/最近访问);F8 导入重复策略;F10 联系人操作日志形态; - F4 关联项目(A5 依赖)、F9 导出日志(导出家族)——划出确认。 每修一项:对应单测/集成测试同步补;修复波及 `.scratch/customer-module` 文档的,随修随改(11 号票统一校验)。 ## 验收 - 差异清单全部条目状态为"已修 / 已单开票 / 明确不修(记理由)",无悬空项。 ## Answer(2026-09-05 收尾) **处置总览**(明细见 `audit-findings.md` §四处置状态表): - **已修六项**: - S1 错误码撞号——实改与票面建议相反:64022 已被 `CODE_SCHEME_TPL_FIELD_INVALID` 占用,故 `CODE_SCHEME_TPL_INVALID` 保 64018(64018-64022 归方案卡模板段),`CODE_STAGE_TPL_SEED_PROTECTED` 64018→**64024** 顺延补位; - F3 import 六端点双 tag 增挂「客户公海」; - F6 批量工商更新 `POST /api/customer/company-lookup/batch-update`(ids 表单绑定、§C2 只补空缺、五种状态软处置、上限 100;port stub 恒 NO_HIT,真实企查查接入自动激活); - F7 审计口径偏差澄清——viewType 单参数已承载五内置视图,真缺口为 customer_view_log 生产侧零写入(票 04 建壳挂账),按实体 javadoc 设计意图在 detailHead 聚合时 upsert touchViewLog,零新端点; - F8 导入重复策略 `duplicateStrategy`(SKIP 缺省 / OVERWRITE 67013 拦非法;D24 冻结语义:作用面仅文件内重复组,overwrite=组内最后一条通过校验的行 UPDATE 生效;不触名称相似 SUSPECT); - F10 联系人日志轻方案——客户 oplog 扩 CONTACT_ADD/EDIT/DELETE,联系人增删改三处写日志。 - **已单开票**:F5 战略协议 → 票 12(原型三页完整,全栈实现+测试+bruno 移交)。 - **明确不修(记理由)**:F4 关联项目随 A5 项目域划出;F9 导出日志随 D2 导出家族划出(均经用户 2026-09-05 逐项拍板)。 **验证**:`mvn clean test -pl crm-customer -am` BUILD SUCCESS——crm-customer 152 用例全绿(含 F6 +4、F7 +1、F8 +3、F10 +1 新用例),依赖六模块(base 38 / file 84 / auth 210 / dict 51 / rule 152 / preference 23)全绿;全模块 .java BOM 扫描 NO BOM。 **随票移交**:bruno 侧 F6/F8 新参数与 F7 行为示例未在本票内同步,随票 10 bruno 对账步统一核补(文档仓本机 `D:\code\crm-api-docs`)。