ออกคำสั่ง

This commit is contained in:
kittapath 2024-10-04 15:36:34 +07:00
parent 604b234c4b
commit 1290da7211
14 changed files with 1979 additions and 2004 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,25 @@
using BMA.EHR.Domain.Models.MetaData;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Discipline.Service.Requests
{
public class ReportAttachmentRequest
{
public ReportAttachmentRequestObj[] refIds { get; set; }
}
public class ReportAttachmentRequestObj
{
public string? refId { get; set; }
public int? Sequence { get; set; }
public string? CitizenId { get; set; }
public string? Prefix { get; set; }
public string? FirstName { get; set; }
public string? LastName { get; set; }
public double? Amount { get; set; }
public double? PositionSalaryAmount { get; set; }
public double? MouthSalaryAmount { get; set; }
public string? RemarkHorizontal { get; set; }
public string? RemarkVertical { get; set; }
public int CommandYear { get; set; }
}
}

View file

@ -0,0 +1,21 @@
using BMA.EHR.Domain.Models.MetaData;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Discipline.Service.Requests
{
public class ReportExecuteRequest
{
public ReportExecuteRequestObj[] refIds { get; set; }
}
public class ReportExecuteRequestObj
{
public string? refId { get; set; }
public DateTime commandAffectDate { get; set; }
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; }
}
}

View file

@ -0,0 +1,10 @@
using BMA.EHR.Domain.Models.MetaData;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Discipline.Service.Requests
{
public class ReportPersonRequest
{
public string[] refIds { get; set; }
}
}

View file

@ -824,7 +824,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-05 /// ออกคำสั่ง C-PM-05 คำสั่งแต่งตั้ง
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -834,69 +834,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("appoint/report/excecute")] [HttpPost("appoint/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementAppointments
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.PlacementAppointments profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
if (placementProfile == null) amount = r.amount,
continue; positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
if (placementProfile == null) posNo = p.posMasterNo == null ? "" :
throw new Exception(GlobalMessages.DataNotFound); p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
var baseAPI = _configuration["API"]; p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
using (var client = new HttpClient()) p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
{ p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); position = p.position,
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
placementProfile.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -981,7 +966,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-06 /// ออกคำสั่ง C-PM-06 เลื่อนข้าราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -991,69 +976,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("slip/report/excecute")] [HttpPost("slip/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteSlip([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteSlip([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementAppointments
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.PlacementAppointments profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
if (placementProfile == null) amount = r.amount,
continue; positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
if (placementProfile == null) posNo = p.posMasterNo == null ? "" :
throw new Exception(GlobalMessages.DataNotFound); p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
var baseAPI = _configuration["API"]; p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
using (var client = new HttpClient()) p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
{ p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); position = p.position,
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
placementProfile.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -1138,7 +1108,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-07 /// ออกคำสั่ง C-PM-07 ย้ายข้าราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1148,66 +1118,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("move/report/excecute")] [HttpPost("move/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteMove([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteMove([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementAppointments
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.PlacementAppointments profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
if (placementProfile == null) amount = r.amount,
continue; positionSalaryAmount = r.positionSalaryAmount,
var baseAPI = _configuration["API"]; mouthSalaryAmount = r.mouthSalaryAmount,
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; posNo = p.posMasterNo == null ? "" :
using (var client = new HttpClient()) p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
{ p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
var _res = await client.PostAsJsonAsync(apiUrlSalary, new position = p.position,
{
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
placementProfile.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -1289,7 +1247,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-22 /// ออกคำสั่ง C-PM-22 คำสั่งปรับระดับชั้นงาน
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1298,65 +1256,52 @@ namespace BMA.EHR.Placement.Service.Controllers
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("employee-appoint/report/excecute")] [HttpPost("employee-appoint/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteEmployeeAppoint([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteEmployeeAppoint([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.PlacementAppointments var data = await _context.PlacementAppointments
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
if (data == null) .ToListAsync();
continue; var resultData = (from p in data
join r in req.refIds
var baseAPI = _configuration["API"]; on p.Id.ToString() equals r.refId
var apiUrlSalary = $"{baseAPI}/org/profile-employee/salary"; select new
using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); profileId = p.profileId,
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); date = r.commandAffectDate,
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); amount = r.amount,
var _res = await client.PostAsJsonAsync(apiUrlSalary, new positionSalaryAmount = r.positionSalaryAmount,
{ mouthSalaryAmount = r.mouthSalaryAmount,
profileEmployeeId = data.profileId, posNo = p.posMasterNo == null ? "" :
date = recv.commandAffectDate, p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
amount = recv.amount, p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
positionSalaryAmount = recv.positionSalaryAmount, p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
mouthSalaryAmount = recv.mouthSalaryAmount, p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
posNo = data.posMasterNo == null ? "" : p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
data.node == 4 ? $"{data.child4ShortName}{data.posMasterNo}" : position = p.position,
data.node == 3 ? $"{data.child3ShortName}{data.posMasterNo}" : positionType = p.posTypeName,
data.node == 2 ? $"{data.child2ShortName}{data.posMasterNo}" : positionLevel = p.posLevelName,
data.node == 1 ? $"{data.child1ShortName}{data.posMasterNo}" : refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
data.node == 0 ? $"{data.rootShortName}{data.posMasterNo}" : "", templateDoc = r.templateDoc,
position = data.position, posmasterId = p.posmasterId,
positionType = data.posTypeName, positionId = p.positionId,
positionLevel = data.posLevelName, }).ToList();
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc,
});
var _result = await _res.Content.ReadAsStringAsync();
}
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/employee/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-employee-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = data.posmasterId, data = resultData,
positionId = data.positionId,
profileId = data.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -1438,7 +1383,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-24 /// ออกคำสั่ง C-PM-24 คำสั่งย้ายลูกจ้างประจำ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1447,65 +1392,52 @@ namespace BMA.EHR.Placement.Service.Controllers
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("employee-move/report/excecute")] [HttpPost("employee-move/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteEmployeeMove([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteEmployeeMove([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.PlacementAppointments var data = await _context.PlacementAppointments
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
if (data == null) var resultData = (from p in data
throw new Exception(GlobalMessages.DataNotFound); join r in req.refIds
var baseAPI = _configuration["API"]; on p.Id.ToString() equals r.refId
var apiUrlSalary = $"{baseAPI}/org/profile-employee/salary"; select new
using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); profileId = p.profileId,
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); date = r.commandAffectDate,
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); amount = r.amount,
var _res = await client.PostAsJsonAsync(apiUrlSalary, new positionSalaryAmount = r.positionSalaryAmount,
{ mouthSalaryAmount = r.mouthSalaryAmount,
profileEmployeeId = data.profileId, posNo = p.posMasterNo == null ? "" :
date = recv.commandAffectDate, p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
amount = recv.amount, p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
positionSalaryAmount = recv.positionSalaryAmount, p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
mouthSalaryAmount = recv.mouthSalaryAmount, p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
posNo = data.posMasterNo == null ? "" : p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
data.node == 4 ? $"{data.child4ShortName}{data.posMasterNo}" : position = p.position,
data.node == 3 ? $"{data.child3ShortName}{data.posMasterNo}" : positionType = p.posTypeName,
data.node == 2 ? $"{data.child2ShortName}{data.posMasterNo}" : positionLevel = p.posLevelName,
data.node == 1 ? $"{data.child1ShortName}{data.posMasterNo}" : refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
data.node == 0 ? $"{data.rootShortName}{data.posMasterNo}" : "", templateDoc = r.templateDoc,
position = data.position, posmasterId = p.posmasterId,
positionType = data.posTypeName, positionId = p.positionId,
positionLevel = data.posLevelName, }).ToList();
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc,
});
var _result = await _res.Content.ReadAsStringAsync();
}
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/employee/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-employee-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = data.posmasterId, data = resultData,
positionId = data.positionId,
profileId = data.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -1545,7 +1545,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-01 /// ออกคำสั่ง C-PM-01 บรรจุและแต่งตั้งผู้สอบแข่งขันได้
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1818,7 +1818,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-02 /// ออกคำสั่ง C-PM-02 บรรจุและแต่งตั้งผู้ได้รับคัดเลือก
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -2101,7 +2101,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-03 /// ออกคำสั่ง C-PM-03 แต่งตั้งข้าราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -2111,67 +2111,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("appoint/report/excecute")] [HttpPost("appoint/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementProfiles
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.PlacementProfiles profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
if (placementProfile == null) amount = r.amount,
continue; positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
var baseAPI = _configuration["API"]; posNo = p.posMasterNo == null ? "" :
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
using (var client = new HttpClient()) p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
{ p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); position = p.positionName,
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.PlacementStatus = "CONTAIN");
placementProfile.PlacementStatus = "CONTAIN";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -2268,7 +2255,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-04 /// ออกคำสั่ง C-PM-04 ย้ายข้าราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -2278,67 +2265,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("move/report/excecute")] [HttpPost("move/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteMove([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteMove([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementProfiles
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.PlacementProfiles profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
if (placementProfile == null) amount = r.amount,
continue; positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
var baseAPI = _configuration["API"]; posNo = p.posMasterNo == null ? "" :
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
using (var client = new HttpClient()) p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
{ p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); position = p.positionName,
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.PlacementStatus = "CONTAIN");
placementProfile.PlacementStatus = "CONTAIN";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -2435,7 +2409,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-39 /// ออกคำสั่ง C-PM-39 เลื่อนข้าราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -2445,67 +2419,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("slip/report/excecute")] [HttpPost("slip/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteSlip([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteSlip([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementProfiles
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.PlacementProfiles profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
if (placementProfile == null) amount = r.amount,
continue; positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
var baseAPI = _configuration["API"]; posNo = p.posMasterNo == null ? "" :
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
using (var client = new HttpClient()) p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
{ p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); position = p.positionName,
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.PlacementStatus = "CONTAIN");
placementProfile.PlacementStatus = "CONTAIN";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -634,7 +634,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-15 /// ออกคำสั่ง C-PM-15 คำสั่งให้ช่วยราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -643,48 +643,48 @@ namespace BMA.EHR.Placement.Service.Controllers
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("command/report/excecute")] [HttpPost("command/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.PlacementOfficers var data = await _context.PlacementOfficers
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{
profileId = p.profileId,
date = r.commandAffectDate,
amount = r.amount,
positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
posNo = p.PositionNumberOld,
position = p.PositionOld,
positionLine = "",
positionPathSide = "",
positionExecutive = "",
positionType = p.PositionTypeOld,
positionLevel = p.PositionLevelOld,
refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = r.templateDoc,
}).ToList();
if (data == null) var baseAPIOrg = _configuration["API"];
throw new Exception(GlobalMessages.DataNotFound); var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary";
var baseAPI = _configuration["API"];
var apiUrlSalary = $"{baseAPI}/org/profile/salary";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); var _res = await client.PostAsJsonAsync(apiUrlOrg, new
var _res = await client.PostAsJsonAsync(apiUrlSalary, new
{ {
profileId = data.profileId, data = resultData,
date = recv.commandAffectDate,
amount = recv.amount,
positionSalaryAmount = recv.positionSalaryAmount,
mouthSalaryAmount = recv.mouthSalaryAmount,
posNo = data.PositionNumberOld,
position = data.PositionOld,
positionLine = "",
positionPathSide = "",
positionExecutive = "",
positionType = data.PositionTypeOld,
positionLevel = data.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -960,7 +960,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-14 /// ออกคำสั่ง C-PM-14 คำสั่งรับโอนข้าราชการกรุงเทพมหานครสามัญ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -970,69 +970,54 @@ namespace BMA.EHR.Placement.Service.Controllers
[HttpPost("command/report/excecute")] [HttpPost("command/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.PlacementReceives
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
// query placement Profile profileId = p.profileId,
var placementProfile = await _context.PlacementReceives date = r.commandAffectDate,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); amount = r.amount,
positionSalaryAmount = r.positionSalaryAmount,
if (placementProfile == null) mouthSalaryAmount = r.mouthSalaryAmount,
throw new Exception(GlobalMessages.DataNotFound); posNo = p.posMasterNo == null ? "" :
p.node == 4 ? $"{p.child4ShortName}{p.posMasterNo}" :
var baseAPI = _configuration["API"]; p.node == 3 ? $"{p.child3ShortName}{p.posMasterNo}" :
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; p.node == 2 ? $"{p.child2ShortName}{p.posMasterNo}" :
using (var client = new HttpClient()) p.node == 1 ? $"{p.child1ShortName}{p.posMasterNo}" :
{ p.node == 0 ? $"{p.rootShortName}{p.posMasterNo}" : "",
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); position = p.position,
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 = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.posTypeName, positionType = p.posTypeName,
positionLevel = placementProfile.posLevelName, positionLevel = p.posLevelName,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); posmasterId = p.posmasterId,
var _result = await _res.Content.ReadAsStringAsync(); positionId = p.positionId,
} }).ToList();
var baseAPIOrg = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/pos/report/current"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-current";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlOrg);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{ {
posmasterId = placementProfile.posmasterId, data = resultData,
positionId = placementProfile.positionId,
profileId = placementProfile.profileId,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
placementProfile.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -496,7 +496,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-16 /// ออกคำสั่ง C-PM-16 คำสั่งส่งตัวกลับ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -505,48 +505,48 @@ namespace BMA.EHR.Placement.Service.Controllers
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("command/report/excecute")] [HttpPost("command/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.PlacementRepatriations var data = await _context.PlacementRepatriations
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{
profileId = p.profileId,
date = r.commandAffectDate,
amount = r.amount,
positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
posNo = p.PositionNumberOld,
position = p.PositionOld,
positionLine = "",
positionPathSide = "",
positionExecutive = "",
positionType = p.PositionTypeOld,
positionLevel = p.PositionLevelOld,
refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = r.templateDoc,
}).ToList();
if (data == null) var baseAPIOrg = _configuration["API"];
throw new Exception(GlobalMessages.DataNotFound); var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary";
var baseAPI = _configuration["API"];
var apiUrlSalary = $"{baseAPI}/org/profile/salary";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); var _res = await client.PostAsJsonAsync(apiUrlOrg, new
var _res = await client.PostAsJsonAsync(apiUrlSalary, new
{ {
profileId = data.profileId, data = resultData,
date = recv.commandAffectDate,
amount = recv.amount,
positionSalaryAmount = recv.positionSalaryAmount,
mouthSalaryAmount = recv.mouthSalaryAmount,
posNo = data.PositionNumberOld,
position = data.PositionOld,
positionLine = "",
positionPathSide = "",
positionExecutive = "",
positionType = data.PositionTypeOld,
positionLevel = data.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -827,7 +827,7 @@ namespace BMA.EHR.Placement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-13 /// ออกคำสั่ง C-PM-13 คำสั่งให้โอนข้าราชการกรุงเทพมหานครสามัญ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -836,48 +836,48 @@ namespace BMA.EHR.Placement.Service.Controllers
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("command/report/excecute")] [HttpPost("command/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.PlacementTransfers var data = await _context.PlacementTransfers
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{
profileId = p.profileId,
date = r.commandAffectDate,
amount = r.amount,
positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
posNo = p.PositionNumberOld,
position = p.PositionOld,
positionLine = "",
positionPathSide = "",
positionExecutive = "",
positionType = p.PositionTypeOld,
positionLevel = p.PositionLevelOld,
refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = r.templateDoc,
}).ToList();
if (data == null) var baseAPIOrg = _configuration["API"];
throw new Exception(GlobalMessages.DataNotFound); var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary";
var baseAPI = _configuration["API"];
var apiUrlSalary = $"{baseAPI}/org/profile/salary";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlSalary); var _res = await client.PostAsJsonAsync(apiUrlOrg, new
var _res = await client.PostAsJsonAsync(apiUrlSalary, new
{ {
profileId = data.profileId, data = resultData,
date = recv.commandAffectDate,
amount = recv.amount,
positionSalaryAmount = recv.positionSalaryAmount,
mouthSalaryAmount = recv.mouthSalaryAmount,
posNo = data.PositionNumberOld,
position = data.PositionOld,
positionLine = "",
positionPathSide = "",
positionExecutive = "",
positionType = data.PositionTypeOld,
positionLevel = data.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -703,7 +703,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-08 /// ออกคำสั่ง C-PM-08 บรรจุและแต่งตั้งข้าราชการกลับเข้ารับราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -713,63 +713,51 @@ namespace BMA.EHR.Retirement.Service.Controllers
[HttpPost("appoint/report/excecute")] [HttpPost("appoint/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteAppoint([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.RetirementOthers
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
string? _null = null;
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.RetirementOthers profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
amount = r.amount,
if (placementProfile == null) positionSalaryAmount = r.positionSalaryAmount,
throw new Exception(GlobalMessages.DataNotFound); mouthSalaryAmount = r.mouthSalaryAmount,
var baseAPI = _configuration["API"]; posNo = p.PositionNumberOld,
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; position = p.PositionOld,
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.PositionNumberOld,
position = placementProfile.PositionOld,
positionLine = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.PositionTypeOld, positionType = p.PositionTypeOld,
positionLevel = placementProfile.PositionLevelOld, positionLevel = p.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); isLeave = false,
var _result = await _res.Content.ReadAsStringAsync(); leaveReason = _null,
} dateLeave = _null,
}).ToList();
var baseAPILeave = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlLeave = $"{baseAPI}/org/profile/leave/{placementProfile.profileId}"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-leave";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlLeave); var _res = await client.PostAsJsonAsync(apiUrlOrg, new
string? _null = null;
var _res = await client.PostAsJsonAsync(apiUrlLeave, new
{ {
isLeave = false, data = resultData,
leaveReason = _null,
dateLeave = _null,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
placementProfile.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -851,7 +839,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-09 /// ออกคำสั่ง C-PM-09 คำสั่งบรรจุและแต่งตั้งผู้ออกไปรับราชการทหารกลับเข้ารับราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -861,63 +849,51 @@ namespace BMA.EHR.Retirement.Service.Controllers
[HttpPost("out/report/excecute")] [HttpPost("out/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteOut([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteOut([FromBody] ReportExecuteRequest req)
{ {
// create new profile var data = await _context.RetirementOthers
foreach (var recv in req.refIds) .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
string? _null = null;
var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
var placementProfile = await _context.RetirementOthers profileId = p.profileId,
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); date = r.commandAffectDate,
amount = r.amount,
if (placementProfile == null) positionSalaryAmount = r.positionSalaryAmount,
throw new Exception(GlobalMessages.DataNotFound); mouthSalaryAmount = r.mouthSalaryAmount,
var baseAPI = _configuration["API"]; posNo = p.PositionNumberOld,
var apiUrlSalary = $"{baseAPI}/org/profile/salary"; position = p.PositionOld,
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.PositionNumberOld,
position = placementProfile.PositionOld,
positionLine = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = placementProfile.PositionTypeOld, positionType = p.PositionTypeOld,
positionLevel = placementProfile.PositionLevelOld, positionLevel = p.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
}); isLeave = false,
var _result = await _res.Content.ReadAsStringAsync(); leaveReason = _null,
} dateLeave = _null,
}).ToList();
var baseAPILeave = _configuration["API"]; var baseAPIOrg = _configuration["API"];
var apiUrlLeave = $"{baseAPI}/org/profile/leave/{placementProfile.profileId}"; var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-leave";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrlLeave); var _res = await client.PostAsJsonAsync(apiUrlOrg, new
string? _null = null;
var _res = await client.PostAsJsonAsync(apiUrlLeave, new
{ {
isLeave = false, data = resultData,
leaveReason = _null,
dateLeave = _null,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
placementProfile.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -487,7 +487,7 @@ namespace BMA.EHR.Retirement.Service.Controllers
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-18 /// ออกคำสั่ง C-PM-18 คำสั่งให้ออกจากราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -496,64 +496,51 @@ namespace BMA.EHR.Retirement.Service.Controllers
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("command/report/excecute")] [HttpPost("command/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteLeave([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteLeave([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.RetirementOuts var data = await _context.RetirementOuts
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
if (data == null) var resultData = (from p in data
throw new Exception(GlobalMessages.DataNotFound); join r in req.refIds
on p.Id.ToString() equals r.refId
var baseAPI = _configuration["API"]; select new
var apiUrl = $"{baseAPI}/org/profile/leave/{data.profileId}";
using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); profileId = p.profileId,
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); date = r.commandAffectDate,
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrl); amount = r.amount,
var _res = await client.PostAsJsonAsync(apiUrl, new positionSalaryAmount = r.positionSalaryAmount,
{ mouthSalaryAmount = r.mouthSalaryAmount,
isLeave = true, posNo = p.PositionNumberOld,
leaveReason = "ให้ออกจากราชการ", position = p.PositionOld,
dateLeave = recv.commandAffectDate,
});
var _result = await _res.Content.ReadAsStringAsync();
}
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 = data.profileId,
date = recv.commandAffectDate,
amount = recv.amount,
positionSalaryAmount = recv.positionSalaryAmount,
mouthSalaryAmount = recv.mouthSalaryAmount,
posNo = data.PositionNumberOld,
position = data.PositionOld,
positionLine = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = data.PositionTypeOld, positionType = p.PositionTypeOld,
positionLevel = data.PositionLevelOld, positionLevel = p.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
isLeave = true,
leaveReason = "ให้ออกจากราชการ",
dateLeave = r.commandAffectDate,
}).ToList();
var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-leave";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{
data = resultData,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }

View file

@ -1695,7 +1695,7 @@ $"คำขอลาออกของ {updated.prefix}{updated.firstName} {upda
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-17 /// ออกคำสั่ง C-PM-17 คำสั่งอนุญาตให้ข้าราชการลาออกจากราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1704,64 +1704,51 @@ $"คำขอลาออกของ {updated.prefix}{updated.firstName} {upda
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("command/report/excecute")] [HttpPost("command/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecute([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.RetirementResigns var data = await _context.RetirementResigns
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
if (data == null) var resultData = (from p in data
throw new Exception(GlobalMessages.DataNotFound); join r in req.refIds
on p.Id.ToString() equals r.refId
var baseAPI = _configuration["API"]; select new
var apiUrl = $"{baseAPI}/org/profile/leave/{data.profileId}";
using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); profileId = p.profileId,
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); date = r.commandAffectDate,
var _req = new HttpRequestMessage(HttpMethod.Post, apiUrl); amount = r.amount,
var _res = await client.PostAsJsonAsync(apiUrl, new positionSalaryAmount = r.positionSalaryAmount,
{ mouthSalaryAmount = r.mouthSalaryAmount,
isLeave = true, posNo = p.PositionNumberOld,
leaveReason = "ลาออกจากราชการ", position = p.PositionOld,
dateLeave = recv.commandAffectDate,
});
var _result = await _res.Content.ReadAsStringAsync();
}
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 = data.profileId,
date = recv.commandAffectDate,
amount = recv.amount,
positionSalaryAmount = recv.positionSalaryAmount,
mouthSalaryAmount = recv.mouthSalaryAmount,
posNo = data.PositionNumberOld,
position = data.PositionOld,
positionLine = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = data.PositionTypeOld, positionType = p.PositionTypeOld,
positionLevel = data.PositionLevelOld, positionLevel = p.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
isLeave = true,
leaveReason = "ลาออกจากราชการ",
dateLeave = r.commandAffectDate,
}).ToList();
var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-leave";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{
data = resultData,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -1833,7 +1820,7 @@ $"คำขอลาออกของ {updated.prefix}{updated.firstName} {upda
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-23 /// ออกคำสั่ง C-PM-23 คำสั่งให้ลูกจ้างออกจากราชการ
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1842,38 +1829,48 @@ $"คำขอลาออกของ {updated.prefix}{updated.firstName} {upda
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("employee/report/excecute")] [HttpPost("employee/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteEmployee([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteEmployee([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.RetirementResigns var data = await _context.RetirementResigns
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
if (data == null) var resultData = (from p in data
throw new Exception(GlobalMessages.DataNotFound); join r in req.refIds
on p.Id.ToString() equals r.refId
var baseAPI = _configuration["API"]; select new
var apiUrl = $"{baseAPI}/org/profile-employee/salary/{data.profileId}"; {
profileId = p.profileId,
date = r.commandAffectDate,
amount = r.amount,
positionSalaryAmount = r.positionSalaryAmount,
mouthSalaryAmount = r.mouthSalaryAmount,
posNo = p.PositionNumberOld,
position = p.PositionOld,
positionType = p.PositionTypeOld,
positionLevel = p.PositionLevelOld,
refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = r.templateDoc,
isLeave = true,
leaveReason = "ลาออกจากราชการ",
dateLeave = r.commandAffectDate,
}).ToList();
var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-employee-leave";
using (var client = new HttpClient()) using (var client = new HttpClient())
{ {
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", "")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]); client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _req = new HttpRequestMessage(HttpMethod.Put, apiUrl); var _res = await client.PostAsJsonAsync(apiUrlOrg, new
var _res = await client.PutAsJsonAsync(apiUrl, new
{ {
isLeave = true, data = resultData,
leaveReason = "ลาออกจากราชการ",
dateLeave = recv.commandAffectDate,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONE");
data.Status = "DONE";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
@ -1945,7 +1942,7 @@ $"คำขอลาออกของ {updated.prefix}{updated.firstName} {upda
} }
/// <summary> /// <summary>
/// ออกคำสั่ง C-PM-41 /// ออกคำสั่ง C-PM-41 คำสั่งยกเลิกการลาออก
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
/// <response code="200"></response> /// <response code="200"></response>
@ -1954,65 +1951,52 @@ $"คำขอลาออกของ {updated.prefix}{updated.firstName} {upda
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response> /// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("leave-cancel/report/excecute")] [HttpPost("leave-cancel/report/excecute")]
public async Task<ActionResult<ResponseObject>> PostReportExecuteLeaveCancel([FromBody] ReportExecuteRequest req) public async Task<ActionResult<ResponseObject>> PostReportExecuteLeaveCancel([FromBody] ReportExecuteRequest req)
{
// create new profile
foreach (var recv in req.refIds)
{ {
var data = await _context.RetirementResigns var data = await _context.RetirementResigns
.FirstOrDefaultAsync(x => x.Id == Guid.Parse(recv.refId)); .Where(x => req.refIds.Select(x => x.refId).Contains(x.Id.ToString()))
.ToListAsync();
if (data == null)
throw new Exception(GlobalMessages.DataNotFound);
var baseAPI = _configuration["API"];
var apiUrl = $"{baseAPI}/org/profile/leave/{data.profileId}";
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, apiUrl);
string? _null = null; string? _null = null;
var _res = await client.PostAsJsonAsync(apiUrl, new var resultData = (from p in data
join r in req.refIds
on p.Id.ToString() equals r.refId
select new
{ {
isLeave = false, profileId = p.profileId,
leaveReason = _null, date = r.commandAffectDate,
dateLeave = _null, amount = r.amount,
}); positionSalaryAmount = r.positionSalaryAmount,
var _result = await _res.Content.ReadAsStringAsync(); mouthSalaryAmount = r.mouthSalaryAmount,
} posNo = p.PositionNumberOld,
position = p.PositionOld,
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 = data.profileId,
date = recv.commandAffectDate,
amount = recv.amount,
positionSalaryAmount = recv.positionSalaryAmount,
mouthSalaryAmount = recv.mouthSalaryAmount,
posNo = data.PositionNumberOld,
position = data.PositionOld,
positionLine = "", positionLine = "",
positionPathSide = "", positionPathSide = "",
positionExecutive = "", positionExecutive = "",
positionType = data.PositionTypeOld, positionType = p.PositionTypeOld,
positionLevel = data.PositionLevelOld, positionLevel = p.PositionLevelOld,
refCommandNo = $"{recv.commandNo}/{recv.commandYear.ToThaiYear()}", refCommandNo = $"{r.commandNo}/{r.commandYear.ToThaiYear()}",
templateDoc = recv.templateDoc, templateDoc = r.templateDoc,
isLeave = false,
leaveReason = _null,
dateLeave = _null,
}).ToList();
var baseAPIOrg = _configuration["API"];
var apiUrlOrg = $"{baseAPIOrg}/org/command/excexute/salary-leave";
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
var _res = await client.PostAsJsonAsync(apiUrlOrg, new
{
data = resultData,
}); });
var _result = await _res.Content.ReadAsStringAsync(); var _result = await _res.Content.ReadAsStringAsync();
} if (_res.IsSuccessStatusCode)
{
// update placementstatus data.ForEach(profile => profile.Status = "DONEREJECT");
data.Status = "DONEREJECT";
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
} }
}
return Success(); return Success();
} }
} }