From 080bd844c675f03e8e519091b5bf7ac836405249 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 4 Sep 2025 18:48:24 +0700 Subject: [PATCH] =?UTF-8?q?api=20=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=87?= =?UTF-8?q?=E0=B8=B2=E0=B8=99=E0=B8=9C=E0=B8=A5=E0=B8=84=E0=B8=B0=E0=B9=81?= =?UTF-8?q?=E0=B8=99=E0=B8=99=E0=B8=81=E0=B8=B2=E0=B8=A3=E0=B8=AA=E0=B8=AD?= =?UTF-8?q?=E0=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/RecruitController.cs | 77 ++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/Controllers/RecruitController.cs b/Controllers/RecruitController.cs index 7a2f04d..bf36423 100644 --- a/Controllers/RecruitController.cs +++ b/Controllers/RecruitController.cs @@ -1084,6 +1084,7 @@ namespace BMA.EHR.Recruit.Service.Controllers r.Religion = workSheet?.Cells[row, 10]?.GetValue() ?? ""; r.DateOfBirth = !string.IsNullOrWhiteSpace(workSheet?.Cells[row, 11]?.GetValue()) ? _recruitService.CheckDateTime(workSheet?.Cells[row, 11]?.GetValue() ?? "", "dd/MM/yyyy") : DateTime.MinValue; r.CitizenId = workSheet?.Cells[row, 12]?.GetValue() ?? ""; + r.typeTest = workSheet?.Cells[row, 13]?.GetValue() ?? ""; r.Marry = workSheet?.Cells[row, 9999]?.GetValue() ?? ""; r.Isspecial = "N"; r.CitizenCardIssuer = workSheet?.Cells[row, 9999]?.GetValue() ?? ""; @@ -2495,6 +2496,82 @@ namespace BMA.EHR.Recruit.Service.Controllers return Error(ex); } } + + /// + /// ผลคะแนนผู้สมัครสอบ + /// + /// รหัสรอบการสอบแข่งขัน + /// เลขประจำตัวสอบ + /// + /// เมื่อทำการอ่านข้อมูลจำนวนผู้สอบผ่านแข่งขันเพื่อบรรจุเข้ารับราชการเป็นข้าราชการ กทม. สามัญสำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("report/exam/{id:length(36)}/{examId}"), DisableRequestSizeLimit] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetReportExamResultByPersonAsync(Guid id, string examId) + { + try + { + var data = await _context.Recruits.AsQueryable() + .Include(x => x.RecruitImport) + .Where(x => x.RecruitImport!.Id == id) + .Where(x => x.ExamId == examId) + .Join(_context.RecruitScores.AsQueryable() + .Include(x => x.ScoreImport), + rc => new { rc.RecruitImport!.Id, rc.ExamId }, + sc => new { Id = sc.ScoreImport!.RecruitImportId, sc.ExamId }, + (p, sr) => new + { + ExamID = p.ExamId != null ? p.ExamId.ToThaiNumber() : "", + CitizenId = p.CitizenId != null ? p.CitizenId.ToThaiNumber() : "", + FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", + DateOfBirth = p.DateOfBirth != null + ? p.DateOfBirth != DateTime.MinValue + ? p.DateOfBirth.ToThaiShortDate().ToString().ToThaiNumber() + : "" + : "", + Gender = p.Gendor, + Degree = p.Educations.First().Degree, + Major = p.Educations.First().Major, + University = p.Educations.First().University, + PositionName = p.PositionName, + ExamName = $"{p.RecruitImport!.Name} ครั้งที่ {p.RecruitImport.Order}/{p.RecruitImport.Year.ToThaiYear()}".ToThaiNumber(), + + ExamCount = _recruitService.GetExamCount(p.CitizenId).ToString().ToThaiNumber(), + type = p.typeTest == "bangkok" ? "กทม." : p.typeTest == "ocsc" ? "ก.พ." : "", + FA = sr.FullA != null ? sr.FullA.ToString().ToThaiNumber() : "", + SA = sr.SumA != null ? sr.SumA.ToString().ToThaiNumber() : "", + FC = sr.FullC != null ? sr.FullC.ToString().ToThaiNumber() : "", + SC = sr.SumC != null ? sr.SumC.ToString().ToThaiNumber() : "", + FD = sr.FullD != null ? sr.FullD.ToString().ToThaiNumber() : "", + SD = sr.SumD != null ? sr.SumD.ToString().ToThaiNumber() : "", + F = sr.FullScore != null ? sr.FullScore.ToString().ToThaiNumber() : "", + T = sr.TotalScore != null ? sr.TotalScore.ToString().ToThaiNumber() : "", + Result = sr.ExamStatus, + Number = sr.Number != null ? sr.Number.ToString().ToThaiNumber() : "", + Expire = p.RecruitImport.AnnouncementDate == null + ? "" + : p.RecruitImport.AnnouncementDate != DateTime.MinValue + ? p.RecruitImport.AnnouncementDate.Value.AddYears(2).ToThaiShortDate().ToString().ToThaiNumber() + : "", + }) + .FirstOrDefaultAsync(); + + var result = new + { + template = "recruit-exam", + reportName = "recruit-exam", + data = data + }; + return Success(result); + } + catch (Exception ex) + { + return Error(ex); + } + } #endregion #endregion