|
|
|
@ -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<EcssCoDelPalletHeaderData> 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<String, Object> 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<EcssDeclarationDetailData> rows = coDelMapper.getDefaultEcssDeclarationDetailData(inData.getSite(), inData.getDelNo(), |
|
|
|
notifyHeaderData.getCnative()); |
|
|
|
if (rows.isEmpty()) { |
|
|
|
@ -1261,7 +1266,7 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
// 装箱数据 |
|
|
|
List<EcssCoDelPalletHeaderData> palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeaderData); |
|
|
|
List<Map> 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<String, EcssDeclarationDetailData> 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<EcssCoDelPalletHeaderData> palletHeaderDataList = coDelMapper.searchEcssCoDelPalletHeaderData(notifyHeader); |
|
|
|
if (palletHeaderDataList.isEmpty()) { |
|
|
|
throw new RuntimeException("没有装箱数据"); |
|
|
|
} |
|
|
|
// 最高的栈板 |
|
|
|
Optional<EcssCoDelPalletHeaderData> palletHeaderData = palletHeaderDataList.stream().max(Comparator.comparing(EcssCoDelPalletHeaderData::getHeight)); |
|
|
|
Optional<EcssCoDelPalletHeaderData> 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<Map> 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<Map> 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); |
|
|
|
|