07b2f2766e
问题:CommonCargoServiceImpl.importCommonCargo 循环内吞掉异常后正常 return, 方法正常返回导致 Spring 照常提交事务。方法虽有 @Transactional(rollbackFor = Exception.class),但异常被吞后注解救不了——失败行之前的正确行已经落库。 改动: - 服务层:错误收集完毕后若 failureList 非空,抛 ImportFailureException (org.springblade.common.excel,#2 已迁入 blade-common)触发整批回滚。 - 修复失败明细原因为空的问题:catch 里除写入 failureExcel 副本外, 还必须把原因写回原行对象 excel.setErrorMessage(...)——抛出异常时携带的是 原表 data,导出工具从行对象的 errorMessage 字段取原因,只写副本会丢。 - 控制器:改为 catch 异常 → 取 failureList 导出 → return null,并补上传 文件校验,对齐 PortTerminalController 写法。 验证: - mvn install -DskipTests 全量编译通过。 - 常用货物回归 25/25 通过(新增 tests/fixtures/common-cargo/, scripts/api-common-cargo-import-test.sh),含 02_一行错误多行正确_应零写入。 - 港口码头基线回归 45/45 通过,确认无连带影响。