API ขอลาออกและโอนออก ฝั่ง admin #2196
All checks were successful
Build & Deploy Placement Service / build (push) Successful in 1m22s
Build & Deploy Retirement Service / build (push) Successful in 1m23s

This commit is contained in:
harid 2026-01-16 15:43:55 +07:00
parent 64c1021c52
commit 094789bfb1
6 changed files with 468 additions and 0 deletions

View file

@ -683,6 +683,140 @@ namespace BMA.EHR.Placement.Service.Controllers
return Success(placementTransfer.Id);
}
/// <summary>
/// สร้างคำขอโอน โดย admin
/// </summary>
/// <returns></returns>
/// <response code="200"></response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpPost("admin")]
public async Task<ActionResult<ResponseObject>> PostAdmin([FromForm] PlacementTransferAdminRequest req)
{
var placementTransfer = new PlacementTransfer
{
Organization = req.Organization,
Reason = req.Reason,
Status = "APPROVE",
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
LastUpdateFullName = FullName ?? "System Administrator",
LastUpdateUserId = UserId ?? "",
LastUpdatedAt = DateTime.Now,
};
var apiUrl = $"{_configuration["API"]}/org/profile/profileid/position/{req.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.Get, apiUrl);
var _res = await client.SendAsync(_req);
var _result = await _res.Content.ReadAsStringAsync();
var org = JsonConvert.DeserializeObject<OrgRequest>(_result);
if (org == null || org.result == null)
return Error("ไม่พบหน่วยงานของผู้ใช้งานคนนี้", 404);
placementTransfer.profileId = org.result.profileId;
placementTransfer.prefix = org.result.prefix;
placementTransfer.firstName = org.result.firstName;
placementTransfer.lastName = org.result.lastName;
placementTransfer.citizenId = org.result.citizenId;
placementTransfer.rootOld = org.result.root;
placementTransfer.rootOldId = org.result.rootId;
placementTransfer.rootDnaOldId = org.result.rootDnaId;
placementTransfer.rootShortNameOld = org.result.rootShortName;
placementTransfer.child1Old = org.result.child1;
placementTransfer.child1OldId = org.result.child1Id;
placementTransfer.child1DnaOldId = org.result.child1DnaId;
placementTransfer.child1ShortNameOld = org.result.child1ShortName;
placementTransfer.child2Old = org.result.child2;
placementTransfer.child2OldId = org.result.child2Id;
placementTransfer.child2DnaOldId = org.result.child2DnaId;
placementTransfer.child2ShortNameOld = org.result.child2ShortName;
placementTransfer.child3Old = org.result.child3;
placementTransfer.child3OldId = org.result.child3Id;
placementTransfer.child3DnaOldId = org.result.child3DnaId;
placementTransfer.child3ShortNameOld = org.result.child3ShortName;
placementTransfer.child4Old = org.result.child4;
placementTransfer.child4OldId = org.result.child4Id;
placementTransfer.child4DnaOldId = org.result.child4DnaId;
placementTransfer.child4ShortNameOld = org.result.child4ShortName;
placementTransfer.posMasterNoOld = org.result.posMasterNo;
placementTransfer.posTypeOldId = org.result.posTypeId;
placementTransfer.posTypeNameOld = org.result.posTypeName;
placementTransfer.posLevelOldId = org.result.posLevelId;
placementTransfer.posLevelNameOld = org.result.posLevelName;
placementTransfer.AmountOld = org.result.salary;
placementTransfer.PositionOld = org.result.position;
placementTransfer.PositionExecutiveOld = org.result.posExecutiveName;
placementTransfer.positionExecutiveFieldOld = org.result.positionExecutiveField;
placementTransfer.positionAreaOld = org.result.positionArea;
placementTransfer.PositionLevelOld = org.result.posLevelName;
placementTransfer.PositionTypeOld = org.result.posTypeName;
placementTransfer.PositionNumberOld = org.result.nodeShortName + " " + org.result.posMasterNo;
placementTransfer.OrganizationOld = (org.result.child4 == null ? "" : org.result.child4 + "\n") +
(org.result.child3 == null ? "" : org.result.child3 + "\n") +
(org.result.child2 == null ? "" : org.result.child2 + "\n") +
(org.result.child1 == null ? "" : org.result.child1 + "\n") +
(org.result.root == null ? "" : org.result.root);
placementTransfer.OrganizationPositionOld = org.result.position + "\n" +
(placementTransfer.PositionExecutiveOld == null ? "" : (placementTransfer.positionExecutiveField == null ? placementTransfer.PositionExecutiveOld + "\n" : placementTransfer.PositionExecutiveOld + "(" + placementTransfer.positionExecutiveField + ")" + "\n"))
+ placementTransfer.OrganizationOld;
}
await _context.PlacementTransfers.AddAsync(placementTransfer);
await _context.SaveChangesAsync();
if (Request.Form.Files != null && Request.Form.Files.Count != 0)
{
foreach (var file in Request.Form.Files)
{
var fileExtension = Path.GetExtension(file.FileName);
var doc = await _documentService.UploadFileAsync(file, file.FileName);
var _doc = await _context.Documents.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == doc.Id);
if (_doc != null)
{
var placementTransferDoc = new PlacementTransferDoc
{
PlacementTransfer = placementTransfer,
Document = _doc,
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
LastUpdateFullName = FullName ?? "System Administrator",
LastUpdateUserId = UserId ?? "",
LastUpdatedAt = DateTime.Now,
};
await _context.PlacementTransferDocs.AddAsync(placementTransferDoc);
}
}
}
//var baseAPIOrg = _configuration["API"];
//var apiUrlOrg = $"{baseAPIOrg}/org/workflow/add-workflow";
//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
// {
// refId = placementTransfer.Id,
// sysName = "SYS_TRANSFER_REQ",
// posLevelName = placementTransfer.posLevelNameOld,
// posTypeName = placementTransfer.posTypeNameOld,
// fullName = $"{placementTransfer.prefix}{placementTransfer.firstName} {placementTransfer.lastName}"
// });
//}
await _context.SaveChangesAsync();
return Success(placementTransfer.Id);
}
/// <summary>
/// แก้ไขคำขอโอน
/// </summary>

View file

@ -10,4 +10,13 @@ namespace BMA.EHR.Placement.Service.Requests
public DateTime? Date { get; set; }
public List<FormFile>? File { get; set; }
}
public class PlacementTransferAdminRequest
{
public string ProfileId { get; set; }
public string Organization { get; set; }
public string Reason { get; set; }
public DateTime? Date { get; set; }
public List<FormFile>? File { get; set; }
}
}