From 1458532478eedbd82947e6ee8515f881d4a4912a Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期六, 18 七月 2026 16:14:23 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsService.java |  148 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 148 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsService.java
new file mode 100644
index 0000000..8c6af1f
--- /dev/null
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/pro/mps/MesProMpsService.java
@@ -0,0 +1,148 @@
+package cn.iocoder.yudao.module.mes.service.pro.mps;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.mps.vo.MesProMpsPageReqVO;
+import cn.iocoder.yudao.module.mes.controller.admin.pro.mps.vo.MesProMpsSaveReqVO;
+import cn.iocoder.yudao.module.mes.dal.dataobject.pro.mps.MesProMpsDO;
+import jakarta.validation.Valid;
+
+import java.math.BigDecimal;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * MES 鐢熶骇涓昏鍒掞紙MPS锛塖ervice 鎺ュ彛
+ *
+ * @author 鑺嬮亾婧愮爜
+ */
+public interface MesProMpsService {
+
+    /**
+     * 鍒涘缓 MPS锛堜緵 API 璋冪敤锛岃嚜鍔ㄦ槧灏勭墿鏂欙級
+     *
+     * @param saleOrderId 閿�鍞鍗旾D
+     * @param saleOrderNo 閿�鍞鍗曞彿
+     * @param saleOrderItemId 閿�鍞鍗曟槑缁咺D
+     * @param mdmItemId MDM 鐗╂枡ID
+     * @param productName 浜у搧鍚嶇О锛堢敤浜庨敊璇彁绀猴級
+     * @param quantity 璁″垝鏁伴噺
+     * @param clientId 瀹㈡埛ID
+     * @param requestDate 闇�姹傛棩鏈�
+     * @param remark 澶囨敞
+     * @return MPS 缂栧彿锛屽鏋� MES 浜у搧涓嶅瓨鍦ㄨ繑鍥� null
+     * @throws cn.iocoder.yudao.framework.common.exception.ServiceException 濡傛灉 MES 浜у搧涓嶅瓨鍦�
+     */
+    Long createMps(Long saleOrderId, String saleOrderNo, Long saleOrderItemId,
+                   Long mdmItemId, String productName, BigDecimal quantity, Long clientId,
+                   String requestDate, String remark);
+
+    /**
+     * 鍒涘缓 MPS
+     *
+     * @param createReqVO 鍒涘缓淇℃伅
+     * @return MPS 缂栧彿
+     */
+    Long createMps(@Valid MesProMpsSaveReqVO createReqVO);
+
+    /**
+     * 鏇存柊 MPS
+     *
+     * @param updateReqVO 鏇存柊淇℃伅
+     */
+    void updateMps(@Valid MesProMpsSaveReqVO updateReqVO);
+
+    /**
+     * 鍒犻櫎 MPS锛堜粎鑽夌鐘舵�侊級
+     *
+     * @param id 缂栧彿
+     */
+    void deleteMps(Long id);
+
+    /**
+     * 涓嬪彂鍗曟潯 MPS
+     *
+     * @param id MPS 缂栧彿
+     * @return 鐢熸垚鐨勫伐鍗� ID
+     */
+    Long issueMps(Long id);
+
+    /**
+     * 鍚堝苟涓嬪彂澶氭潯 MPS
+     * 灏嗗鏉$浉鍚屼骇鍝佺殑 MPS 鍚堝苟鐢熸垚涓�鏉$敓浜у伐鍗�
+     *
+     * @param mpsIds MPS 缂栧彿鍒楄〃
+     * @return 鐢熸垚鐨勫伐鍗� ID
+     */
+    Long mergeAndIssueMps(List<Long> mpsIds);
+
+    /**
+     * 鍙栨秷 MPS
+     *
+     * @param id 缂栧彿
+     */
+    void cancelMps(Long id);
+
+    /**
+     * 瀹屾垚 MPS锛堢敱鐢熶骇宸ュ崟瀹屾垚鏃惰Е鍙戯級
+     *
+     * @param id 缂栧彿
+     */
+    void finishMps(Long id);
+
+    /**
+     * 鏍规嵁閿�鍞鍗曟槑缁嗚幏鍙� MPS
+     *
+     * @param saleOrderItemId 閿�鍞鍗曟槑缁咺D
+     * @return MPS
+     */
+    MesProMpsDO getMpsBySaleOrderItemId(Long saleOrderItemId);
+
+    /**
+     * 鑾峰彇 MPS
+     *
+     * @param id 缂栧彿
+     * @return MPS
+     */
+    MesProMpsDO getMps(Long id);
+
+    /**
+     * 鑾峰彇 MPS 鍒嗛〉
+     *
+     * @param pageReqVO 鍒嗛〉鏌ヨ
+     * @return 鍒嗛〉缁撴灉
+     */
+    PageResult<MesProMpsDO> getMpsPage(MesProMpsPageReqVO pageReqVO);
+
+    /**
+     * 鑾峰彇 MPS 鍒楄〃
+     *
+     * @param ids 缂栧彿鍒楄〃
+     * @return MPS 鍒楄〃
+     */
+    List<MesProMpsDO> getMpsList(Collection<Long> ids);
+
+    /**
+     * 鏍规嵁閿�鍞鍗曟槑缁咺D鍒楄〃鑾峰彇 MPS 鍒楄〃
+     *
+     * @param saleOrderItemIds 閿�鍞鍗曟槑缁咺D鍒楄〃
+     * @return MPS 鍒楄〃
+     */
+    List<MesProMpsDO> getMpsListBySaleOrderItemIds(Collection<Long> saleOrderItemIds);
+
+    /**
+     * 鑾峰彇鍙悎骞剁殑 MPS 鍒楄〃锛堢浉鍚屼骇鍝併�佽崏绋跨姸鎬侊級
+     *
+     * @param productId 浜у搧ID
+     * @return MPS 鍒楄〃
+     */
+    List<MesProMpsDO> getMergeableMpsList(Long productId);
+
+    /**
+     * 鏇存柊宸茬敓浜ф暟閲�
+     *
+     * @param id MPS 缂栧彿
+     * @param incrQuantity 澧為噺
+     */
+    void updateProducedQuantity(Long id, BigDecimal incrQuantity);
+
+}
\ No newline at end of file

--
Gitblit v1.9.3