# 删除 MES 客户和供应商模块 - 进度跟踪 ## 任务概述 删除 MES 模块中独立的客户(MesMdClient)和供应商(MesMdVendor)管理功能,改为复用: - **客户**:使用 CRM 的客户管理(CrmCustomerApi) - **供应商**:使用采购模块的供应商管理(ErpSupplierApi) --- ## 已完成 ✅ ### Step 1: 扩展 CRM 和 ERP API - [x] CrmCustomerApi 已有 `validateCustomer` 方法,可直接使用 - [x] ErpSupplierApi 已有 `validateSupplier` 方法(已校验存在+启用),可直接使用 ### Step 2: 替换 Service 层引用 **客户校验替换(4个文件):** - [x] MesWmProductSalesServiceImpl.java - [x] MesWmSalesNoticeServiceImpl.java - [x] MesWmReturnSalesServiceImpl.java - [x] MesQcOqcServiceImpl.java **供应商校验替换(5个文件):** - [x] MesWmReturnVendorServiceImpl.java - [x] MesWmOutsourceReceiptServiceImpl.java - [x] MesWmOutsourceIssueServiceImpl.java - [x] MesQcIqcServiceImpl.java ### Step 3: 替换 Controller 层引用 **客户信息拼接(已完成):** - [x] MesProTaskController.java - [x] MesProMpsController.java - [x] MesQcOqcController.java - [x] MesQcPendingInspectController.java - [x] MesWmProductIssueController.java - [x] MesWmBatchController.java - [x] MesWmPackageController.java **供应商信息拼接(已完成):** - [x] MesWmMaterialStockController.java - [x] MesWmBatchController.java - [x] MesWmReturnVendorController.java - [x] MesWmOutsourceReceiptController.java - [x] MesWmOutsourceIssueController.java - [x] MesQcIqcController.java - [x] MesQcPendingInspectController.java - [x] MesProWorkOrderController.java ### Step 4: 更新 DO 注释 **客户(6个文件):** - [x] MesProWorkOrderDO - [x] MesProTaskDO - [x] MesProMpsDO - [x] MesQcOqcDO - [x] MesWmBatchDO - [x] MesWmPackageDO **供应商(7个文件):** - [x] MesWmReturnVendorDO - [x] MesWmOutsourceReceiptDO - [x] MesWmOutsourceIssueDO - [x] MesWmMaterialStockDO - [x] MesWmBatchDO - [x] MesQcIqcDO - [x] MesProWorkOrderDO **其他相关 DO 文件:** - [x] MesWmArrivalNoticeDO - [x] MesWmItemReceiptDO - [x] MesWmProductSalesDO - [x] MesWmSalesNoticeDO ### Step 5: 清理无用 import - [x] 删除所有 DO 文件中的 `MesMdClientDO` 和 `MesMdVendorDO` import 语句 ### Step 6: 删除 MES 客户/供应商模块文件 **待删除目录(需手动执行):** ``` yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/client/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/vendor/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/vendor/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client/ yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor/ ``` ### Step 7: 删除数据库表 - [x] `DROP TABLE IF EXISTS mes_md_client;` ✅ 已执行 - [x] `DROP TABLE IF EXISTS mes_md_vendor;` ✅ 已执行 ### 编译验证 - [x] `mvn compile -pl yudao-module-mes -am -q` 编译通过 ✅ ### Step 8: 客户权限过滤(主查询) **已添加 CRM API 方法:** - [x] CrmCustomerApi.getPermittedCustomerIds() - 获取用户有权限的客户 ID 列表 **已添加客户权限过滤的 Mapper 和 Service:** - [x] MesWmSalesNoticeMapper + MesWmSalesNoticeService - 发货通知单 - [x] MesWmReturnSalesMapper + MesWmReturnSalesService - 销售退货单 - [x] MesWmProductSalesMapper + MesWmProductSalesService - 销售出库单 - [x] MesWmPackageMapper + MesWmPackageService - 装箱单 - [x] MesWmBatchMapper + MesWmBatchService - 批次管理 - [x] MesQcOqcMapper + MesQcOqcService - 出货检验单 - [x] MesProWorkOrderMapper + MesProWorkOrderService - 生产工单 - [x] MesProMpsMapper + MesProMpsService - 生产主计划 - [x] ErpSaleOrderMapper + ErpSaleOrderService - ERP 销售订单 **编译验证:** - [x] `mvn compile -pl yudao-module-mes -am -q` 编译通过 ✅ - [x] `mvn compile -pl yudao-module-erp -am -q` 编译通过 ✅ ### Step 9: CRM 模块客户权限过滤 **已添加客户权限过滤:** - [x] CrmContractMapper + CrmContractService - 合同管理 - [x] CrmSaleQuotationMapper + CrmSaleQuotationService - 销售报价单 **编译验证:** - [x] `mvn compile -pl yudao-module-crm -am -q` 编译通过 ✅ --- ## 待手动执行 ### 删除模块文件 在 IDE 或终端中执行以下命令删除 MES 客户/供应商模块文件: ```bash rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/client rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/md/vendor rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/client rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/dataobject/md/vendor rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/client rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/md/vendor rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/client rm -rf yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/md/vendor ``` --- ## 修改规则总结 - **客户 API 调用**: - `clientService.getClientMap(ids)` → `customerApi.getCustomerMap(ids)`(直接返回 Map) - `clientService.validateClientExistsAndEnable(id)` → `customerApi.validateCustomer(id)` - **供应商 API 调用**: - `vendorService.getVendorMap(ids)` → `supplierApi.getSupplierList(ids).getCheckedData()`(返回 List,需转 Map) - `vendorService.validateVendorExistsAndEnable(id)` → `supplierApi.validateSupplier(id)` - **DTO 字段差异**: - `CrmCustomerRespDTO` 无 `code` 和 `nickname` 字段,只有 `name` - `ErpSupplierRespDTO` 无 `code` 和 `nickname` 字段,只有 `name`