From 2802972df2a2e8e553f77545f21baba05d69740f Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 27 Jun 2026 15:36:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(excel):=20=E8=A7=A3=E5=86=B3=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E5=8D=95=E5=85=83=E6=A0=BC=E6=95=B0=E6=8D=AE=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 引入 StringUtils 处理各种空白字符和占位符 - 修改数量和件数字段从 BigDecimal/Integer 改为 String 类型读取 - 在 Service 层添加 parseDecimal 和 parseInteger 方法处理数值转换 - 优化异常处理逻辑,支持合并单元格中的点号、横线等占位符 - 更新注释说明合并单元格的数据处理方式变更 --- .../vo/ErpPurchasePlanDeliveryImportVo.java | 10 ++-- .../listener/ErpDeliveryExcelListener.java | 20 ++++++-- .../impl/ErpPurchasePlanServiceImpl.java | 46 ++++++++++++++++++- 3 files changed, 67 insertions(+), 9 deletions(-) diff --git a/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchasePlanDeliveryImportVo.java b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchasePlanDeliveryImportVo.java index ad89b660d..26807181a 100644 --- a/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchasePlanDeliveryImportVo.java +++ b/klp-erp/src/main/java/com/klp/erp/domain/vo/ErpPurchasePlanDeliveryImportVo.java @@ -10,7 +10,9 @@ import java.math.BigDecimal; * 采购计划到货导入模板(对应到货 Excel,一行一卷) * * 列:日期 牌号 规格 卷号 单卷重量 车号 数量 件数 销售 钢厂到站 - * 注:车号/数量/件数 为合并单元格,仅首行有值,导入时向下填充。 + * 注:车号/数量/件数 为合并单元格,仅首行有值; + * 数量/件数 使用 String 类型读取以避开 EasyExcel 对合并空白格的数值转换异常, + * 在 Service 层统一 parse 并校验。 * * @author klp * @date 2026-06-22 @@ -37,11 +39,13 @@ public class ErpPurchasePlanDeliveryImportVo { @ExcelProperty("车号") private String truckNo; + /** 整车总重(合并单元格,仅首行有值;读为 String 以兼容空白/点号等占位符) */ @ExcelProperty("数量") - private BigDecimal truckWeight; + private String truckWeight; + /** 整车件数(合并单元格,仅首行有值;读为 String 以兼容空白/点号等占位符) */ @ExcelProperty("件数") - private Integer pieceCount; + private String pieceCount; @ExcelProperty("销售") private String salesCode; diff --git a/klp-erp/src/main/java/com/klp/erp/listener/ErpDeliveryExcelListener.java b/klp-erp/src/main/java/com/klp/erp/listener/ErpDeliveryExcelListener.java index e210686d8..5b26b33c9 100644 --- a/klp-erp/src/main/java/com/klp/erp/listener/ErpDeliveryExcelListener.java +++ b/klp-erp/src/main/java/com/klp/erp/listener/ErpDeliveryExcelListener.java @@ -5,6 +5,7 @@ import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.exception.ExcelDataConvertException; import com.klp.common.exception.ServiceException; import com.klp.erp.domain.vo.ErpPurchasePlanDeliveryImportVo; +import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.Arrays; @@ -58,8 +59,8 @@ public class ErpDeliveryExcelListener extends AnalysisEventListener cd = e.getCellData(); @@ -83,7 +84,18 @@ public class ErpDeliveryExcelListener extends AnalysisEventListener queryDeliveryList(Long planId) { return deliveryMapper.selectVoList(Wrappers.lambdaQuery(ErpPurchasePlanDelivery.class)