From 2195624d6fe5eb0095fd2c9a5b04fc01ab94cb62 Mon Sep 17 00:00:00 2001 From: Bright Date: Thu, 29 May 2025 10:47:49 +0700 Subject: [PATCH] =?UTF-8?q?[MA]=20=E0=B8=AA=E0=B8=A3=E0=B8=A3=E0=B8=AB?= =?UTF-8?q?=E0=B8=B2=E0=B8=AA=E0=B8=AD=E0=B8=9A=E0=B9=81=E0=B8=82=E0=B9=88?= =?UTF-8?q?=E0=B8=87=E0=B8=82=E0=B8=B1=E0=B8=99=20=E0=B9=84=E0=B8=9F?= =?UTF-8?q?=E0=B8=A5=E0=B9=8C=E0=B8=A3=E0=B8=B2=E0=B8=A2=E0=B8=8A=E0=B8=B7?= =?UTF-8?q?=E0=B9=88=E0=B8=AD=E0=B8=95=E0=B9=89=E0=B8=AD=E0=B8=87=E0=B9=81?= =?UTF-8?q?=E0=B8=9A=E0=B9=88=E0=B8=87=E0=B8=95=E0=B8=B2=E0=B8=A1=E0=B8=95?= =?UTF-8?q?=E0=B8=B3=E0=B9=81=E0=B8=AB=E0=B8=99=E0=B9=88=E0=B8=87=20#1530?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controllers/RecruitReportController.cs | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/Controllers/RecruitReportController.cs b/Controllers/RecruitReportController.cs index aca0aab..5cd07d8 100644 --- a/Controllers/RecruitReportController.cs +++ b/Controllers/RecruitReportController.cs @@ -306,6 +306,79 @@ namespace BMA.EHR.Report.Service.Controllers } } + /// + /// แสดงรายชื่อแบ่งตามตำแหน่ง (สอบแข่งขัน) + /// + /// รหัสรอบการสอบ + /// + /// เมื่อแสดงรายงานสำเร็จ + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("candidate-new/{id:length(36)}")] + [AllowAnonymous] + public async Task> GetCandidateNewListReportAsync(Guid id) + { + try + { + var data = await _context.Recruits.AsQueryable() + .Include(x => x.RecruitImport) + .Include(x => x.Payments) + .Include(x => x.Documents) + .ThenInclude(x => x.DocumentFile) + .Where(x => x.RecruitImport.Id == id) + .OrderBy(x => x.ExamId) + .Select(p => new + { + FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", + PositionName = p.PositionName, + Remark = p.Remark != null ? p.Remark.ToThaiNumber() : "", + RefNo1 = p.Payments.Select(x => x.RefNo1).FirstOrDefault() != null + ? p.Payments.Select(x => x.RefNo1).FirstOrDefault().ToThaiNumber() + : "", + ExamName = + $"ครั้งที่ {p.RecruitImport.Order.ToString().ToThaiNumber()}/{p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber()}", + }).ToListAsync(); + + if (data.Count == 0) return Error("ไม่พบข้อมูลในระบบ"); + + var examName = data[0].ExamName; + + var groupData = data + .GroupBy(x => x.PositionName) + .Select(g => new + { + PositionName = $"ตำแหน่ง {g.Key}", + Total = $"จำนวน {g.Count().ToString().ToThaiNumber()} ราย", + Persons = g.Select((x, index) => new + { + No = (index + 1).ToString().ToThaiNumber(), + RefNo1 = x.RefNo1, + FullName = x.FullName, + Remark = x.Remark + }).ToList() + }) + .ToList(); + + var _data = new + { + template = "rptCandidateList-New", + reportName = $"รายชื่อแบ่งตามตำแหน่ง(สอบแข่งขัน)", + data = new + { + examName = examName, + data = groupData + } + }; + return Success(_data); + + } + catch (Exception ex) + { + return Error(ex); + } + } + [HttpGet("pass/{id:length(36)}")] [AllowAnonymous] [ProducesResponseType(StatusCodes.Status200OK)]