From b39154d1e708d7f8dd1f2832d881d853d583fe47 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 12 六月 2026 15:18:29 +0800
Subject: [PATCH] ``` fix(customer): 解决客户名称重复问题

---
 src/main/resources/application-dev.yml                              |    2 +-
 src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java |   27 +++++++++++++++++++++++++++
 2 files changed, 28 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
index 92a632b..5bd8dbc 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -16,6 +16,7 @@
 import com.ruoyi.basic.pojo.CustomerUser;
 import com.ruoyi.basic.service.*;
 import com.ruoyi.basic.vo.CustomerVo;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -199,6 +200,8 @@
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long tenantId = loginUser.getTenantId();
         customer.setTenantId(tenantId);
+        // 鏍¢獙瀹㈡埛鍚嶇О鍞竴鎬�
+        checkCustomerNameUnique(customer.getCustomerName(), tenantId, null);
         return customerMapper.insert(customer);
     }
 
@@ -213,10 +216,34 @@
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long tenantId = loginUser.getTenantId();
         customer.setTenantId(tenantId);
+        // 鏍¢獙瀹㈡埛鍚嶇О鍞竴鎬э紙鎺掗櫎鑷韩锛�
+        checkCustomerNameUnique(customer.getCustomerName(), tenantId, customer.getId());
         return customerMapper.updateById(customer);
     }
 
     /**
+     * 鏍¢獙瀹㈡埛鍚嶇О鍞竴鎬�
+     *
+     * @param customerName 瀹㈡埛鍚嶇О
+     * @param tenantId 绉熸埛ID
+     * @param excludeId 鎺掗櫎鐨勫鎴稩D锛堜慨鏀规椂鎺掗櫎鑷韩锛�
+     */
+    private void checkCustomerNameUnique(String customerName, Long tenantId, Long excludeId) {
+        if (StringUtils.isNotEmpty(customerName)) {
+            LambdaQueryWrapper<Customer> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(Customer::getTenantId, tenantId)
+                    .eq(Customer::getCustomerName, customerName);
+            if (excludeId != null) {
+                queryWrapper.ne(Customer::getId, excludeId);
+            }
+            Long count = customerMapper.selectCount(queryWrapper);
+            if (count > 0) {
+                throw new ServiceException("瀹㈡埛鍚嶇О'" + customerName + "'宸插瓨鍦紝璇蜂慨鏀�");
+            }
+        }
+    }
+
+    /**
      * 鎵归噺鍒犻櫎瀹㈡埛妗f
      *
      * @param ids 闇�瑕佸垹闄ょ殑瀹㈡埛妗f涓婚敭
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index f1a5bf9..96c0d25 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -74,7 +74,7 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:mysql://localhost:3306/product-inventory-management-new-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+        url: jdbc:mysql://localhost:3306/product-inventory-management-jghg-pro?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
         username: root
         password: 123456
       # 浠庡簱鏁版嵁婧�

--
Gitblit v1.9.3