From a2c33820f54b463db398781ca90b7b87760637e1 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Thu, 9 Apr 2026 11:06:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=81=E8=AE=B8=E5=B0=8F=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CoDelExcelServiceImpl.java | 62 +++++++++++------- .../resources/templates/packing-template.xlsx | Bin 10936 -> 10861 bytes 2 files changed, 38 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelServiceImpl.java index 191faa98..2599714a 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelServiceImpl.java @@ -2035,33 +2035,15 @@ public class CoDelExcelServiceImpl implements CoDelExcelService { palletList = sqlSession.selectList("ecssMapper.searchEcssCoDelNotifyDetail", data); } //计算总数和总箱数 - int totalQty = 0; - int totalBoxQty = 0; + BigDecimal totalQty = BigDecimal.ZERO; + BigDecimal totalBoxQty = BigDecimal.ZERO; for (Map item : palletList) { Object qtyObj = item.get("qty"); Object boxQtyObj = item.get("boxQty"); - int qty = 0; - int boxQty = 0; - if (qtyObj instanceof Number) { - qty = ((Number) qtyObj).intValue(); - } else if (qtyObj instanceof String) { - try { - qty = Integer.parseInt((String) qtyObj); - } catch (NumberFormatException e) { - qty = 0; // 或者根据需求处理异常 - } - } - if (boxQtyObj instanceof Number) { - boxQty = ((Number) boxQtyObj).intValue(); - } else if (boxQtyObj instanceof String) { - try { - boxQty = Integer.parseInt((String) boxQtyObj); - } catch (NumberFormatException e) { - boxQty = 0; // 或者根据需求处理异常 - } - } - totalQty += qty; - totalBoxQty += boxQty; + BigDecimal qty = parseDecimalValue(qtyObj); + BigDecimal boxQty = parseDecimalValue(boxQtyObj); + totalQty = totalQty.add(qty); + totalBoxQty = totalBoxQty.add(boxQty); item.put("qty", qty); item.put("boxQty", boxQty); } @@ -2084,6 +2066,38 @@ public class CoDelExcelServiceImpl implements CoDelExcelService { } } + /** + * 统一将对象解析为BigDecimal,支持整数/小数/字符串数字(含千分位)。 + */ + private BigDecimal parseDecimalValue(Object value) { + if (value == null) { + return BigDecimal.ZERO; + } + if (value instanceof BigDecimal) { + return (BigDecimal) value; + } + if (value instanceof Number) { + try { + return new BigDecimal(value.toString()); + } catch (NumberFormatException e) { + return BigDecimal.ZERO; + } + } + if (value instanceof String) { + String str = ((String) value).trim(); + if (str.isEmpty()) { + return BigDecimal.ZERO; + } + str = str.replace(",", ""); + try { + return new BigDecimal(str); + } catch (NumberFormatException e) { + return BigDecimal.ZERO; + } + } + return BigDecimal.ZERO; + } + /** * 导出出口货物委托书 */ diff --git a/src/main/resources/templates/packing-template.xlsx b/src/main/resources/templates/packing-template.xlsx index 1c8af08a436948c8ce07643d80592bfe9c7281a5..d2648a3693fcf1b187b8dda75263d6ffa20b79af 100644 GIT binary patch delta 3702 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 N6cIi$gy6qN{{n=Q+pPcq delta 3801 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