From 88e384da863bb2f7324cb1e1474885df3b7cce91 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期一, 13 七月 2026 11:27:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business' into dev_business

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java
index 904357e..433648b 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/receivable/CrmReceivableMapper.java
@@ -94,4 +94,35 @@
         return selectCount(CrmReceivableDO::getContractId, contractId);
     }
 
+    // ========== 缁熻鏂规硶 ==========
+
+    default BigDecimal selectReceivablePriceSum() {
+        LambdaQueryWrapperX<CrmReceivableDO> query = new LambdaQueryWrapperX<>();
+        query.in(CrmReceivableDO::getAuditStatus,
+                CrmAuditStatusEnum.DRAFT.getStatus(),
+                CrmAuditStatusEnum.PROCESS.getStatus(),
+                CrmAuditStatusEnum.APPROVE.getStatus())
+                .select(CrmReceivableDO::getPrice);
+        List<CrmReceivableDO> list = selectList(query);
+        return list.stream()
+                .map(CrmReceivableDO::getPrice)
+                .filter(p -> p != null)
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+    }
+
+    default BigDecimal selectReceivablePriceSumByOwnerUserId(Long ownerUserId) {
+        LambdaQueryWrapperX<CrmReceivableDO> query = new LambdaQueryWrapperX<>();
+        query.eq(CrmReceivableDO::getOwnerUserId, ownerUserId)
+                .in(CrmReceivableDO::getAuditStatus,
+                        CrmAuditStatusEnum.DRAFT.getStatus(),
+                        CrmAuditStatusEnum.PROCESS.getStatus(),
+                        CrmAuditStatusEnum.APPROVE.getStatus())
+                .select(CrmReceivableDO::getPrice);
+        List<CrmReceivableDO> list = selectList(query);
+        return list.stream()
+                .map(CrmReceivableDO::getPrice)
+                .filter(p -> p != null)
+                .reduce(BigDecimal.ZERO, BigDecimal::add);
+    }
+
 }

--
Gitblit v1.9.3