diff --git a/src/main/java/com/xujie/sys/common/utils/ExcelTemplate.java b/src/main/java/com/xujie/sys/common/utils/ExcelTemplate.java index 7aa73bb5..24260eab 100644 --- a/src/main/java/com/xujie/sys/common/utils/ExcelTemplate.java +++ b/src/main/java/com/xujie/sys/common/utils/ExcelTemplate.java @@ -37,6 +37,9 @@ public class ExcelTemplate { // 价格靠右 发票 @Setter private boolean priceRight = false; + // 价格靠右 发票 + @Setter + private boolean invoiceLie = false; // 数字靠右 箱单 @Setter private boolean intRight = false; @@ -308,7 +311,7 @@ public class ExcelTemplate { style2.setWrapText(true); c2.setCellStyle(style2); if (priceRight) { //仅供发票excel使用,第6、7、8是价格列居右 - for (int i = 6; i < 11; i++) { + for (int i = 6; i < (invoiceLie?11:9); i++) { XSSFRow row = sheet.getRow(dtlRow); if (row == null) { continue; diff --git a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java index 42884e34..df5b942f 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java +++ b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java @@ -179,6 +179,11 @@ public interface CoDelMapper { List getCoDelPalletDetailGroupByPn(EcssCoDelNotifyHeaderData data); + /** + * 按发货通知单明细item_no分组获取装箱明细(用于Invoice显示重量) + */ + List exportCoDelPalletDetailGroupByItemNo(EcssCoDelNotifyHeaderData data); + List exportCoDelBoxList(EcssCoDelNotifyHeaderData data); void updateEcssDeclarationHeader(EcssDeclarationHeaderData data); 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 42b8ccd5..5f04b2ad 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 @@ -2237,7 +2237,7 @@ public class CoDelServiceImpl implements CoDelService { // 设置纸张大小(A4) pageSetup.setPaperSize(PaperSizeType.PAPER_A_4); // 设置缩放比例 - pageSetup.setZoom(90); + pageSetup.setZoom(85); // 设置边距 pageSetup.setLeftMargin(0.5); pageSetup.setRightMargin(0.5); @@ -2430,6 +2430,7 @@ public class CoDelServiceImpl implements CoDelService { template.setRangeStyle(true); template.setPriceRight(true); template.setMoveSeal(true); + template.setInvoiceLie(data.getShowWeight() != null && data.getShowWeight()); template.addVar("remark", stringInput(data.getFpremark())); template.addVar("localShipper", notifyHeader.getCustomerName()); template.addVar("localShipAddress", notifyHeader.getLocalShipAddress()); @@ -2456,9 +2457,9 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("shippingMode", stringInput(notifyHeader.getShippingMode())); Map notifyDetailMap = notifyDetailList.stream().collect( Collectors.toMap(EcssCoDelNotifyDetailData::getPartNo,e->e)); - // 装箱明细 - List palletDetailList = coDelMapper.exportCoDelPalletDetail(notifyHeader); - Map palletMap = palletDetailList.stream().collect(Collectors.toMap( o -> o.get("part_no"), o -> o)); + // 装箱明细 - 按发货通知单明细item_no分组(用于获取每行的重量) + List palletDetailList = coDelMapper.exportCoDelPalletDetailGroupByItemNo(notifyHeader); + Map palletMap = palletDetailList.stream().collect(Collectors.toMap( o -> o.get("item_no"), o -> o)); // 装箱数据 List palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader);// 总托数 int totalPlt = palletHeaderDataList.isEmpty()?0:palletHeaderDataList.get(0).getPalletQty(); @@ -2476,9 +2477,11 @@ public class CoDelServiceImpl implements CoDelService { 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); - Map pm = palletMap.get(partNo); + // 根据item_no获取该明细行对应的装箱重量 + Map pm = itemNo != null ? palletMap.get(itemNo) : null; int totalQty = pm!=null && pm.get("total_qty")!=null?Integer.parseInt(pm.get("total_qty").toString()):0; String lossratio = ""; if (nodifyData!=null && nodifyData.getLossratio()!=null && !StringUtils.isBlank(nodifyData.getLossratio())) { diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml index 20303e18..92dd4d43 100644 --- a/src/main/resources/mapper/ecss/CoDelMapper.xml +++ b/src/main/resources/mapper/ecss/CoDelMapper.xml @@ -917,6 +917,46 @@ left join ecss_CoDelNotifyHeader noHeader on a.site=noHeader.site and a.delNo=no GROUP BY pn + + +