From 9825c84189da0bf776611e5259eb93444dc54568 Mon Sep 17 00:00:00 2001
From: “wangming” <“wangming@antissoft.com”>
Date: Fri, 14 Nov 2025 21:04:29 +0800
Subject: [PATCH] 修复健康师统计和科技部老师统计问题:1.修复GetTechTeacherDailyStatistics方法中用户名称为空的问题 2.修复健康师统计中ProjectCount字段小数丢失问题
---
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/HealthCoachStatisticsOutput.cs | 2 +-
netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs | 35 ++++++++++++++++++++++++++++++++++-
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs | 4 ++--
3 files changed, 37 insertions(+), 4 deletions(-)
diff --git a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/HealthCoachStatisticsOutput.cs b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/HealthCoachStatisticsOutput.cs
index 43973dd..76e94d3 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/HealthCoachStatisticsOutput.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/HealthCoachStatisticsOutput.cs
@@ -78,6 +78,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb
///
/// 消耗项目数 - 统计该健康师在指定时间周期内消耗的项目总次数
///
- public int projectCount { get; set; }
+ public decimal projectCount { get; set; }
}
}
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
index fc78e8d..9f0cdb0 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
@@ -1157,11 +1157,13 @@ namespace NCC.Extend
techDept.F_Id as TechDepartmentId,
techDept.F_FullName as TechDepartmentName,
ord.kjbls as TeacherId,
+ MAX(user.F_RealName) as TeacherName,
SUM(ord.kjblsyj) as OrderAchievement
FROM lq_kd_kjbsyj ord
INNER JOIN lq_kd_kdjlb kdjlb ON ord.glkdbh = kdjlb.F_Id
INNER JOIN lq_mdxx store ON kdjlb.djmd = store.F_Id
LEFT JOIN base_organize techDept ON store.kjb = techDept.F_Id
+ LEFT JOIN BASE_USER user ON ord.kjbls = user.F_Id
WHERE ord.F_IsEffective = 1
AND kdjlb.F_IsEffective = 1
AND DATE(kdjlb.kdrq) >= '{startDate:yyyy-MM-dd}'
@@ -1260,13 +1262,21 @@ namespace NCC.Extend
TechDepartmentId = techDeptId,
TechDepartmentName = techDeptName,
TeacherId = teacherId,
- TeacherName = null,
+ TeacherName = item.TeacherName?.ToString(),
CustomerCount = 0,
ConsumeProjectCount = 0,
ConsumeAchievement = 0,
OrderAchievement = 0
};
}
+ else
+ {
+ // 如果消耗数据中有,但名称为空,尝试从开单数据中获取
+ if (string.IsNullOrEmpty(teacherDict[teacherId].TeacherName))
+ {
+ teacherDict[teacherId].TeacherName = item.TeacherName?.ToString();
+ }
+ }
teacherDict[teacherId].OrderAchievement += orderAchievement;
}
@@ -1374,6 +1384,29 @@ namespace NCC.Extend
teacherDict[teacherId].CustomerCount = Convert.ToInt32(item.CustomerCount);
}
}
+
+ // 第五步:统一查询所有用户名称,确保所有用户都能获取到名称
+ var teacherNamesSql = $@"
+ SELECT
+ F_Id as TeacherId,
+ F_RealName as TeacherName
+ FROM BASE_USER
+ WHERE F_Id IN ('{teacherIdsStr}')";
+
+ var teacherNamesResult = await _db.Ado.SqlQueryAsync(teacherNamesSql);
+ foreach (var item in teacherNamesResult ?? Enumerable.Empty())
+ {
+ var teacherId = item.TeacherId?.ToString();
+ var teacherName = item.TeacherName?.ToString();
+ if (!string.IsNullOrEmpty(teacherId) && teacherDict.ContainsKey(teacherId))
+ {
+ // 如果名称为空,则填充;如果已有名称,保持不变
+ if (string.IsNullOrEmpty(teacherDict[teacherId].TeacherName) && !string.IsNullOrEmpty(teacherName))
+ {
+ teacherDict[teacherId].TeacherName = teacherName;
+ }
+ }
+ }
}
var outputList = teacherDict.Values
diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
index 11e4fb7..2006ffc 100644
--- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
+++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
@@ -3071,7 +3071,7 @@ namespace NCC.Extend.LqKdKdjlb
COALESCE(consume_stats.ConsumeAmount, 0) as ConsumeAmount,
COALESCE(consume_stats.HeadCount, 0) as HeadCount,
COALESCE(consume_stats.PersonCount, 0) as PersonCount,
- COALESCE(consume_stats.ProjectCount, 0) as ProjectCount
+ CAST(COALESCE(consume_stats.ProjectCount, 0) AS DECIMAL(18,2)) as ProjectCount
FROM BASE_USER u
LEFT JOIN lq_mdxx md ON u.F_MDID = md.F_Id
@@ -3135,7 +3135,7 @@ namespace NCC.Extend.LqKdKdjlb
SUM(jksyj.jksyj) as ConsumeAmount,
COUNT(DISTINCT hyhk.hy) as HeadCount,
COUNT(DISTINCT CONCAT(jksyj.jkszh, '_', hyhk.hy, '_', DATE(hyhk.hksj))) as PersonCount,
- SUM(jksyj.F_kdpxNumber) as ProjectCount
+ CAST(SUM(jksyj.F_kdpxNumber) AS DECIMAL(18,2)) as ProjectCount
FROM lq_xh_jksyj jksyj
INNER JOIN lq_xh_hyhk hyhk ON jksyj.glkdbh = hyhk.F_Id
WHERE jksyj.jkszh IS NOT NULL
--
libgit2 0.21.4