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-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java |  114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 114 insertions(+), 0 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java
new file mode 100644
index 0000000..a761923
--- /dev/null
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java
@@ -0,0 +1,114 @@
+package cn.iocoder.yudao.module.erp.service.purchase;
+
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestPageReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.request.ErpPurchaseRequestSaveReqVO;
+import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestDO;
+import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchaseRequestItemDO;
+import jakarta.validation.Valid;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * ERP 閲囪喘鐢宠 Service 鎺ュ彛
+ */
+public interface ErpPurchaseRequestService {
+
+    /**
+     * 鍒涘缓閲囪喘鐢宠
+     *
+     * @param createReqVO 鍒涘缓淇℃伅
+     * @return 缂栧彿
+     */
+    Long createPurchaseRequest(@Valid ErpPurchaseRequestSaveReqVO createReqVO);
+
+    /**
+     * 鏇存柊閲囪喘鐢宠
+     *
+     * @param updateReqVO 鏇存柊淇℃伅
+     */
+    void updatePurchaseRequest(@Valid ErpPurchaseRequestSaveReqVO updateReqVO);
+
+    /**
+     * 鍒犻櫎閲囪喘鐢宠
+     *
+     * @param ids 缂栧彿鏁扮粍
+     */
+    void deletePurchaseRequest(List<Long> ids);
+
+    /**
+     * 鑾峰緱閲囪喘鐢宠
+     *
+     * @param id 缂栧彿
+     * @return 閲囪喘鐢宠
+     */
+    ErpPurchaseRequestDO getPurchaseRequest(Long id);
+
+    /**
+     * 鑾峰緱閲囪喘鐢宠鍒嗛〉
+     *
+     * @param pageReqVO 鍒嗛〉鏌ヨ
+     * @return 閲囪喘鐢宠鍒嗛〉
+     */
+    PageResult<ErpPurchaseRequestDO> getPurchaseRequestPage(ErpPurchaseRequestPageReqVO pageReqVO);
+
+    /**
+     * 鑾峰緱閲囪喘鐢宠椤瑰垪琛�
+     *
+     * @param requestId 閲囪喘鐢宠缂栧彿
+     * @return 閲囪喘鐢宠椤瑰垪琛�
+     */
+    List<ErpPurchaseRequestItemDO> getPurchaseRequestItemListByRequestId(Long requestId);
+
+    /**
+     * 鑾峰緱閲囪喘鐢宠椤� List
+     *
+     * @param requestIds 閲囪喘鐢宠缂栧彿鏁扮粍
+     * @return 閲囪喘鐢宠椤� List
+     */
+    List<ErpPurchaseRequestItemDO> getPurchaseRequestItemListByRequestIds(Collection<Long> requestIds);
+
+    /**
+     * 鎻愪氦閲囪喘鐢宠瀹℃壒
+     *
+     * @param id 缂栧彿
+     * @param processDefinitionKey 娴佺▼瀹氫箟 Key
+     * @param userId 鐢ㄦ埛缂栧彿
+     */
+    void submitPurchaseRequest(Long id, String processDefinitionKey, Long userId);
+
+    /**
+     * 鑾峰彇閲囪喘鐢宠瀹℃壒娴佺▼鍒楄〃
+     *
+     * @return 娴佺▼瀹氫箟鍒楄〃
+     */
+    List<Map<String, Object>> getPurchaseRequestApproveProcessDefinitionList();
+
+    /**
+     * 鏇存柊閲囪喘鐢宠瀹℃壒缁撴灉锛圔PM 鍥炶皟锛�
+     *
+     * @param id 缂栧彿
+     * @param bpmResult BPM 瀹℃壒缁撴灉
+     */
+    void updatePurchaseRequestAuditStatus(Long id, Integer bpmResult);
+
+    /**
+     * 鐢熸垚閲囪喘璁㈠崟
+     *
+     * @param id 閲囪喘鐢宠缂栧彿
+     * @param supplierId 渚涘簲鍟嗙紪鍙�
+     * @return 閲囪喘璁㈠崟缂栧彿
+     */
+    Long generatePurchaseOrder(Long id, Long supplierId);
+
+    /**
+     * 鏍规嵁缂栧彿鍒楄〃鑾峰彇閲囪喘鐢宠鍒楄〃
+     *
+     * @param ids 缂栧彿鍒楄〃
+     * @return 閲囪喘鐢宠鍒楄〃
+     */
+    List<ErpPurchaseRequestDO> getPurchaseRequestList(List<Long> ids);
+
+}
\ No newline at end of file

--
Gitblit v1.9.3