From b3fe06c151dc8455649bf0a46e481ceb83e3ea2a Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期六, 07 十一月 2026 13:37:54 +0800
Subject: [PATCH] feat: 完成好水川 MOM 需求1/2/4/5/8(装箱、BOM成本、销售合同、劳动合同、留样)

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractService.java |   48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 48 insertions(+), 0 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 80693c2..05c16d2 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,8 +1,11 @@
 package cn.iocoder.yudao.module.crm.service.contract;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.crm.api.contract.dto.CrmContractCreateFromSaleOrderReqDTO;
 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;
@@ -10,6 +13,7 @@
 import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO;
 import jakarta.validation.Valid;
 
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.Collection;
 import java.util.List;
@@ -32,6 +36,14 @@
      * @return 缂栧彿
      */
     Long createContract(@Valid CrmContractSaveReqVO createReqVO, Long userId);
+
+    /**
+     * 瀵煎叆鍚堝悓
+     *
+     * @param importList 瀵煎叆鏁版嵁锛堟瘡涓�琛� = 涓�鏉℃槑缁嗭紝鐩稿悓鍚堝悓缂栧彿鍚堝苟涓轰竴寮犲悎鍚岋級
+     * @return 瀵煎叆缁撴灉
+     */
+    CrmContractImportRespVO importContractList(List<CrmContractImportExcelVO> importList);
 
     /**
      * 鏇存柊鍚堝悓
@@ -95,6 +107,14 @@
      * @return 鍚堝悓
      */
     CrmContractDO getContract(Long id);
+
+    /**
+     * 鑾峰緱鍚堝悓锛屽熀浜庡悎鍚岀紪鍙�
+     *
+     * @param no 鍚堝悓缂栧彿
+     * @return 鍚堝悓
+     */
+    CrmContractDO getContractByNo(String no);
 
     /**
      * 鏍¢獙鍚堝悓鏄惁鍚堟硶
@@ -170,6 +190,26 @@
     Long getContractCountByCustomerId(Long customerId);
 
     /**
+     * 鎵归噺缁熻鍚勫鎴枫�屽凡绛捐銆嶇殑鍚堝悓鏁伴噺
+     *
+     * 銆屽凡绛捐銆�= 瀹℃壒鐘舵�佷负瀹℃牳閫氳繃鐨勫悎鍚�
+     *
+     * @param customerIds 瀹㈡埛缂栧彿闆嗗悎
+     * @return key锛氬鎴风紪鍙凤紝value锛氬悎鍚屾暟閲忋�傛病鏈夊凡绛捐鍚堝悓鐨勫鎴蜂笉鍦� map 涓�
+     */
+    Map<Long, Long> getContractCountMapByCustomerIds(Collection<Long> customerIds);
+
+    /**
+     * 鎵归噺缁熻鍚勫鎴枫�屽凡绛捐銆嶇殑鍚堝悓閲戦鍚堣
+     *
+     * 銆屽凡绛捐銆�= 瀹℃壒鐘舵�佷负瀹℃牳閫氳繃鐨勫悎鍚�
+     *
+     * @param customerIds 瀹㈡埛缂栧彿闆嗗悎
+     * @return key锛氬鎴风紪鍙凤紝value锛氶噾棰濆悎璁°�傛病鏈夊凡绛捐鍚堝悓鐨勫鎴蜂笉鍦� map 涓�
+     */
+    Map<Long, BigDecimal> getContractPriceMapByCustomerIds(Collection<Long> customerIds);
+
+    /**
      * 鏍规嵁鍟嗘満缂栧彿锛岃幏鍙栧叧鑱斿鎴风殑鍚堝悓鏁伴噺
      *
      * @param businessId 鍟嗘満缂栧彿
@@ -220,6 +260,14 @@
     Long generateSaleOrder(Long id, Long userId);
 
     /**
+     * 鏍规嵁閿�鍞鍗曞垱寤哄悎鍚岃崏绋匡紙涓嶆彁浜ゅ鎵癸級
+     *
+     * @param reqDTO 閿�鍞鍗曚俊鎭�
+     * @return 鍚堝悓
+     */
+    CrmContractDO createContractDraftFromSaleOrder(CrmContractCreateFromSaleOrderReqDTO reqDTO);
+
+    /**
      * 鏇存柊鍚堝悓鐘舵��
      *
      * @param id     鍚堝悓缂栧彿

--
Gitblit v1.9.3