Commit 9825c84189da0bf776611e5259eb93444dc54568

Authored by “wangming”
1 parent 2f7e426f

修复健康师统计和科技部老师统计问题:1.修复GetTechTeacherDailyStatistics方法中用户名称为空的问题 2.修复健康师统计中ProjectCount字段小数丢失问题

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