From 3480cf0de2274412e91ee23b4350dbb15fee3089 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Wed, 2 Jul 2025 13:50:29 +0800 Subject: [PATCH] =?UTF-8?q?demand:=20=20=E6=89=B9=E9=87=8F=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=8A=A5=E9=87=8D=E7=B2=BE=E7=A1=AE=E6=8C=87=E5=87=BA?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E4=BF=A1=E6=81=AF=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/emis/service/EmisBaseService.java | 2 +- .../impl/EmisTransPlanRuleServiceImpl.java | 18 ++++++++++++------ .../mapper/EmisTransPlanRuleMapper.xml | 16 +++++++++++++++- 3 files changed, 28 insertions(+), 8 deletions(-) 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 6dee67ca4..5be662983 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 @@ -4666,7 +4666,7 @@ public class EmisBaseService { * @param supplierCode2 第二个供应商代码字符串 * @return 如果包含相同的供应商返回true,否则返回false */ - private boolean compareSupplierCodes(String supplierCode1, String supplierCode2) { + public boolean compareSupplierCodes(String supplierCode1, String supplierCode2) { if (supplierCode1 == null || supplierCode2 == null) { return supplierCode1 == supplierCode2; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java index 8c650f5b9..6106b43f5 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTransPlanRuleServiceImpl.java @@ -461,14 +461,22 @@ public class EmisTransPlanRuleServiceImpl extends EmisBaseService implements IEm List existingRules = checkDuplicateDirectionForUpdate(emisTransPlanRule, emisTransPlanRule.getStartSiteCode(), emisTransPlanRule.getNextSiteCode()); if (existingRules != null && !existingRules.isEmpty()) { - throw new EmisBizError(EmisBizErrorType.EXISTS, "已存在相同的规则配置"); + EmisTransPlanRule rule = existingRules.get(0); + String msg = String.format("已存在相同的规则配置,重复规则信息:线路名称[%s],产品类型[%s],起始网点[%s],下一网点[%s],供应商[%s]", + rule.getLineName(), rule.getProductTypeName(), rule.getStartSiteName(), rule.getNextSiteName(), + rule.getSupplierName()); + throw new EmisBizError(EmisBizErrorType.EXISTS, msg); } // 检查反向规则(下一网点到起始网点) List existingRules1 = checkDuplicateDirectionForUpdate(emisTransPlanRule, emisTransPlanRule.getNextSiteCode(), emisTransPlanRule.getStartSiteCode()); if (existingRules1 != null && !existingRules1.isEmpty()) { - throw new EmisBizError(EmisBizErrorType.EXISTS, "已存在相同的规则配置"); + EmisTransPlanRule rule = existingRules1.get(0); + String msg = String.format("已存在相同的规则配置,重复规则信息:线路名称[%s],产品类型[%s],起始网点[%s],下一网点[%s],供应商[%s]", + rule.getLineName(), rule.getProductTypeName(), rule.getStartSiteName(), rule.getNextSiteName(), + rule.getSupplierName()); + throw new EmisBizError(EmisBizErrorType.EXISTS, msg); } } @@ -506,11 +514,9 @@ public class EmisTransPlanRuleServiceImpl extends EmisBaseService implements IEm for (EmisTransPlanRule existingRule : allRules) { // 检查产品类型是否有交集 boolean productTypeOverlap = hasOverlap(newProductType, existingRule.getProductType()); - // 检查供应商编码是否有交集 - boolean supplierCodeOverlap = hasOverlap(newSupplierCode, existingRule.getSupplierCode()); - // 如果产品类型和供应商编码都有交集,则认为重复 - if (productTypeOverlap && supplierCodeOverlap) { + // 如果产品类型有交集且供应商编码相同,则认为重复 + if (productTypeOverlap && compareSupplierCodes(newSupplierCode, existingRule.getSupplierCode())) { return Arrays.asList(existingRule); } } diff --git a/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml b/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml index 5d3a59b5c..aea7d094d 100644 --- a/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTransPlanRuleMapper.xml @@ -181,8 +181,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"