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 a1844d6a..4db2f2ec 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 @@ -1629,6 +1629,9 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { // 获取box的volume BigDecimal volume = list.get(m).get("volume") != null ? ((BigDecimal) list.get(m).get("volume")).setScale(6, RoundingMode.HALF_UP) : BigDecimal.ZERO; + // 箱数统一取箱表 ecss_CoDelBoxList.box_qty + BigDecimal boxQty = list.get(m).get("box_qty") != null ? + new BigDecimal(list.get(m).get("box_qty").toString()) : BigDecimal.ZERO; for (int i = 0; i < checkList.size(); i++) { Map eorder = checkList.get(i); BigDecimal qty = ((BigDecimal)eorder.get("qty")).setScale(6, RoundingMode.HALF_UP); @@ -1638,7 +1641,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { boolean isFirstRow = (i == 0); // 第一列箱号(seq_no)在合箱时只在首行显示,配合纵向合并后居中 eorder.put("seq_no", isFirstRow ? eorder.get("seq_no") : ""); - eorder.put("noCartons",((BigDecimal)eorder.get("box_qty")).setScale(0, RoundingMode.HALF_UP)); + // 箱数:合箱时仅首行显示,后续行留空并执行纵向合并 + eorder.put("noCartons", isFirstRow ? boxQty.setScale(0, RoundingMode.HALF_UP) : ""); eorder.put("qty_percarton", ((BigDecimal)eorder.get("rolls")).setScale(0, RoundingMode.HALF_UP)); // 托盘数:一个托盘对应多个箱,仅在该托盘第一条明细显示,其他行留空,后续按托盘合并 boolean showPalletQty = StringUtils.isNotEmpty(palletSeqNo) && !displayedPalletSeqSet.contains(palletSeqNo); @@ -1649,7 +1653,7 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { eorder.put("total_pallets", showPalletQty ? (palletQty != null ? palletQty : 1) : ""); eorder.put("volume", isFirstRow ? volume : ""); 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)); + eorder.put("net_weight",isFirstRow ? ((BigDecimal) list.get(m).get("net_weight")).setScale(2, RoundingMode.HALF_UP) : ""); // 构建artNo内容 String artNoContent = eorder.get("pn")+" " + eorder.get("part_description") + "\n" @@ -1670,6 +1674,12 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { // 无论是否合箱都统一设置居中样式;合箱时会自动执行纵向合并 // 箱号列(第1列,索引0) template.addMergeRegion(boxStartIndex, boxEndIndex, 0); + // 箱数列(第5列,索引4)按箱明细范围合并 + template.addMergeRegion(boxStartIndex, boxEndIndex, 4); + // 体积 按箱明细范围合并 + template.addMergeRegion(boxStartIndex, boxEndIndex, 8); + // 净重 按箱明细范围合并 + template.addMergeRegion(boxStartIndex, boxEndIndex, 9); } // 托盘数列按托盘(seq_no)跨箱合并:一个托盘下多个箱共享同一托盘数 String nextPalletSeqNo = ""; diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml index 959151b2..14b70568 100644 --- a/src/main/resources/mapper/ecss/CoDelMapper.xml +++ b/src/main/resources/mapper/ecss/CoDelMapper.xml @@ -223,9 +223,7 @@