|
|
|
@ -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,173 +613,173 @@ 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); |
|
|
|
} |
|
|
|
// 如果是沃尔玛订单,按照pn分组,同一个pn是一个EcssCoDelPalletHeaderData, |
|
|
|
// 如果是非沃尔玛订单,按照序号分组,同一个序号是一个EcssCoDelPalletHeaderData, |
|
|
|
Map<Integer, List<EcssCoDelPalletData>> palletListMap = new HashMap<>(); |
|
|
|
Map<Integer, List<EcssCoDelPalletData>> palletListMap2 = new HashMap<>(); |
|
|
|
if (inData.getWalMartOrderFlag()!=null && inData.getWalMartOrderFlag().equals("Y")) { |
|
|
|
for (EcssCoDelPalletData itemData : excelList){ |
|
|
|
if (palletListMap.containsKey(itemData.getSeqNo())) { |
|
|
|
palletListMap.get(itemData.getSeqNo()).add(itemData); |
|
|
|
} else { |
|
|
|
List<EcssCoDelPalletData> palletDataList = new ArrayList<>(); |
|
|
|
palletDataList.add(itemData); |
|
|
|
palletListMap.put(itemData.getSeqNo(),palletDataList); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
throw new RuntimeException("导入失败:" + e.getMessage()); |
|
|
|
} |
|
|
|
// 如果是沃尔玛订单,按照pn分组,同一个pn是一个EcssCoDelPalletHeaderData, |
|
|
|
// 如果是非沃尔玛订单,按照序号分组,同一个序号是一个EcssCoDelPalletHeaderData, |
|
|
|
Map<Integer, List<EcssCoDelPalletData>> palletListMap = new HashMap<>(); |
|
|
|
Map<Integer, List<EcssCoDelPalletData>> palletListMap2 = new HashMap<>(); |
|
|
|
if (inData.getWalMartOrderFlag()!=null && inData.getWalMartOrderFlag().equals("Y")) { |
|
|
|
for (EcssCoDelPalletData itemData : excelList){ |
|
|
|
if (palletListMap.containsKey(itemData.getSeqNo())) { |
|
|
|
palletListMap.get(itemData.getSeqNo()).add(itemData); |
|
|
|
} else { |
|
|
|
List<EcssCoDelPalletData> palletDataList = new ArrayList<>(); |
|
|
|
palletDataList.add(itemData); |
|
|
|
palletListMap.put(itemData.getSeqNo(),palletDataList); |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (excelList.get(0).getPalletQty() == 0 || excelList.get(0).getPalletQty() == null) { |
|
|
|
throw new RuntimeException("导入失败:第一行的托数不能为0!"); |
|
|
|
} |
|
|
|
for (EcssCoDelPalletData itemData : excelList){ |
|
|
|
if (palletListMap2.containsKey(itemData.getSeqNo())) { |
|
|
|
palletListMap2.get(itemData.getSeqNo()).add(itemData); |
|
|
|
} else { |
|
|
|
List<EcssCoDelPalletData> palletDataList = new ArrayList<>(); |
|
|
|
palletDataList.add(itemData); |
|
|
|
palletListMap2.put(itemData.getSeqNo(),palletDataList); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
if (excelList.get(0).getPalletQty() == null || excelList.get(0).getPalletQty() == 0) { |
|
|
|
throw new RuntimeException("导入失败:第一行的托数不能为0!"); |
|
|
|
} |
|
|
|
// 关务物料属性 |
|
|
|
List<PartSubPropertiesValueData> propertiesValues = coDelMapper.getPropertiesListByTypeAndCodeNo( |
|
|
|
inData.getSite(), "ECSSPART","BG001",inData.getBuNo()); |
|
|
|
EcssWalMartOrder task = new EcssWalMartOrder(); |
|
|
|
List<EcssCoDelPalletHeaderData> headerList = new ArrayList<>(); |
|
|
|
List<EcssCoDelPalletDetailData> detailList = new ArrayList<>(); |
|
|
|
int seqNo = 0; |
|
|
|
// palletListMap里每一个key生成一个EcssCoDelPalletHeaderData,每一个value生成一组EcssCoDelPalletDetailData |
|
|
|
for (Map.Entry<Integer, List<EcssCoDelPalletData>> entry : palletListMap.entrySet()) { |
|
|
|
seqNo++; |
|
|
|
EcssCoDelPalletHeaderData headerData = new EcssCoDelPalletHeaderData(); |
|
|
|
headerData.setSite(inData.getSite()); |
|
|
|
headerData.setBuNo(inData.getBuNo()); |
|
|
|
headerData.setDelNo(inData.getDelNo()); |
|
|
|
headerData.setSeqNo(seqNo); |
|
|
|
headerData.setPalletNo(inData.getDelNo() + "-" + String.format("%03d", seqNo)); |
|
|
|
headerData.setPalletQty(entry.getValue().get(0).getPalletQty()); |
|
|
|
headerData.setPalletRemark(entry.getValue().get(0).getPalletRemark()); |
|
|
|
headerData.setLength(entry.getValue().get(0).getLength()); |
|
|
|
headerData.setWidth(entry.getValue().get(0).getWidth()); |
|
|
|
headerData.setHeight(entry.getValue().get(0).getHeight()); |
|
|
|
headerData.setVolume(entry.getValue().get(0).getVolume()); |
|
|
|
headerData.setCreateBy(currentUser.getUsername()); |
|
|
|
int i=0; |
|
|
|
BigDecimal totalGrossWeight = new BigDecimal(0); |
|
|
|
BigDecimal boxQty = new BigDecimal(0); |
|
|
|
for (EcssCoDelPalletData thisData : entry.getValue()) { |
|
|
|
EcssCoDelPalletDetailData detailData = new EcssCoDelPalletDetailData(); |
|
|
|
detailData.setSite(thisData.getSite()); |
|
|
|
detailData.setBuNo(thisData.getBuNo()); |
|
|
|
detailData.setDelNo(thisData.getDelNo()); |
|
|
|
detailData.setSeqNo(seqNo); |
|
|
|
detailData.setItemNo(i + 1); |
|
|
|
i++; |
|
|
|
detailData.setPartNo(thisData.getPartNo()); |
|
|
|
detailData.setPn(thisData.getPn()); |
|
|
|
detailData.setQty(thisData.getQty()); |
|
|
|
task.setSku(detailData.getPn()); |
|
|
|
task.setQty(detailData.getQty()); |
|
|
|
List<EcssWalMartOrder> orderDataList = sqlSession.selectList("ecssMapper" + "." + "searchWalMartOrderList", task); |
|
|
|
totalGrossWeight = totalGrossWeight.add(orderDataList.isEmpty()? new BigDecimal(0):orderDataList.get(0).getGrossWeight()); |
|
|
|
detailData.setPoNo(thisData.getPoNo()); |
|
|
|
if (thisData.getBoxQty()!=null && thisData.getBoxQty().intValue()>0) { |
|
|
|
detailData.setBoxQty(thisData.getBoxQty()); |
|
|
|
} else { |
|
|
|
String partNo = thisData.getPartNo(); |
|
|
|
// 每一个物料加属性对应一个属性,用来下面遍历发货通知单明细时获取具体属性值 |
|
|
|
Map<String, PartSubPropertiesValueData> partNoAndItemNoMap = propertiesValues.stream() |
|
|
|
.collect(Collectors.toMap(o -> o.getPartNo() + "$" + o.getPropertiesItemNo(), o -> o)); |
|
|
|
//PartSubPropertiesValueData propertiesWeight = partNoAndItemNoMap.get(partNo + "$ROLLWEIGHT");//每卷重量 |
|
|
|
PartSubPropertiesValueData propertiesRollQty = partNoAndItemNoMap.get(partNo + "$ROLLQTY");//每卷数量 |
|
|
|
PartSubPropertiesValueData propertiesBoxRolls = partNoAndItemNoMap.get(partNo + "$BOXROLLS");//每箱卷数 |
|
|
|
//PartSubPropertiesValueData propertiesBoxWeight = partNoAndItemNoMap.get(partNo + "$BOXWEIGHT");//箱重量 |
|
|
|
if (propertiesRollQty==null||propertiesBoxRolls==null) { |
|
|
|
throw new RuntimeException("请先维护物料["+detailData.getPn()+"]的每卷数量和每箱卷数!"); |
|
|
|
} |
|
|
|
detailData.setBoxQty(detailData.getQty().divide( |
|
|
|
BigDecimal.valueOf(((double) propertiesRollQty.getNumValue().intValue() * propertiesBoxRolls.getNumValue().intValue())),2, BigDecimal.ROUND_HALF_UP)); |
|
|
|
} |
|
|
|
detailData.setRolls(thisData.getRolls()); |
|
|
|
detailData.setCreateBy(currentUser.getUsername()); |
|
|
|
detailList.add(detailData); |
|
|
|
boxQty = boxQty.add(detailData.getBoxQty()!=null?detailData.getBoxQty():new BigDecimal(0)); |
|
|
|
for (EcssCoDelPalletData itemData : excelList){ |
|
|
|
if (palletListMap2.containsKey(itemData.getSeqNo())) { |
|
|
|
palletListMap2.get(itemData.getSeqNo()).add(itemData); |
|
|
|
} else { |
|
|
|
List<EcssCoDelPalletData> palletDataList = new ArrayList<>(); |
|
|
|
palletDataList.add(itemData); |
|
|
|
palletListMap2.put(itemData.getSeqNo(),palletDataList); |
|
|
|
} |
|
|
|
BigDecimal netWeight = totalGrossWeight.intValue()>0?totalGrossWeight.subtract(boxQty.divide(BigDecimal.valueOf(2),2,RoundingMode.HALF_UP)):new BigDecimal(0); |
|
|
|
headerData.setGrossWeight(totalGrossWeight); |
|
|
|
headerData.setNetWeight(netWeight); |
|
|
|
headerList.add(headerData); |
|
|
|
} |
|
|
|
for (Map.Entry<Integer, List<EcssCoDelPalletData>> entry : palletListMap2.entrySet()) { |
|
|
|
seqNo++; |
|
|
|
EcssCoDelPalletHeaderData headerData = new EcssCoDelPalletHeaderData(); |
|
|
|
headerData.setSite(inData.getSite()); |
|
|
|
headerData.setBuNo(inData.getBuNo()); |
|
|
|
headerData.setDelNo(inData.getDelNo()); |
|
|
|
headerData.setSeqNo(seqNo); |
|
|
|
headerData.setPalletNo(inData.getDelNo() + "-" + String.format("%03d", seqNo)); |
|
|
|
headerData.setPalletQty(entry.getValue().get(0).getPalletQty()); |
|
|
|
headerData.setPalletRemark(entry.getValue().get(0).getPalletRemark()); |
|
|
|
headerData.setLength(entry.getValue().get(0).getLength()); |
|
|
|
headerData.setWidth(entry.getValue().get(0).getWidth()); |
|
|
|
headerData.setHeight(entry.getValue().get(0).getHeight()); |
|
|
|
headerData.setVolume(entry.getValue().get(0).getVolume()); |
|
|
|
headerData.setGrossWeight(entry.getValue().get(0).getGrossWeight()); |
|
|
|
headerData.setNetWeight(entry.getValue().get(0).getNetWeight()); |
|
|
|
headerData.setCreateBy(currentUser.getUsername()); |
|
|
|
headerList.add(headerData); |
|
|
|
int i=0; |
|
|
|
for (EcssCoDelPalletData thisData : entry.getValue()) { |
|
|
|
EcssCoDelPalletDetailData detailData = new EcssCoDelPalletDetailData(); |
|
|
|
detailData.setSite(thisData.getSite()); |
|
|
|
detailData.setBuNo(thisData.getBuNo()); |
|
|
|
detailData.setDelNo(thisData.getDelNo()); |
|
|
|
detailData.setSeqNo(seqNo); |
|
|
|
detailData.setItemNo(i + 1); |
|
|
|
i++; |
|
|
|
detailData.setPartNo(thisData.getPartNo()); |
|
|
|
detailData.setPn(thisData.getPn()); |
|
|
|
detailData.setQty(thisData.getQty()); |
|
|
|
detailData.setPoNo(thisData.getPoNo()); |
|
|
|
} |
|
|
|
// 关务物料属性 |
|
|
|
List<PartSubPropertiesValueData> propertiesValues = coDelMapper.getPropertiesListByTypeAndCodeNo( |
|
|
|
inData.getSite(), "ECSSPART","BG001",inData.getBuNo()); |
|
|
|
EcssWalMartOrder task = new EcssWalMartOrder(); |
|
|
|
List<EcssCoDelPalletHeaderData> headerList = new ArrayList<>(); |
|
|
|
List<EcssCoDelPalletDetailData> detailList = new ArrayList<>(); |
|
|
|
int seqNo = 0; |
|
|
|
// palletListMap里每一个key生成一个EcssCoDelPalletHeaderData,每一个value生成一组EcssCoDelPalletDetailData |
|
|
|
for (Map.Entry<Integer, List<EcssCoDelPalletData>> entry : palletListMap.entrySet()) { |
|
|
|
seqNo++; |
|
|
|
EcssCoDelPalletHeaderData headerData = new EcssCoDelPalletHeaderData(); |
|
|
|
headerData.setSite(inData.getSite()); |
|
|
|
headerData.setBuNo(inData.getBuNo()); |
|
|
|
headerData.setDelNo(inData.getDelNo()); |
|
|
|
headerData.setSeqNo(seqNo); |
|
|
|
headerData.setPalletNo(inData.getDelNo() + "-" + String.format("%03d", seqNo)); |
|
|
|
headerData.setPalletQty(entry.getValue().get(0).getPalletQty()); |
|
|
|
headerData.setPalletRemark(entry.getValue().get(0).getPalletRemark()); |
|
|
|
headerData.setLength(entry.getValue().get(0).getLength()); |
|
|
|
headerData.setWidth(entry.getValue().get(0).getWidth()); |
|
|
|
headerData.setHeight(entry.getValue().get(0).getHeight()); |
|
|
|
headerData.setVolume(entry.getValue().get(0).getVolume()); |
|
|
|
headerData.setCreateBy(currentUser.getUsername()); |
|
|
|
int i=0; |
|
|
|
BigDecimal totalGrossWeight = new BigDecimal(0); |
|
|
|
BigDecimal boxQty = new BigDecimal(0); |
|
|
|
for (EcssCoDelPalletData thisData : entry.getValue()) { |
|
|
|
EcssCoDelPalletDetailData detailData = new EcssCoDelPalletDetailData(); |
|
|
|
detailData.setSite(thisData.getSite()); |
|
|
|
detailData.setBuNo(thisData.getBuNo()); |
|
|
|
detailData.setDelNo(thisData.getDelNo()); |
|
|
|
detailData.setSeqNo(seqNo); |
|
|
|
detailData.setItemNo(i + 1); |
|
|
|
i++; |
|
|
|
detailData.setPartNo(thisData.getPartNo()); |
|
|
|
detailData.setPn(thisData.getPn()); |
|
|
|
detailData.setQty(thisData.getQty()); |
|
|
|
task.setSku(detailData.getPn()); |
|
|
|
task.setQty(detailData.getQty()); |
|
|
|
List<EcssWalMartOrder> orderDataList = sqlSession.selectList("ecssMapper" + "." + "searchWalMartOrderList", task); |
|
|
|
totalGrossWeight = totalGrossWeight.add(orderDataList.isEmpty()? new BigDecimal(0):orderDataList.get(0).getGrossWeight()); |
|
|
|
detailData.setPoNo(thisData.getPoNo()); |
|
|
|
if (thisData.getBoxQty()!=null && thisData.getBoxQty().intValue()>0) { |
|
|
|
detailData.setBoxQty(thisData.getBoxQty()); |
|
|
|
detailData.setRolls(thisData.getRolls()); |
|
|
|
detailData.setCreateBy(currentUser.getUsername()); |
|
|
|
detailList.add(detailData); |
|
|
|
} else { |
|
|
|
String partNo = thisData.getPartNo(); |
|
|
|
// 每一个物料加属性对应一个属性,用来下面遍历发货通知单明细时获取具体属性值 |
|
|
|
Map<String, PartSubPropertiesValueData> partNoAndItemNoMap = propertiesValues.stream() |
|
|
|
.collect(Collectors.toMap(o -> o.getPartNo() + "$" + o.getPropertiesItemNo(), o -> o)); |
|
|
|
//PartSubPropertiesValueData propertiesWeight = partNoAndItemNoMap.get(partNo + "$ROLLWEIGHT");//每卷重量 |
|
|
|
PartSubPropertiesValueData propertiesRollQty = partNoAndItemNoMap.get(partNo + "$ROLLQTY");//每卷数量 |
|
|
|
PartSubPropertiesValueData propertiesBoxRolls = partNoAndItemNoMap.get(partNo + "$BOXROLLS");//每箱卷数 |
|
|
|
//PartSubPropertiesValueData propertiesBoxWeight = partNoAndItemNoMap.get(partNo + "$BOXWEIGHT");//箱重量 |
|
|
|
if (propertiesRollQty==null||propertiesBoxRolls==null) { |
|
|
|
throw new RuntimeException("请先维护物料["+detailData.getPn()+"]的每卷数量和每箱卷数!"); |
|
|
|
} |
|
|
|
detailData.setBoxQty(detailData.getQty().divide( |
|
|
|
BigDecimal.valueOf(((double) propertiesRollQty.getNumValue().intValue() * propertiesBoxRolls.getNumValue().intValue())),2, BigDecimal.ROUND_HALF_UP)); |
|
|
|
} |
|
|
|
detailData.setRolls(thisData.getRolls()); |
|
|
|
detailData.setCreateBy(currentUser.getUsername()); |
|
|
|
detailList.add(detailData); |
|
|
|
boxQty = boxQty.add(detailData.getBoxQty()!=null?detailData.getBoxQty():new BigDecimal(0)); |
|
|
|
} |
|
|
|
for (int i = 0; i < headerList.size(); i++) { |
|
|
|
coDelMapper.saveCodelPalletHeader(headerList.get(i)); |
|
|
|
BigDecimal netWeight = totalGrossWeight.intValue()>0?totalGrossWeight.subtract(boxQty.divide(BigDecimal.valueOf(2),2,RoundingMode.HALF_UP)):new BigDecimal(0); |
|
|
|
headerData.setGrossWeight(totalGrossWeight); |
|
|
|
headerData.setNetWeight(netWeight); |
|
|
|
headerList.add(headerData); |
|
|
|
} |
|
|
|
for (Map.Entry<Integer, List<EcssCoDelPalletData>> entry : palletListMap2.entrySet()) { |
|
|
|
seqNo++; |
|
|
|
EcssCoDelPalletHeaderData headerData = new EcssCoDelPalletHeaderData(); |
|
|
|
headerData.setSite(inData.getSite()); |
|
|
|
headerData.setBuNo(inData.getBuNo()); |
|
|
|
headerData.setDelNo(inData.getDelNo()); |
|
|
|
headerData.setSeqNo(seqNo); |
|
|
|
headerData.setPalletNo(inData.getDelNo() + "-" + String.format("%03d", seqNo)); |
|
|
|
headerData.setPalletQty(entry.getValue().get(0).getPalletQty()); |
|
|
|
headerData.setPalletRemark(entry.getValue().get(0).getPalletRemark()); |
|
|
|
headerData.setLength(entry.getValue().get(0).getLength()); |
|
|
|
headerData.setWidth(entry.getValue().get(0).getWidth()); |
|
|
|
headerData.setHeight(entry.getValue().get(0).getHeight()); |
|
|
|
headerData.setVolume(entry.getValue().get(0).getVolume()); |
|
|
|
headerData.setGrossWeight(entry.getValue().get(0).getGrossWeight()); |
|
|
|
headerData.setNetWeight(entry.getValue().get(0).getNetWeight()); |
|
|
|
headerData.setCreateBy(currentUser.getUsername()); |
|
|
|
headerList.add(headerData); |
|
|
|
int i=0; |
|
|
|
for (EcssCoDelPalletData thisData : entry.getValue()) { |
|
|
|
EcssCoDelPalletDetailData detailData = new EcssCoDelPalletDetailData(); |
|
|
|
detailData.setSite(thisData.getSite()); |
|
|
|
detailData.setBuNo(thisData.getBuNo()); |
|
|
|
detailData.setDelNo(thisData.getDelNo()); |
|
|
|
detailData.setSeqNo(seqNo); |
|
|
|
detailData.setItemNo(i + 1); |
|
|
|
i++; |
|
|
|
detailData.setPartNo(thisData.getPartNo()); |
|
|
|
detailData.setPn(thisData.getPn()); |
|
|
|
detailData.setQty(thisData.getQty()); |
|
|
|
detailData.setPoNo(thisData.getPoNo()); |
|
|
|
detailData.setBoxQty(thisData.getBoxQty()); |
|
|
|
detailData.setRolls(thisData.getRolls()); |
|
|
|
detailData.setCreateBy(currentUser.getUsername()); |
|
|
|
detailList.add(detailData); |
|
|
|
} |
|
|
|
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()); |
|
|
|
} else { |
|
|
|
palletDetailMap.put(detailList.get(i).getPn(), palletDetailMap.get(detailList.get(i).getPn()).add(detailList.get(i).getQty())); |
|
|
|
} |
|
|
|
} |
|
|
|
for (EcssCoDelPalletHeaderData ecssCoDelPalletHeaderData : headerList) { |
|
|
|
coDelMapper.saveCodelPalletHeader(ecssCoDelPalletHeaderData); |
|
|
|
} |
|
|
|
Map<String, BigDecimal> palletDetailMap = new HashMap<>(); |
|
|
|
for (EcssCoDelPalletDetailData ecssCoDelPalletDetailData : detailList) { |
|
|
|
coDelMapper.saveCodelPalletDetail(ecssCoDelPalletDetailData); |
|
|
|
if (!palletDetailMap.containsKey(ecssCoDelPalletDetailData.getPn())) { |
|
|
|
palletDetailMap.put(ecssCoDelPalletDetailData.getPn(), ecssCoDelPalletDetailData.getQty()); |
|
|
|
} else { |
|
|
|
palletDetailMap.put(ecssCoDelPalletDetailData.getPn(), palletDetailMap.get(ecssCoDelPalletDetailData.getPn()).add(ecssCoDelPalletDetailData.getQty())); |
|
|
|
} |
|
|
|
List<EcssCoDelNotifyDetailData> ecssCoDelNotifyDetail = coDelMapper.searchEcssCoDelNotifyDetail(inData); |
|
|
|
Map<String, BigDecimal> notifyDetailMap = new HashMap<>(); |
|
|
|
for (EcssCoDelNotifyDetailData detailData : ecssCoDelNotifyDetail) { |
|
|
|
if (!notifyDetailMap.containsKey(detailData.getPn())) { |
|
|
|
notifyDetailMap.put(detailData.getPn(), detailData.getQty()); |
|
|
|
} else { |
|
|
|
notifyDetailMap.put(detailData.getPn(), notifyDetailMap.get(detailData.getPn()).add(detailData.getQty())); |
|
|
|
} |
|
|
|
} |
|
|
|
List<EcssCoDelNotifyDetailData> ecssCoDelNotifyDetail = coDelMapper.searchEcssCoDelNotifyDetail(inData); |
|
|
|
Map<String, BigDecimal> notifyDetailMap = new HashMap<>(); |
|
|
|
for (EcssCoDelNotifyDetailData detailData : ecssCoDelNotifyDetail) { |
|
|
|
if (!notifyDetailMap.containsKey(detailData.getPn())) { |
|
|
|
notifyDetailMap.put(detailData.getPn(), detailData.getQty()); |
|
|
|
} else { |
|
|
|
notifyDetailMap.put(detailData.getPn(), notifyDetailMap.get(detailData.getPn()).add(detailData.getQty())); |
|
|
|
} |
|
|
|
for (Map.Entry<String, BigDecimal> entry : palletDetailMap.entrySet()) { |
|
|
|
if (notifyDetailMap.get(entry.getKey()).compareTo(entry.getValue())!=0) { |
|
|
|
throw new RuntimeException("物料["+entry.getKey()+"]的数量和发货通知单数量不一致!"); |
|
|
|
} |
|
|
|
} |
|
|
|
for (Map.Entry<String, BigDecimal> entry : palletDetailMap.entrySet()) { |
|
|
|
if (notifyDetailMap.get(entry.getKey()).compareTo(entry.getValue())!=0) { |
|
|
|
throw new RuntimeException("物料["+entry.getKey()+"]的数量和发货通知单数量不一致!"); |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
throw new RuntimeException("导入失败:" + e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|