diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs index 20d533d4..40ae00ea 100644 --- a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs +++ b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs @@ -1,6 +1,7 @@ using BMA.EHR.Application.Repositories; using BMA.EHR.Application.Repositories.MessageQueue; using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Placement; using BMA.EHR.Domain.Shared; using BMA.EHR.Infrastructure.Persistence; @@ -741,5 +742,159 @@ namespace BMA.EHR.Placement.Service.Controllers .ToListAsync(); return Success(appointments); } + + /// + /// ออกคำสั่ง C-PM-05 + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("appoint/report/excecute")] + public async Task> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req) + { + // create new profile + foreach (var recv in req.refIds) + { + var placementProfile = await _context.PlacementAppointments + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); + if (placementProfile == null) + continue; + + if (placementProfile == null) + throw new Exception(GlobalMessages.DataNotFound); + var baseAPI = _configuration["API"]; + var apiUrlSalary = $"{baseAPI}/org/profile/salary"; + 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.Post, apiUrlSalary); + var _res = await client.PostAsJsonAsync(apiUrlSalary, new + { + profileId = placementProfile.profileId, + date = recv.commandAffectDate, + amount = recv.amount, + positionSalaryAmount = recv.positionSalaryAmount, + mouthSalaryAmount = recv.mouthSalaryAmount, + posNo = placementProfile.posMasterNo == null ? "" : + placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "", + position = placementProfile.position, + positionLine = "", + positionPathSide = "", + positionExecutive = "", + positionType = placementProfile.posTypeName, + positionLevel = placementProfile.posLevelName, + refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", + templateDoc = recv.templateDoc, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + var baseAPIOrg = _configuration["API"]; + var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; + 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.Post, apiUrlOrg); + var _res = await client.PostAsJsonAsync(apiUrlOrg, new + { + posmasterId = placementProfile.posmasterId, + positionId = placementProfile.positionId, + profileId = placementProfile.profileId, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + // update placementstatus + placementProfile.Status = "DONE"; + + await _context.SaveChangesAsync(); + } + return Success(); + } + + /// + /// ออกคำสั่ง C-PM-06 + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("slip/report/excecute")] + public async Task> PostReportExecuteSlip([FromBody] ReportExecuteRequest req) + { + // create new profile + foreach (var recv in req.refIds) + { + var placementProfile = await _context.PlacementAppointments + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); + if (placementProfile == null) + continue; + + if (placementProfile == null) + throw new Exception(GlobalMessages.DataNotFound); + var baseAPI = _configuration["API"]; + var apiUrlSalary = $"{baseAPI}/org/profile/salary"; + 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.Post, apiUrlSalary); + var _res = await client.PostAsJsonAsync(apiUrlSalary, new + { + profileId = placementProfile.profileId, + date = recv.commandAffectDate, + amount = recv.amount, + positionSalaryAmount = recv.positionSalaryAmount, + mouthSalaryAmount = recv.mouthSalaryAmount, + posNo = placementProfile.posMasterNo == null ? "" : + placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "", + position = placementProfile.position, + positionLine = "", + positionPathSide = "", + positionExecutive = "", + positionType = placementProfile.posTypeName, + positionLevel = placementProfile.posLevelName, + refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", + templateDoc = recv.templateDoc, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + var baseAPIOrg = _configuration["API"]; + var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; + 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.Post, apiUrlOrg); + var _res = await client.PostAsJsonAsync(apiUrlOrg, new + { + posmasterId = placementProfile.posmasterId, + positionId = placementProfile.positionId, + profileId = placementProfile.profileId, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + // update placementstatus + placementProfile.Status = "DONE"; + + await _context.SaveChangesAsync(); + } + return Success(); + } } } diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs index 7201875f..857222a5 100644 --- a/BMA.EHR.Placement.Service/Controllers/PlacementController.cs +++ b/BMA.EHR.Placement.Service/Controllers/PlacementController.cs @@ -2,7 +2,6 @@ using BMA.EHR.Application.Repositories.MessageQueue; using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Extensions; -using BMA.EHR.Domain.Models.MetaData; using BMA.EHR.Domain.Models.Placement; using BMA.EHR.Domain.Shared; using BMA.EHR.Infrastructure.Persistence; @@ -12,13 +11,9 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Swashbuckle.AspNetCore.Annotations; using System.Security.Claims; -using System.Security.Cryptography; -using Microsoft.Extensions.Configuration; using System.Net.Http.Headers; using Newtonsoft.Json; using Newtonsoft.Json.Linq; -using Microsoft.AspNetCore.Http.HttpResults; -using System.Drawing.Drawing2D; namespace BMA.EHR.Placement.Service.Controllers { @@ -1879,5 +1874,229 @@ namespace BMA.EHR.Placement.Service.Controllers return Success(); } + /// + /// ออกคำสั่ง C-PM-03 + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("appoint/report/excecute")] + public async Task> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req) + { + // create new profile + foreach (var recv in req.refIds) + { + var placementProfile = await _context.PlacementProfiles + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); + if (placementProfile == null) + continue; + + var baseAPI = _configuration["API"]; + var apiUrlSalary = $"{baseAPI}/org/profile/salary"; + 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.Post, apiUrlSalary); + var _res = await client.PostAsJsonAsync(apiUrlSalary, new + { + profileId = placementProfile.profileId, + date = recv.commandAffectDate, + amount = recv.amount, + positionSalaryAmount = recv.positionSalaryAmount, + mouthSalaryAmount = recv.mouthSalaryAmount, + posNo = placementProfile.posMasterNo == null ? "" : + placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "", + position = placementProfile.positionName, + positionLine = "", + positionPathSide = "", + positionExecutive = "", + positionType = placementProfile.posTypeName, + positionLevel = placementProfile.posLevelName, + refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", + templateDoc = recv.templateDoc, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + var baseAPIOrg = _configuration["API"]; + var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; + 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.Post, apiUrlOrg); + var _res = await client.PostAsJsonAsync(apiUrlOrg, new + { + posmasterId = placementProfile.posmasterId, + positionId = placementProfile.positionId, + profileId = placementProfile.profileId, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + // update placementstatus + placementProfile.PlacementStatus = "CONTAIN"; + + await _context.SaveChangesAsync(); + } + return Success(); + } + + /// + /// ออกคำสั่ง C-PM-04 + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("move/report/excecute")] + public async Task> PostReportExecuteMove([FromBody] ReportExecuteRequest req) + { + // create new profile + foreach (var recv in req.refIds) + { + var placementProfile = await _context.PlacementProfiles + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); + if (placementProfile == null) + continue; + + var baseAPI = _configuration["API"]; + var apiUrlSalary = $"{baseAPI}/org/profile/salary"; + 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.Post, apiUrlSalary); + var _res = await client.PostAsJsonAsync(apiUrlSalary, new + { + profileId = placementProfile.profileId, + date = recv.commandAffectDate, + amount = recv.amount, + positionSalaryAmount = recv.positionSalaryAmount, + mouthSalaryAmount = recv.mouthSalaryAmount, + posNo = placementProfile.posMasterNo == null ? "" : + placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "", + position = placementProfile.positionName, + positionLine = "", + positionPathSide = "", + positionExecutive = "", + positionType = placementProfile.posTypeName, + positionLevel = placementProfile.posLevelName, + refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", + templateDoc = recv.templateDoc, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + var baseAPIOrg = _configuration["API"]; + var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; + 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.Post, apiUrlOrg); + var _res = await client.PostAsJsonAsync(apiUrlOrg, new + { + posmasterId = placementProfile.posmasterId, + positionId = placementProfile.positionId, + profileId = placementProfile.profileId, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + // update placementstatus + placementProfile.PlacementStatus = "CONTAIN"; + + await _context.SaveChangesAsync(); + } + return Success(); + } + + /// + /// ออกคำสั่ง C-PM-39 + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("slip/report/excecute")] + public async Task> PostReportExecuteSlip([FromBody] ReportExecuteRequest req) + { + // create new profile + foreach (var recv in req.refIds) + { + var placementProfile = await _context.PlacementProfiles + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); + if (placementProfile == null) + continue; + + var baseAPI = _configuration["API"]; + var apiUrlSalary = $"{baseAPI}/org/profile/salary"; + 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.Post, apiUrlSalary); + var _res = await client.PostAsJsonAsync(apiUrlSalary, new + { + profileId = placementProfile.profileId, + date = recv.commandAffectDate, + amount = recv.amount, + positionSalaryAmount = recv.positionSalaryAmount, + mouthSalaryAmount = recv.mouthSalaryAmount, + posNo = placementProfile.posMasterNo == null ? "" : + placementProfile.node == 4 ? $"{placementProfile.child4ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 3 ? $"{placementProfile.child3ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 2 ? $"{placementProfile.child2ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 1 ? $"{placementProfile.child1ShortName}{placementProfile.posMasterNo}" : + placementProfile.node == 0 ? $"{placementProfile.rootShortName}{placementProfile.posMasterNo}" : "", + position = placementProfile.positionName, + positionLine = "", + positionPathSide = "", + positionExecutive = "", + positionType = placementProfile.posTypeName, + positionLevel = placementProfile.posLevelName, + refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", + templateDoc = recv.templateDoc, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + var baseAPIOrg = _configuration["API"]; + var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; + 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.Post, apiUrlOrg); + var _res = await client.PostAsJsonAsync(apiUrlOrg, new + { + posmasterId = placementProfile.posmasterId, + positionId = placementProfile.positionId, + profileId = placementProfile.profileId, + }); + var _result = await _res.Content.ReadAsStringAsync(); + } + + // update placementstatus + placementProfile.PlacementStatus = "CONTAIN"; + + await _context.SaveChangesAsync(); + } + return Success(); + } } } diff --git a/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs b/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs index fc5b180c..7718c354 100644 --- a/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs +++ b/BMA.EHR.Placement.Service/Requests/ReportExecuteRequest.cs @@ -14,5 +14,8 @@ namespace BMA.EHR.Placement.Service.Requests public string? commandNo { get; set; } public int commandYear { get; set; } public string? templateDoc { get; set; } + public double? amount { get; set; } + public double? positionSalaryAmount { get; set; } + public double? mouthSalaryAmount { get; set; } } }