api รายงานผลคะแนนการสอบ

This commit is contained in:
Bright 2025-09-04 18:48:24 +07:00
parent 8f85d92a9c
commit 080bd844c6

View file

@ -1084,6 +1084,7 @@ namespace BMA.EHR.Recruit.Service.Controllers
r.Religion = workSheet?.Cells[row, 10]?.GetValue<string>() ?? "";
r.DateOfBirth = !string.IsNullOrWhiteSpace(workSheet?.Cells[row, 11]?.GetValue<string>()) ? _recruitService.CheckDateTime(workSheet?.Cells[row, 11]?.GetValue<string>() ?? "", "dd/MM/yyyy") : DateTime.MinValue;
r.CitizenId = workSheet?.Cells[row, 12]?.GetValue<string>() ?? "";
r.typeTest = workSheet?.Cells[row, 13]?.GetValue<string>() ?? "";
r.Marry = workSheet?.Cells[row, 9999]?.GetValue<string>() ?? "";
r.Isspecial = "N";
r.CitizenCardIssuer = workSheet?.Cells[row, 9999]?.GetValue<string>() ?? "";
@ -2495,6 +2496,82 @@ namespace BMA.EHR.Recruit.Service.Controllers
return Error(ex);
}
}
/// <summary>
/// ผลคะแนนผู้สมัครสอบ
/// </summary>
/// <param name="id">รหัสรอบการสอบแข่งขัน</param>
/// <param name="examId">เลขประจำตัวสอบ</param>
/// <returns></returns>
/// <response code="200">เมื่อทำการอ่านข้อมูลจำนวนผู้สอบผ่านแข่งขันเพื่อบรรจุเข้ารับราชการเป็นข้าราชการ กทม. สามัญสำเร็จ</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("report/exam/{id:length(36)}/{examId}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task<ActionResult<ResponseObject>> 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