Files
tms-erp-web/.workbuddy/memory/2026-07-28.md
赵忠林 6eba9d2c2f fix(cargo-type): 修复导入失败明细列宽和样式问题
- decorator 仅操作 G 列「导入失败原因」字体颜色为黑色,无背景填充
- 修正失败明细列宽映射 key,确保与后端表头完全一致
- 恢复所有列的宽度设置,避免内容拥挤
- 后端添加事务控制,确保导入数据全部正确才提交,否则整体回滚
2026-07-28 01:22:45 +08:00

3.0 KiB
Raw Blame History

2026-07-28 工作日志

货物类型导入模板美化

  • 文件:src/views/base/cargo-type.vuehandleTemplate()
  • 改动(第一次):表头行加主色底色 #409EFF + 白色加粗字体 + 居中对齐 + 细边框;行高 42。
  • 改动(调整后):按用户反馈,表头底色改为统一灰色 #D9D9D9 + 黑色加粗字体,行高降为 30。
  • 导入失败明细 decorateCargoTypeFailDetail 调整:仅「导入失败原因」列字体红色;错误按 A./B./C. 编号分号隔开并去掉后端重复的「第N行」前缀最终格式示例 第2行A.该货物类型编码已存在,请更换唯一编码
  • 验证Node + exceljs 4.4.0 跑通生成逻辑,确认表头 fill/font/alignment/height、失败原因编号格式与红色字体均正确。

货物类型导入失败明细 - 备注超长与标红强化

  • 确认需求:除「导入失败原因」列外,其他列一律不标红;已增加 decorator 清除所有非失败原因列红色字体(含类型列,不论对错)。
  • 失败原因按 A./B./C. 编号、分号隔开并优化错误文本已包含规则说明时不重复拼接避免「备注不能超过200字备注不能超过200字」
  • 新增兜底:失败明细行若「备注」列文本长度 > 200 且失败原因未含备注错误自动追加一条「备注不能超过200字」编号项Node 验证通过)。
  • 后端根因(已读 /Users/gxwebsoft/JAVA/tms-erp-api-ws/blade-service/blade-system/.../CargoTypeServiceImpl.javavalidate() 用 throw 实现一行多个错误时只抛第一个备注超长校验第238行可能被前置的编码/名称/上级错误挡住,导致失败明细不显示备注原因。彻底方案需后端改收集式校验(列出全部错误),待用户确认是否改 Java。
  • 最终确认(样式)decorator 仅操作 G 列「导入失败原因」——黑色字体argb FF000000、无背景填充fill→none其余列单元格样式/内容不修改。
  • 列宽修复(关键 bug:失败明细列宽之前全部失效,根因是 CARGO_TYPE_FAIL_COL_WIDTH 的 key 用了「类型/上级货物类型」等简写,而后端 CargoTypeImportFailureExcel 表头带 * 与括号说明(如 *类型上级货物类型(如为一级则不需填写)key 对不上导致走默认 18。已把 key 改为与后端表头完全一致,并恢复「给所有列设宽」逻辑。最终宽度:*类型16 / 上级货物类型(…)22 / 上级货物类型编码(…)26 / *货物类型18 / *货物类型编码18 / 备注24 / 导入失败原因70。Node 验证通过。
  • 事务性导入(后端改动)CargoTypeServiceImpl.importCargoType@Transactional(rollbackFor=Exception.class),逐条 validate+save 后若有任一失败则 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly() 回滚整批,实现"全部正确才入库,任一错误则一条都不存"。需重新编译部署 tms-erp-api-ws 后端生效。