api อัพเดทสถานะ Mark ระบบเครื่องราช

This commit is contained in:
Bright 2025-05-16 17:35:44 +07:00
parent 6e1965ba79
commit 851c024171
6 changed files with 169 additions and 1 deletions

View file

@ -2704,5 +2704,59 @@ namespace BMA.EHR.Insignia.Service.Controllers
return Success();
}
/// <summary>
/// อัพเดทสถานะ Mark (โทษทางวินัย, ไม่ได้เลื่อนเงินเดือน/ไม่ได้เลื่อนขั้น (เนื่องจากลาเกิน), ผลการประเมินการปฏิบัติราชการในรอบ 5 ปี, ข้อมูลเครื่องราชฯ)
/// </summary>
/// <param name="insigniaPeriodId">Id รอบเครื่องราช</param>
/// <returns></returns>
/// <response code="200"></response>
/// <response code="400">ค่าตัวแปรที่ส่งมาไม่ถูกต้อง</response>
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
[HttpGet("update/{insigniaPeriodId:length(36)}")]
public async Task<ActionResult<ResponseObject>> InsigniaRequestUpdateMark(Guid insigniaPeriodId)
{
try
{
var insigniaPeriod = await _context.InsigniaPeriods
.Include(x => x.InsigniaRequests)
.Include(x => x.InsigniaEmployees)
.FirstOrDefaultAsync(x => x.Id == insigniaPeriodId);
if (insigniaPeriod == null)
return Error(GlobalMessages.InsigniaRequestNotFound);
if (insigniaPeriod.InsigniaRequests.Count > 0)
{
var allProfileIds = new List<string>();
foreach (var InsigniaRequest in insigniaPeriod.InsigniaRequests)
{
var profiles = await _context.Set<InsigniaRequestProfile>()
.Where(p => p.Request.Id == InsigniaRequest.Id && p.ProfileType.Trim().ToUpper() == "OFFICER").Select(x => x.ProfileId.ToString()).ToListAsync();
if (profiles != null && profiles.Count > 0)
{
allProfileIds.AddRange(profiles);
}
}
if (allProfileIds.Count > 0)
{
await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(allProfileIds.ToArray(), "OFFICER", null);
}
}
//if (insigniaPeriod.InsigniaEmployees.Count > 0)
//{
// await _insigniaPeriodRepository.UpdateInsigniaRequestProfile(insigniaPeriod.InsigniaEmployees.Select(x => x.RefId!.ValueOrBlank()).ToArray(), "EMPLOYEE", insigniaPeriod.Id);
//}
return Success();
}
catch (Exception ex)
{
return Error(ex);
}
}
}
}