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 7fc3e284..44171601 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 @@ -25,6 +25,9 @@ public interface CoDelMapper { List checkEcssCoDelNotifyHeaderByDelNo( @Param("site") String site,@Param("delNo") String delNo); + + List checkEcssDeclarationHeaderByDelNo( @Param("site") String site,@Param("delNo") String delNo); + List searchEcssCoDelNotifyDetail(EcssCoDelNotifyHeaderData data); List getEcssCoDelNotifyDetail(EcssCoDelNotifyDetailData data); diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java index 0c977a41..992c9466 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java @@ -1355,11 +1355,11 @@ public class CoDelServiceImpl implements CoDelService { hasPnDeleted = true; } } - + // 检查是否有PN或Qty的修改 boolean hasPnOrQtyModified = excelList.stream() .anyMatch(item -> item.getModifyQtyFlag() != null && item.getModifyQtyFlag()); - + coDelMapper.batchSaveEcssCoDelNotifyDetail(excelList); headerData.setModifyFlag(true); // 更新头表字段,包括ReadyDate、ShippingMode、Destination @@ -1551,7 +1551,7 @@ public class CoDelServiceImpl implements CoDelService { boolean qtyChanged = !oldDetail.getQty().equals(newDetail.getQty()); boolean currencyChanged = !Objects.equals(oldDetail.getCurrency(), newDetail.getCurrency()); boolean tpChanged = !Objects.equals(oldDetail.getTp(), newDetail.getTp()); - + // 构建变更说明 List changes = new ArrayList<>(); if (pnChanged) changes.add("换料"); @@ -1559,14 +1559,14 @@ public class CoDelServiceImpl implements CoDelService { if (currencyChanged) changes.add("Currency变更"); if (tpChanged) changes.add("TP变更"); String changeDesc = changes.isEmpty() ? "-" : String.join("、", changes); - + // PN列 if (pnChanged) { table.append("").append(oldDetail.getPn()).append(" → ").append(newDetail.getPn()).append(""); } else { table.append("").append(newDetail.getPn()).append(""); } - + // 数量列 table.append("").append(oldDetail.getQty().setScale(0, RoundingMode.HALF_UP)).append(""); if (qtyChanged) { @@ -1574,7 +1574,7 @@ public class CoDelServiceImpl implements CoDelService { } else { table.append("").append(newDetail.getQty().setScale(0, RoundingMode.HALF_UP)).append(""); } - + // Currency列 String oldCurrency = oldDetail.getCurrency() != null ? oldDetail.getCurrency() : "-"; String newCurrency = newDetail.getCurrency() != null ? newDetail.getCurrency() : "-"; @@ -1584,7 +1584,7 @@ public class CoDelServiceImpl implements CoDelService { } else { table.append("").append(newCurrency).append(""); } - + // TP列 String oldTp = oldDetail.getTp() != null ? oldDetail.getTp().setScale(2, RoundingMode.HALF_UP).toString() : "-"; String newTp = newDetail.getTp() != null ? newDetail.getTp().setScale(2, RoundingMode.HALF_UP).toString() : "-"; @@ -1594,7 +1594,7 @@ public class CoDelServiceImpl implements CoDelService { } else { table.append("").append(newTp).append(""); } - + // 变更说明列 if (!changes.isEmpty()) { table.append("").append(changeDesc).append(""); @@ -2255,6 +2255,10 @@ public class CoDelServiceImpl implements CoDelService { } else { notifyHeaderData = getCoDelNotifyHeaderData.get(0); } + List headerData = coDelMapper.checkEcssDeclarationHeaderByDelNo(inData.getSite(), inData.getDelNo()); + if (!headerData.isEmpty()) { + throw new RuntimeException("报关单已经存在,请刷新界面!"); + } //获取重量 EcssCoDelPalletHeader getAllWeight = coDelMapper.getAllWeight(inData.getSite(), inData.getDelNo(),inData.getBuNo()); if (getAllWeight == null) { @@ -2343,6 +2347,10 @@ public class CoDelServiceImpl implements CoDelService { @Override @Transactional public void saveDeclaration(EcssDeclarationHeaderData inData) { + List getCoDelNotifyHeaderData = coDelMapper.checkEcssDeclarationHeaderByDelNo(inData.getSite(), inData.getDelNo()); + if (!getCoDelNotifyHeaderData.isEmpty()) { + throw new RuntimeException("报关单已经存在,请刷新界面!"); + } String transNo; coDelMapper.updateTransNo(inData.getSite(), "BG"); transNo = coDelMapper.getTransNo(inData.getSite(), "BG"); @@ -5237,7 +5245,7 @@ public class CoDelServiceImpl implements CoDelService { /** * 改单导入后处理通知单状态 - * + * *

处理逻辑:

*
    *
  • 如果当前状态是已报关,删除对应的报关单
  • diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml index 80aa7083..ddde1eb4 100644 --- a/src/main/resources/mapper/ecss/CoDelMapper.xml +++ b/src/main/resources/mapper/ecss/CoDelMapper.xml @@ -124,6 +124,13 @@ AND a.delNo = #{delNo} + +