From f569e2257372a2f940aace9ad151fd758196eb9a Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 13 六月 2026 14:34:42 +0800
Subject: [PATCH] 修改客户,销售,协同,报价,质量

---
 src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 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 d9bd5da..50f1078 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;
@@ -24,7 +25,9 @@
 import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper;
 import com.ruoyi.procurementrecord.pojo.ReturnManagement;
 import com.ruoyi.sales.mapper.SalesLedgerMapper;
+import com.ruoyi.sales.mapper.SalesQuotationMapper;
 import com.ruoyi.sales.pojo.SalesLedger;
+import com.ruoyi.sales.pojo.SalesQuotation;
 import com.ruoyi.sales.vo.CustomerTransactionsDetailsVo;
 import com.ruoyi.sales.vo.CustomerTransactionsVo;
 import lombok.AllArgsConstructor;
@@ -53,6 +56,8 @@
 public class CustomerServiceImpl extends ServiceImpl<CustomerMapper, Customer> implements ICustomerService {
     @Autowired
     private SalesLedgerMapper salesLedgerMapper;
+    @Autowired
+    private SalesQuotationMapper salesQuotationMapper;
     @Autowired
     private ReturnManagementMapper returnManagementMapper;
     @Autowired
@@ -195,6 +200,8 @@
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long tenantId = loginUser.getTenantId();
         customer.setTenantId(tenantId);
+        // 鏍¢獙瀹㈡埛鍚嶇О鍞竴鎬�
+        checkCustomerNameUnique(customer.getCustomerName(), tenantId, null);
         return customerMapper.insert(customer);
     }
 
@@ -209,7 +216,31 @@
         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 + "'宸插瓨鍦紝璇蜂慨鏀�");
+            }
+        }
     }
 
     /**
@@ -233,6 +264,13 @@
         if (!returnManagements.isEmpty()) {
             throw new RuntimeException("瀹㈡埛妗f涓嬫湁閿�鍞��璐э紝璇峰厛鍒犻櫎閿�鍞��璐�");
         }
+
+        // 妫�鏌ユ槸鍚︽湁閿�鍞姤浠峰叧鑱�
+        List<SalesQuotation> salesQuotations = salesQuotationMapper.selectList(new QueryWrapper<SalesQuotation>().lambda().in(SalesQuotation::getCustomerId, idList));
+        if (!salesQuotations.isEmpty()) {
+            throw new RuntimeException("瀹㈡埛妗f涓嬫湁閿�鍞姤浠凤紝璇峰厛鍒犻櫎閿�鍞姤浠�");
+        }
+
         // 鏌ヨ鏄惁鏈夊凡鍒嗛厤鐨勫叕娴峰鎴�
         List<Customer> assignedPools = customerMapper.selectList(
                 new QueryWrapper<Customer>().lambda()
@@ -393,6 +431,24 @@
     }
 
     @Override
+    public void handoverCustomer(CustomerDto customerDto) {
+        Customer customer = customerMapper.selectById(customerDto.getId());
+        if (customer == null) {
+            throw new ServiceException("瀹㈡埛涓嶅瓨鍦�");
+        }
+        if (customer.getType() != 0) {
+            throw new ServiceException("浠呯娴峰鎴锋敮鎸佷氦鎺�");
+        }
+        if (customerDto.getMaintainer() == null || customerDto.getMaintainer().trim().isEmpty()) {
+            throw new ServiceException("鏂扮淮鎶や汉涓嶈兘涓虹┖");
+        }
+        customer.setMaintainer(customerDto.getMaintainer());
+        customer.setMaintenanceTime(new Date());
+        customer.setCreateUser(customerDto.getMaintainerId());
+        customerMapper.updateById(customer);
+    }
+
+    @Override
     public IPage<CustomerTransactionsVo> customewTransactions(Page page, String customerName) {
         return customerMapper.customewTransactions(page, customerName);
     }

--
Gitblit v1.9.3