From 5140e16bd1cb2bdf974d47a4342f9e27ef804655 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期六, 18 七月 2026 15:54:07 +0800
Subject: [PATCH] feat(erp): 增加销售订单MPS集成与发货通知单控制功能

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/workorder/MesProWorkOrderServiceImpl.java |   80 ++-------------------------------------
 1 files changed, 5 insertions(+), 75 deletions(-)

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 67f0159..2a695c9 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
@@ -4,8 +4,6 @@
 import cn.hutool.core.util.ObjUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
-import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderPageReqVO;
 import cn.iocoder.yudao.module.mes.controller.admin.pro.workorder.vo.MesProWorkOrderSaveReqVO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemBatchConfigDO;
@@ -17,8 +15,8 @@
 import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
 import cn.iocoder.yudao.module.mes.service.pro.task.MesProTaskService;
 import cn.iocoder.yudao.module.mes.service.wm.barcode.MesWmBarcodeService;
+import cn.iocoder.yudao.module.crm.api.customer.CrmCustomerApi;
 import jakarta.annotation.Resource;
-import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -39,13 +37,7 @@
  */
 @Service
 @Validated
-@Slf4j
 public class MesProWorkOrderServiceImpl implements MesProWorkOrderService {
-
-    /**
-     * BPM 鐢熶骇宸ュ崟瀹℃壒娴佺▼鏍囪瘑
-     */
-    public static final String BPM_PROCESS_DEFINITION_KEY = "mes-pro-work-order-audit";
 
     @Resource
     private MesProWorkOrderMapper workOrderMapper;
@@ -60,9 +52,8 @@
     private MesWmBarcodeService barcodeService;
     @Resource
     private MesProTaskService taskService;
-
     @Resource
-    private BpmProcessInstanceApi bpmProcessInstanceApi;
+    private CrmCustomerApi customerApi;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -152,7 +143,9 @@
 
     @Override
     public PageResult<MesProWorkOrderDO> getWorkOrderPage(MesProWorkOrderPageReqVO pageReqVO) {
-        return workOrderMapper.selectPage(pageReqVO);
+        // 鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑瀹㈡埛 ID 鍒楄〃
+        List<Long> permittedClientIds = customerApi.getPermittedCustomerIds();
+        return workOrderMapper.selectPage(pageReqVO, permittedClientIds);
     }
 
     @Override
@@ -260,69 +253,6 @@
     @Override
     public Long getWorkOrderCountByVendorId(Long vendorId) {
         return workOrderMapper.selectCountByVendorId(vendorId);
-    }
-
-    // ==================== BPM 娴佺▼瀹℃壒 ====================
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void submitWorkOrder(Long id, Long userId) {
-        // 1. 鏍¢獙宸ュ崟澶勪簬鑽夌鐘舵��
-        MesProWorkOrderDO workOrder = validateWorkOrderExists(id);
-        if (ObjUtil.notEqual(workOrder.getStatus(), MesProWorkOrderStatusEnum.PREPARE.getStatus())) {
-            throw exception(PRO_WORK_ORDER_SUBMIT_FAIL_NOT_PREPARE);
-        }
-
-        // 2. 鍒涘缓鐢熶骇宸ュ崟瀹℃壒娴佺▼瀹炰緥
-        String processInstanceId = bpmProcessInstanceApi.createProcessInstance(userId, new BpmProcessInstanceCreateReqDTO()
-                .setProcessDefinitionKey(BPM_PROCESS_DEFINITION_KEY)
-                .setBusinessKey(String.valueOf(id)));
-
-        // 3. 鏇存柊宸ュ崟宸ヤ綔娴佺紪鍙枫�佺姸鎬佷负瀹℃壒涓�
-        workOrderMapper.updateById(new MesProWorkOrderDO()
-                .setId(id)
-                .setProcessInstanceId(processInstanceId)
-                .setStatus(MesProWorkOrderStatusEnum.AUDITING.getStatus()));
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void updateWorkOrderAuditStatus(Long id, Integer bpmResult) {
-        // 1. 鏍¢獙宸ュ崟瀛樺湪
-        MesProWorkOrderDO workOrder = validateWorkOrderExists(id);
-
-        // 2. 鏍¢獙宸ュ崟澶勪簬瀹℃壒涓�
-        if (ObjUtil.notEqual(workOrder.getStatus(), MesProWorkOrderStatusEnum.AUDITING.getStatus())) {
-            log.error("[updateWorkOrderAuditStatus][workOrder({}) 涓嶅浜庡鎵逛腑锛屾棤娉曟洿鏂板鎵圭粨鏋�({})]",
-                    workOrder.getId(), bpmResult);
-            throw exception(PRO_WORK_ORDER_UPDATE_AUDIT_STATUS_FAIL_NOT_AUDITING);
-        }
-
-        // 3. 鏇存柊宸ュ崟瀹℃壒缁撴灉
-        Integer auditStatus = convertBpmResultToWorkOrderStatus(bpmResult);
-        workOrderMapper.updateById(new MesProWorkOrderDO()
-                .setId(id)
-                .setStatus(auditStatus));
-    }
-
-    /**
-     * 灏� BPM 瀹℃壒缁撴灉杞崲涓� MES 宸ュ崟鐘舵��
-     *
-     * @param bpmResult BPM 瀹℃壒缁撴灉
-     * @return MES 宸ュ崟鐘舵��
-     */
-    private Integer convertBpmResultToWorkOrderStatus(Integer bpmResult) {
-        // BPM 瀹℃壒缁撴灉锛�2=閫氳繃锛�3=涓嶉�氳繃锛�4=宸插彇娑�
-        if (bpmResult == 2) {
-            return MesProWorkOrderStatusEnum.CONFIRMED.getStatus();
-        } else if (bpmResult == 3) {
-            return MesProWorkOrderStatusEnum.REJECTED.getStatus();
-        } else if (bpmResult == 4) {
-            return MesProWorkOrderStatusEnum.PREPARE.getStatus();
-        } else {
-            log.warn("[convertBpmResultToWorkOrderStatus][鏈煡鐨� BPM 瀹℃壒缁撴灉({})]", bpmResult);
-            return MesProWorkOrderStatusEnum.AUDITING.getStatus();
-        }
     }
 
 }

--
Gitblit v1.9.3