From 25787cbabe4e19b455edde69f2c30011bffa61dd Mon Sep 17 00:00:00 2001 From: kangwenjing <1138819403@qq.com> Date: Mon, 20 Apr 2026 10:13:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=BB=9F=E8=AE=A1=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/unis/crm/mapper/DashboardMapper.java | 8 +++++++- .../crm/service/impl/DashboardServiceImpl.java | 15 +++++++++++---- .../mapper/dashboard/DashboardMapper.xml | 10 +++++----- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/com/unis/crm/mapper/DashboardMapper.java b/backend/src/main/java/com/unis/crm/mapper/DashboardMapper.java index 6a00e1c3..ea9f93e2 100644 --- a/backend/src/main/java/com/unis/crm/mapper/DashboardMapper.java +++ b/backend/src/main/java/com/unis/crm/mapper/DashboardMapper.java @@ -17,7 +17,13 @@ public interface DashboardMapper { UserWelcomeDTO selectUserWelcome(@Param("userId") Long userId); @DataScope(tableAlias = "o", ownerColumn = "owner_user_id") - List selectOpportunityStats(@Param("userId") Long userId); + DashboardStatDTO selectMonthlyOpportunityStat(@Param("userId") Long userId); + + @DataScope(tableAlias = "o", ownerColumn = "owner_user_id") + DashboardStatDTO selectPushedOmsProjectsStat(@Param("userId") Long userId); + + @DataScope(tableAlias = "o", ownerColumn = "owner_user_id") + DashboardStatDTO selectMonthlyWonOpportunityStat(@Param("userId") Long userId); @DataScope(tableAlias = "c", ownerColumn = "owner_user_id") DashboardStatDTO selectMonthlyChannelStat(@Param("userId") Long userId); diff --git a/backend/src/main/java/com/unis/crm/service/impl/DashboardServiceImpl.java b/backend/src/main/java/com/unis/crm/service/impl/DashboardServiceImpl.java index 65383a52..e5dfb309 100644 --- a/backend/src/main/java/com/unis/crm/service/impl/DashboardServiceImpl.java +++ b/backend/src/main/java/com/unis/crm/service/impl/DashboardServiceImpl.java @@ -49,11 +49,12 @@ public class DashboardServiceImpl implements DashboardService { throw new BusinessException("未找到当前用户对应数据"); } - List stats = new ArrayList<>(dashboardMapper.selectOpportunityStats(userId)); + List stats = new ArrayList<>(); + addStatIfPresent(stats, dashboardMapper.selectMonthlyOpportunityStat(userId)); + addStatIfPresent(stats, dashboardMapper.selectPushedOmsProjectsStat(userId)); + addStatIfPresent(stats, dashboardMapper.selectMonthlyWonOpportunityStat(userId)); DashboardStatDTO monthlyChannelStat = dashboardMapper.selectMonthlyChannelStat(userId); - if (monthlyChannelStat != null) { - stats.add(monthlyChannelStat); - } + addStatIfPresent(stats, monthlyChannelStat); Set permissionCodes = loadPermissionCodes(userId); boolean todoCardVisible = permissionCodes.contains(DASHBOARD_TODO_CARD_VIEW_PERMISSION); boolean activityCardVisible = permissionCodes.contains(DASHBOARD_ACTIVITY_CARD_VIEW_PERMISSION); @@ -124,6 +125,12 @@ public class DashboardServiceImpl implements DashboardService { return activities; } + private void addStatIfPresent(List stats, DashboardStatDTO stat) { + if (stat != null) { + stats.add(stat); + } + } + private void enrichActivityTimeText(List activities) { if (activities == null || activities.isEmpty()) { return; diff --git a/backend/src/main/resources/mapper/dashboard/DashboardMapper.xml b/backend/src/main/resources/mapper/dashboard/DashboardMapper.xml index 060c294b..0db27aef 100644 --- a/backend/src/main/resources/mapper/dashboard/DashboardMapper.xml +++ b/backend/src/main/resources/mapper/dashboard/DashboardMapper.xml @@ -43,23 +43,23 @@ limit 1 - select '本月新增商机' as name, coalesce(round(sum(o.amount) / 10000.0, 2), 0)::numeric as value, 'monthlyOpportunities' as metricKey from crm_opportunity o where date_trunc('month', o.created_at) = date_trunc('month', now()) + - union all - + - union all - +