--- schema: "hl-changelog/v2" ticket: "6620" title: "供应商编辑页主体证件号未绑定 tax_no" consumer: "admin" author: "lc(GIT)" change_type: "前端缺陷" backend_status: "not_required" gateway_status: "not_required" frontend_status: "verified" frontend_owner: "mmg" frontend_ref: "9d5dcbab" target_release: "v2.1" verified_at: "2026-08-29" status_note: "hl-admin 端实际绑定 formData.taxNo(非 socialCreditCode,该定位对端不符);经用户拍板采用「tax_no 回显、DRAFT 可改、非 DRAFT 锁定」折中,非 DRAFT 恒不携带防 395033,未按字面「保持可编辑」。契约库记 002 tax_no 脱敏与本条称完整值不一致,回填已加脱敏守卫兼容。" updated_at: "2026-08-29" base: "dev-v3" --- # 供应商编辑页主体证件号未绑定 `tax_no` 后端契约没有变化。打开已有供应商时,详情响应已经返回完整 `tax_no`,管理端需在表单适配层消费该字段。 ## 接口与字段 - 接口:`GET /admin/supplier/items/{supplierId}/basic-info/view` - 响应字段:`data.tax_no`,类型为 `string`,值为完整主体证件号。 - 创建、更新请求字段仍为 `taxNo`。响应与请求字段命名不同,前端不得改读 `data.taxNo` 或用 `socialCreditCode` 代替响应字段。 ## 前端处理要求 1. 详情加载后,将非空 `data.tax_no` 映射为“主体证件号”输入框的实际值,并保持可编辑。 2. 详情值必须覆盖表单初始空值;初始化或重置逻辑不得在映射后再次清空。 3. 只有接口实际返回空值时才显示空输入框;占位提示不能代替已有证件号。 4. 保存时继续按既有写契约提交 `taxNo`,不要新增或要求后端返回重复字段。 ## 后端核验结论 - 响应 VO 将 Java 属性 `taxNo` 固定序列化为 JSON 字段 `tax_no`。 - 查询服务直接取供应商主体的 `taxNo` 写入响应,持久化读取兼容密文和历史明文。 - 供应商回显、查询、Controller 契约与聚合写入相关测试共 60 项通过,失败、错误和跳过均为 0。 - #6499 / PR #6505 已在 TEST 验证详情返回的 `tax_no` 与数据库原值一致;当前 `dev-v3` 已包含该实现。本条目不引入后端代码、接口、数据库、配置、Redis 或 MQ 变更。 ## 只读前端定位 现有管理端表单显示字段绑定为 `socialCreditCode`,详情适配逻辑没有把后端 `tax_no` 映射到该输入框,因此页面会保留初始空值。该定位仅用于联调交接,本工单未修改前端源码。 ## 撤回 如需撤回本联调通知,只需回退本 Changelog 文件;既有后端 `tax_no` 契约和运行数据不受影响。 ## 关联 / 联系人 - Issue:[#6620](https://git.1814.love:8443/wx/HL/issues/6620) - 后端联系人:@lc