Add admin endpoints for processing leave tasks, including retrieval, deletion, and updates
This commit is contained in:
parent
759a51ab58
commit
2cd7798dd9
2 changed files with 189 additions and 28 deletions
|
|
@ -4200,6 +4200,139 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
return Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// แสดงรายการ Task สำหรับ Process ข้อมูลวันลาและขาดราชการ (ADMIN)
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// </returns>
|
||||
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpGet("admin/leave-task/process")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<ActionResult<ResponseObject>> GetProcessTaskAsync()
|
||||
{
|
||||
var userId = UserId == null ? Guid.Empty : Guid.Parse(UserId);
|
||||
|
||||
var tasks = await _leaveProcessJobStatusRepository.GetByUserIdAsync(userId);
|
||||
|
||||
var result = tasks.Select(t => new
|
||||
{
|
||||
t.Id,
|
||||
t.CreatedFullName,
|
||||
t.CreatedAt,
|
||||
t.Status,
|
||||
t.StartDate,
|
||||
t.EndDate,
|
||||
t.ProcessingDate,
|
||||
t.CompletedDate,
|
||||
t.ErrorMessage
|
||||
});
|
||||
|
||||
return Success(result);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// แสดงรายการ Task สำหรับ Process ข้อมูลวันลาและขาดราชการ (ADMIN)
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// </returns>
|
||||
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpGet("admin/leave-task/process/{id:guid}")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<ActionResult<ResponseObject>> GetProcessTaskByIdAsync(Guid id)
|
||||
{
|
||||
var task = await _leaveProcessJobStatusRepository.GetByTaskIdAsync(id);
|
||||
|
||||
if (task == null)
|
||||
{
|
||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
||||
}
|
||||
|
||||
var result = new
|
||||
{
|
||||
task.Id,
|
||||
task.CreatedFullName,
|
||||
task.CreatedAt,
|
||||
task.Status,
|
||||
task.StartDate,
|
||||
task.EndDate,
|
||||
task.ProcessingDate,
|
||||
task.CompletedDate,
|
||||
task.ErrorMessage
|
||||
};
|
||||
|
||||
return Success(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ลบ Task สำหรับ Process ข้อมูลวันลาและขาดราชการ (ADMIN)
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// </returns>
|
||||
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpDelete("admin/leave-task/process/{id:guid}")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<ActionResult<ResponseObject>> DeleteProcessTaskByIdAsync(Guid id)
|
||||
{
|
||||
var task = await _leaveProcessJobStatusRepository.GetByTaskIdAsync(id);
|
||||
|
||||
if (task == null)
|
||||
{
|
||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
||||
}
|
||||
|
||||
await _leaveProcessJobStatusRepository.DeleteAsync(task);
|
||||
|
||||
return Success();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// อัปเดต Task สำหรับ Process ข้อมูลวันลาและขาดราชการ (ADMIN)
|
||||
/// </summary>
|
||||
/// <returns>
|
||||
/// </returns>
|
||||
/// <response code="200">เมื่อทำรายการสำเร็จ</response>
|
||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||
[HttpPut("admin/leave-task/process/{id:guid}")]
|
||||
[ProducesResponseType(StatusCodes.Status200OK)]
|
||||
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
|
||||
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
|
||||
public async Task<ActionResult<ResponseObject>> UpdateProcessTaskByIdAsync(Guid id,[FromBody] CreateLeaveProcessJobDto req)
|
||||
{
|
||||
var task = await _leaveProcessJobStatusRepository.GetByTaskIdAsync(id);
|
||||
|
||||
if (task == null)
|
||||
{
|
||||
return Error(GlobalMessages.DataNotFound, StatusCodes.Status404NotFound);
|
||||
}
|
||||
|
||||
if(task.Status != "PENDING")
|
||||
{
|
||||
return Error("ไม่สามารถแก้ไขได้เนื่องจาก Task อยู่ในสถานะกำลังดำเนินการหรือดำเนินการเสร็จสิ้นแล้ว");
|
||||
}
|
||||
|
||||
task.StartDate = req.StartDate;
|
||||
task.EndDate = req.EndDate;
|
||||
|
||||
await _leaveProcessJobStatusRepository.UpdateAsync(task);
|
||||
|
||||
return Success();
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue