2026-08-17 技术评审-MAC-查证明细经销商名称存储成字符串 bug 修复技术方案
会议信息
- 会议主题:查证明细经销商名称存储成字符串 bug 修复技术方案评审
- 会议时间:2026-08-17
- 参与人:马奇、王建朝、孙传熙、宋洋、潘玉平、贾继伟、余勇军、粱健、李明非
- 评审结果:通过
一、技术方案背景
生产环境 MQ 消费查证明细时,因消息重试(发版/消费失败重投)场景,原对象无值时直接插入、有值时反向序列化出错,导致本应是数组/对象的"经销商名称"等字段被序列化成字符串并不断嵌套(如 ["[\"[\\\"xxx\\\"]\"]"),页面展示成一坨嵌套文本,涉及查证明细表约 1 万条。
二、技术方案要点
- 代码层修复:在原有序列化逻辑中增加判断:若对象内字段声明为集合/数组类型,但反序列化出来是字符串,则手动用反射取出目标类型,将其转回原集合/数组后再序列化落库,避免后续重试继续嵌套。
- 数据修复脚本:先用备份表拷贝出异常数据到临时表,对临时表执行"去多余反斜杠 + 反序列化还原 + 更新 update_time"的修复 SQL 验证通过;原表修复按 id 定向更新,不全覆盖。
- 影响范围:仅影响查证明细表页面展示(经销商名称等),不进入后续加工/签收逻辑。
三、评审决议
- 发版顺序约束:代码 bug 修复必须先于数据修复脚本上线;等发版后不再产生新嵌套数据,再跑历史 1 万条修复,避免"边修边产生"。
- 文档完善:需在技术文档中补充"MQ 重试 + 原值非空 → 反向序列化变字符串"的复现场景与消息重试的逻辑,不能只写现象。