|
|
|
@ -574,7 +574,7 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
if (row.getCell(5) == null) { |
|
|
|
throw new RuntimeException("第" + j + "行的数量不能为空!"); |
|
|
|
} |
|
|
|
|
|
|
|
excelData.setSeqNo(getIntegerCellValue(row, 0)); |
|
|
|
// 为对象赋值 |
|
|
|
excelData.setSite(inData.getSite()); // site |
|
|
|
excelData.setBuNo(inData.getBuNo()); // bu |
|
|
|
@ -603,66 +603,139 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
} |
|
|
|
excelList.add(excelData); |
|
|
|
} |
|
|
|
if (excelList.get(0).getPalletQty() == 0 || excelList.get(0).getPalletQty() == null) { |
|
|
|
throw new RuntimeException("导入失败:第一行的托数不能为0!"); |
|
|
|
// 如果是沃尔玛订单,按照pn分组,同一个pn是一个EcssCoDelPalletHeaderData, |
|
|
|
// 如果是非沃尔玛订单,按照序号分组,同一个序号是一个EcssCoDelPalletHeaderData, |
|
|
|
Map<String, 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.getPn())) { |
|
|
|
palletListMap.get(itemData.getPn()).add(itemData); |
|
|
|
} else { |
|
|
|
List<EcssCoDelPalletData> palletDataList = new ArrayList<>(); |
|
|
|
palletDataList.add(itemData); |
|
|
|
palletListMap.put(itemData.getPn(),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); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 关务物料属性 |
|
|
|
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 firstSeqNo = 0; |
|
|
|
for (int i = 0; i < excelList.size(); i++) { |
|
|
|
EcssCoDelPalletData thisData = excelList.get(i); |
|
|
|
EcssCoDelPalletDetailData detailData = new EcssCoDelPalletDetailData(); |
|
|
|
//excel里面托数有值 那么建新抬头 |
|
|
|
if (thisData.getPalletQty() != null && thisData.getPalletQty() != 0) { |
|
|
|
if (thisData.getLength() == null) { |
|
|
|
throw new RuntimeException(thisData.getPalletQty() + "托那行缺少长"); |
|
|
|
} |
|
|
|
if (thisData.getWidth() == null) { |
|
|
|
throw new RuntimeException(thisData.getPalletQty() + "托那行缺少宽"); |
|
|
|
} |
|
|
|
if (thisData.getHeight() == null) { |
|
|
|
throw new RuntimeException(thisData.getPalletQty() + "托那行缺少高"); |
|
|
|
} |
|
|
|
if (thisData.getVolume() == null) { |
|
|
|
throw new RuntimeException(thisData.getPalletQty() + "托那行缺少体积"); |
|
|
|
} |
|
|
|
if (thisData.getNetWeight() == null) { |
|
|
|
throw new RuntimeException(thisData.getPalletQty() + "托那行缺少净重"); |
|
|
|
} |
|
|
|
if (thisData.getGrossWeight() == null) { |
|
|
|
throw new RuntimeException(thisData.getPalletQty() + "托那行缺少毛重"); |
|
|
|
int seqNo = 0; |
|
|
|
// palletListMap里每一个key生成一个EcssCoDelPalletHeaderData,每一个value生成一组EcssCoDelPalletDetailData |
|
|
|
for (Map.Entry<String, 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 (propertiesWeight==null||propertiesRollQty==null||propertiesBoxRolls==null||propertiesBoxWeight==null) { |
|
|
|
throw new RuntimeException("请先维护物料["+partNo+"]基本信息!"); |
|
|
|
} |
|
|
|
detailData.setBoxQty(detailData.getQty().divide( |
|
|
|
BigDecimal.valueOf(((double) propertiesRollQty.getNumValue().intValue() * propertiesBoxRolls.getNumValue().intValue())),2, BigDecimal.ROUND_HALF_UP)); |
|
|
|
} |
|
|
|
firstSeqNo++; |
|
|
|
EcssCoDelPalletHeaderData headerData = new EcssCoDelPalletHeaderData(); |
|
|
|
headerData.setSite(thisData.getSite()); |
|
|
|
headerData.setBuNo(thisData.getBuNo()); |
|
|
|
headerData.setDelNo(thisData.getDelNo()); |
|
|
|
headerData.setSeqNo(firstSeqNo); |
|
|
|
headerData.setPalletNo(thisData.getDelNo() + "-" + String.format("%03d", firstSeqNo)); |
|
|
|
headerData.setPalletQty(thisData.getPalletQty()); |
|
|
|
headerData.setLength(thisData.getLength()); |
|
|
|
headerData.setWidth(thisData.getWidth()); |
|
|
|
headerData.setHeight(thisData.getHeight()); |
|
|
|
headerData.setVolume(thisData.getVolume()); |
|
|
|
headerData.setNetWeight(thisData.getNetWeight()); |
|
|
|
headerData.setGrossWeight(thisData.getGrossWeight()); |
|
|
|
headerData.setPalletRemark(thisData.getPalletRemark()); |
|
|
|
headerData.setCreateBy(currentUser.getUsername()); |
|
|
|
headerList.add(headerData); |
|
|
|
detailData.setRolls(thisData.getRolls()); |
|
|
|
detailData.setCreateBy(currentUser.getUsername()); |
|
|
|
detailList.add(detailData); |
|
|
|
boxQty = boxQty.add(detailData.getBoxQty()!=null?detailData.getBoxQty():new BigDecimal(0)); |
|
|
|
} |
|
|
|
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); |
|
|
|
} |
|
|
|
detailData.setSite(thisData.getSite()); |
|
|
|
detailData.setBuNo(thisData.getBuNo()); |
|
|
|
detailData.setDelNo(thisData.getDelNo()); |
|
|
|
detailData.setSeqNo(firstSeqNo); |
|
|
|
detailData.setItemNo(i + 1); |
|
|
|
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); |
|
|
|
} |
|
|
|
for (int i = 0; i < headerList.size(); i++) { |
|
|
|
coDelMapper.saveCodelPalletHeader(headerList.get(i)); |
|
|
|
@ -779,10 +852,7 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
palletDetailData.setCreateBy(currentUser.getUsername()); |
|
|
|
palletDetailData.setPn(detailData.getPn()); |
|
|
|
if(inData.getWalMartOrderFlag()!=null && inData.getWalMartOrderFlag().equals("Y")) { |
|
|
|
task.setSku(detailData.getPn()); |
|
|
|
task.setQty(detailData.getQty()); |
|
|
|
List<EcssWalMartOrder> orderDataList = sqlSession.selectList("ecssMapper" + "." + "searchWalMartOrderList", task); |
|
|
|
palletDetailData.setQty(orderDataList.isEmpty()?detailData.getQty():orderDataList.get(0).getQty()); |
|
|
|
palletDetailData.setQty(detailData.getQty()); |
|
|
|
// 数量/每箱EA |
|
|
|
palletDetailData.setBoxQty(BigDecimal.valueOf(Long.parseLong(detailData.getNocartons()))); |
|
|
|
} else { |
|
|
|
@ -1027,6 +1097,15 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
try { |
|
|
|
ExcelTemplate template = ExcelTemplate.load(new ClassPathResource("templates/declaration-elements-template.xlsx").getInputStream()); |
|
|
|
template.addVar("brandType", data.getBrandType()); |
|
|
|
Map<String, String> propertiesMap = new HashMap<>(); |
|
|
|
if (data.getPropertiesList()!=null && !data.getPropertiesList().isEmpty()) { |
|
|
|
for (int i = 0; i < data.getPropertiesList().size(); i++) { |
|
|
|
String key =data.getPropertiesList().get(i).getHsCode()+"&"+data.getPropertiesList().get(i).getHsCodeDesc(); |
|
|
|
if (!propertiesMap.containsKey(key)) { |
|
|
|
propertiesMap.put(key, data.getPropertiesList().get(i).getBrand()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 获取partNo列表 |
|
|
|
List<Map> partNos = coDelMapper.getDeclarationElements(data); |
|
|
|
List<String> partNoList = partNos.stream().map(map -> map.get("partNo").toString()).collect(Collectors.toList()); |
|
|
|
@ -1049,6 +1128,10 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
List<PartSubPropertiesValueData> propertiesList = coDelMapper.getPropertiesListByPartAndCodeNo(inData); |
|
|
|
StringBuilder properties = new StringBuilder(); |
|
|
|
for (int j = 0; j < propertiesList.size(); j++) { |
|
|
|
if (propertiesList.get(j).getItemDesc().equals(data.getBrand()) && propertiesMap.containsKey(key) |
|
|
|
&& !StringUtils.isBlank(propertiesMap.get(key))) { |
|
|
|
propertiesList.get(j).setTextValue(propertiesMap.get(key)); |
|
|
|
} |
|
|
|
if (j == propertiesList.size() - 1) { |
|
|
|
properties.append(propertiesList.get(j).getItemDesc()).append(": ").append(propertiesList.get(j).getTextValue()); |
|
|
|
} else { |
|
|
|
@ -1160,13 +1243,16 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
coDelMapper.updateEcssCoDelNotifyDetail(nData); |
|
|
|
} |
|
|
|
try { |
|
|
|
ExcelTemplate template = ExcelTemplate.load(new ClassPathResource("templates/declaration-invoice-template.xlsx").getInputStream()); |
|
|
|
EcssCoDelNotifyHeaderData notifyHeader = coDelMapper.getEcssCoDelNotifyHeader(data.getSite(), data.getDelNo()); |
|
|
|
ExcelTemplate template = ExcelTemplate.load(new ClassPathResource( |
|
|
|
notifyHeader.getBuNo().equals("04-MHM") || notifyHeader.getBuNo().equals("02-Hardtag")? |
|
|
|
"templates/declaration-invoice2-template.xlsx": |
|
|
|
"templates/declaration-invoice-template.xlsx").getInputStream()); |
|
|
|
template.setMoveShape(true); |
|
|
|
template.setCellStyle(true); |
|
|
|
template.setRangeStyle(true); |
|
|
|
template.setPriceRight(true); |
|
|
|
|
|
|
|
EcssCoDelNotifyHeaderData notifyHeader = coDelMapper.getEcssCoDelNotifyHeader(data.getSite(), data.getDelNo()); |
|
|
|
List<Map> addrs = coDelMapper.getCustomerAdd(notifyHeader.getCustomerName()); |
|
|
|
template.addVar("localShipper", notifyHeader.getCustomerName()); |
|
|
|
template.addVar("localShipAddress", addrs.get(0).get("cDeliverAdd")); |
|
|
|
@ -1594,6 +1680,64 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 导出合同 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void downloadContract(HttpServletResponse response, EcssDeclarationHeaderData data) { |
|
|
|
try { |
|
|
|
ExcelTemplate template = ExcelTemplate.load(new ClassPathResource("templates/declaration-elements-template.xlsx").getInputStream()); |
|
|
|
template.addVar("brandType", data.getBrandType()); |
|
|
|
// 获取partNo列表 |
|
|
|
List<Map> partNos = coDelMapper.getDeclarationElements(data); |
|
|
|
List<String> partNoList = partNos.stream().map(map -> map.get("partNo").toString()).collect(Collectors.toList()); |
|
|
|
// 根据partNo获取hsCode |
|
|
|
List<Map> hsCodes = coDelMapper.getHsCodeByPartNo(data.getSite(), partNoList); |
|
|
|
Map<String, Map> hsCodeMap = new HashMap<>(); |
|
|
|
for (int i = 0; i < hsCodes.size(); i++) { |
|
|
|
Map eorder = hsCodes.get(i); |
|
|
|
String key = eorder.get("hsCode")+"&"+eorder.get("hsCodeDesc"); |
|
|
|
if (hsCodeMap.containsKey(key)) { |
|
|
|
hsCodeMap.get(key).put("sku", hsCodeMap.get(key).get("sku")+"\n "+eorder.get("sku")); |
|
|
|
} else { |
|
|
|
// hscode所有属性 |
|
|
|
PartSubPropertiesValueData inData = new PartSubPropertiesValueData(); |
|
|
|
inData.setSite(data.getSite()); |
|
|
|
inData.setBuNo(eorder.get("BuNo").toString()); |
|
|
|
inData.setCodeNo(eorder.get("codeNo").toString()); |
|
|
|
inData.setPartNo(eorder.get("hsCodeDesc").toString()); |
|
|
|
inData.setRecordType("ECSS"); |
|
|
|
List<PartSubPropertiesValueData> propertiesList = coDelMapper.getPropertiesListByPartAndCodeNo(inData); |
|
|
|
StringBuilder properties = new StringBuilder(); |
|
|
|
for (int j = 0; j < propertiesList.size(); j++) { |
|
|
|
if (j == propertiesList.size() - 1) { |
|
|
|
properties.append(propertiesList.get(j).getItemDesc()).append(": ").append(propertiesList.get(j).getTextValue()); |
|
|
|
} else { |
|
|
|
properties.append(propertiesList.get(j).getItemDesc()).append(": ").append(propertiesList.get(j).getTextValue()).append("\n"); |
|
|
|
} |
|
|
|
} |
|
|
|
eorder.put("properties",properties); |
|
|
|
hsCodeMap.put(key, eorder); |
|
|
|
} |
|
|
|
} |
|
|
|
List<Map> list = new ArrayList<>(hsCodeMap.values()); |
|
|
|
for (int i = 0; i < list.size(); i++) { |
|
|
|
Map fMap = list.get(i); |
|
|
|
fMap.put("content", "HS Code: "+fMap.get("hsCode")+ |
|
|
|
"\n品名: "+(data.getHsCodeDescType()!=null&&data.getHsCodeDescType().equals("N")?fMap.get("hsCodeDescEn"):fMap.get("hsCodeDesc"))+ |
|
|
|
"\n"+fMap.get("properties")+ |
|
|
|
"\n型号: "+fMap.get("sku")); |
|
|
|
} |
|
|
|
template.addListVarAll(list); |
|
|
|
template.render(response.getOutputStream()); |
|
|
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
|
|
|
response.setHeader("Content-Disposition", "attachment; filename=\"合同.xlsx\""); |
|
|
|
response.flushBuffer(); |
|
|
|
} catch (Exception e) { |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 一键装箱 |
|
|
|
*/ |
|
|
|
@ -1769,7 +1913,7 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
|
|
|
|
@Override |
|
|
|
@Transactional |
|
|
|
public void saveWalMartOrderByExcel(MultipartFile file, EcssWalMartOrder inData) { |
|
|
|
public String saveWalMartOrderByExcel(MultipartFile file, EcssWalMartOrder inData) { |
|
|
|
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); |
|
|
|
String site = coDelMapper.getSiteByBu(inData.getBuNo()); |
|
|
|
List<EcssWalMartOrder> excelList = new ArrayList<>(); |
|
|
|
@ -1799,6 +1943,7 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
// 获取行数 |
|
|
|
int rows = sheet.getPhysicalNumberOfRows(); |
|
|
|
// 遍历每一行(从第二行开始) |
|
|
|
StringBuilder sb = new StringBuilder("第"); |
|
|
|
for (int j = 1; j < rows; j++) { |
|
|
|
// 创建对象 |
|
|
|
EcssWalMartOrder task = new EcssWalMartOrder(); |
|
|
|
@ -1815,7 +1960,13 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
task.setQty(getNumericCellValueOrDefault(row, 2)); |
|
|
|
List<EcssWalMartOrder> orderDataList = sqlSession.selectList("ecssMapper" + "." + "searchWalMartOrderList", task); |
|
|
|
if (!orderDataList.isEmpty()) { |
|
|
|
throw new RuntimeException("第" + j + "行的SKU和数量已存在!"); |
|
|
|
if (sb.toString().length()>1) { |
|
|
|
sb.append(",").append(j); |
|
|
|
} else { |
|
|
|
sb.append(j); |
|
|
|
} |
|
|
|
//throw new RuntimeException("第" + j + "行的SKU和数量已存在!"); |
|
|
|
continue; |
|
|
|
} |
|
|
|
task.setRolls(getNumericCellValueOrDefault(row, 3)); |
|
|
|
task.setGrossWeight(getNumericCellValueOrDefault(row, 4)); |
|
|
|
@ -1823,9 +1974,52 @@ public class CoDelServiceImpl implements CoDelService { |
|
|
|
task.setCreateBy(currentUser.getUserDisplay()); |
|
|
|
excelList.add(task); |
|
|
|
} |
|
|
|
coDelMapper.batchSaveWalMartOrder(excelList); |
|
|
|
if (!excelList.isEmpty()) { |
|
|
|
coDelMapper.batchSaveWalMartOrder(excelList); |
|
|
|
} |
|
|
|
if (sb.toString().equals("第")) { |
|
|
|
sb= new StringBuilder(); |
|
|
|
} else { |
|
|
|
sb.append("行的SKU和数量已存在!"); |
|
|
|
} |
|
|
|
return sb.toString(); |
|
|
|
} catch (Exception e) { |
|
|
|
throw new RuntimeException("导入失败:" + e.getMessage()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<Map> getPropertiesListByDeclaration(EcssDeclarationHeaderData data) { |
|
|
|
// 获取partNo列表 |
|
|
|
List<Map> partNos = coDelMapper.getDeclarationElements(data); |
|
|
|
List<String> partNoList = partNos.stream().map(map -> map.get("partNo").toString()).collect(Collectors.toList()); |
|
|
|
// 根据partNo获取hsCode |
|
|
|
List<Map> hsCodes = coDelMapper.getHsCodeByPartNo(data.getSite(), partNoList); |
|
|
|
Map<String, Map> hsCodeMap = new HashMap<>(); |
|
|
|
for (int i = 0; i < hsCodes.size(); i++) { |
|
|
|
Map eorder = hsCodes.get(i); |
|
|
|
String key = eorder.get("hsCode")+"&"+eorder.get("hsCodeDesc"); |
|
|
|
if (hsCodeMap.containsKey(key)) { |
|
|
|
hsCodeMap.get(key).put("sku", hsCodeMap.get(key).get("sku")+"\n "+eorder.get("sku")); |
|
|
|
} else { |
|
|
|
hsCodeMap.put(key, eorder); |
|
|
|
} |
|
|
|
} |
|
|
|
List<Map> list = new ArrayList<>(hsCodeMap.values()); |
|
|
|
PartSubPropertiesValueData inData = new PartSubPropertiesValueData(); |
|
|
|
list.forEach(eorder -> { |
|
|
|
inData.setSite(data.getSite()); |
|
|
|
inData.setBuNo(eorder.get("BuNo").toString()); |
|
|
|
inData.setCodeNo(eorder.get("codeNo").toString()); |
|
|
|
inData.setPartNo(eorder.get("hsCodeDesc").toString()); |
|
|
|
inData.setRecordType("ECSS"); |
|
|
|
List<PartSubPropertiesValueData> result = coDelMapper.getPropertiesListByPartAndCodeNo(inData); |
|
|
|
result = result.stream().filter(item -> item.getItemDesc().equals(data.getBrand())).collect(Collectors.toList()); |
|
|
|
if (!result.isEmpty() && "Y".equals(result.get(0).getValueChooseFlag())) { |
|
|
|
List<PlmPropertiesItemAvailableData> availableList = partInformationMapper.getAvailableValueList(result.get(0)); |
|
|
|
eorder.put("availableList", availableList); |
|
|
|
} |
|
|
|
}); |
|
|
|
return list; |
|
|
|
} |
|
|
|
} |