From 7d2ee3cef2e0d68ba6400bc5957640d2771bbf4c Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 18:05:40 +0800
Subject: [PATCH] refactor: 单据审核改为审批配置状态机(新增:audit接口/审核人字段/DB变更脚本)

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 118 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..9919861
--- /dev/null
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchaseRequestService.java
@@ -0,0 +1,118 @@
+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.Set;
+
+/**
+ * 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 缂栧彿
+     */
+    void submitPurchaseRequest(Long id);
+
+    /**
+     * 鑾峰彇閲囪喘鐢宠鐨勫鎵逛汉缂栧彿闆嗗悎锛堟垨绛撅細浠讳竴浜哄鏍稿嵆鍙級
+     *
+     * @return 瀹℃壒浜虹敤鎴风紪鍙�
+     */
+    Set<Long> getPurchaseRequestApproverUserIds();
+
+    /**
+     * 瀹℃牳閲囪喘鐢宠锛堥�氳繃 / 涓嶉�氳繃锛�
+     *
+     * 浠呴厤缃唴鐨勫鎵逛汉鍙墽琛岋紱瀹℃牳涓嶉�氳繃鏃跺繀椤诲~鍐欏師鍥狅紝閫�鍥炲悗鍙慨鏀瑰苟閲嶆柊鎻愪氦銆�
+     *
+     * @param id 缂栧彿
+     * @param pass 鏄惁瀹℃牳閫氳繃
+     * @param reviewRemark 瀹℃牳鎰忚
+     */
+    void auditPurchaseRequest(Long id, Boolean pass, String reviewRemark);
+
+    /**
+     * 鐢熸垚閲囪喘璁㈠崟
+     *
+     * @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