fix(oms): 出库业务单导入发票编号不落库,补齐繁简归一化「發/額」映射

模板列头「發票編號/金額/發票張數」归一化时映射表缺「發→发」「額→额」,發票編號列识别失败(invoiceNoCol=-1),客户配送明细落库时发票编号为空、查看不回显,金额列与发票张数同样受影响。补齐映射并在关键列缺失时输出告警日志;历史已导入单据需重新导入。
This commit is contained in:
rcx
2026-09-02 15:43:07 +08:00
parent 028af3dd2f
commit 3576d734af
@@ -365,6 +365,12 @@ public class DynamicDeliveryExcelListener extends AnalysisEventListener<Map<Stri
customerPackageCol = packageColTmp;
customerAmountCol = amountColTmp;
customerColumnsResolved = true;
// 关键列未识别到时告警,避免发票编号等字段静默丢失
if (invoiceNoColTmp < 0 || amountColTmp < 0) {
LOGGER.warn("第{}行客户配送明细列头识别到但存在缺失列:发票编号列={},金额列={}," +
"对应数据将解析为空,请检查模板列头文字是否在归一化映射范围内",
currentRowNum, invoiceNoColTmp, amountColTmp);
}
LOGGER.info("第{}行识别为客户配送明细列头行,列映射:类别={},发票编号={},客户编号={},名称={},箱={},包={},金额={}",
currentRowNum, categoryCol, invoiceNoCol, customerCodeCol, customerNameCol, customerBoxCol, customerPackageCol, customerAmountCol);
return true;
@@ -544,7 +550,9 @@ public class DynamicDeliveryExcelListener extends AnalysisEventListener<Map<Stri
.replace('數', '数').replace('飲', '饮').replace('規', '规').replace('戶', '户')
.replace('紀', '纪').replace('錄', '录').replace('張', '张').replace('計', '计')
.replace('車', '车').replace('線', '线').replace('類', '类').replace('別', '别')
.replace('簡', '简').replace('產', '产').replace('單', '单');
.replace('簡', '简').replace('產', '产').replace('單', '单')
// 維他奶模板「發票編號/發票張數/金額」用字:缺了这两项会导致發票編號列识别失败、发票编号不落库
.replace('發', '发').replace('額', '额');
return s;
}