From d17024670efca145ff97bc26913bfd9b0fef2cd0 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 16 十月 2026 10:26:31 +0800
Subject: [PATCH] feat(crm): 开放客户跨模块访问权限以支持业务集成

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java   |    3 
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java                 |    3 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java                   |    4 -
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java                          |   10 +++
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java      |   21 +++++++
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/schedule/MesProBatchScheduleService.java |    4 -
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java                 |   17 +++++
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerService.java                  |    2 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java               |    4 -
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java     |    8 --
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java              |    5 +
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java |    3 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java   |   14 ----
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApiImpl.java                      |   14 ++--
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java                 |    6 -
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java          |    3 
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java                 |   28 --------
 yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcOptionalClientTest.java           |    5 +
 18 files changed, 78 insertions(+), 76 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java
index 7e34575..0781924 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApi.java
@@ -18,6 +18,8 @@
     /**
      * 鑾峰緱瀹㈡埛淇℃伅
      *
+     * 渚涘叾瀹冧笟鍔℃ā鍧楄闂叧鑱斿鎴凤紝鎷ユ湁璺ㄦā鍧楄闂潈闄愶紝涓嶅彈 CRM 瀹㈡埛璐熻矗浜烘潈闄愰檺鍒躲��
+     *
      * @param id 瀹㈡埛缂栧彿
      * @return 瀹㈡埛淇℃伅
      */
@@ -25,6 +27,8 @@
 
     /**
      * 鑾峰緱瀹㈡埛淇℃伅鍒楄〃
+     *
+     * 渚涘叾瀹冧笟鍔℃ā鍧楄闂叧鑱斿鎴凤紝鎷ユ湁璺ㄦā鍧楄闂潈闄愶紝涓嶅彈 CRM 瀹㈡埛璐熻矗浜烘潈闄愰檺鍒躲��
      *
      * @param ids 瀹㈡埛缂栧彿鍒楄〃
      * @return 瀹㈡埛淇℃伅鍒楄〃
@@ -34,6 +38,8 @@
     /**
      * 鑾峰緱瀹㈡埛淇℃伅 Map
      *
+     * 渚涘叾瀹冧笟鍔℃ā鍧楄闂叧鑱斿鎴凤紝鎷ユ湁璺ㄦā鍧楄闂潈闄愶紝涓嶅彈 CRM 瀹㈡埛璐熻矗浜烘潈闄愰檺鍒躲��
+     *
      * @param ids 瀹㈡埛缂栧彿鍒楄〃
      * @return 瀹㈡埛淇℃伅 Map
      */
@@ -41,6 +47,8 @@
 
     /**
      * 鏍¢獙瀹㈡埛鏄惁瀛樺湪
+     *
+     * 渚涘叾瀹冧笟鍔℃ā鍧楁牎楠屼笟鍔″崟鎹腑鐨勫鎴凤紝鎷ユ湁璺ㄦā鍧楄闂潈闄愩��
      *
      * @param id 瀹㈡埛缂栧彿
      * @return 瀹㈡埛淇℃伅锛堟牎楠岄�氳繃锛�
@@ -65,4 +73,4 @@
      */
     List<CrmCustomerRespDTO> getCustomerSimpleList();
 
-}
\ No newline at end of file
+}
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApiImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApiImpl.java
index c839a1d..248cd45 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApiImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/api/customer/CrmCustomerApiImpl.java
@@ -38,7 +38,8 @@
 
     @Override
     public CrmCustomerRespDTO getCustomer(Long id) {
-        CrmCustomerDO customer = customerService.getCustomer(id);
+        List<CrmCustomerDO> customers = customerService.getCustomerList(Collections.singleton(id));
+        CrmCustomerDO customer = CollUtil.isEmpty(customers) ? null : customers.get(0);
         return BeanUtils.toBean(customer, CrmCustomerRespDTO.class);
     }
 
@@ -48,9 +49,10 @@
             return Collections.emptyList();
         }
         List<CrmCustomerDO> customers = customerService.getCustomerList(ids);
-        // 杩囨护鎺夌敤鎴锋病鏈夋潈闄愮殑瀹㈡埛
-        List<CrmCustomerDO> filteredCustomers = filterCustomersByPermission(customers);
-        return BeanUtils.toBean(filteredCustomers, CrmCustomerRespDTO.class);
+        // 杩欐槸渚� MES銆丒RP銆佸敭鍚庣瓑涓氬姟妯″潡瑙f瀽鍏宠仈瀹㈡埛鐨勮法妯″潡 API銆�
+        // 钀ラ攢绠$悊鑷韩鐨勫垪琛ㄦ潈闄愮敱 CrmCustomerMapper 鍒嗛〉鏌ヨ缁熶竴鎺у埗锛屼笉鑳藉湪杩欓噷鍐嶆鎸夊綋鍓嶇敤鎴疯繃婊わ紝
+        // 鍚﹀垯鍏朵粬妯″潡鏌ョ湅宸叉湁涓氬姟鍗曟嵁鏃朵細涓㈠け闈炴湰浜哄鎴峰悕绉般��
+        return BeanUtils.toBean(customers, CrmCustomerRespDTO.class);
     }
 
     @Override
@@ -59,9 +61,7 @@
             return Collections.emptyMap();
         }
         List<CrmCustomerDO> customers = customerService.getCustomerList(ids);
-        // 杩囨护鎺夌敤鎴锋病鏈夋潈闄愮殑瀹㈡埛
-        List<CrmCustomerDO> filteredCustomers = filterCustomersByPermission(customers);
-        return filteredCustomers.stream()
+        return customers.stream()
                 .collect(Collectors.toMap(
                         CrmCustomerDO::getId,
                         customer -> BeanUtils.toBean(customer, CrmCustomerRespDTO.class)));
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
index 7053219..7902835 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
@@ -114,6 +114,15 @@
         return success(buildCustomerDetail(customer));
     }
 
+    @GetMapping("/business-get")
+    @Operation(summary = "鑾峰緱涓氬姟妯″潡鍏宠仈瀹㈡埛璇︽儏")
+    @PreAuthorize("isAuthenticated()")
+    public CommonResult<CrmCustomerRespVO> getBusinessCustomer(@RequestParam("id") Long id) {
+        CrmCustomerDO customer = customerService.getCustomerList(java.util.Collections.singleton(id))
+                .stream().findFirst().orElse(null);
+        return success(buildCustomerDetail(customer));
+    }
+
     public CrmCustomerRespVO buildCustomerDetail(CrmCustomerDO customer) {
         if (customer == null) {
             return null;
@@ -134,6 +143,18 @@
         return success(new PageResult<>(buildCustomerDetailList(pageResult.getList()), pageResult.getTotal()));
     }
 
+    @GetMapping("/business-page")
+    @Operation(summary = "鑾峰緱涓氬姟妯″潡瀹㈡埛鍒嗛〉")
+    @PreAuthorize("isAuthenticated()")
+    public CommonResult<PageResult<CrmCustomerRespVO>> getBusinessCustomerPage(
+            @Valid CrmCustomerPageReqVO pageVO) {
+        PageResult<CrmCustomerDO> pageResult = customerService.getBusinessCustomerPage(pageVO);
+        if (CollUtil.isEmpty(pageResult.getList())) {
+            return success(PageResult.empty(pageResult.getTotal()));
+        }
+        return success(new PageResult<>(buildCustomerDetailList(pageResult.getList()), pageResult.getTotal()));
+    }
+
     public List<CrmCustomerRespVO> buildCustomerDetailList(List<CrmCustomerDO> list) {
         if (CollUtil.isEmpty(list)) {
             return java.util.Collections.emptyList();
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
index cb70ab8..0467060 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
@@ -97,6 +97,23 @@
         return selectJoinPage(pageReqVO, CrmCustomerDO.class, query);
     }
 
+    /**
+     * 渚� MES銆丒RP銆佸敭鍚庣瓑涓氬姟妯″潡閫夋嫨鎴栧洖鏄惧鎴枫�傝鏌ヨ涓嶅鐢� CRM 璐熻矗浜烘潈闄愶紝
+     * 浠呮寜瀹㈡埛绛涢�夋潯浠跺垎椤碉紝閬垮厤涓氬姟鍗曟嵁鍥犲綋鍓嶇櫥褰曚汉涓嶆槸瀹㈡埛璐熻矗浜鸿�屾棤娉曟樉绀哄鎴枫��
+     */
+    default PageResult<CrmCustomerDO> selectBusinessPage(CrmCustomerPageReqVO pageReqVO) {
+        MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
+        query.selectAll(CrmCustomerDO.class)
+                .likeIfPresent(CrmCustomerDO::getName, pageReqVO.getName())
+                .eqIfPresent(CrmCustomerDO::getMobile, pageReqVO.getMobile())
+                .eqIfPresent(CrmCustomerDO::getIndustryId, pageReqVO.getIndustryId())
+                .eqIfPresent(CrmCustomerDO::getLevel, pageReqVO.getLevel())
+                .eqIfPresent(CrmCustomerDO::getSource, pageReqVO.getSource())
+                .eqIfPresent(CrmCustomerDO::getAutoPoolEnabled, pageReqVO.getAutoPoolEnabled())
+                .orderByAsc(CrmCustomerDO::getLevel);
+        return selectJoinPage(pageReqVO, CrmCustomerDO.class, query);
+    }
+
     default CrmCustomerDO selectByCustomerName(String name) {
         return selectOne(CrmCustomerDO::getName, name);
     }
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerService.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerService.java
index 3222134..eee3a66 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerService.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerService.java
@@ -103,6 +103,8 @@
      */
     PageResult<CrmCustomerDO> getCustomerPage(CrmCustomerPageReqVO pageReqVO, Long userId);
 
+    PageResult<CrmCustomerDO> getBusinessCustomerPage(CrmCustomerPageReqVO pageReqVO);
+
     /**
      * 鑾峰緱鏀惧叆鍏捣鎻愰啋鐨勫鎴峰垎椤�
      *
diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
index 52fedcb..fe717f8 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/customer/CrmCustomerServiceImpl.java
@@ -501,6 +501,11 @@
     }
 
     @Override
+    public PageResult<CrmCustomerDO> getBusinessCustomerPage(CrmCustomerPageReqVO pageReqVO) {
+        return customerMapper.selectBusinessPage(pageReqVO);
+    }
+
+    @Override
     public PageResult<CrmCustomerDO> getPutPoolRemindCustomerPage(CrmCustomerPageReqVO pageVO, Long userId) {
         CrmCustomerPoolConfigDO poolConfig = customerPoolConfigService.getCustomerPoolConfig();
         if (ObjUtil.isNull(poolConfig)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
index 09a39fb..04d1d9b 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderServiceImpl.java
@@ -743,8 +743,7 @@
 
     @Override
     public PageResult<ErpSaleOrderDO> getSaleOrderPage(ErpSaleOrderPageReqVO pageReqVO) {
-        List<Long> permittedCustomerIds = customerApi.getPermittedCustomerIds();
-        return saleOrderMapper.selectPage(pageReqVO, permittedCustomerIds);
+        return saleOrderMapper.selectPage(pageReqVO);
     }
 
     // ==================== 璁㈠崟椤� ====================
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java
index a649c83..b68c0de 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsServiceImpl.java
@@ -348,9 +348,7 @@
 
     @Override
     public PageResult<MesProMpsDO> getMpsPage(MesProMpsPageReqVO pageReqVO) {
-        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return mpsMapper.selectPage(pageReqVO, permittedClientIds);
+        return mpsMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
@@ -618,4 +616,4 @@
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/schedule/MesProBatchScheduleService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/schedule/MesProBatchScheduleService.java
index 026a97f..936c385 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/schedule/MesProBatchScheduleService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/task/schedule/MesProBatchScheduleService.java
@@ -127,7 +127,6 @@
         result.setPreviewTime(now());
         var orders = workOrderMapper.selectByIds(request.getWorkOrderIds());
         var orderMap = orders.stream().collect(Collectors.toMap(MesProWorkOrderDO::getId, order -> order));
-        List<Long> permitted = customerApi.getPermittedCustomerIds();
         var stations = workstationService.getWorkstationListByStatus(0).stream()
                 .sorted(Comparator.comparing(MesMdWorkstationDO::getId)).toList();
         var machineMap = machineryMapper.selectList().stream().collect(Collectors.toMap(MesDvMachineryDO::getId, machine -> machine));
@@ -170,9 +169,6 @@
             result.getOrders().add(orderPlan);
             try {
                 if (order == null) throw new IllegalArgumentException("宸ュ崟涓嶅瓨鍦ㄦ垨宸插垹闄�");
-                if (permitted != null && order.getClientId() != null && !permitted.contains(order.getClientId())) {
-                    throw new IllegalArgumentException("鏃犳潈鎿嶄綔璇ュ鎴风殑宸ュ崟");
-                }
                 orderPlan.setWorkOrderCode(order.getCode());
                 orderPlan.setWorkOrderName(order.getName());
                 orderPlan.setQuantity(order.getQuantity());
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java
index eee7b86..948ebf5 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java
@@ -174,16 +174,12 @@
 
     @Override
     public PageResult<MesProWorkOrderDO> getWorkOrderPage(MesProWorkOrderPageReqVO pageReqVO) {
-        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return workOrderMapper.selectPage(pageReqVO, permittedClientIds);
+        return workOrderMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
     public PageResult<MesProWorkOrderDO> getWorkOrderSchedulePage(MesProWorkOrderPageReqVO pageReqVO) {
-        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return workOrderMapper.selectSchedulePage(pageReqVO, permittedClientIds);
+        return workOrderMapper.selectSchedulePage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java
index 36f58f0..a4f21a8 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcImportHelper.java
@@ -26,11 +26,9 @@
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Set;
 
 import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.QC_NO_TEMPLATE;
@@ -68,9 +66,6 @@
     private Map<String, Long> supplierNameMap;
     /** 瀹㈡埛鍚嶇О -> 缂栧彿 */
     private Map<String, Long> customerNameMap;
-    /** 褰撳墠鐧诲綍鐢ㄦ埛鍙鐨勫鎴风紪鍙凤紱null 琛ㄧず涓嶉檺鍒� */
-    private Set<Long> permittedClientIds;
-    private boolean clientPermissionLoaded;
 
     /**
      * 寮�濮嬩竴娆″鍏ワ細娓呯┖涓婁竴娆″鍏ョ殑缂撳瓨锛屼繚璇佹柊寤虹殑渚涘簲鍟�/瀹㈡埛/鏂规鏈鍗冲彲鍛戒腑
@@ -79,8 +74,6 @@
         templateNameMap = null;
         supplierNameMap = null;
         customerNameMap = null;
-        permittedClientIds = null;
-        clientPermissionLoaded = false;
     }
 
     /**
@@ -199,26 +192,9 @@
         return clientId;
     }
 
-    /**
-     * 鏍¢獙瀹㈡埛鍦ㄥ綋鍓嶇櫥褰曠敤鎴风殑鍙鑼冨洿鍐�
-     *
-     * 鍑鸿揣妫�楠屽崟鍒楄〃鎸夊鎴锋暟鎹潈闄愯繃婊わ紝鏉冮檺澶栫殑瀹㈡埛瀵煎叆鍚庢湰浜哄湪鍒楄〃涓湅涓嶅埌璇ュ崟鎹紝鍥犳鎻愬墠鎷︽埅銆�
-     */
+    /** MES 涓氬姟妯″潡瀵规墍鏈� CRM 瀹㈡埛寮�鏀捐闂紝涓嶅簲鐢ㄨ惀閿�绠$悊鐨勫鎴峰洟闃熸潈闄愩�� */
     public void validateClientPermission(Long clientId, String clientName) {
-        if (clientId == null) {
-            return;
-        }
-        if (!clientPermissionLoaded) {
-            List<Long> permittedIds = crmCustomerApi.getPermittedCustomerIds();
-            permittedClientIds = permittedIds == null ? null : new HashSet<>(permittedIds);
-            clientPermissionLoaded = true;
-        }
-        if (permittedClientIds == null || permittedClientIds.contains(clientId)) {
-            return;
-        }
-        throw new IllegalArgumentException("瀹㈡埛[" + clientName + "]涓嶅湪鎮ㄧ殑鏁版嵁鏉冮檺鑼冨洿鍐咃細"
-                + "瀵煎叆鍚庢偍灏嗘棤娉曞湪銆屽嚭璐ф楠屻�嶅垪琛ㄤ腑鐪嬪埌璇ユ楠屽崟銆傝鏀圭敤鎮ㄨ礋璐g殑瀹㈡埛锛堝彲鍦ㄣ�孋RM 瀹㈡埛绠$悊-鎴戣礋璐g殑銆嶄腑鏌ョ湅锛夛紝"
-                + "鎴栬仈绯荤鐞嗗憳涓烘偍寮�閫氳瀹㈡埛鐨勬潈闄愬悗閲嶆柊瀵煎叆");
+        // 瀹㈡埛鏄惁瀛樺湪浠嶇敱 resolveClientId 鏍¢獙锛涜礋璐d汉鍜屽洟闃熸潈闄愬彧绾︽潫 CRM 钀ラ攢绠$悊銆�
     }
 
     /**
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
index 56746f2..dd30de9 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/qc/oqc/MesQcOqcServiceImpl.java
@@ -312,9 +312,7 @@
 
     @Override
     public PageResult<MesQcOqcDO> getOqcPage(MesQcOqcPageReqVO pageReqVO) {
-        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return oqcMapper.selectPage(pageReqVO, permittedClientIds);
+        return oqcMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java
index ea88533..f537261 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/batch/MesWmBatchServiceImpl.java
@@ -70,9 +70,7 @@
 
     @Override
     public PageResult<MesWmBatchDO> getBatchPage(MesWmBatchPageReqVO pageReqVO) {
-        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return batchMapper.selectPage(pageReqVO, permittedClientIds);
+        return batchMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
index edf4aad..66354a9 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/packages/MesWmPackageServiceImpl.java
@@ -96,8 +96,7 @@
 
     @Override
     public PageResult<MesWmPackageDO> getPackagePage(MesWmPackagePageReqVO pageReqVO) {
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return packageMapper.selectPage(pageReqVO, permittedClientIds);
+        return packageMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
index 9338217..6593aa3 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesServiceImpl.java
@@ -124,8 +124,7 @@
 
     @Override
     public PageResult<MesWmProductSalesDO> getProductSalesPage(MesWmProductSalesPageReqVO pageReqVO) {
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return productSalesMapper.selectPage(pageReqVO, permittedClientIds);
+        return productSalesMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java
index bb4fb51..57199ae 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnsales/MesWmReturnSalesServiceImpl.java
@@ -106,8 +106,7 @@
 
     @Override
     public PageResult<MesWmReturnSalesDO> getReturnSalesPage(MesWmReturnSalesPageReqVO pageReqVO) {
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return returnSalesMapper.selectPage(pageReqVO, permittedClientIds);
+        return returnSalesMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
index a233210..0c03975 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
@@ -103,22 +103,12 @@
 
     @Override
     public MesWmSalesNoticeDO getSalesNotice(Long id) {
-        MesWmSalesNoticeDO notice = salesNoticeMapper.selectById(id);
-        // 鏍¢獙瀹㈡埛鏉冮檺
-        if (notice != null && notice.getClientId() != null) {
-            List<Long> permittedIds = customerApi.getPermittedCustomerIds();
-            if (permittedIds != null && !permittedIds.contains(notice.getClientId())) {
-                return null; // 鏃犳潈闄愬垯杩斿洖 null
-            }
-        }
-        return notice;
+        return salesNoticeMapper.selectById(id);
     }
 
     @Override
     public PageResult<MesWmSalesNoticeDO> getSalesNoticePage(MesWmSalesNoticePageReqVO pageReqVO) {
-        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
-        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
-        return salesNoticeMapper.selectPage(pageReqVO, permittedClientIds);
+        return salesNoticeMapper.selectPage(pageReqVO, (List<Long>) null);
     }
 
     @Override
diff --git a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcOptionalClientTest.java b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcOptionalClientTest.java
index 40044ca..3295b57 100644
--- a/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcOptionalClientTest.java
+++ b/yudao-module-mes/src/test/java/cn/iocoder/yudao/module/mes/service/qc/imports/MesQcOptionalClientTest.java
@@ -35,13 +35,14 @@
     }
 
     @Test
-    void customerPermissionsStillApplyWhenACustomerIsSupplied() {
+    void customerPermissionsDoNotRestrictMesImports() {
         CrmCustomerApi crm = mock(CrmCustomerApi.class);
         when(crm.getPermittedCustomerIds()).thenReturn(List.of(10L));
         MesQcImportHelper helper = new MesQcImportHelper();
         ReflectionTestUtils.setField(helper, "crmCustomerApi", crm);
         helper.validateClientPermission(10L, "鍙瀹㈡埛");
-        assertThrows(IllegalArgumentException.class, () -> helper.validateClientPermission(20L, "涓嶅彲瑙佸鎴�"));
+        assertDoesNotThrow(() -> helper.validateClientPermission(20L, "鍏朵粬瀹㈡埛"));
+        verifyNoInteractions(crm);
     }
 
     @Test

--
Gitblit v1.9.3