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; customerPackageCol = packageColTmp;
customerAmountCol = amountColTmp; customerAmountCol = amountColTmp;
customerColumnsResolved = true; customerColumnsResolved = true;
// 关键列未识别到时告警,避免发票编号等字段静默丢失
if (invoiceNoColTmp < 0 || amountColTmp < 0) {
LOGGER.warn("第{}行客户配送明细列头识别到但存在缺失列:发票编号列={},金额列={}," +
"对应数据将解析为空,请检查模板列头文字是否在归一化映射范围内",
currentRowNum, invoiceNoColTmp, amountColTmp);
}
LOGGER.info("第{}行识别为客户配送明细列头行,列映射:类别={},发票编号={},客户编号={},名称={},箱={},包={},金额={}", LOGGER.info("第{}行识别为客户配送明细列头行,列映射:类别={},发票编号={},客户编号={},名称={},箱={},包={},金额={}",
currentRowNum, categoryCol, invoiceNoCol, customerCodeCol, customerNameCol, customerBoxCol, customerPackageCol, customerAmountCol); currentRowNum, categoryCol, invoiceNoCol, customerCodeCol, customerNameCol, customerBoxCol, customerPackageCol, customerAmountCol);
return true; 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('別', '别') .replace('車', '车').replace('線', '线').replace('類', '类').replace('別', '别')
.replace('簡', '简').replace('產', '产').replace('單', '单'); .replace('簡', '简').replace('產', '产').replace('單', '单')
// 維他奶模板「發票編號/發票張數/金額」用字:缺了这两项会导致發票編號列识别失败、发票编号不落库
.replace('發', '发').replace('額', '额');
return s; return s;
} }