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
netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
| ... | ... | @@ -1157,11 +1157,13 @@ namespace NCC.Extend |
| 1157 | 1157 | techDept.F_Id as TechDepartmentId, |
| 1158 | 1158 | techDept.F_FullName as TechDepartmentName, |
| 1159 | 1159 | ord.kjbls as TeacherId, |
| 1160 | + MAX(user.F_RealName) as TeacherName, | |
| 1160 | 1161 | SUM(ord.kjblsyj) as OrderAchievement |
| 1161 | 1162 | FROM lq_kd_kjbsyj ord |
| 1162 | 1163 | INNER JOIN lq_kd_kdjlb kdjlb ON ord.glkdbh = kdjlb.F_Id |
| 1163 | 1164 | INNER JOIN lq_mdxx store ON kdjlb.djmd = store.F_Id |
| 1164 | 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 | 1167 | WHERE ord.F_IsEffective = 1 |
| 1166 | 1168 | AND kdjlb.F_IsEffective = 1 |
| 1167 | 1169 | AND DATE(kdjlb.kdrq) >= '{startDate:yyyy-MM-dd}' |
| ... | ... | @@ -1260,13 +1262,21 @@ namespace NCC.Extend |
| 1260 | 1262 | TechDepartmentId = techDeptId, |
| 1261 | 1263 | TechDepartmentName = techDeptName, |
| 1262 | 1264 | TeacherId = teacherId, |
| 1263 | - TeacherName = null, | |
| 1265 | + TeacherName = item.TeacherName?.ToString(), | |
| 1264 | 1266 | CustomerCount = 0, |
| 1265 | 1267 | ConsumeProjectCount = 0, |
| 1266 | 1268 | ConsumeAchievement = 0, |
| 1267 | 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 | 1281 | teacherDict[teacherId].OrderAchievement += orderAchievement; |
| 1272 | 1282 | } |
| ... | ... | @@ -1374,6 +1384,29 @@ namespace NCC.Extend |
| 1374 | 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 | 1412 | var outputList = teacherDict.Values | ... | ... |
netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs
| ... | ... | @@ -3071,7 +3071,7 @@ namespace NCC.Extend.LqKdKdjlb |
| 3071 | 3071 | COALESCE(consume_stats.ConsumeAmount, 0) as ConsumeAmount, |
| 3072 | 3072 | COALESCE(consume_stats.HeadCount, 0) as HeadCount, |
| 3073 | 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 | 3076 | FROM BASE_USER u |
| 3077 | 3077 | LEFT JOIN lq_mdxx md ON u.F_MDID = md.F_Id |
| ... | ... | @@ -3135,7 +3135,7 @@ namespace NCC.Extend.LqKdKdjlb |
| 3135 | 3135 | SUM(jksyj.jksyj) as ConsumeAmount, |
| 3136 | 3136 | COUNT(DISTINCT hyhk.hy) as HeadCount, |
| 3137 | 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 | 3139 | FROM lq_xh_jksyj jksyj |
| 3140 | 3140 | INNER JOIN lq_xh_hyhk hyhk ON jksyj.glkdbh = hyhk.F_Id |
| 3141 | 3141 | WHERE jksyj.jkszh IS NOT NULL | ... | ... |