diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index a7383d097..b1b057b27 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -4955,6 +4955,20 @@ public class EmisBaseService { List> allPaths = new ArrayList<>(); getAllPaths(rule, new ArrayList<>(), allPaths); + // 检查是否为特殊运输线路类型或清关类型 + boolean isSpecialTransLine = "004".equals(waybill.getTransLineType()) && + ("24401".equals(waybill.getProductType()) || "24402".equals(waybill.getProductType())); + boolean isSpecialCustomsClear = "2".equals(waybill.getCustomsClear()) && "2".equals(waybill.getTransType()); + + if (isSpecialTransLine || isSpecialCustomsClear) { + // 移除每个路径的最后一个元素 + for (List path : allPaths) { + if (!path.isEmpty()) { + path.remove(path.size() - 1); + } + } + } + // 2. 统计每条路径的匹配度 Map, Integer> pathMatchCountMap = new HashMap<>(); for (List path : allPaths) { @@ -5226,6 +5240,9 @@ public class EmisBaseService { public void handleVirtualForUpdate(EmisWaybill emisWaybillSave, EmisWaybill emisWaybillOld) throws EmisBizError { if (!StringUtils.isEmpty(emisWaybillSave.getBlVirtual()) && "1".equals(emisWaybillSave.getBlVirtual())) { + if(emisWaybillSave.getMasterBillCode().equals(emisWaybillOld.getMasterBillCode())){ + return; + } handleVirtual(emisWaybillSave, emisWaybillOld); } else { String masterBillCode = emisWaybillOld.getMasterBillCode(); diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 9f3bf713f..f172f139a 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -3838,9 +3838,9 @@