From 84ac2b6b12bc3e5de072661fb25e87877c01d0d7 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 18 七月 2026 13:41:35 +0800
Subject: [PATCH] feat(crm): 添加客户权限过滤功能并实现销售订单客户权限控制

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java |   37 ++++++++++++++-----------------------
 1 files changed, 14 insertions(+), 23 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java
index 87ff297..ac42fac 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/pro/workorder/MesProWorkOrderController.java
@@ -12,15 +12,15 @@
 import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderRespVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderSaveReqVO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.md.client.MesMdClientDO;
+import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
+import cn.iocoder.yudao.module.crm.api.customer.dto.CrmCustomerRespDTO;
+import cn.iocoder.yudao.module.erp.api.purchase.ErpSupplierApi;
+import cn.iocoder.yudao.module.erp.api.purchase.dto.ErpSupplierRespDTO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO;
-import cn.iocoder.yudao.module.mes.dal.dataobject.md.vendor.MesMdVendorDO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.workorder.MesProWorkOrderDO;
-import cn.iocoder.yudao.module.mes.service.md.client.MesMdClientService;
 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
 import cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService;
-import cn.iocoder.yudao.module.mes.service.md.vendor.MesMdVendorService;
 import cn.iocoder.yudao.module.mes.service.pro.workorder.MesProWorkOrderService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
@@ -38,7 +38,6 @@
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
-import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 
 @Tag(name = "绠$悊鍚庡彴 - MES 鐢熶骇宸ュ崟")
 @RestController
@@ -51,9 +50,9 @@
     @Resource
     private MesMdItemService itemService;
     @Resource
-    private MesMdClientService clientService;
+    private CrmCustomerApi customerApi;
     @Resource
-    private MesMdVendorService vendorService;
+    private ErpSupplierApi supplierApi;
     @Resource
     private MesMdUnitMeasureService unitMeasureService;
 
@@ -140,15 +139,6 @@
         return success(true);
     }
 
-    @PutMapping("/submit")
-    @Operation(summary = "鎻愪氦宸ュ崟瀹℃壒")
-    @Parameter(name = "id", description = "缂栧彿", required = true)
-    @PreAuthorize("@ss.hasPermission('mes:pro-work-order:update')")
-    public CommonResult<Boolean> submitWorkOrder(@RequestParam("id") Long id) {
-        workOrderService.submitWorkOrder(id, getLoginUserId());
-        return success(true);
-    }
-
     // ==================== 鎷兼帴 VO ====================
 
     private List<MesProWorkOrderRespVO> buildWorkOrderRespVOList(List<MesProWorkOrderDO> list) {
@@ -158,10 +148,11 @@
         // 1. 鎵归噺鑾峰彇鍏宠仈鏁版嵁
         Map<Long, MesMdItemDO> itemMap = itemService.getItemMap(
                 convertSet(list, MesProWorkOrderDO::getProductId));
-        Map<Long, MesMdClientDO> clientMap = clientService.getClientMap(
+        Map<Long, CrmCustomerRespDTO> customerMap = customerApi.getCustomerMap(
                 convertSet(list, MesProWorkOrderDO::getClientId));
-        Map<Long, MesMdVendorDO> vendorMap = vendorService.getVendorMap(
-                convertSet(list, MesProWorkOrderDO::getVendorId));
+        Map<Long, ErpSupplierRespDTO> supplierMap = supplierApi.getSupplierList(
+                convertSet(list, MesProWorkOrderDO::getVendorId)).getCheckedData().stream()
+                .collect(java.util.stream.Collectors.toMap(ErpSupplierRespDTO::getId, s -> s));
         // 鍗曚綅浠庝骇鍝佸叧鑱旂殑 item 鑾峰緱
         Map<Long, MesMdUnitMeasureDO> unitMeasureMap = unitMeasureService.getUnitMeasureMap(
                 convertSet(itemMap.values(), MesMdItemDO::getUnitMeasureId));
@@ -175,10 +166,10 @@
                 MapUtils.findAndThen(unitMeasureMap, item.getUnitMeasureId(),
                         unitMeasure -> vo.setUnitMeasureName(unitMeasure.getName()));
             });
-            MapUtils.findAndThen(clientMap, vo.getClientId(),
-                    client -> vo.setClientName(client.getName()).setClientCode(client.getCode()));
-            MapUtils.findAndThen(vendorMap, vo.getVendorId(),
-                    vendor -> vo.setVendorName(vendor.getName()).setVendorCode(vendor.getCode()));
+            MapUtils.findAndThen(customerMap, vo.getClientId(),
+                    customer -> vo.setClientName(customer.getName()));
+            MapUtils.findAndThen(supplierMap, vo.getVendorId(),
+                    supplier -> vo.setVendorName(supplier.getName()));
             MapUtils.findAndThen(parentMap, vo.getParentId(),
                     parent -> vo.setParentCode(parent.getCode()));
         });

--
Gitblit v1.9.3