diff --git a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs index 3910c8ab..7bb786c8 100644 --- a/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/InsigniaReportRepository.cs @@ -13,7 +13,9 @@ using BMA.EHR.Domain.Shared; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.Metadata; +using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System.Net; @@ -30,6 +32,7 @@ namespace BMA.EHR.Application.Repositories.Reports private readonly OrganizationCommonRepository _organizationCommonRepository; private readonly NotificationRepository _repositoryNoti; private readonly InsigniaPeriodsRepository _repositoryInsignia; + private readonly IConfiguration _configuration; private readonly string CRLF = "\r\n"; private readonly UserProfileRepository _userProfileRepository; @@ -44,6 +47,7 @@ namespace BMA.EHR.Application.Repositories.Reports InsigniaPeriodsRepository repositoryInsignia, NotificationRepository repositoryNoti, IWebHostEnvironment hostEnvironment, + IConfiguration configuration, UserProfileRepository userProfileRepository, IHttpContextAccessor httpContextAccessor) { @@ -54,6 +58,7 @@ namespace BMA.EHR.Application.Repositories.Reports _repositoryInsignia = repositoryInsignia; _userProfileRepository = userProfileRepository; _httpContextAccessor = httpContextAccessor; + _configuration = configuration; } #endregion @@ -1070,7 +1075,6 @@ namespace BMA.EHR.Application.Repositories.Reports .Where(x => x.Status == "PENDING") .Where(x => x.RequestInsignia.InsigniaType != null); /*.Where(x => x.RequestInsignia.InsigniaType.Name == "เหรียญบำเหน็จในราชการ");*/ - if (type == "officer") { data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "officer"); @@ -1080,6 +1084,8 @@ namespace BMA.EHR.Application.Repositories.Reports data_insigniaQuery = data_insigniaQuery.Where(r => r.ProfileType == "employee"); } + Console.WriteLine(">>>>>>>logs", data_insigniaQuery.ToQueryString); + switch (node) { case 0: @@ -1106,63 +1112,84 @@ namespace BMA.EHR.Application.Repositories.Reports break; } var data = await data_insigniaQuery - .Select(x => new - { - FullName = $"{x.Prefix}{x.FirstName} {x.LastName}", - RequestInsigniaName = x.RequestInsignia.Name, // Name of the Insignia - }) - .ToListAsync(); - - /* var seq = 1; - foreach (var d in response!.result) - { - var _baseAPI = _configuration["API"]; - var _apiUrl = $"{_baseAPI}/org/profile/profileid/position/{d.person.id}"; - using (var _client = new HttpClient()) - { - _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); - _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(); - - var org = JsonConvert.DeserializeObject(_result); - - if (org == null || org.result == null) - continue; - - var receiver = new CommandReceiver - { - Sequence = seq, - CitizenId = org.result.citizenId == null ? "" : org.result.citizenId, - Prefix = org.result.prefix == null ? "" : org.result.prefix, - FirstName = org.result.firstName == null ? "" : org.result.firstName, - LastName = org.result.lastName == null ? "" : org.result.lastName, - RefPlacementProfileId = org.result.profileId == null ? null : Guid.Parse(org.result.profileId), - }; - seq++; - resultData.Add(receiver); - } - }*/ - var insignia = data.Select((r, index) => new + .Select(x => new { - RowNo = (index + 1).ToNumericText().ToThaiNumber(), - FullName = r.FullName, - RequestInsigniaName = r.RequestInsigniaName, - ResultY1APR = "-", - ResultY1OCT = "-", - ResultY2APR = "-", - ResultY2OCT = "-", - ResultY3APR = "-", - ResultY3OCT = "-", - ResultY4APR = "-", - ResultY4OCT = "-", - ResultY5APR = "-", - ResultY5OCT = "-", - Remark = "", - }).ToList(); + ProfileId = x.ProfileId, + FullName = $"{x.Prefix}{x.FirstName} {x.LastName}", + RequestInsigniaName = x.RequestInsignia.Name, // Name of the Insignia + }) + .ToListAsync(); - return insignia; + var seq = 1; + foreach (var d in data) + { + var _baseAPI = _configuration["API"]; + var _apiUrl = $"{_baseAPI}/org/unauthorize/calculateEvaluation"; + using (var _client = new HttpClient()) + { + _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 orgResponse = JsonConvert.DeserializeObject(_result);*/ + var orgResponse = JObject.Parse(_result); + var resultItems = orgResponse["result"]; + /* if (orgResponse != null && orgResponse.result != null) + {*/ + var matchedData = resultItems + .Where(item => item["profileId"].ToString() == d.ProfileId.ToString()) + .FirstOrDefault(); + /* + if (matchedData != null) + { + // แสดงข้อมูลที่ตรงกัน + var receiver = new CommandReceiver + { + Sequence = seq, + CitizenId = matchedData.citizenId ?? "", + Prefix = matchedData.prefix ?? "", + FirstName = matchedData.firstName ?? "", + LastName = matchedData.lastName ?? "", + RefPlacementProfileId = Guid.Parse(matchedData.profileId.ToString()), + }; + + seq++; + resultData.Add(receiver); + }*/ + /*}*/ + + return matchedData; + } + else + { + return $"Error: {_res.StatusCode} - {_res.ReasonPhrase}"; + } + } + } + + /* var insignia = data.Select((r, index) => new + { + RowNo = (index + 1).ToNumericText().ToThaiNumber(), + ProfileId = r., + FullName = r.FullName, + RequestInsigniaName = r.RequestInsigniaName, + ResultY1APR = "-", + ResultY1OCT = "-", + ResultY2APR = "-", + ResultY2OCT = "-", + ResultY3APR = "-", + ResultY3OCT = "-", + ResultY4APR = "-", + ResultY4OCT = "-", + ResultY5APR = "-", + ResultY5OCT = "-", + Remark = "", + }).ToList();*/ + + return data; } //noti ยื่นเสนอคน diff --git a/BMA.EHR.Discipline.Service/Controllers/DisciplineResultController.cs b/BMA.EHR.Discipline.Service/Controllers/DisciplineResultController.cs index 56c96ab3..1ca01a7a 100644 --- a/BMA.EHR.Discipline.Service/Controllers/DisciplineResultController.cs +++ b/BMA.EHR.Discipline.Service/Controllers/DisciplineResultController.cs @@ -17,6 +17,7 @@ using System.Net.Http.Headers; using System.Security.Claims; using Newtonsoft.Json; using Newtonsoft.Json.Linq; +using System.Data; namespace BMA.EHR.DisciplineResult.Service.Controllers { @@ -849,6 +850,33 @@ namespace BMA.EHR.DisciplineResult.Service.Controllers if (_res.IsSuccessStatusCode) { data.ForEach(profile => { profile.Status = "NEW"; profile.CommandTypeId = null; }); + var _profile = new List(); + DateTime _date = DateTime.Now; + foreach (var item in data) + { + _profile.Add(new ProfileComplaintInvestigate + { + PersonId = item.PersonId, + Prefix = item.Prefix, + FirstName = item.FirstName, + LastName = item.LastName, + CitizenId = item.CitizenId, + rootDnaId = item.rootDnaId, + child1DnaId = item.child1DnaId, + child2DnaId = item.child2DnaId, + child3DnaId = item.child3DnaId, + child4DnaId = item.child4DnaId, + profileType = item.profileType, + commandType = "C-PM-19", + CreatedAt = _date, + CreatedUserId = UserId, + CreatedFullName = FullName, + LastUpdatedAt = _date, + LastUpdateUserId = UserId, + LastUpdateFullName = FullName, + }); + } + _context.ProfileComplaintInvestigate.AddRange(_profile); await _context.SaveChangesAsync(); } } @@ -950,6 +978,33 @@ namespace BMA.EHR.DisciplineResult.Service.Controllers if (_res.IsSuccessStatusCode) { data.ForEach(profile => { profile.Status = "NEW"; profile.CommandTypeId = null; }); + var _profile = new List(); + DateTime _date = DateTime.Now; + foreach (var item in data) + { + _profile.Add(new ProfileComplaintInvestigate + { + PersonId = item.PersonId, + Prefix = item.Prefix, + FirstName = item.FirstName, + LastName = item.LastName, + CitizenId = item.CitizenId, + rootDnaId = item.rootDnaId, + child1DnaId = item.child1DnaId, + child2DnaId = item.child2DnaId, + child3DnaId = item.child3DnaId, + child4DnaId = item.child4DnaId, + profileType = item.profileType, + commandType = "C-PM-20", + CreatedAt = _date, + CreatedUserId = UserId, + CreatedFullName = FullName, + LastUpdatedAt = _date, + LastUpdateUserId = UserId, + LastUpdateFullName = FullName, + }); + } + _context.ProfileComplaintInvestigate.AddRange(_profile); await _context.SaveChangesAsync(); } } diff --git a/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs b/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs index daf4c18e..efd173aa 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaReportController.cs @@ -219,7 +219,7 @@ namespace BMA.EHR.Insignia.Service.Controllers /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("report2/{type}")] - public async Task> GetInsigniaReport3Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) + public async Task> GetInsigniaReport2Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) { try { @@ -265,7 +265,7 @@ namespace BMA.EHR.Insignia.Service.Controllers /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpPost("report3/{type}")] - public async Task> GetInsigniaReport2Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) + public async Task> GetInsigniaReport3Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) { try { @@ -316,6 +316,151 @@ namespace BMA.EHR.Insignia.Service.Controllers } #endregion + #region รายชื่อข้าราชการฯ ที่ได้รับ/ไม่ได้รับการจ่ายใบกำกับฯ + /// + /// รายชื่อข้าราชการฯ ที่ได้รับ/ไม่ได้รับการจ่ายใบกำกับฯ + /// + /// type + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report4/{type}")] + public async Task> GetInsigniaReport4Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) + { + try + { + var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}"; + var result = new + { + template = "reportInsignia4", + reportName = "reportInsignia4", + data = new + { + yearInsignalPeriod = "", + date = date, + data = "", + } + }; + return Success(result); + + } + catch + { + throw; + } + } + #endregion + + + #region รายงานสถิติการได้รับเครื่องราชอิสริยาภรณ์ข้าราชการ ฯ + /// + /// รายงานสถิติการได้รับเครื่องราชอิสริยาภรณ์ข้าราชการ ฯ + /// + /// type + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report5/{type}")] + public async Task> GetInsigniaReport5Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) + { + try + { + var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}"; + var result = new + { + template = "reportInsignia5", + reportName = "reportInsignia5", + data = new + { + yearInsignalPeriod = "", + date = date, + data = "", + } + }; + return Success(result); + + } + catch + { + throw; + } + } + #endregion + + + #region รายงานผลการจ่ายประกาศนียบัตรกำกับเครื่องราชอิสริยาภรณ์ แยกรายหน่วยงาน + /// + /// รายงานผลการจ่ายประกาศนียบัตรกำกับเครื่องราชอิสริยาภรณ์ แยกรายหน่วยงาน + /// + /// type + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report6/{type}")] + public async Task> GetInsigniaReport6Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) + { + try + { + var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}"; + var result = new + { + template = "reportInsignia6", + reportName = "reportInsignia6", + data = new + { + yearInsignalPeriod = "", + date = date, + data = "", + } + }; + return Success(result); + + } + catch + { + throw; + } + } + #endregion + + #region รายงานผลการจ่ายประกาศนียบัตรกำกับเครื่องราชอิสริยาภรณ์ แยกรายหน่วยงาน + /// + /// รายงานผลการจ่ายประกาศนียบัตรกำกับเครื่องราชอิสริยาภรณ์ แยกรายหน่วยงาน + /// + /// type + /// + /// เมื่อทำการอ่านข้อมูลจาก Relational Database สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report7/{type}")] + public async Task> GetInsigniaReport7Async([FromBody] GetInsigniaDetailByNodeReportDto req, string type) + { + try + { + var date = $"ณ วันที่ {DateTime.Now.Date.ToThaiShortDate().ToThaiNumber()}"; + var result = new + { + template = "reportInsignia7", + reportName = "reportInsignia7", + data = new + { + yearInsignalPeriod = "", + date = date, + data = "", + } + }; + return Success(result); + + } + catch + { + throw; + } + } + #endregion } } diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentEmployeeController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentEmployeeController.cs index 4e7f40dd..11aaef01 100644 --- a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentEmployeeController.cs +++ b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentEmployeeController.cs @@ -476,6 +476,7 @@ namespace BMA.EHR.Placement.Service.Controllers placementAppointment.EducationOld = org.result.education; // placementAppointment.EducationOld = profile.Educations.Count() == 0 ? null : $"{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Degree}-{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Field}"; // placementAppointment.AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount; + placementAppointment.AmountOld = org.result.salary; placementAppointment.positionOld = org.result.position; placementAppointment.PositionLevelOld = org.result.posLevelName;