From 341d309f2bc137b3bfbf6d8ab3f5cfd4b9b9f872 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 25 六月 2026 13:14:11 +0800
Subject: [PATCH] 编辑工序原有的关联设备删除后,点击确认。该工序还是默认回显之前的关联设备

---
 src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 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 92a632b..0b0c6cd 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerServiceImpl.java
@@ -212,6 +212,7 @@
     public int updateCustomer(Customer customer) {
         LoginUser loginUser = SecurityUtils.getLoginUser();
         Long tenantId = loginUser.getTenantId();
+        validateCustomerEditPermission(customer.getId());
         customer.setTenantId(tenantId);
         return customerMapper.updateById(customer);
     }
@@ -341,6 +342,7 @@
     public void recycleCustomer(CustomerDto customerDto) {
         Customer customer = customerMapper.selectById(customerDto.getId());
         if (customer.getType() == 1 && customer.getIsAssigned() == 1) {  // 鍏捣涓斿凡鍒嗛厤
+            validatePublicSeaRecyclePermission(customer.getId());
             customer.setIsAssigned(0);
             customer.setUsageStatus(0L);
             customer.setUsageUser(0L);
@@ -403,6 +405,44 @@
         return this.updateById(customer);
     }
 
+    private void validateCustomerEditPermission(Long customerId) {
+        Customer customer = customerMapper.selectById(customerId);
+        if (customer == null) {
+            throw new RuntimeException("瀹㈡埛妗f涓嶅瓨鍦�");
+        }
+        if (!hasSalesModuleReference(customerId)) {
+            return;
+        }
+        if (Objects.equals(customer.getType(), 0)) {
+            throw new RuntimeException("宸茶閿�鍞ā鍧楀紩鐢ㄧ殑绉佹捣瀹㈡埛涓嶈兘缂栬緫");
+        }
+        if (Objects.equals(customer.getType(), 1) && Objects.equals(customer.getIsAssigned(), 1)) {
+            throw new RuntimeException("宸查鐢ㄥ苟涓旇閿�鍞ā鍧楀紩鐢ㄧ殑鍏捣瀹㈡埛涓嶈兘缂栬緫");
+        }
+    }
+
+    private void validatePublicSeaRecyclePermission(Long customerId) {
+        if (hasSalesModuleReference(customerId)) {
+            throw new RuntimeException("宸查鐢ㄥ苟涓旇閿�鍞ā鍧楀紩鐢ㄧ殑鍏捣瀹㈡埛涓嶈兘鍥炴敹");
+        }
+    }
+
+    private boolean hasSalesModuleReference(Long customerId) {
+        Long salesLedgerCount = salesLedgerMapper.selectCount(new QueryWrapper<SalesLedger>().lambda()
+                .eq(SalesLedger::getCustomerId, customerId));
+        if (salesLedgerCount != null && salesLedgerCount > 0) {
+            return true;
+        }
+        Long salesQuotationCount = salesQuotationMapper.selectCount(new QueryWrapper<SalesQuotation>().lambda()
+                .eq(SalesQuotation::getCustomerId, customerId));
+        if (salesQuotationCount != null && salesQuotationCount > 0) {
+            return true;
+        }
+        Long returnManagementCount = returnManagementMapper.selectCount(new QueryWrapper<ReturnManagement>().lambda()
+                .eq(ReturnManagement::getCustomerId, customerId));
+        return returnManagementCount != null && returnManagementCount > 0;
+    }
+
     @Override
     public IPage<CustomerTransactionsVo> customewTransactions(Page page, String customerName) {
         return customerMapper.customewTransactions(page, customerName);

--
Gitblit v1.9.3