diff --git a/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java b/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java index a957e4f4..e2a5a788 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java +++ b/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java @@ -17,4 +17,5 @@ public class EcssCoDelNotifyDetailData extends EcssCoDelNotifyDetail { private String nocartons; private Integer addFlag; private Boolean modifyFlag; + private String hsCodeDesc; } diff --git a/src/main/java/com/xujie/sys/modules/ecss/entity/EcssDeclarationHeaderData.java b/src/main/java/com/xujie/sys/modules/ecss/entity/EcssDeclarationHeaderData.java index 167f9f92..beb2d3a7 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/entity/EcssDeclarationHeaderData.java +++ b/src/main/java/com/xujie/sys/modules/ecss/entity/EcssDeclarationHeaderData.java @@ -59,4 +59,5 @@ public class EcssDeclarationHeaderData extends EcssDeclarationHeader{ private String packageUnit; private String fpremark; private String xdremark; + private String declarationWeight; } 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 38ada9d7..faf1715e 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 @@ -144,6 +144,7 @@ public class CoDelServiceImpl implements CoDelService { headerList.setOverseasShipper(inData.getOverseasShipper()); headerList.setOverseasAddress(inData.getOverseasAddress()); headerList.setCnative(inData.getCnative()); + headerList.setSalesArea(inData.getSalesArea()); headerList.setCmcInvoice(cmcInvoice); headerList.setCreateBy(inData.getUsername()); coDelMapper.saveEcssCoDelNotifyHeader(headerList); @@ -974,15 +975,18 @@ public class CoDelServiceImpl implements CoDelService { throw new RuntimeException("栈板记录数据格式错误: " + e.getMessage()); } } - EcssCoDelPalletHeaderData data = new EcssCoDelPalletHeaderData(); + /* EcssCoDelPalletHeaderData data = new EcssCoDelPalletHeaderData(); data.setDelNo(delNo); data.setSite(site); data.setBuNo(buNo); // 先删除已存在的栈板记录 - coDelMapper.deletePalletHeader(data); + coDelMapper.deletePalletHeader(data);*/ + EcssCoDelNotifyHeaderData notifyHeader = coDelMapper.getEcssCoDelNotifyHeader(site, delNo); + List palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader); // 保存栈板头数据 if (!palletRecordList.isEmpty()) { - int palletSeqNo = 0; + int palletSeqNo = palletHeaderDataList.stream().map(EcssCoDelPalletHeaderData::getSeqNo) + .max(Integer::compareTo).orElse(0); // 获取当前最大的seqNo for (Map palletRecord : palletRecordList) { palletSeqNo++; String palletNo = (String) palletRecord.get("pallet"); @@ -1230,7 +1234,7 @@ public class CoDelServiceImpl implements CoDelService { EcssDeclarationHeaderData defaultData = new EcssDeclarationHeaderData(); defaultData.setSite(inData.getSite()); defaultData.setCustomsOfficeCode("3122240A4S"); - defaultData.setLocalShipper("91310115717861625K"); + defaultData.setLocalShipper("保点贸易(上海)有限公司"); defaultData.setLocalShipAddress(notifyHeaderData.getLocalShipAddress()); defaultData.setOverseasShipper(notifyHeaderData.getOverseasShipper()); defaultData.setOverseasAddress(notifyHeaderData.getOverseasAddress()); @@ -1248,6 +1252,7 @@ public class CoDelServiceImpl implements CoDelService { defaultData.setCreateBy(currentUser.getUsername()); defaultData.setReceiveArea(notifyHeaderData.getCnative()); defaultData.setSalesArea(notifyHeaderData.getSalesArea()); + defaultData.setPackageType("再生木托/纸箱"); List rows = coDelMapper.getDefaultEcssDeclarationDetailData(inData.getSite(), inData.getDelNo(), notifyHeaderData.getCnative()); if (rows.isEmpty()) { @@ -1261,7 +1266,7 @@ public class CoDelServiceImpl implements CoDelService { // 装箱数据 List palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeaderData); List palletDetailList = coDelMapper.exportCoDelPalletDetail(notifyHeaderData); - defaultData.setPackageQty(palletHeaderDataList.get(0).getPalletQty()); + defaultData.setPackageQty(palletHeaderDataList.isEmpty()?0:palletHeaderDataList.get(0).getPalletQty()); defaultData.setBoxQty(palletDetailList.stream().mapToInt(o->Integer.parseInt(o.get("box_qty").toString())).sum()); map.put("row", defaultData); Map dataMap = rows.stream() @@ -1652,6 +1657,13 @@ public class CoDelServiceImpl implements CoDelService { for (int i = 0; i < detailList.size(); i++) { Map eorder = detailList.get(i); eorder.put("row_num", i + 1); + if (data.getDeclarationWeight()!=null && data.getDeclarationWeight().equals("显示")) { + eorder.put("net_weight", eorder.get("net_weight") != null ? eorder.get("net_weight").toString() : ""); + eorder.put("weight_unit", eorder.get("weight_unit") != null ? eorder.get("weight_unit").toString() : ""); + } else { + eorder.put("net_weight", ""); + eorder.put("weight_unit", ""); + } eorder.put("hs_code_desc", data.getHsCodeDescType()!=null&& data.getHsCodeDescType().equals("N")?eorder.get("hsCodeDescEn"):eorder.get("hs_code_desc")); } template.addListVarAll(detailList); @@ -1844,13 +1856,11 @@ public class CoDelServiceImpl implements CoDelService { Map poNoMap = new HashMap<>(); // 装箱数据 List palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader); - if (palletHeaderDataList.isEmpty()) { - throw new RuntimeException("没有装箱数据"); - } // 最高的栈板 - Optional palletHeaderData = palletHeaderDataList.stream().max(Comparator.comparing(EcssCoDelPalletHeaderData::getHeight)); + Optional palletHeaderData = palletHeaderDataList.isEmpty()? Optional.empty() + :palletHeaderDataList.stream().max(Comparator.comparing(EcssCoDelPalletHeaderData::getHeight)); // 总托数 - Integer totalPlt = palletHeaderDataList.get(0).getPalletQty(); + Integer totalPlt = palletHeaderDataList.isEmpty()?0:palletHeaderDataList.get(0).getPalletQty(); // 发货通知单明细 List detailList = coDelMapper.exportEcssCoDelNotifyDetail(data); // 获取poNo @@ -1865,6 +1875,7 @@ public class CoDelServiceImpl implements CoDelService { BigDecimal totalCartons = BigDecimal.valueOf(0.0); BigDecimal grossWeight = BigDecimal.valueOf(0.0); BigDecimal netWeight = BigDecimal.valueOf(0.0); + BigDecimal rolls = BigDecimal.valueOf(0.0); int totalQty = 0; List exportList = new ArrayList<>();//全部需要导出的明细 EcssCoDelPalletHeaderData boxData = new EcssCoDelPalletHeaderData(); @@ -1894,6 +1905,7 @@ public class CoDelServiceImpl implements CoDelService { eorder.put("gross_weight", isMiddleRow ? ((BigDecimal) list.get(m).get("gross_weight")).setScale(2, RoundingMode.HALF_UP) : ""); eorder.put("net_weight", isMiddleRow ? ((BigDecimal) list.get(m).get("gross_weight")).setScale(2, RoundingMode.HALF_UP) : ""); eorder.put("rolls", ((BigDecimal)eorder.get("rolls")).setScale(0, RoundingMode.HALF_UP)); + rolls = rolls.add(eorder.get("rolls") !=null?new BigDecimal(eorder.get("rolls").toString()):BigDecimal.valueOf(0.0)); EcssCoDelNotifyDetailData nodifyData = notifyDetailMap.get(partNo); // 只有RFID需要 String lossratio=""; @@ -1932,6 +1944,7 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("total_netweight", (netWeight.add(palletWeight)).setScale(2, RoundingMode.HALF_UP)); template.addVar("total_box", totalCartons.setScale(0, RoundingMode.HALF_UP)); template.addVar("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")) { @@ -1947,7 +1960,7 @@ public class CoDelServiceImpl implements CoDelService { 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.map(ecssCoDelPalletHeaderData -> + 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("")); @@ -1966,7 +1979,7 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("sellerLabel", "Name of seller Checkpoint Commercial (Shanghai) Co.. Ltd."); } template.addVar("Shipping_Mark", stringInput(data.getShippingMark())); - template.addVar("Measurement", palletHeaderData.get().getLength(). + template.addVar("Measurement", !palletHeaderData.isPresent()?"":palletHeaderData.get().getLength(). multiply(palletHeaderData.get().getWidth()).multiply(palletHeaderData.get().getHeight()). multiply(BigDecimal.valueOf(totalPlt)).setScale(2, RoundingMode.HALF_UP)); template.addListVarAll(exportList); diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml index f57b3796..946b5adf 100644 --- a/src/main/resources/mapper/ecss/CoDelMapper.xml +++ b/src/main/resources/mapper/ecss/CoDelMapper.xml @@ -118,8 +118,9 @@ select a.site,a.bu_no,a.delNo,a.item_no,a.salesOrder,a.salesOrder_item_no,a.customerPO,a.line,a.version,a.status,a.family, a.part_no,a.part_description,a.qty,a.lt,a.cmc_comment,a.saleType,a.awb_bl,a.shipping_number,a.forwarder_info, a.currency,a.tp,a.ttl_amount,a.sum_price,a.so,a.upc,a.remark,a.erp_delItemNo,a.pn,CONVERT(DECIMAL(20, 0),a.nocartons) as nocartons, - c.num_value as boxrolls,d.num_value as rollqty,w.num_value as boxweight,#{cmcInvoice} as cmcInvoice,a.modifyFlag + c.num_value as boxrolls,d.num_value as rollqty,w.num_value as boxweight,#{cmcInvoice} as cmcInvoice,a.modifyFlag,b.hsCodeDesc from ecss_CoDelNotifydetail a + left join part b on a.site=b.site and a.part_no=b.part_no left join part_sub_properties_value c on a.part_no=c.part_no and c.site=a.site and c.bu_no=a.bu_no and c.record_type='ECSSPART' and c.code_no='BG001' and c.properties_item_no='BOXROLLS' left join part_sub_properties_value d on a.part_no=d.part_no and d.site=a.site and d.bu_no=a.bu_no @@ -166,9 +167,9 @@ insert into ecss_CoDelNotifyHeader(site,bu_no,delNo,ready_date,customer_name,Destination,shipping_mode,erp_flag,notify_status, - remark,createDate,createBy,cmc_invoice,overseasShipper,overseasAddress,cnative,localShipAddress) + remark,createDate,createBy,cmc_invoice,overseasShipper,overseasAddress,cnative,localShipAddress,salesArea) values(#{site},#{buNo},#{delNo},#{readyDate},#{customerName},#{destination},#{shippingMode},'N',#{notifyStatus},#{remark},GetDate(), - #{createBy},#{cmcInvoice},#{overseasShipper},#{overseasAddress},#{cnative},#{localShipAddress}) + #{createBy},#{cmcInvoice},#{overseasShipper},#{overseasAddress},#{cnative},#{localShipAddress}, #{salesArea}) insert into ecss_CoDelNotifyDetail (site,bu_no,delNo,item_no,salesOrder,salesOrder_item_no,customerPO,line,version, @@ -534,10 +535,10 @@ create_by,create_date,update_by,update_date @@ -914,6 +915,12 @@ left join ecss_CoDelNotifyHeader noHeader on a.site=noHeader.site and a.delNo=no AND a.name like '%'+#{query.name}+'%' + + AND a.customName like '%'+#{query.customName}+'%' + + + AND a.shippingMode like '%'+#{query.shippingMode}+'%' + AND a.type = #{query.type} @@ -1042,12 +1049,12 @@ left join ecss_CoDelNotifyHeader noHeader on a.site=noHeader.site and a.delNo=no