From 06ac6cc6f4693a8abc585e69139131fe19274fd1 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 27 八月 2026 14:30:26 +0800
Subject: [PATCH] feat(erp): 销售订单审批接入协同办公(BPM)

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 48 insertions(+), 12 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
index c75f201..cd8e54a 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/service/sale/ErpSaleOrderService.java
@@ -15,7 +15,7 @@
 /**
  * ERP 閿�鍞鍗� Service 鎺ュ彛
  *
- * @author 鑺嬮亾婧愮爜
+ * @author 瓒呯骇绠$悊鍛�
  */
 public interface ErpSaleOrderService {
 
@@ -35,12 +35,44 @@
     void updateSaleOrder(@Valid ErpSaleOrderSaveReqVO updateReqVO);
 
     /**
-     * 鏇存柊閿�鍞鍗曠殑鐘舵��
+     * 鎻愪氦閿�鍞鍗曞鎵癸紙鍗忓悓鍔炲叕 BPM锛�
+     *
+     * 鏈彁浜ゆ垨宸查┏鍥炵殑閿�鍞鍗曞彲鎻愪氦锛屾彁浜ゅ悗杩涘叆鍗忓悓鍔炲叕瀹℃壒娴佺▼
      *
      * @param id 缂栧彿
-     * @param status 鐘舵��
+     * @param processDefinitionKey 娴佺▼瀹氫箟鐨勬爣璇�
+     * @param userId 鎻愪氦浜虹紪鍙�
      */
-    void updateSaleOrderStatus(Long id, Integer status);
+    void submitSaleOrder(Long id, String processDefinitionKey, Long userId);
+
+    /**
+     * 鏇存柊閿�鍞鍗曠殑瀹℃壒鐘舵�侊紙鍗忓悓鍔炲叕瀹℃壒缁撴灉鍥炶皟锛�
+     *
+     * @param id 缂栧彿
+     * @param bpmResult BPM 瀹℃壒缁撴灉锛堥�氳繃/椹冲洖/鍙栨秷锛�
+     */
+    void updateSaleOrderAuditStatus(Long id, Integer bpmResult);
+
+    /**
+     * 鑾峰緱閿�鍞鍗曞鎵规祦绋嬪畾涔夊垪琛�
+     *
+     * @return 娴佺▼瀹氫箟鍒楄〃锛坕d/key/name锛�
+     */
+    List<Map<String, Object>> getSaleOrderApproveProcessDefinitionList();
+
+    /**
+     * 浣滃簾閿�鍞鍗�
+     *
+     * @param id 缂栧彿
+     */
+    void cancelSaleOrder(Long id);
+
+    /**
+     * 閲嶆柊鍚敤閿�鍞鍗�
+     *
+     * @param id 缂栧彿
+     */
+    void enableSaleOrder(Long id);
 
     /**
      * 鏇存柊閿�鍞鍗曠殑鍑哄簱鏁伴噺
@@ -49,14 +81,6 @@
      * @param outCountMap 鍑哄簱鏁伴噺 Map锛歬ey 閿�鍞鍗曢」缂栧彿锛泇alue 鍑哄簱鏁伴噺
      */
     void updateSaleOrderOutCount(Long id, Map<Long, BigDecimal> outCountMap);
-
-    /**
-     * 鏇存柊閿�鍞鍗曠殑閫�璐ф暟閲�
-     *
-     * @param orderId 缂栧彿
-     * @param returnCountMap 閫�璐ф暟閲� Map锛歬ey 閿�鍞鍗曢」缂栧彿锛泇alue 閫�璐ф暟閲�
-     */
-    void updateSaleOrderReturnCount(Long orderId, Map<Long, BigDecimal> returnCountMap);
 
     /**
      * 鍒犻櫎閿�鍞鍗�
@@ -107,4 +131,16 @@
      */
     List<ErpSaleOrderItemDO> getSaleOrderItemListByOrderIds(Collection<Long> orderIds);
 
+    /**
+     * 鏇存柊閿�鍞鍗曠殑鍑哄簱鐘舵��
+     *
+     * 鏍规嵁鏄庣粏鍑哄簱鏁伴噺鑷姩璁$畻璁㈠崟鐘舵�侊細
+     * - 鎵�鏈夋槑缁嗛兘瀹屾垚鍑哄簱 鈫� 鍏ㄩ儴鍑哄簱鐘舵��
+     * - 閮ㄥ垎鏄庣粏瀹屾垚鍑哄簱 鈫� 閮ㄥ垎鍑哄簱鐘舵��
+     * - 鏃犳槑缁嗗嚭搴� 鈫� 鏈嚭搴撶姸鎬�
+     *
+     * @param orderId 璁㈠崟缂栧彿
+     */
+    void updateSaleOrderOutStatus(Long orderId);
+
 }
\ No newline at end of file

--
Gitblit v1.9.3