From a647bc8a43c0212f482bee0630ebd14dca120a8a Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 28 九月 2026 14:13:28 +0800
Subject: [PATCH] feat: CRM 发票/合同导入、MES 质检批量导入与检测台账、回款与报价校验、权限码细化

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 54 insertions(+), 3 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..e4a9837 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
@@ -3,6 +3,8 @@
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 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.CrmContractImportExcelVO;
+import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractImportRespVO;
 import cn.iocoder.yudao.module.crm.controller.admin.contract.vo.contract.CrmContractTransferReqVO;
 import cn.iocoder.yudao.module.crm.dal.dataobject.business.CrmBusinessDO;
 import cn.iocoder.yudao.module.crm.dal.dataobject.contract.CrmContractDO;
@@ -32,6 +34,14 @@
      * @return 缂栧彿
      */
     Long createContract(@Valid CrmContractSaveReqVO createReqVO, Long userId);
+
+    /**
+     * 瀵煎叆鍚堝悓
+     *
+     * @param importList 瀵煎叆鏁版嵁锛堟瘡涓�琛� = 涓�鏉℃槑缁嗭紝鐩稿悓鍚堝悓缂栧彿鍚堝苟涓轰竴寮犲悎鍚岋級
+     * @return 瀵煎叆缁撴灉
+     */
+    CrmContractImportRespVO importContractList(List<CrmContractImportExcelVO> importList);
 
     /**
      * 鏇存柊鍚堝悓
@@ -67,10 +77,18 @@
     /**
      * 鍙戣捣鍚堝悓瀹℃壒娴佺▼
      *
-     * @param id     鍚堝悓缂栧彿
-     * @param userId 鐢ㄦ埛缂栧彿
+     * @param id                    鍚堝悓缂栧彿
+     * @param processDefinitionKey  娴佺▼瀹氫箟 Key
+     * @param userId                鐢ㄦ埛缂栧彿
      */
-    void submitContract(Long id, Long userId);
+    void submitContract(Long id, String processDefinitionKey, Long userId);
+
+    /**
+     * 鑾峰彇鍚堝悓瀹℃壒娴佺▼鍒楄〃
+     *
+     * @return 娴佺▼瀹氫箟鍒楄〃
+     */
+    List<Map<String, Object>> getContractApproveProcessDefinitionList();
 
     /**
      * 鏇存柊鍚堝悓娴佺▼瀹℃壒缁撴灉
@@ -87,6 +105,14 @@
      * @return 鍚堝悓
      */
     CrmContractDO getContract(Long id);
+
+    /**
+     * 鑾峰緱鍚堝悓锛屽熀浜庡悎鍚岀紪鍙�
+     *
+     * @param no 鍚堝悓缂栧彿
+     * @return 鍚堝悓
+     */
+    CrmContractDO getContractByNo(String no);
 
     /**
      * 鏍¢獙鍚堝悓鏄惁鍚堟硶
@@ -202,4 +228,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