diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index aac45e1..40e8759 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -4,20 +4,13 @@ on: push: tags: - "reportv1-[0-9]+.[0-9]+.[0-9]+" - # push: - # tags: - # - 'v[0-9]+.[0-9]+.[0-9]+' - # tags-ignore: - # - '2.*' - # Allow run workflow manually from Action tab workflow_dispatch: env: REGISTRY: docker.frappet.com IMAGE_NAME: ehr/bma-ehr-report-service DEPLOY_HOST: frappet.com DEPLOY_PORT: 10102 - COMPOSE_PATH: /home/frappet/docker/bma-ehr - # COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report + COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0 jobs: diff --git a/Controllers/ExamReportController.cs b/Controllers/ExamReportController.cs index b510196..f0c0284 100644 --- a/Controllers/ExamReportController.cs +++ b/Controllers/ExamReportController.cs @@ -11,6 +11,8 @@ using BMA.EHR.Organization.Service.Extensions; // using BMA.EHR.Core; using System.Text; using static System.Runtime.InteropServices.JavaScript.JSType; +using System.Net.Http.Headers; +using Newtonsoft.Json; namespace BMA.EHR.Report.Service.Controllers { @@ -28,6 +30,7 @@ namespace BMA.EHR.Report.Service.Controllers private readonly IWebHostEnvironment _hostingEnvironment; private readonly IConfiguration _configuration; private readonly string space = "ㅤ"; + private readonly IHttpContextAccessor _httpContextAccessor; #endregion @@ -35,13 +38,16 @@ namespace BMA.EHR.Report.Service.Controllers public ExamReportController(ExamDbContext context, IWebHostEnvironment hostingEnvironment, + IHttpContextAccessor httpContextAccessor, IConfiguration configuration) { this._context = context; this._hostingEnvironment = hostingEnvironment; this._configuration = configuration; + this._httpContextAccessor = httpContextAccessor; } + private string? token => _httpContextAccessor.HttpContext.Request.Headers["Authorization"]; #endregion #region " Methods " @@ -108,6 +114,34 @@ namespace BMA.EHR.Report.Service.Controllers { try { + var _data = await _context.Disables.AsQueryable() + .Include(x => x.PeriodExam) + .Where(x => x.PeriodExam.Id == id) + .Where(x => x.ExamId == examId) + .FirstOrDefaultAsync(); + if (_data == null) + return Error("ไม่พบข้อมูลในระบบ"); + + // if (_data.AuthName == null || _data.AuthName == "") + // { + // var apiUrl = $"{_configuration["API"]}/org/find/head/officer"; + // using (var client = new HttpClient()) + // { + // client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); + // client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); + // var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl); + // var _res = await client.SendAsync(_req); + // var _result = await _res.Content.ReadAsStringAsync(); + // if (_res.IsSuccessStatusCode) + // { + // var org = JsonConvert.DeserializeObject(_result); + // _data.AuthName = org.result.name == null ? "" : org.result.name; + // _data.AuthPosition = org.result.position == null ? "" : org.result.position; + // await _context.SaveChangesAsync(); + // } + // } + // } + var data = await _context.Disables.AsQueryable() .Include(x => x.PeriodExam) .Where(x => x.PeriodExam.Id == id) @@ -125,8 +159,8 @@ namespace BMA.EHR.Report.Service.Controllers FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", ExamResult = sr == null ? "" : sr.ExamStatus, EndDate = p.PeriodExam.RegisterEndDate == null ? "" : (p.PeriodExam.RegisterEndDate.Value.ToThaiFullDate3()), - AuthName = "นายณัฐพงศ์ ดิษยบุตร", - AuthPosition = "หัวหน้าสำนักงาน ก.ก." + AuthName = p.PeriodExam.AuthName, + AuthPosition = p.PeriodExam.AuthPosition }) .FirstOrDefaultAsync(); @@ -443,7 +477,7 @@ namespace BMA.EHR.Report.Service.Controllers //University = p.Educations.First().University, //PositionName = p.PositionName, ExamName = $"{p.PeriodExam.Name} ครั้งที่ {p.PeriodExam.Round.ToString().ToThaiNumber()}/{p.PeriodExam.Year.Value.ToThaiYear().ToString().ToThaiNumber()}", - Number = sr == null ? "๐" : sr.Number, + Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number), //FullA = sr == null ? "๐" : (sr.FullA.ToString()), //SumA = sr == null ? "๐" : (sr.SumA.ToString()), //FullB = sr == null ? "๐" : (sr.FullB.ToString()), @@ -452,8 +486,7 @@ namespace BMA.EHR.Report.Service.Controllers //SumC = sr == null ? "๐" : (sr.SumC.ToString()), SumScore = sr == null ? "๐" - //: (((sr.SumA > 0 ? sr.SumA : 0) + /*sr.SumB +*/ (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(), - : (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0 ) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(), + : (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(), }) .OrderBy(x => x.Number) .Where(x => x.Id == id) @@ -462,10 +495,11 @@ namespace BMA.EHR.Report.Service.Controllers if (data.Count == 0) return Error("ไม่พบข้อมูลในระบบ"); + var data_ = data.Select(x => new { x.ExamName, - Number = x.Number.ToThaiNumber(), + Number = x.Number.ToString().ToThaiNumber(), x.ExamId, x.FullName, x.SumScore diff --git a/Controllers/RecruitReportController.cs b/Controllers/RecruitReportController.cs index 4999e2a..2396552 100644 --- a/Controllers/RecruitReportController.cs +++ b/Controllers/RecruitReportController.cs @@ -75,23 +75,34 @@ namespace BMA.EHR.Report.Service.Controllers { try { - var name = ""; - var position = ""; - var apiUrl = $"{_configuration["API"]}/org/find/head/officer"; - using (var client = new HttpClient()) - { - client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); - client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); - var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl); - var _res = await client.SendAsync(_req); - var _result = await _res.Content.ReadAsStringAsync(); - if (_res.IsSuccessStatusCode) - { - var org = JsonConvert.DeserializeObject(_result); - name = org.result.rootId == null ? "" : org.result.rootId; - position = org.result.rootId == null ? "" : org.result.rootId; - } - } + var _data = await _context.Recruits.AsQueryable() + .Include(x => x.RecruitImport) + .Where(x => x.RecruitImport.Id == id) + .Where(x => x.ExamId == examId) + .FirstOrDefaultAsync(); + if (_data == null) + return Error("ไม่พบข้อมูลในระบบ"); + + // if (_data.AuthName == null || _data.AuthName == "") + // { + // var apiUrl = $"{_configuration["API"]}/org/find/head/officer"; + // using (var client = new HttpClient()) + // { + // client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); + // client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); + // var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl); + // var _res = await client.SendAsync(_req); + // var _result = await _res.Content.ReadAsStringAsync(); + // if (_res.IsSuccessStatusCode) + // { + // var org = JsonConvert.DeserializeObject(_result); + // _data.AuthName = org.result.name == null ? "" : org.result.name; + // _data.AuthPosition = org.result.position == null ? "" : org.result.position; + // await _context.SaveChangesAsync(); + // } + // } + // } + var data = await _context.Recruits.AsQueryable() .Include(x => x.RecruitImport) .Where(x => x.RecruitImport.Id == id) @@ -109,8 +120,8 @@ namespace BMA.EHR.Report.Service.Controllers FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", ExamResult = sr == null ? "" : sr.ExamStatus, EndDate = p.RecruitImport.RegisterEndDate == null ? "-" : p.RecruitImport.RegisterEndDate.Value.ToThaiFullDate3(), - AuthName = name, - AuthPosition = position + AuthName = p.RecruitImport.AuthName, + AuthPosition = p.RecruitImport.AuthPosition }) .FirstOrDefaultAsync(); if (data == null) @@ -391,7 +402,7 @@ namespace BMA.EHR.Report.Service.Controllers { try { - var data = await _context.Recruits.AsQueryable() + var data = await _context.Recruits.AsQueryable() .Include(x => x.RecruitImport) .ThenInclude(x => x.ScoreImport) .Include(x => x.Documents) @@ -424,8 +435,7 @@ namespace BMA.EHR.Report.Service.Controllers ? "" : $"{p.RecruitImport.Name} ครั้งที่ {p.RecruitImport.Order.ToString().ToThaiNumber()}/{p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber()}", - - Number = sr.Number == null ? "๐" : sr.Number, + Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number), //ExamCount = _recruitService.GetExamCount(p.CitizenId), //ScoreExpire = p.RecruitImport.AnnouncementDate == null ? "" : p.RecruitImport.AnnouncementDate.Value.AddYears(2).ToThaiShortDate(), @@ -438,19 +448,20 @@ namespace BMA.EHR.Report.Service.Controllers //SumC = sr.SumC == null ? 0.0 : sr.SumC, SumScore = sr == null ? "๐" - : (((sr.SumA > 0 ? sr.SumA : 0) + /*sr.SumB +*/ (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(), + : (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(), }) .OrderBy(x => x.Number) .Where(x => x.Id == id) .Where(x => x.ExamResult == "ผ่าน") .ToListAsync(); - if (data.Count == 0) return Error("ไม่พบข้อมูลในระบบ"); + if (data.Count == 0) + return Error("ไม่พบข้อมูลในระบบ"); var data_ = data.Select(x => new { x.ExamName, - Number = x.Number.ToThaiNumber(), + Number = x.Number.ToString().ToThaiNumber(), x.ExamId, x.FullName, x.SumScore diff --git a/Models/Exam/Disable/Disable.cs b/Models/Exam/Disable/Disable.cs index 4d789ae..b7c1ab9 100644 --- a/Models/Exam/Disable/Disable.cs +++ b/Models/Exam/Disable/Disable.cs @@ -78,5 +78,15 @@ namespace BMA.EHR.Recurit.Exam.Service.Models.Disables public DateTime ApplyDate { get; set; } public string? PositionName { get; set; } + public string? PositionType { get; set; } + public string? PositionLevel { get; set; } + // public string? AuthName { get; set; } + // public string? AuthPosition { get; set; } + + [Comment("บัญชีสอบ")] + public string? HddPosition { get; set; } = string.Empty; + + [Comment("ประเภทการสอบภาค ก.")] + public string? typeTest { get; set; } = string.Empty; } } diff --git a/Models/Exam/PeriodExam.cs b/Models/Exam/PeriodExam.cs index 4167b10..1caceb7 100644 --- a/Models/Exam/PeriodExam.cs +++ b/Models/Exam/PeriodExam.cs @@ -88,6 +88,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Models [Comment("สำนัก")] public string? Category { get; set; } + public string? AuthName { get; set; } + public string? AuthPosition { get; set; } [Comment("รายชื่อคนสม้ครในรอบ")] public List Candidate { get; set; } = new List(); diff --git a/Models/Recruits/Recruit.cs b/Models/Recruits/Recruit.cs index 880f96e..8b94c4b 100644 --- a/Models/Recruits/Recruit.cs +++ b/Models/Recruits/Recruit.cs @@ -78,5 +78,15 @@ namespace BMA.EHR.Recruit.Service.Models.Recruits public DateTime ApplyDate { get; set; } public string? PositionName { get; set; } + public string? PositionType { get; set; } + public string? PositionLevel { get; set; } + // public string? AuthName { get; set; } + // public string? AuthPosition { get; set; } + + [Comment("บัญชีสอบ")] + public string? HddPosition { get; set; } = string.Empty; + + [Comment("ประเภทการสอบภาค ก.")] + public string? typeTest { get; set; } = string.Empty; } } diff --git a/Models/Recruits/RecruitImport.cs b/Models/Recruits/RecruitImport.cs index 9ea0f41..0163ece 100644 --- a/Models/Recruits/RecruitImport.cs +++ b/Models/Recruits/RecruitImport.cs @@ -6,16 +6,16 @@ using BMA.EHR.Report.Service.Models; namespace BMA.EHR.Recruit.Service.Models.Recruits { - public class RecruitImport : EntityBase - { - [Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)] - public int Year { get; set; } + public class RecruitImport : EntityBase + { + [Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)] + public int Year { get; set; } - [Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)] - public string Name { get; set; } = string.Empty; + [Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)] + public string Name { get; set; } = string.Empty; - [Required, Comment("ครั้งที่"), Column(Order = 3)] - public int Order { get; set; } = 1; + [Required, Comment("ครั้งที่"), Column(Order = 3)] + public int Order { get; set; } = 1; [Column(Order = 4, TypeName = "text"), Comment("รายละเอียด")] public string? Detail { get; set; } @@ -46,15 +46,17 @@ namespace BMA.EHR.Recruit.Service.Models.Recruits [Column(Order = 13, TypeName = "text"), Comment("หมายเหตุ")] public string? Note { get; set; } + public string? AuthName { get; set; } + public string? AuthPosition { get; set; } public DateTime? AnnouncementDate { get; set; } public Document ImportFile { get; set; } = new Document(); - public List Recruits { get; set; } = new List(); + public List Recruits { get; set; } = new List(); - public ScoreImport ScoreImport { get; set; } + public ScoreImport ScoreImport { get; set; } - public List ImportHostories { get; set; } = new List(); - } + public List ImportHostories { get; set; } = new List(); + } }