From 9b386ddaa6c8892d346d1e09b8bea20cb9000f58 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期六, 18 七月 2026 16:14:04 +0800
Subject: [PATCH] 代码提交

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApiImpl.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApiImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApiImpl.java
index ddd0f82..94c009c 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApiImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApiImpl.java
@@ -1,9 +1,11 @@
 package cn.iocoder.yudao.module.mes.api.mps;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsCreateReqDTO;
 import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsRespDTO;
 import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsDO;
+import cn.iocoder.yudao.module.mes.enums.pro.MesProMpsStatusEnum;
 import cn.iocoder.yudao.module.mes.service.pro.mps.MesProMpsService;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -11,6 +13,7 @@
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 /**
  * MPS API 瀹炵幇绫�
@@ -60,4 +63,36 @@
         return BeanUtils.toBean(mpsList, MesProMpsRespDTO.class);
     }
 
+    @Override
+    public Boolean checkCanCreateSalesNotice(List<Long> saleOrderItemIds) {
+        if (CollUtil.isEmpty(saleOrderItemIds)) {
+            return true;
+        }
+        List<MesProMpsDO> mpsList = mpsService.getMpsListBySaleOrderItemIds(saleOrderItemIds);
+        // 鏋勫缓 saleOrderItemId -> MPS 鐨勬槧灏�
+        Map<Long, MesProMpsDO> mpsMap = new java.util.HashMap<>();
+        for (MesProMpsDO mps : mpsList) {
+            if (mps.getSaleOrderItemId() != null) {
+                mpsMap.put(mps.getSaleOrderItemId(), mps);
+            }
+        }
+        // 妫�鏌ユ瘡涓攢鍞鍗曟槑缁嗭細
+        // - 濡傛灉 MPS 涓嶅瓨鍦細涓嶈兘鐢熸垚鍙戣揣閫氱煡鍗�
+        // - 濡傛灉 MPS 瀛樺湪涓旂姸鎬佷负鑽夌/宸蹭笅鍙戯細涓嶈兘鐢熸垚鍙戣揣閫氱煡鍗�
+        // - 濡傛灉 MPS 瀛樺湪涓旂姸鎬佷负宸插畬鎴�/宸插彇娑堬細鍙互鐢熸垚鍙戣揣閫氱煡鍗�
+        for (Long itemId : saleOrderItemIds) {
+            MesProMpsDO mps = mpsMap.get(itemId);
+            if (mps == null) {
+                // MPS 涓嶅瓨鍦紝涓嶈兘鐢熸垚鍙戣揣閫氱煡鍗�
+                return false;
+            }
+            if (mps.getStatus().equals(MesProMpsStatusEnum.DRAFT.getStatus())
+                    || mps.getStatus().equals(MesProMpsStatusEnum.ISSUED.getStatus())) {
+                // MPS 鏈畬鎴愶紝涓嶈兘鐢熸垚鍙戣揣閫氱煡鍗�
+                return false;
+            }
+        }
+        return true;
+    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3