From e347fd6e8b523b75e7eb28627ba3597cf9e40f6a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 16 九月 2026 14:26:40 +0800
Subject: [PATCH] refactor(approval): 采购计划/采购订单审批由 BPM 改为轻量级状态机
---
yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchasePlanService.java | 46 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchasePlanService.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchasePlanService.java
index 954d1d4..4241ac6 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchasePlanService.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/purchase/ErpPurchasePlanService.java
@@ -2,13 +2,14 @@
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanPageReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.purchase.vo.plan.ErpPurchasePlanSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchasePlanDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.purchase.ErpPurchasePlanItemDO;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
+import java.util.Set;
/**
* ERP 閲囪喘璁″垝 Service 鎺ュ彛
@@ -72,23 +73,40 @@
PageResult<ErpPurchasePlanDO> getPurchasePlanPage(ErpPurchasePlanPageReqVO pageReqVO);
/**
- * 鎻愪氦閲囪喘璁″垝瀹℃壒
+ * 鎻愪氦閲囪喘璁″垝瀹℃牳
*
- * @param id 缂栧彿
- * @param processDefinitionKey BPM 娴佺▼瀹氫箟 Key
- * @param userId 鐢ㄦ埛缂栧彿
+ * 鎻愪氦鍓嶆牎楠岄�氱敤瀹℃壒閰嶇疆锛坆izType = purchase_plan_approve锛夊凡鍚敤涓旈厤缃簡鏈夋晥瀹℃壒浜猴紱
+ * 鏍¢獙閫氳繃鍚庣姸鎬佺疆涓恒�屽鎵逛腑銆嶃�傝崏绋夸笌瀹℃牳涓嶉�氳繃鐘舵�佸潎鍙彁浜ゃ��
+ *
+ * @param id 缂栧彿
*/
- void submitPurchasePlan(Long id, String processDefinitionKey, Long userId);
+ void submitPurchasePlan(Long id);
/**
- * 鑾峰彇閲囪喘璁″垝瀹℃壒娴佺▼鍒楄〃
+ * 鑾峰緱閲囪喘璁″垝鐨勫鎵逛汉鐢ㄦ埛缂栧彿闆嗗悎
*
- * @return 娴佺▼瀹氫箟鍒楄〃
+ * 渚涘墠绔垪琛ㄩ〉鍒ゆ柇鏄惁灞曠ず銆屽鏍搞�嶆寜閽紝鏈厤缃椂杩斿洖绌洪泦鍚堛��
+ *
+ * @return 瀹℃壒浜虹敤鎴风紪鍙烽泦鍚�
*/
- List<Map<String, Object>> getPurchasePlanApproveProcessDefinitionList();
+ Set<Long> getPurchasePlanApproverUserIds();
+
+ /**
+ * 瀹℃牳閲囪喘璁″垝锛堝鎵逛腑 鈫� 瀹℃牳閫氳繃 / 瀹℃牳涓嶉�氳繃锛�
+ *
+ * 浠呴�氱敤瀹℃壒閰嶇疆涓寚瀹氱殑瀹℃壒浜烘湰浜哄彲璋冪敤锛涘鏍镐笉閫氳繃鏃堕』濉啓鍘熷洜銆�
+ * 瀹℃牳閫氳繃鍚庡皢鑷姩鐢熸垚閲囪喘鐢宠銆�
+ *
+ * @param id 閲囪喘璁″垝缂栧彿
+ * @param pass 鏄惁閫氳繃
+ * @param reviewRemark 瀹℃牳鎰忚锛堜笉閫氳繃鏃朵负蹇呭~鐨勫師鍥狅級
+ */
+ void auditPurchasePlan(Long id, Boolean pass, String reviewRemark);
/**
* BPM 瀹℃壒缁撴灉鍥炶皟鏇存柊閲囪喘璁″垝鐘舵��
+ *
+ * 鍘嗗彶鍏煎鎺ュ彛锛氭敼閫犱负杞婚噺绾у鎵瑰悗涓嶅啀鐢� BPM 浜嬩欢瑙﹀彂锛屼繚鐣欎互鍏煎鏃㈡湁鐩戝惉鍣ㄣ��
*
* @param id 閲囪喘璁″垝缂栧彿
* @param bpmResult BPM 瀹℃壒缁撴灉
@@ -96,6 +114,16 @@
void updatePurchasePlanAuditStatus(Long id, Integer bpmResult);
/**
+ * 鑾峰彇搴撳瓨棰勮寤鸿閲囪喘鏄庣粏
+ *
+ * <p>閬嶅巻鍚敤瀹夊叏搴撳瓨鐨勭墿鏂欙紝鎸夐粯璁や粨搴撳綋鍓嶅簱瀛樹綆浜庢渶浣庡簱瀛樻椂锛�
+ * 琛ヨ冻鍒板畨鍏ㄥ簱瀛橈紙鏈厤缃垯鍥炶惤鏈�楂�/鏈�浣庡簱瀛橈級寰楀埌寤鸿閲囪喘鏄庣粏锛屼笉钀藉簱锛屼緵鏂板寮圭獥鍥炲~鏍稿銆�
+ *
+ * @return 寤鸿閲囪喘鏄庣粏鍒楄〃
+ */
+ List<ErpPurchasePlanRespVO.Item> getStockAlertSuggestItems();
+
+ /**
* 鏍规嵁搴撳瓨棰勮鑷姩鐢熸垚閲囪喘璁″垝锛堣崏绋匡級
*
* <p>閬嶅巻鍚敤瀹夊叏搴撳瓨鐨勭墿鏂欙紝褰撳墠搴撳瓨浣庝簬瀹夊叏搴撳瓨涓嬮檺鏃讹紝
--
Gitblit v1.9.3