cc33bc5ef2
对应 BUG.xlsx 序号 1 与序号 2。 序号 1(同表混装一二级数据): - 改为两阶段导入,先落库港口(一级)再落库码头(二级), 消除对 Excel 行序的依赖;码头优先引用本批次新增的港口 序号 2(全失败即整批回滚): - 逐行收集错误,只要有一行失败就抛异常触发整批回滚,不再部分成功 - 失败明细按【原表全部行】返回,未出错的行不标注,用户只需改错行 附带修复: - 父港口找不到时改抛专用 ParentPortNotFoundException: 上级港口声明在本文件里、但那一行自身校验失败时,不再连带给码头行报错, 避免用户看到"两行都错"的假象;父港口确实漏填时仍照常报错 - 批内重复编码在落库前预检并定位到行,两行都标注原因 - 父港口区域信息为空(历史数据)时保留码头自身填写的值, 此前会被覆盖成空值导致码头无法导入