diff --git a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java index b90bec0e..afeb6c40 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java +++ b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java @@ -58,6 +58,9 @@ public interface CoDelMapper { List getPartInfo(@Param("site") String site, @Param("partNo") String partNo); void updateEcssDelHeader(EcssCoDelNotifyHeaderData data); + + void updateEcssDelHeaderVolume(EcssCoDelNotifyHeader data); + void updateEcssDelHeaderForModify(EcssCoDelNotifyHeaderData data); // 专门更新客户信息 diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java index 351d4982..f3f3c37d 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelExcelTXServiceImpl.java @@ -625,35 +625,6 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { } else { PartData partData = parts.getFirst(); detail.setPartNo(partData.getPartNo()); - /*String hsCode = headerMap.containsKey("HS Code") ? getMergedCellValue(sheet, r, headerMap.get("HS Code")) : ""; - String hsCodeDesc = headerMap.containsKey("申报品名") ? getMergedCellValue(sheet, r, headerMap.get("申报品名")) : ""; - String brand = "无"; - if (headerMap.containsKey("品牌")) { - brand = getMergedCellValue(sheet, r, headerMap.get("品牌")); - } else if (headerMap.containsKey("Brand")) { - brand = getMergedCellValue(sheet, r, headerMap.get("Brand")); - } - - if (StringUtils.isNotBlank(hsCode) || StringUtils.isNotBlank(hsCodeDesc) || StringUtils.isNotBlank(brand)) { - coDelMapper.updatePartHsCode(site, partData.getPartNo(), hsCode, hsCodeDesc, brand); - - if (StringUtils.isNotBlank(hsCodeDesc)) { - EcssHsCodeData hsCodeData = new EcssHsCodeData(); - hsCodeData.setSite(site); - hsCodeData.setBuNo(data.getBuNo()); - hsCodeData.setHsCodeDesc(hsCodeDesc); - hsCodeData.setBrand(brand); - List existHsCodes = coDelMapper.checkHsCodeDescData(hsCodeData); - if (existHsCodes == null || existHsCodes.isEmpty()) { - hsCodeData.setHsCode(hsCode); - hsCodeData.setCreateBy(data.getUsername()); - //hsCodeData.setUnit(partData.getUmid()); - // 根据BU赋值不同的codeNo - hsCodeData.setCodeNo("02-Hardtag".equals(data.getBuNo())?"HT001":"04-MHM".equals(data.getBuNo())?"MHM001":""); - coDelMapper.insertHsCodeData(hsCodeData); - } - } - }*/ } if (headerMap.containsKey("名称")) detail.setPartDescription(getMergedCellValue(sheet, r, headerMap.get("名称"))); if (headerMap.containsKey("Manufacturer Name")) detail.setManufacturerName(getMergedCellValue(sheet, r, headerMap.get("Manufacturer Name"))); @@ -688,29 +659,27 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { // 3. 托盘信息 EcssCoDelPalletHeader String palletQtyStr = headerMap.containsKey("托数") ? getMergedCellValue(sheet, r, headerMap.get("托数")) : null; + BigDecimal volume = BigDecimal.ZERO; + if (headerMap.containsKey("总体积")) { + int volumeCol = headerMap.get("总体积"); + String volumeRegionKey = getMergedRegionKey(sheet, r, volumeCol); + if (volumeRegionKey != null) { + if (handledVolumeMergedRegions.contains(volumeRegionKey)) { + volume = BigDecimal.ZERO; + } else { + volume = parseBigDecimal(getMergedCellValue(sheet, r, volumeCol)); + handledVolumeMergedRegions.add(volumeRegionKey); + } + } else { + volume = parseBigDecimal(getMergedCellValue(sheet, r, volumeCol)); + } + } if (palletQtyStr != null && !palletQtyStr.isEmpty()) { // 判断是否是托盘的第一行 if (isFirstRowOfMergedRegion(sheet, r, headerMap.get("托数")) || !isMerged(sheet, r, headerMap.get("托数"))) { int palletCount = (int) Double.parseDouble(palletQtyStr); String outerSizeStr = headerMap.containsKey("外包尺寸") ? getMergedCellValue(sheet, r, headerMap.get("外包尺寸")) : null; - BigDecimal volume = BigDecimal.ZERO; - if (headerMap.containsKey("总体积")) { - int volumeCol = headerMap.get("总体积"); - String volumeRegionKey = getMergedRegionKey(sheet, r, volumeCol); - if (volumeRegionKey != null) { - if (handledVolumeMergedRegions.contains(volumeRegionKey)) { - volume = BigDecimal.ZERO; - } else { - volume = parseBigDecimal(getMergedCellValue(sheet, r, volumeCol)); - handledVolumeMergedRegions.add(volumeRegionKey); - } - } else { - volume = parseBigDecimal(getMergedCellValue(sheet, r, volumeCol)); - } - } - String palletNo = palletSeqNo + "~" + (palletSeqNo + palletCount - 1); - EcssCoDelPalletHeader palletHeader = new EcssCoDelPalletHeader(); palletHeader.setSite(site); palletHeader.setBuNo(data.getBuNo()); @@ -736,6 +705,9 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { currentPalletSeqNo = palletSeqNo; palletSeqNo += palletCount; } + } else { + header.setTotalVolume(volume); + coDelMapper.updateEcssDelHeaderVolume(header); } // 4. 箱信息 EcssCoDelBoxList @@ -2690,8 +2662,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { } totalVolume = totalVolume.setScale(2, RoundingMode.HALF_UP); } else { - // 栈板不存在时,根据装箱明细的物料计算体积 - totalVolume = calculateVolumeByMaterials(notifyHeader); + // 栈板不存在时,取发货通知单头表的总箱体积字段(ecss_CoDelNotifyHeader.total_volume),如果为空则默认为0 + totalVolume = notifyHeader.getTotalVolume() != null ? notifyHeader.getTotalVolume().setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO; } template.addVar("Measurement", totalVolume); template.addListVarAll(exportList); @@ -2936,8 +2908,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { } totalVolume = totalVolume.setScale(2, RoundingMode.HALF_UP); } else { - // 栈板不存在时,根据装箱明细的物料计算体积 - totalVolume = calculateVolumeByMaterials(notifyHeader); + // 栈板不存在时,取发货通知单头表的总箱体积字段(ecss_CoDelNotifyHeader.total_volume),如果为空则默认为0 + totalVolume = notifyHeader.getTotalVolume() != null ? notifyHeader.getTotalVolume().setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO; } template.addVar("Measurement", totalVolume); template.addListVarAll(exportList); @@ -3187,8 +3159,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { } totalVolume = totalVolume.setScale(2, RoundingMode.HALF_UP); } else { - // 栈板不存在时,根据装箱明细的物料计算体积 - totalVolume = calculateVolumeByMaterials(notifyHeader); + // 栈板不存在时,取发货通知单头表的总箱体积字段(ecss_CoDelNotifyHeader.total_volume),如果为空则默认为0 + totalVolume = notifyHeader.getTotalVolume() != null ? notifyHeader.getTotalVolume().setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO; } template.addVar("Measurement", totalVolume); template.addListVarAll(exportList); @@ -3323,8 +3295,8 @@ public class CoDelExcelTXServiceImpl implements CoDelExcelTXService { } totalVolume = totalVolume.setScale(2, RoundingMode.HALF_UP); } else { - // 栈板不存在时,根据装箱明细的物料计算体积 - totalVolume = calculateVolumeByMaterials(notifyHeader); + // 栈板不存在时,取发货通知单头表的总箱体积字段(ecss_CoDelNotifyHeader.total_volume),如果为空则默认为0 + totalVolume = notifyHeader.getTotalVolume() != null ? notifyHeader.getTotalVolume().setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO; } template.addVar("volume", totalVolume); template.addVar("highest", palletHeaderData.isPresent() ?palletHeaderData.get().getVolume():""); diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml index b18492fe..5290e791 100644 --- a/src/main/resources/mapper/ecss/CoDelMapper.xml +++ b/src/main/resources/mapper/ecss/CoDelMapper.xml @@ -237,6 +237,10 @@ where site=#{site} and delNo=#{delNo} + + update ecss_CoDelNotifyHeader set totalVolume=#{totalVolume,jdbcType=DECIMAL} where site=#{site} and delNo=#{delNo} + + update ecss_CoDelNotifyHeader