From f02d0df2f1dfc7a8b775cf50d45375e57628a5ef Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 10 十一月 2026 11:26:22 +0800
Subject: [PATCH] feat(ncr): 完善NCR处置联动逻辑与关闭校验

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java |   15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
index c27e561..60dbd91 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivablePlanMapper.java
@@ -23,6 +23,16 @@
 @Mapper
 public interface CrmReceivablePlanMapper extends BaseMapperX<CrmReceivablePlanDO> {
 
+    /**
+     * 鏌ヨ寮�绁ㄥ崟鐢熸垚鐨勬敹娆捐妭鐐�
+     */
+    default java.util.List<CrmReceivablePlanDO> selectListByInvoiceId(Long invoiceId) {
+        return selectList(new cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX<CrmReceivablePlanDO>()
+                .eq(CrmReceivablePlanDO::getInvoiceId, invoiceId)
+                .orderByAsc(CrmReceivablePlanDO::getStage)
+                .orderByAsc(CrmReceivablePlanDO::getId));
+    }
+
     default CrmReceivablePlanDO selectMaxPeriodByContractId(Long contractId) {
         return selectOne(new MPJLambdaWrapperX<CrmReceivablePlanDO>()
                 .eq(CrmReceivablePlanDO::getContractId, contractId)
@@ -78,11 +88,10 @@
         // 鎴戣礋璐g殑 + 闈炲叕娴�
         CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_RECEIVABLE_PLAN.getType(),
                 CrmReceivablePlanDO::getId, userId, CrmSceneTypeEnum.OWNER.getType());
-        // 鏈洖娆� + 宸查�炬湡 + 浠婂ぉ寮�濮嬫彁閱�
+        // 涓庡緟鍥炴鎻愰啋鍒楄〃涓�鑷达細鏈洖娆撅紝涓斿凡鍒版彁閱掓棩鏈燂紝涓嶈姹傚凡缁忛�炬湡銆�
         LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now());
         query.isNull(CrmReceivablePlanDO::getReceivableId) // 鏈洖娆�
-                .lt(CrmReceivablePlanDO::getReturnTime, beginOfToday) // 宸查�炬湡
-                .lt(CrmReceivablePlanDO::getRemindTime, beginOfToday); // 浠婂ぉ寮�濮嬫彁閱�
+                .le(CrmReceivablePlanDO::getRemindTime, beginOfToday); // 鍖呭惈浠婂ぉ寮�濮嬫彁閱�
         return selectCount(query);
     }
 

--
Gitblit v1.9.3