Commit 9825c84189da0bf776611e5259eb93444dc54568
1 parent
2f7e426f
修复健康师统计和科技部老师统计问题:1.修复GetTechTeacherDailyStatistics方法中用户名称为空的问题 2.修复健康师统计中ProjectCount字段小数丢失问题
Showing
3 changed files
with
37 additions
and
4 deletions
netcore/src/Modularity/Extend/NCC.Extend.Entitys/Dto/LqKdKdjlb/HealthCoachStatisticsOutput.cs
| @@ -78,6 +78,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | @@ -78,6 +78,6 @@ namespace NCC.Extend.Entitys.Dto.LqKdKdjlb | ||
| 78 | /// <summary> | 78 | /// <summary> |
| 79 | /// 消耗项目数 - 统计该健康师在指定时间周期内消耗的项目总次数 | 79 | /// 消耗项目数 - 统计该健康师在指定时间周期内消耗的项目总次数 |
| 80 | /// </summary> | 80 | /// </summary> |
| 81 | - public int projectCount { get; set; } | 81 | + public decimal projectCount { get; set; } |
| 82 | } | 82 | } |
| 83 | } | 83 | } |
netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
| @@ -1157,11 +1157,13 @@ namespace NCC.Extend | @@ -1157,11 +1157,13 @@ namespace NCC.Extend | ||
| 1157 | techDept.F_Id as TechDepartmentId, | 1157 | techDept.F_Id as TechDepartmentId, |
| 1158 | techDept.F_FullName as TechDepartmentName, | 1158 | techDept.F_FullName as TechDepartmentName, |
| 1159 | ord.kjbls as TeacherId, | 1159 | ord.kjbls as TeacherId, |
| 1160 | + MAX(user.F_RealName) as TeacherName, | ||
| 1160 | SUM(ord.kjblsyj) as OrderAchievement | 1161 | SUM(ord.kjblsyj) as OrderAchievement |
| 1161 | FROM lq_kd_kjbsyj ord | 1162 | FROM lq_kd_kjbsyj ord |
| 1162 | INNER JOIN lq_kd_kdjlb kdjlb ON ord.glkdbh = kdjlb.F_Id | 1163 | INNER JOIN lq_kd_kdjlb kdjlb ON ord.glkdbh = kdjlb.F_Id |
| 1163 | INNER JOIN lq_mdxx store ON kdjlb.djmd = store.F_Id | 1164 | INNER JOIN lq_mdxx store ON kdjlb.djmd = store.F_Id |
| 1164 | LEFT JOIN base_organize techDept ON store.kjb = techDept.F_Id | 1165 | LEFT JOIN base_organize techDept ON store.kjb = techDept.F_Id |
| 1166 | + LEFT JOIN BASE_USER user ON ord.kjbls = user.F_Id | ||
| 1165 | WHERE ord.F_IsEffective = 1 | 1167 | WHERE ord.F_IsEffective = 1 |
| 1166 | AND kdjlb.F_IsEffective = 1 | 1168 | AND kdjlb.F_IsEffective = 1 |
| 1167 | AND DATE(kdjlb.kdrq) >= '{startDate:yyyy-MM-dd}' | 1169 | AND DATE(kdjlb.kdrq) >= '{startDate:yyyy-MM-dd}' |
| @@ -1260,13 +1262,21 @@ namespace NCC.Extend | @@ -1260,13 +1262,21 @@ namespace NCC.Extend | ||
| 1260 | TechDepartmentId = techDeptId, | 1262 | TechDepartmentId = techDeptId, |
| 1261 | TechDepartmentName = techDeptName, | 1263 | TechDepartmentName = techDeptName, |
| 1262 | TeacherId = teacherId, | 1264 | TeacherId = teacherId, |
| 1263 | - TeacherName = null, | 1265 | + TeacherName = item.TeacherName?.ToString(), |
| 1264 | CustomerCount = 0, | 1266 | CustomerCount = 0, |
| 1265 | ConsumeProjectCount = 0, | 1267 | ConsumeProjectCount = 0, |
| 1266 | ConsumeAchievement = 0, | 1268 | ConsumeAchievement = 0, |
| 1267 | OrderAchievement = 0 | 1269 | OrderAchievement = 0 |
| 1268 | }; | 1270 | }; |
| 1269 | } | 1271 | } |
| 1272 | + else | ||
| 1273 | + { | ||
| 1274 | + // 如果消耗数据中有,但名称为空,尝试从开单数据中获取 | ||
| 1275 | + if (string.IsNullOrEmpty(teacherDict[teacherId].TeacherName)) | ||
| 1276 | + { | ||
| 1277 | + teacherDict[teacherId].TeacherName = item.TeacherName?.ToString(); | ||
| 1278 | + } | ||
| 1279 | + } | ||
| 1270 | 1280 | ||
| 1271 | teacherDict[teacherId].OrderAchievement += orderAchievement; | 1281 | teacherDict[teacherId].OrderAchievement += orderAchievement; |
| 1272 | } | 1282 | } |
| @@ -1374,6 +1384,29 @@ namespace NCC.Extend | @@ -1374,6 +1384,29 @@ namespace NCC.Extend | ||
| 1374 | teacherDict[teacherId].CustomerCount = Convert.ToInt32(item.CustomerCount); | 1384 | teacherDict[teacherId].CustomerCount = Convert.ToInt32(item.CustomerCount); |
| 1375 | } | 1385 | } |
| 1376 | } | 1386 | } |
| 1387 | + | ||
| 1388 | + // 第五步:统一查询所有用户名称,确保所有用户都能获取到名称 | ||
| 1389 | + var teacherNamesSql = $@" | ||
| 1390 | + SELECT | ||
| 1391 | + F_Id as TeacherId, | ||
| 1392 | + F_RealName as TeacherName | ||
| 1393 | + FROM BASE_USER | ||
| 1394 | + WHERE F_Id IN ('{teacherIdsStr}')"; | ||
| 1395 | + | ||
| 1396 | + var teacherNamesResult = await _db.Ado.SqlQueryAsync<dynamic>(teacherNamesSql); | ||
| 1397 | + foreach (var item in teacherNamesResult ?? Enumerable.Empty<dynamic>()) | ||
| 1398 | + { | ||
| 1399 | + var teacherId = item.TeacherId?.ToString(); | ||
| 1400 | + var teacherName = item.TeacherName?.ToString(); | ||
| 1401 | + if (!string.IsNullOrEmpty(teacherId) && teacherDict.ContainsKey(teacherId)) | ||
| 1402 | + { | ||
| 1403 | + // 如果名称为空,则填充;如果已有名称,保持不变 | ||
| 1404 | + if (string.IsNullOrEmpty(teacherDict[teacherId].TeacherName) && !string.IsNullOrEmpty(teacherName)) | ||
| 1405 | + { | ||
| 1406 | + teacherDict[teacherId].TeacherName = teacherName; | ||
| 1407 | + } | ||
| 1408 | + } | ||
| 1409 | + } | ||
| 1377 | } | 1410 | } |
| 1378 | 1411 | ||
| 1379 | var outputList = teacherDict.Values | 1412 | var outputList = teacherDict.Values |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| @@ -3071,7 +3071,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -3071,7 +3071,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 3071 | COALESCE(consume_stats.ConsumeAmount, 0) as ConsumeAmount, | 3071 | COALESCE(consume_stats.ConsumeAmount, 0) as ConsumeAmount, |
| 3072 | COALESCE(consume_stats.HeadCount, 0) as HeadCount, | 3072 | COALESCE(consume_stats.HeadCount, 0) as HeadCount, |
| 3073 | COALESCE(consume_stats.PersonCount, 0) as PersonCount, | 3073 | COALESCE(consume_stats.PersonCount, 0) as PersonCount, |
| 3074 | - COALESCE(consume_stats.ProjectCount, 0) as ProjectCount | 3074 | + CAST(COALESCE(consume_stats.ProjectCount, 0) AS DECIMAL(18,2)) as ProjectCount |
| 3075 | 3075 | ||
| 3076 | FROM BASE_USER u | 3076 | FROM BASE_USER u |
| 3077 | LEFT JOIN lq_mdxx md ON u.F_MDID = md.F_Id | 3077 | LEFT JOIN lq_mdxx md ON u.F_MDID = md.F_Id |
| @@ -3135,7 +3135,7 @@ namespace NCC.Extend.LqKdKdjlb | @@ -3135,7 +3135,7 @@ namespace NCC.Extend.LqKdKdjlb | ||
| 3135 | SUM(jksyj.jksyj) as ConsumeAmount, | 3135 | SUM(jksyj.jksyj) as ConsumeAmount, |
| 3136 | COUNT(DISTINCT hyhk.hy) as HeadCount, | 3136 | COUNT(DISTINCT hyhk.hy) as HeadCount, |
| 3137 | COUNT(DISTINCT CONCAT(jksyj.jkszh, '_', hyhk.hy, '_', DATE(hyhk.hksj))) as PersonCount, | 3137 | COUNT(DISTINCT CONCAT(jksyj.jkszh, '_', hyhk.hy, '_', DATE(hyhk.hksj))) as PersonCount, |
| 3138 | - SUM(jksyj.F_kdpxNumber) as ProjectCount | 3138 | + CAST(SUM(jksyj.F_kdpxNumber) AS DECIMAL(18,2)) as ProjectCount |
| 3139 | FROM lq_xh_jksyj jksyj | 3139 | FROM lq_xh_jksyj jksyj |
| 3140 | INNER JOIN lq_xh_hyhk hyhk ON jksyj.glkdbh = hyhk.F_Id | 3140 | INNER JOIN lq_xh_hyhk hyhk ON jksyj.glkdbh = hyhk.F_Id |
| 3141 | WHERE jksyj.jkszh IS NOT NULL | 3141 | WHERE jksyj.jkszh IS NOT NULL |