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

18 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-07-28 工作日志
## 货物类型导入模板美化
- 文件:`src/views/base/cargo-type.vue``handleTemplate()`
- 改动(第一次):表头行加主色底色 `#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 后端生效。