Browse Source

装箱明细导入全部按序号分组

java8
han\hanst 12 months ago
parent
commit
cffdcc1eff
  1. 29
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

29
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

@ -118,7 +118,7 @@ public class CoDelServiceImpl implements CoDelService {
if (row.getCell(0) == null ) {
throw new RuntimeException("第" + j + "行的Ready Date不能为空!");
}
if (row.getCell(1) == null) {
if (row.getCell(1) == null || StringUtils.isBlank(row.getCell(1).getStringCellValue())) {
throw new RuntimeException("第" + j + "行的Customer Name不能为空!");
}
if (row.getCell(2) == null) {
@ -580,6 +580,9 @@ public class CoDelServiceImpl implements CoDelService {
if ((inData.getWalMartOrderFlag()==null || inData.getWalMartOrderFlag().equals("N")) && row.getCell(0) == null) {
throw new RuntimeException("第" + j + "行的序号不能为空!");
}
if (row.getCell(1) != null && !inData.getCmcInvoice().equals(row.getCell(1).getStringCellValue())) {
throw new RuntimeException("第" + j + "行的发票号与发货通知单的发票号不一致!");
}
if (row.getCell(4) == null) {
throw new RuntimeException("第" + j + "行的PN不能为空!");
}
@ -610,11 +613,14 @@ public class CoDelServiceImpl implements CoDelService {
excelData.setGrossWeight(getNumericCellValueOrDefault(row, 13));
excelData.setNetWeight(getNumericCellValueOrDefault(row, 14));
List<PartData> checkPart = coDelMapper.checkPart(excelData.getSite(), excelData.getPartNo());
if (checkPart.size() == 0) {
if (checkPart.isEmpty()) {
throw new RuntimeException("导入失败:物料:" + excelData.getPartNo() + "在当前工厂不存在!");
}
excelList.add(excelData);
}
} catch (Exception e) {
throw new RuntimeException("导入失败:" + e.getMessage());
}
// 如果是沃尔玛订单按照pn分组同一个pn是一个EcssCoDelPalletHeaderData
// 如果是非沃尔玛订单按照序号分组同一个序号是一个EcssCoDelPalletHeaderData
Map<Integer, List<EcssCoDelPalletData>> palletListMap = new HashMap<>();
@ -630,7 +636,7 @@ public class CoDelServiceImpl implements CoDelService {
}
}
} else {
if (excelList.get(0).getPalletQty() == 0 || excelList.get(0).getPalletQty() == null) {
if (excelList.get(0).getPalletQty() == null || excelList.get(0).getPalletQty() == 0) {
throw new RuntimeException("导入失败:第一行的托数不能为0!");
}
for (EcssCoDelPalletData itemData : excelList){
@ -749,16 +755,16 @@ public class CoDelServiceImpl implements CoDelService {
detailList.add(detailData);
}
}
for (int i = 0; i < headerList.size(); i++) {
coDelMapper.saveCodelPalletHeader(headerList.get(i));
for (EcssCoDelPalletHeaderData ecssCoDelPalletHeaderData : headerList) {
coDelMapper.saveCodelPalletHeader(ecssCoDelPalletHeaderData);
}
Map<String, BigDecimal> palletDetailMap = new HashMap<>();
for (int i = 0; i < detailList.size(); i++) {
coDelMapper.saveCodelPalletDetail(detailList.get(i));
if (!palletDetailMap.containsKey(detailList.get(i).getPn())) {
palletDetailMap.put(detailList.get(i).getPn(), detailList.get(i).getQty());
for (EcssCoDelPalletDetailData ecssCoDelPalletDetailData : detailList) {
coDelMapper.saveCodelPalletDetail(ecssCoDelPalletDetailData);
if (!palletDetailMap.containsKey(ecssCoDelPalletDetailData.getPn())) {
palletDetailMap.put(ecssCoDelPalletDetailData.getPn(), ecssCoDelPalletDetailData.getQty());
} else {
palletDetailMap.put(detailList.get(i).getPn(), palletDetailMap.get(detailList.get(i).getPn()).add(detailList.get(i).getQty()));
palletDetailMap.put(ecssCoDelPalletDetailData.getPn(), palletDetailMap.get(ecssCoDelPalletDetailData.getPn()).add(ecssCoDelPalletDetailData.getQty()));
}
}
List<EcssCoDelNotifyDetailData> ecssCoDelNotifyDetail = coDelMapper.searchEcssCoDelNotifyDetail(inData);
@ -775,9 +781,6 @@ public class CoDelServiceImpl implements CoDelService {
throw new RuntimeException("物料["+entry.getKey()+"]的数量和发货通知单数量不一致!");
}
}
} catch (Exception e) {
throw new RuntimeException("导入失败:" + e.getMessage());
}
}
@Override

Loading…
Cancel
Save