From 5cf79b6729a1b46e7f0acb869fb6c4d99dbad7dd Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 3 Oct 2025 22:01:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=B1=E5=8D=95=E4=B8=8B=E7=9A=84=E6=80=BB?= =?UTF-8?q?=E6=AF=9B=E9=87=8D=E5=BA=94=E8=AF=A5=E6=98=AF=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E7=9A=84=EF=BC=8C=E6=8A=A5=E5=85=B3=E5=8D=95=E4=B9=9F=E6=98=AF?= =?UTF-8?q?=E5=90=8C=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ecss/service/impl/CoDelServiceImpl.java | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java index a86e673a..ef3ef584 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java @@ -682,12 +682,12 @@ public class CoDelServiceImpl implements CoDelService { } // 过滤掉发票号不一致的数据 excelList.removeIf(data -> !inData.getCmcInvoice().equals(data.getCmcInvoice())); - + // 检查过滤后是否还有数据 if (excelList.isEmpty()) { throw new RuntimeException("导入失败:Excel中没有与发货通知单["+inData.getCmcInvoice()+"]一致的发票号数据"); } - + List notifyHeader = coDelMapper.checkIfHasHeader(excelList.get(0).getCmcInvoice()); EcssCoDelNotifyHeaderData headerData; if (notifyHeader.isEmpty()) { @@ -1708,7 +1708,26 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("packageType", stringInput(ecHeader.getPackageType())); template.addVar("packageQty", data.getPackageUnit()!=null&&data.getPackageUnit().equals("箱")?ecHeader.getBoxQty():ecHeader.getPackageQty()); template.addVar("packageUnit", data.getPackageUnit()); - template.addVar("grossWeight", ecHeader.getGrossWeight() != null ? ecHeader.getGrossWeight().setScale(2, RoundingMode.HALF_UP) : ""); + // 托盘重量=根据每个pallet的重量*数量累加 + EcssCoDelNotifyHeaderData notifyHeader = coDelMapper.getEcssCoDelNotifyHeader(data.getSite(), data.getDelNo()); + List palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader); + BigDecimal palletWeight = BigDecimal.ZERO; + for (EcssCoDelPalletHeaderData palletHeader : palletHeaderDataList) { + if (palletHeader.getPallet() != null && !palletHeader.getPallet().isEmpty()) { + // 根据pallet编号查询EcssPallet信息 + List palletDataList = coDelMapper.getPallet(notifyHeader.getSite(), notifyHeader.getBuNo(), palletHeader.getPallet()); + if (!palletDataList.isEmpty()) { + EcssPalletData palletData = palletDataList.get(0); + if (palletData.getPalletWeight() != null && palletHeader.getPalletQty() != null) { + // 栈板重量 = 单个栈板重量 * 数量 + BigDecimal singlePalletWeight = palletData.getPalletWeight().multiply(BigDecimal.valueOf(palletHeader.getPalletQty())); + palletWeight = palletWeight.add(singlePalletWeight); + } + } + } + } + BigDecimal grossWeight = ecHeader.getGrossWeight() != null ? ecHeader.getGrossWeight() : BigDecimal.ZERO; + template.addVar("grossWeight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP)); template.addVar("netWeight", ecHeader.getNetWeight() != null ? ecHeader.getNetWeight().setScale(2, RoundingMode.HALF_UP) : ""); template.addVar("paymentType", stringInput(ecHeader.getPaymentType())); template.addVar("shipPrice", ecHeader.getShipPrice() != null ? ecHeader.getShipPrice().setScale(2, RoundingMode.HALF_UP) : ""); @@ -2044,7 +2063,7 @@ public class CoDelServiceImpl implements CoDelService { } } template.addVar("Total_Cartons", totalCartons.setScale(0, RoundingMode.HALF_UP)); - template.addVar("Gross_Weight", grossWeight.setScale(2, RoundingMode.HALF_UP)); + template.addVar("Gross_Weight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP)); template.addVar("Net_Weight", netWeight.setScale(2, RoundingMode.HALF_UP)); template.addVar("total_weight", (grossWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP)); template.addVar("total_netweight", netWeight.setScale(2, RoundingMode.HALF_UP)); @@ -2526,7 +2545,7 @@ public class CoDelServiceImpl implements CoDelService { public void copyEcssTemplate(EcssTemplate data) { SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); String site = coDelMapper.getSiteByBu(data.getBuNo()); - + // 检查目标模板名称是否已存在 EcssTemplate checkData = new EcssTemplate(); checkData.setBuNo(data.getBuNo()); @@ -2535,27 +2554,27 @@ public class CoDelServiceImpl implements CoDelService { if(!existingTemplates.isEmpty()){ throw new RuntimeException("目标BU中模版["+data.getName()+"]已存在!"); } - + // 获取原模板数据 EcssTemplate sourceTemplate = coDelMapper.getEcssTemplateByBuAndName(data.getNameNative(), data.getSite()); if(sourceTemplate == null) { throw new RuntimeException("原模版不存在!"); } - + // 复制模板数据 sourceTemplate.setBuNo(data.getBuNo()); sourceTemplate.setName(data.getName()); sourceTemplate.setSite(site); sourceTemplate.setCreateBy(currentUser.getUsername()); sourceTemplate.setAddFlag(0); // 设置为新增标识 - + // 根据目标BU调整kgs参数 if("03-RFID".equals(data.getBuNo())) { sourceTemplate.setKgs(new BigDecimal("4.5")); } else if("01-Label".equals(data.getBuNo())) { sourceTemplate.setKgs(new BigDecimal("2.5")); } - + // 插入新模板 coDelMapper.insertEcssTemplateData(sourceTemplate); }