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-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 48 insertions(+), 8 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java
index 0d8964f..f13e9c1 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java
@@ -14,6 +14,7 @@
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
 
@@ -65,20 +66,34 @@
     void updateContractFollowUp(Long id, LocalDateTime contactNextTime, String contactLastContent);
 
     /**
-     * 鍙戣捣鍚堝悓瀹℃壒娴佺▼
+     * 鎻愪氦鍚堝悓瀹℃壒锛堟湭鎻愪氦 / 瀹℃牳涓嶉�氳繃 鈫� 瀹℃壒涓級
      *
-     * @param id     鍚堝悓缂栧彿
-     * @param userId 鐢ㄦ埛缂栧彿
+     * 瀹℃壒浜虹敱銆岀郴缁熺鐞� - 瀹℃壒閰嶇疆銆嶆寜涓氬姟绫诲瀷缁熶竴閰嶇疆锛堜笟鍔$紪鐮� contract_approve锛夛紝
+     * 鎻愪氦鏃舵棤闇�鎸囧畾锛涙湭鍚敤瀹℃壒鎴栨湭閰嶇疆鏈夋晥瀹℃壒浜烘椂鎶涘嚭涓氬姟寮傚父銆�
+     *
+     * @param id 鍚堝悓缂栧彿
      */
-    void submitContract(Long id, Long userId);
+    void submitContract(Long id);
 
     /**
-     * 鏇存柊鍚堝悓娴佺▼瀹℃壒缁撴灉
+     * 鑾峰緱鍚堝悓瀹℃壒鐨勫鎵逛汉缂栧彿闆嗗悎
      *
-     * @param id        鍚堝悓缂栧彿
-     * @param bpmResult BPM 瀹℃壒缁撴灉
+     * 渚涘墠绔垽鏂綋鍓嶇櫥褰曠敤鎴锋槸鍚﹀簲灞曠ず銆屽鏍搞�嶆寜閽紱鏈厤缃椂杩斿洖绌洪泦鍚堛��
+     *
+     * @return 瀹℃壒浜虹敤鎴风紪鍙烽泦鍚�
      */
-    void updateContractAuditStatus(Long id, Integer bpmResult);
+    Set<Long> getContractApproverUserIds();
+
+    /**
+     * 瀹℃牳鍚堝悓锛堝鎵逛腑 鈫� 瀹℃牳閫氳繃 / 瀹℃牳涓嶉�氳繃锛�
+     *
+     * 浠呬笟鍔$紪鐮� contract_approve 閰嶇疆鐨勫鎵逛汉鍙搷浣滐紙澶氫汉鏃舵垨绛撅級锛涘鏍镐笉閫氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜銆�
+     *
+     * @param id           鍚堝悓缂栧彿
+     * @param pass         鏄惁閫氳繃锛歵rue=瀹℃牳閫氳繃 / false=瀹℃牳涓嶉�氳繃
+     * @param reviewRemark 瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛屽繀濉級
+     */
+    void auditContract(Long id, Boolean pass, String reviewRemark);
 
     /**
      * 鑾峰緱鍚堝悓
@@ -202,4 +217,29 @@
      */
     List<CrmContractDO> getContractListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId);
 
+    /**
+     * 鏍规嵁鍚堝悓鐢熸垚閿�鍞鍗�
+     *
+     * @param id     鍚堝悓缂栧彿
+     * @param userId 鐢ㄦ埛缂栧彿
+     * @return 閿�鍞鍗曠紪鍙�
+     */
+    Long generateSaleOrder(Long id, Long userId);
+
+    /**
+     * 鏇存柊鍚堝悓鐘舵��
+     *
+     * @param id     鍚堝悓缂栧彿
+     * @param status 鐘舵��
+     */
+    void updateContractStatus(Long id, Integer status);
+
+    /**
+     * 鏍规嵁閿�鍞鍗曠紪鍙锋洿鏂板悎鍚岀姸鎬�
+     *
+     * @param orderId 閿�鍞鍗曠紪鍙�
+     * @param status  鐘舵��
+     */
+    void updateContractStatusByOrderId(Long orderId, Integer status);
+
 }

--
Gitblit v1.9.3