From 4bc513be11e671caf20ec6013a51dee42c2ed96e Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 07 十一月 2026 18:31:26 +0800
Subject: [PATCH] fix(crm): 禁止物料类合同开票

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java |   67 ++++++++++++++++++++++++++++++---
 1 files changed, 60 insertions(+), 7 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 a3e6ba0..35121de 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
@@ -1,6 +1,9 @@
 package cn.iocoder.yudao.module.crm.service.contract;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportExcelVO;
+import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportReqVO;
+import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportRespVO;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractPageReqVO;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractSaveReqVO;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractTransferReqVO;
@@ -14,6 +17,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 +69,43 @@
     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);
 
     /**
-     * 鏇存柊鍚堝悓娴佺▼瀹℃壒缁撴灉
+     * 鑾峰緱鍚堝悓瀹℃壒鐨勫鎵逛汉缂栧彿闆嗗悎
+     *
+     * 渚涘墠绔垽鏂綋鍓嶇櫥褰曠敤鎴锋槸鍚﹀簲灞曠ず銆屽鏍搞�嶆寜閽紱鏈厤缃椂杩斿洖绌洪泦鍚堛��
+     *
+     * @return 瀹℃壒浜虹敤鎴风紪鍙烽泦鍚�
+     */
+    Set<Long> getContractApproverUserIds();
+
+    /**
+     * 瀹℃牳鍚堝悓锛堝鎵逛腑 鈫� 瀹℃牳閫氳繃 / 瀹℃牳涓嶉�氳繃锛�
+     *
+     * 浠呬笟鍔$紪鐮� contract_approve 閰嶇疆鐨勫鎵逛汉鍙搷浣滐紙澶氫汉鏃舵垨绛撅級锛涘鏍镐笉閫氳繃鏃跺繀椤诲~鍐欎笉閫氳繃鍘熷洜銆�
+     *
+     * @param id           鍚堝悓缂栧彿
+     * @param pass         鏄惁閫氳繃锛歵rue=瀹℃牳閫氳繃 / false=瀹℃牳涓嶉�氳繃
+     * @param reviewRemark 瀹℃牳鎰忚锛堜笉閫氳繃鏃跺嵆涓嶉�氳繃鍘熷洜锛屽繀濉級
+     */
+    void auditContract(Long id, Boolean pass, String reviewRemark);
+
+    /**
+     * BPM 瀹℃壒缁撴潫鍚庡洖鍐欏悎鍚屽鏍哥姸鎬�
      *
      * @param id        鍚堝悓缂栧彿
-     * @param bpmResult BPM 瀹℃壒缁撴灉
+     * @param bpmStatus BPM 瀹℃壒缁撴灉锛�2=閫氳繃 / 3=涓嶉�氳繃 / 4=鍙栨秷锛�
+     * @param reason    瀹℃壒鎰忚 / 鍙栨秷鍘熷洜
      */
-    void updateContractAuditStatus(Long id, Integer bpmResult);
+    void updateContractAuditStatus(Long id, Integer bpmStatus, String reason);
 
     /**
      * 鑾峰緱鍚堝悓
@@ -211,4 +238,30 @@
      */
     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);
+
+    /**
+     * 鎵归噺瀵煎叆鍚堝悓
+     *
+     * @param importContracts 瀵煎叆鍚堝悓鍒楄〃
+     * @param importReqVO     璇锋眰
+     * @return 瀵煎叆缁撴灉
+     */
+    CrmContractImportRespVO importContractList(List<CrmContractImportExcelVO> importContracts,
+                                               CrmContractImportReqVO importReqVO);
+
 }

--
Gitblit v1.9.3