From eccad5a129106377a275be4f7cdc58e99e9b95d4 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 21 七月 2026 13:45:14 +0800
Subject: [PATCH] feat(mes): 实现库存移库功能

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

diff --git a/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApi.java b/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApi.java
index 6d75372..a31475f 100644
--- a/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApi.java
+++ b/yudao-module-mes-api/src/main/java/cn/iocoder/yudao/module/mes/api/mps/MesProMpsApi.java
@@ -3,6 +3,7 @@
 import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsCreateReqDTO;
 import cn.iocoder.yudao.module.mes.api.mps.dto.MesProMpsRespDTO;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -46,4 +47,53 @@
      */
     List<MesProMpsRespDTO> getMpsListBySaleOrderItemIds(List<Long> saleOrderItemIds);
 
+    /**
+     * 妫�鏌ラ攢鍞鍗曟槸鍚﹀彲浠ョ敓鎴愬彂璐ч�氱煡鍗�
+     *
+     * 瑙勫垯锛氬鏋滄湁闇�瑕佺敓浜х殑鏄庣粏锛屽搴旂殑 MPS 蹇呴』宸插畬鎴愶紙status=2锛夋垨宸插彇娑堬紙status=3锛�
+     *
+     * @param saleOrderItemIds 閿�鍞鍗曟槑缁咺D鍒楄〃
+     * @return true=鍙互鐢熸垚鍙戣揣閫氱煡鍗曪紝false=涓嶅彲浠�
+     */
+    Boolean checkCanCreateSalesNotice(List<Long> saleOrderItemIds);
+
+    /**
+     * 妫�鏌ラ攢鍞鍗曠殑鎵�鏈� MPS 鏄惁宸插畬鎴愮敓浜�
+     *
+     * 瀹屾垚鏉′欢锛�
+     * 1. 宸茬敓浜ф暟閲� >= 璁″垝鏁伴噺
+     * 2. 鎵�鏈夋姤宸ュ崟鐘舵�佷负 FINISHED锛堢‘淇濊川妫�瀹屾垚锛�
+     *
+     * @param saleOrderId 閿�鍞鍗旾D
+     * @return true=鍏ㄩ儴瀹屾垚锛宖alse=鏈叏閮ㄥ畬鎴�
+     */
+    Boolean checkSaleOrderProductionFinished(Long saleOrderId);
+
+    /**
+     * 鏍规嵁宸ュ崟ID鑾峰彇 MPS
+     *
+     * @param workOrderId 宸ュ崟ID
+     * @return MPS 淇℃伅
+     */
+    MesProMpsRespDTO getMpsByWorkOrderId(Long workOrderId);
+
+    /**
+     * 鏇存柊 MPS 鐨勫凡鐢熶骇鏁伴噺锛堢疮鍔狅級
+     *
+     * @param mpsId      MPS 缂栧彿
+     * @param quantity   澧炲姞鐨勬暟閲�
+     */
+    void updateMpsProducedQuantity(Long mpsId, BigDecimal quantity);
+
+    /**
+     * 妫�鏌ュ苟鑷姩瀹屾垚 MPS
+     *
+     * 濡傛灉 MPS 婊¤冻瀹屾垚鏉′欢锛堝凡鐢熶骇鏁伴噺 >= 璁″垝鏁伴噺 涓� 鎵�鏈夋姤宸ュ凡瀹屾垚锛夛紝
+     * 鍒欒嚜鍔ㄥ皢 MPS 鐘舵�佹洿鏂颁负宸插畬鎴�
+     *
+     * @param mpsId MPS 缂栧彿
+     * @return true=宸插畬鎴愭垨鏈鑷姩瀹屾垚锛宖alse=鏈畬鎴�
+     */
+    Boolean checkAndFinishMps(Long mpsId);
+
 }
\ No newline at end of file

--
Gitblit v1.9.3