diff --git a/Tiobon.Core.Model/View/Ghre/Ghre_OpenClassFeedback.Dto.View.cs b/Tiobon.Core.Model/View/Ghre/Ghre_OpenClassFeedback.Dto.View.cs index 187c3d3d..1176cc1a 100644 --- a/Tiobon.Core.Model/View/Ghre/Ghre_OpenClassFeedback.Dto.View.cs +++ b/Tiobon.Core.Model/View/Ghre/Ghre_OpenClassFeedback.Dto.View.cs @@ -36,5 +36,15 @@ public class Ghre_OpenClassFeedbackDto : Ghre_OpenClassFeedback public string CourseName { get; set; } public string ExpiryTime1 { get; set; } public string TeacherName { get; set; } - + public string TeacherDeptName { get; set; } + public string CourseSceneName { get; set; } + + public decimal? StandardHour { get; set; } + public decimal? StandardDuration { get; set; } + + public string OpenClassStartEndTime { get; set; } + public string OpenClassExamStartEndTime { get; set; } + public string CourseBeginEndTime { get; set; } + + } diff --git a/Tiobon.Core.Services/Ghre/Ghre_OpenClassFeedbackServices.cs b/Tiobon.Core.Services/Ghre/Ghre_OpenClassFeedbackServices.cs index 937cb941..c6dbcd83 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_OpenClassFeedbackServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_OpenClassFeedbackServices.cs @@ -17,6 +17,7 @@ public class Ghre_OpenClassFeedbackServices : BaseServices x.OpenClassId).ToList(); var staffIds = result.result.DT_TableDataT1.Where(x => x.StaffId != null).Select(x => x.StaffId.Value).Distinct().ToList(); var teacherIds = result.result.DT_TableDataT1.Where(x => x.TeacherId != null).Select(x => x.TeacherId.Value).Distinct().ToList(); var openClassIds = result.result.DT_TableDataT1.Where(x => x.OpenClassId != null).Select(x => x.OpenClassId.Value).Distinct().ToList(); @@ -28,29 +29,60 @@ public class Ghre_OpenClassFeedbackServices : BaseServices staffIds.Contains(x.StaffID)).Select(x => new { x.StaffID, x.StaffNo, x.StaffName }).ToListAsync(); var openClasss = await Db.Queryable() - .Where(x => openClassIds.Contains(x.Id)).Select(x => new { x.Id, x.OpenClassName }).ToListAsync(); + .Where(x => openClassIds.Contains(x.Id)).Select(x => new { x.Id, x.OpenClassName, x.StartTime, x.EndTime, x.ExamEndTime, x.ExamStartTime }).ToListAsync(); var courses = await Db.Queryable() - .Where(x => courseIds.Contains(x.Id)).Select(x => new { x.Id, x.CourseName }).ToListAsync(); + .Where(x => courseIds.Contains(x.Id)).Select(x => new { x.Id, x.CourseName, x.CourseNo, x.StandardHour }).ToListAsync(); + + var courseScenes = await Db.Queryable() + .Where(x => courseIds.Contains(x.Id)).Select(x => new { x.Id, x.SceneName, x.SceneNo, x.StandardHour }).ToListAsync(); var teachers = await Db.Queryable() - .Where(x => teacherIds.Contains(x.Id)).Select(x => new { x.Id, x.TeacherName }).ToListAsync(); + .Where(x => teacherIds.Contains(x.Id)).Select(x => new { x.Id, x.TeacherName, x.DeptID }).ToListAsync(); + var studyRecords = await Db.Queryable() + .Where(x => x.OpenClassId != null && openClassIds.Contains(x.OpenClassId.Value)) + .Select(x => new { x.Id, x.StandardDuration, x.OpenClassId }).ToListAsync(); for (int i = 0; i < result.result.DT_TableDataT1.Count; i++) { + var DT_TableDataT1 = result.result.DT_TableDataT1[i]; + var openClass = openClasss.Where(x => x.Id == DT_TableDataT1.OpenClassId).FirstOrDefault(); + if (DT_TableDataT1.StaffId != null) DT_TableDataT1.StaffName = staffs.Where(x => x.StaffID == DT_TableDataT1.StaffId).FirstOrDefault()?.StaffName; if (DT_TableDataT1.OpenClassId != null) - DT_TableDataT1.OpenClassName = openClasss.Where(x => x.Id == DT_TableDataT1.OpenClassId).FirstOrDefault()?.OpenClassName; + DT_TableDataT1.OpenClassName = openClass?.OpenClassName; if (DT_TableDataT1.CourseId != null) - DT_TableDataT1.CourseName = courses.Where(x => x.Id == DT_TableDataT1.CourseId).FirstOrDefault()?.CourseName; + { + var course = courses.Where(x => x.Id == DT_TableDataT1.CourseId).FirstOrDefault(); + if (course != null) + { + DT_TableDataT1.CourseName = $"{course?.CourseName}({course?.CourseNo})"; + DT_TableDataT1.StandardHour = course?.StandardHour; + + } + + var courseScene = courseScenes.Where(x => x.Id == DT_TableDataT1.CourseId).FirstOrDefault(); + if (courseScene != null) + { + DT_TableDataT1.CourseSceneName = $"{courseScene?.SceneName}({courseScene?.SceneNo})"; + DT_TableDataT1.StandardHour = courseScene?.StandardHour; + + } + } if (DT_TableDataT1.TeacherId != null) - DT_TableDataT1.TeacherName = teachers.Where(x => x.Id == DT_TableDataT1.TeacherId).FirstOrDefault()?.TeacherName; + { + var teacher = teachers.Where(x => x.Id == DT_TableDataT1.TeacherId).FirstOrDefault(); + DT_TableDataT1.TeacherName = teacher?.TeacherName; + if (teacher != null && teacher.DeptID != null) + DT_TableDataT1.TeacherDeptName = await Db.Queryable() + .Where(x => x.DeptID == teacher.DeptID).Select(x => x.DeptName).FirstAsync(); + } if (DT_TableDataT1.ExpiryTime != null) { @@ -60,6 +92,18 @@ public class Ghre_OpenClassFeedbackServices : BaseServices x.OpenClassId == DT_TableDataT1.Id).FirstOrDefault(); + if (studyRecord != null) + DT_TableDataT1.StandardDuration = studyRecord.StandardDuration; + if (openClass != null) + { + DT_TableDataT1.OpenClassStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(openClass.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(openClass.EndTime)}"; + DT_TableDataT1.OpenClassExamStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(openClass.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(openClass.ExamEndTime)}"; + + } + + DT_TableDataT1.CourseBeginEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.CourseBeginTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.CourseEndTime)}"; result.result.DT_TableDataT1[i] = DT_TableDataT1; } return result;