From 6d1bf32bc0b51dc12048fe6bb70badfbd31d67ac Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 07 十一月 2026 13:44:10 +0800
Subject: [PATCH] fix: 修复销售订单审批及开票回款搜索

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
index 3052329..7d122c8 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractServiceImpl.java
@@ -47,6 +47,7 @@
 import cn.iocoder.yudao.module.erp.api.sale.dto.ErpSaleOrderRespDTO;
 import cn.iocoder.yudao.module.mdm.api.item.MdmItemApi;
 import cn.iocoder.yudao.module.mdm.api.item.dto.MdmItemRespDTO;
+import cn.iocoder.yudao.module.mdm.enums.MdmItemTypeEnum;
 import cn.iocoder.yudao.module.system.api.approval.ApprovalConfigApi;
 import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
@@ -530,8 +531,18 @@
         if (config == null || Boolean.FALSE.equals(config.getNotifyEnabled())) {
             return 0L;
         }
+        // 鎻愰啋澶╂暟鏈厤缃椂鎸夐粯璁� 7 澶╁鐞嗭紝閬垮厤 config.getNotifyDays() 涓� null 鏃舵媶绠辨姏 NPE 瀵艰嚧鎺ュ彛 500
+        if (config.getNotifyDays() == null) {
+            config = BeanUtils.toBean(config, CrmContractConfigDO.class);
+            config.setNotifyDays(DEFAULT_NOTIFY_DAYS);
+        }
         return contractMapper.selectCountByRemind(userId, config);
     }
+
+    /**
+     * 鍚堝悓鍒版湡鎻愰啋鐨勯粯璁ゆ彁鍓嶅ぉ鏁帮細鍚堝悓鎻愰啋鏈厤缃� notifyDays 鏃朵娇鐢�
+     */
+    private static final Integer DEFAULT_NOTIFY_DAYS = 7;
 
     @Override
     public List<CrmContractDO> getContractListByCustomerIdOwnerUserId(Long customerId, Long ownerUserId) {
@@ -574,16 +585,18 @@
         createReqDTO.setRemark("鐢卞悎鍚屻��" + contract.getNo() + "銆戣嚜鍔ㄧ敓鎴�");
 
         // 5. 鏋勫缓璁㈠崟椤�
+        Map<Long, MdmItemRespDTO> itemMap = mdmItemApi.getItemMap(
+                convertSet(contractProducts, CrmContractProductDO::getItemId));
         List<ErpSaleOrderCreateReqDTO.Item> items = contractProducts.stream()
                 .map(cp -> {
                     ErpSaleOrderCreateReqDTO.Item item = new ErpSaleOrderCreateReqDTO.Item();
                     item.setProductId(cp.getItemId());
                     item.setProductPrice(cp.getContractPrice());
                     item.setCount(cp.getCount());
-                    // 鍚堝悓浜у搧榛樿闇�瑕佺敓浜э細璁㈠崟瀹℃壒閫氳繃鍚庢墠鑳借嚜鍔ㄥ垱寤� MPS锛�
-                    // 鍚﹀垯銆屽悎鍚� 鈫� 璁㈠崟 鈫� 鐢熶骇銆嶉摼璺湪鍚堝悓鏉ユ簮鐨勮鍗曚笂浼氭柇鎺夈��
-                    // 鑻ヤ釜鍒骇鍝佷负澶栬喘/杞敭锛屽彲鍦ㄩ攢鍞鍗曟槑缁嗕腑鎶娿�岄渶瑕佺敓浜с�嶆敼涓哄惁銆�
-                    item.setNeedProduction(1);
+                    // 鍙湁浜у搧鎵嶈繘鍏ョ敓浜ц鍒掞紱娓╂帶绛夊璐墿鏂欏彲闅忓悎鍚岃繘鍏ラ攢鍞鍗曪紝
+                    // 浣嗕笉鑳藉垱寤� MPS锛屽惁鍒欎細瀵艰嚧鏁寸瑪閿�鍞鍗曞鎵瑰洖婊氥��
+                    MdmItemRespDTO mdmItem = itemMap.get(cp.getItemId());
+                    item.setNeedProduction(mdmItem != null && MdmItemTypeEnum.isProduct(mdmItem.getItemType()) ? 1 : 0);
                     return item;
                 })
                 .toList();

--
Gitblit v1.9.3