From 5b89ea382e29750822cc6cee5ecfe069f717b031 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Fri, 10 Apr 2026 13:56:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CoDelExcelTXServiceImpl.java | 58 +----------------- .../mapper/ecss/EcssCommonMapper.xml | 2 +- .../YB/declaration-invoice2-template.xlsx | Bin 182923 -> 183272 bytes 3 files changed, 3 insertions(+), 57 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java index 9b94b722..a1844d6a 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java @@ -1484,35 +1484,10 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { List ndList = sqlSession.selectList("ecssMapper.searchEcssCoDelNotifyDetailList", notifyHeader); for (int i = 0; i < ndList.size(); i++) { Map eorder = ndList.get(i); - String partNo = (String) eorder.get("part_no"); - Integer itemNo = eorder.get("item_no") != null ? (Integer) eorder.get("item_no") : null; eorder.put("row_num", i + 1); - EcssCoDelNotifyDetailData nodifyData = notifyDetailMap.get(partNo); - // 根据item_no获取该明细行对应的装箱重量 - String lossratio = ""; - if (nodifyData!=null && nodifyData.getLossratio()!=null && !StringUtils.isBlank(nodifyData.getLossratio())) { - // 关务物料属性 - List propertiesValues = coDelMapper.getPropertiesListByTypeAndCodeNo( - notifyHeader.getSite(), "ECSSPART","BG001", notifyHeader.getBuNo(), partNo); - // 每一个物料加属性对应一个属性,用来下面遍历发货通知单明细时获取具体属性值 - Map> partNoAndItemNoMap = propertiesValues.stream() - .collect(Collectors.groupingBy(PartSubPropertiesValue::getPropertiesItemNo)); - BigDecimal qty = ((BigDecimal)eorder.get("qty")).setScale(6, RoundingMode.HALF_UP); - BigDecimal fscW = fscWeight(partNoAndItemNoMap,partNo, qty, nodifyData.getLossratio()); - lossratio = (fscW.compareTo(BigDecimal.ZERO)>0?"\n"+"FSC Mix Credit SGSHK-COC-321321":"")+ - "\n" + (nodifyData.getEhundred()!=null && StringUtils.isNotEmpty(nodifyData.getEhundred()) - ?"E100-"+nodifyData.getEhundred()+ " ":"") - + (fscW.compareTo(BigDecimal.ZERO)>0?"重量:"+ fscW :""); - } - String hsCodeDesc = data.getHsCodeDesc()!=null&& data.getHsCodeDesc()? - ("\n"+(data.getHsCodeDescTypeInvoice()!=null&& data.getHsCodeDescTypeInvoice().equals("N") - ?eorder.get("hsCodeDescEn") :eorder.get("hsCodeDesc"))):""; - // 构建designation内容 - String designationContent = eorder.get("part_description") + "\n" + "PO:" + eorder.get("customerPO") - + (data.getSo()!=null && data.getSo()?" SO:"+eorder.get("so"):"") - + (data.getHsCodeFlag()!=null && data.getHsCodeFlag()?"\nHS Code:" + eorder.get("hsCode"):"")+hsCodeDesc+ lossratio; - + String designationContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n" + + " PO#" + eorder.get("customerPO")+" HS CODE#" + eorder.get("hsCode"); eorder.put("designation", designationContent); // 计算designation内容的行数,动态设置行高 @@ -1576,11 +1551,7 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { for (EcssCoDelNotifyDetailData nData:notifyDetailList){ coDelMapper.updateEcssCoDelNotifyDetail(nData); } - } else { - notifyDetailList = coDelMapper.getNotifyPartDetail2(data); } - Map notifyDetailMap = notifyDetailList.stream().collect( - Collectors.toMap(EcssCoDelNotifyDetailData::getPartNo,e->e)); template.setCellStyle(true); template.setRangeStyle(true); template.setMoveSeal(true); @@ -1621,7 +1592,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { BigDecimal totalCartons = BigDecimal.valueOf(0.0); BigDecimal grossWeight = BigDecimal.valueOf(0.0); BigDecimal netWeight = BigDecimal.valueOf(0.0); - BigDecimal rolls = BigDecimal.valueOf(0.0); BigDecimal totalQty = BigDecimal.valueOf(0.0); // 托盘序号 -> 托盘数(用于托盘数列展示) Map palletQtyMap = palletHeaderDataList.stream() @@ -1656,18 +1626,13 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { if (!Objects.equals(palletSeqNo, previousPalletSeqNo)) { palletStartIndex = boxStartIndex; } - // 获取box的rolls - BigDecimal boxRolls = list.get(m).get("rolls") != null ? - ((BigDecimal) list.get(m).get("rolls")).setScale(0, RoundingMode.HALF_UP) : BigDecimal.ZERO; // 获取box的volume BigDecimal volume = list.get(m).get("volume") != null ? ((BigDecimal) list.get(m).get("volume")).setScale(6, RoundingMode.HALF_UP) : BigDecimal.ZERO; for (int i = 0; i < checkList.size(); i++) { Map eorder = checkList.get(i); - String partNo = (String) eorder.get("part_no"); BigDecimal qty = ((BigDecimal)eorder.get("qty")).setScale(6, RoundingMode.HALF_UP); totalQty = totalQty.add(qty); - BigDecimal noCartons = list.get(m).get("box_qty")!=null?(BigDecimal) list.get(m).get("box_qty"):BigDecimal.ZERO; eorder.put("total_qty", ((BigDecimal)eorder.get("qty")).setScale(6, RoundingMode.HALF_UP)); // 合箱时:第一行显示数值,用于合并单元格居中显示 boolean isFirstRow = (i == 0); @@ -1686,12 +1651,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { eorder.put("gross_weight", isFirstRow ? ((BigDecimal) list.get(m).get("gross_weight")).setScale(2, RoundingMode.HALF_UP) : ""); eorder.put("net_weight", ((BigDecimal) list.get(m).get("net_weight")).setScale(2, RoundingMode.HALF_UP)); - // rolls处理:如果明细的rolls全部为空或0,则取box的rolls;合箱时合并居中显示 - // 使用box的rolls,合箱时只在第一行显示(用于合并单元格居中) - - if (isFirstRow) { - rolls = rolls.add(boxRolls); - } // 构建artNo内容 String artNoContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n" + " PO#" + eorder.get("po_no")+" HS CODE#" + eorder.get("hsCode"); @@ -1751,7 +1710,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { template.addVar("total_netweight", netWeight.setScale(2, RoundingMode.HALF_UP)); template.addVar("total_box", totalCartons.setScale(0, RoundingMode.HALF_UP)); template.addVar("goods_total_qty", totalQty); - template.addVar("total_rolls", rolls.setScale(0, RoundingMode.HALF_UP)); // 下面是可选的或者手动维护的 // RFID需要的 if (notifyHeader.getBuNo().equals("01-Label") || notifyHeader.getBuNo().equals("03-RFID")) { @@ -1774,10 +1732,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { if (data.getMaterial()!=null && data.getMaterial()) { template.addVar("RFIDBase", "RFID Base Material"); template.addVar("HSCode", "& H.S.Code:"+stringInput(data.getHsCode())); - /* template.addVar("volume", !palletHeaderData.isPresent()?"":palletHeaderData.map(ecssCoDelPalletHeaderData -> - ecssCoDelPalletHeaderData.getLength().setScale(2, RoundingMode.HALF_UP) - + "*" + ecssCoDelPalletHeaderData.getWidth().setScale(2, RoundingMode.HALF_UP) + "*" - + ecssCoDelPalletHeaderData.getHeight().setScale(2, RoundingMode.HALF_UP) + "m").orElse(""));*/ } // 欧洲地区需要 if (data.getPackaging()!=null && data.getPackaging()) { @@ -1863,7 +1817,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { BigDecimal totalCartons = BigDecimal.valueOf(0.0); BigDecimal grossWeight = BigDecimal.valueOf(0.0); BigDecimal netWeight = BigDecimal.valueOf(0.0); - BigDecimal rolls = BigDecimal.valueOf(0.0); BigDecimal totalQty = BigDecimal.valueOf(0.0); // 托盘序号 -> 托盘数(用于托盘数列展示) Map palletQtyMap = palletHeaderDataList.stream() @@ -1936,12 +1889,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { eorder.put("gross_weight", isFirstRow ? ((BigDecimal) list.get(m).get("gross_weight")).setScale(2, RoundingMode.HALF_UP) : ""); eorder.put("net_weight", isFirstRow ? ((BigDecimal) list.get(m).get("net_weight")).setScale(2, RoundingMode.HALF_UP) : ""); - // rolls处理:如果明细的rolls全部为空或0,则取box的rolls;合箱时合并居中显示 - // 使用box的rolls,合箱时只在第一行显示(用于合并单元格居中) - - if (isFirstRow) { - rolls = rolls.add(boxRolls); - } // 构建artNo内容 String artNoContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n" + " PO#" + eorder.get("po_no")+" HS CODE#" + eorder.get("hsCode"); @@ -2004,7 +1951,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { template.addVar("total_netweight", netWeight.setScale(2, RoundingMode.HALF_UP)); template.addVar("total_box", totalCartons.setScale(0, RoundingMode.HALF_UP)); template.addVar("goods_total_qty", totalQty); - template.addVar("total_rolls", rolls.setScale(0, RoundingMode.HALF_UP)); // 下面是可选的或者手动维护的 // RFID需要的 if (notifyHeader.getBuNo().equals("01-Label") || notifyHeader.getBuNo().equals("03-RFID")) { diff --git a/src/main/resources/mapper/ecss/EcssCommonMapper.xml b/src/main/resources/mapper/ecss/EcssCommonMapper.xml index 24c91a72..df8204bb 100644 --- a/src/main/resources/mapper/ecss/EcssCommonMapper.xml +++ b/src/main/resources/mapper/ecss/EcssCommonMapper.xml @@ -137,7 +137,7 @@ CASE WHEN a.modifyFlag = 1 THEN '是' ELSE '否' END AS modifyFlag from ecss_CoDelNotifydetail a left join part b on a.site=b.site and a.part_no=b.part_no - left join ecss_hsCode h on b.hsCode=h.HsCode and a.site=h.site and b.hsCodeDesc=h.hsCodeDesc + left join ecss_hsCode h on b.hsCode=h.HsCode and a.site=h.site and b.hsCodeDesc=h.hsCodeDesc and h.brand=b.brand And a.site = #{site} AND a.delNo = #{delNo} diff --git a/src/main/resources/templates/YB/declaration-invoice2-template.xlsx b/src/main/resources/templates/YB/declaration-invoice2-template.xlsx index c15dfb129113e65d3c454fd05ac2e0485d31c6ff..e6dd76b9b452c30f1a97cc540dbb8b055a2f064d 100644 GIT binary patch delta 12170 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