From 019a0a1be1043494abdf9a7b1c595696bc92dbc9 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Mon, 29 Jun 2026 12:21:30 +0700 Subject: [PATCH] Add Get Pending Job --- .../CheckInJobStatusRepository.cs | 11 +++++++++++ BMA.EHR.Leave/Controllers/LeaveController.cs | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/CheckInJobStatusRepository.cs b/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/CheckInJobStatusRepository.cs index e0967a5c..902dcf64 100644 --- a/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/CheckInJobStatusRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/TimeAttendants/CheckInJobStatusRepository.cs @@ -63,6 +63,17 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants return data; } + + public async Task> GetPendingOrProcessingJobsByDateAsync(DateTime date) + { + var data = await _dbContext.Set() + .Where(x => x.CreatedDate.Date == date.Date && + (x.Status == "PENDING" || x.Status == "PROCESSING")) + .OrderByDescending(x => x.CreatedDate) + .ToListAsync(); + + return data; + } /// /// อัปเดตสถานะเป็น Processing diff --git a/BMA.EHR.Leave/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs index 7e6bad99..66d49d39 100644 --- a/BMA.EHR.Leave/Controllers/LeaveController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveController.cs @@ -435,6 +435,24 @@ namespace BMA.EHR.Leave.Service.Controllers #region " Check-In Check-Out ลงเวลา " + /// + /// ดึงข้อมูลงานที่ยังไม่ได้ process หรือ ไม่เสร็จ ย้อนหลังจากเวลาปัจจุบันไปกี่นาที + /// + /// เวลาที่ต้องการย้อนหลังไปที่นาที default = 30 + /// + /// เมื่อทำรายการสำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("pending-jobs/{timeoutMinutes:int}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetPendingJobByDateAsync(int timeoutMinutes = 30) + { + var data = await _checkInJobStatusRepository.GetStalePendingOrProcessingJobsAsync(timeoutMinutes); + return Success(data); + } + /// /// LV1_006 - เช็คเวลาต้องลงเวลาเข้าหรือออกงาน (USER) ///