fix : optimize query speed
This commit is contained in:
parent
b707c25f89
commit
940405e2e6
1 changed files with 77 additions and 25 deletions
|
|
@ -869,18 +869,24 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
//var count = await _processUserTimeStampRepository.GetTimeStampHistoryForAdminCountAsync(startDate, endDate);
|
||||
|
||||
var imgUrl = $"{_configuration["MinIO:Endpoint"]}{_configuration["MinIO:BucketName"]}";
|
||||
var data = (await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate))
|
||||
.Select(d => new CheckInProcessHistoryForAdminDto
|
||||
{
|
||||
Id = d.Id,
|
||||
FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
|
||||
|
||||
CheckInDate = d.CheckIn.Date,
|
||||
CheckInTime = d.CheckIn.ToString("HH:mm"),
|
||||
CheckInLocation = d.CheckInPOI,
|
||||
CheckInLat = d.CheckInLat,
|
||||
CheckInLon = d.CheckInLon,
|
||||
CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus :
|
||||
var resultData = await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate);
|
||||
var data = new List<CheckInProcessHistoryForAdminDto>();
|
||||
|
||||
foreach (var d in resultData)
|
||||
{
|
||||
var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId, AccessToken);
|
||||
if (pf == null) continue;
|
||||
data.Add(new CheckInProcessHistoryForAdminDto
|
||||
{
|
||||
Id = d.Id,
|
||||
FullName = $"{pf.Prefix}{pf.FirstName} {pf.LastName}",
|
||||
CheckInDate = d.CheckIn.Date,
|
||||
CheckInTime = d.CheckIn.ToString("HH:mm"),
|
||||
CheckInLocation = d.CheckInPOI,
|
||||
CheckInLat = d.CheckInLat,
|
||||
CheckInLon = d.CheckInLon,
|
||||
CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus :
|
||||
DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
|
||||
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ?
|
||||
|
||||
|
|
@ -891,16 +897,16 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
|
||||
|
||||
"NORMAL",
|
||||
CheckInIsLocation = d.IsLocationCheckIn,
|
||||
CheckInLocationName = d.CheckInLocationName,
|
||||
//CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
|
||||
CheckInIsLocation = d.IsLocationCheckIn,
|
||||
CheckInLocationName = d.CheckInLocationName,
|
||||
//CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
|
||||
|
||||
CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
|
||||
CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
|
||||
CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
|
||||
CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
|
||||
CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
|
||||
CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus :
|
||||
CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
|
||||
CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
|
||||
CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
|
||||
CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
|
||||
CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
|
||||
CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus :
|
||||
d.CheckOut == null ? null : DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
|
||||
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}") ?
|
||||
"ABSENT" :
|
||||
|
|
@ -908,12 +914,58 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
|
||||
"ABSENT" :
|
||||
"NORMAL",
|
||||
CheckOutIsLocation = d.IsLocationCheckOut,
|
||||
CheckOutLocationName = d.CheckOutLocationName
|
||||
//CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
|
||||
})
|
||||
CheckOutIsLocation = d.IsLocationCheckOut,
|
||||
CheckOutLocationName = d.CheckOutLocationName
|
||||
//CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
|
||||
});
|
||||
}
|
||||
|
||||
.ToList();
|
||||
|
||||
// var data = (await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate))
|
||||
// .Select(d => new CheckInProcessHistoryForAdminDto
|
||||
// {
|
||||
// Id = d.Id,
|
||||
// FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
|
||||
|
||||
// CheckInDate = d.CheckIn.Date,
|
||||
// CheckInTime = d.CheckIn.ToString("HH:mm"),
|
||||
// CheckInLocation = d.CheckInPOI,
|
||||
// CheckInLat = d.CheckInLat,
|
||||
// CheckInLon = d.CheckInLon,
|
||||
// CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus :
|
||||
// DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
|
||||
// DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ?
|
||||
|
||||
// DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
|
||||
// DateTime.Parse($"{d.CheckIn.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
|
||||
// "ABSENT" :
|
||||
// "LATE" :
|
||||
|
||||
|
||||
// "NORMAL",
|
||||
// CheckInIsLocation = d.IsLocationCheckIn,
|
||||
// CheckInLocationName = d.CheckInLocationName,
|
||||
// //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
|
||||
|
||||
// CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
|
||||
// CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
|
||||
// CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
|
||||
// CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
|
||||
// CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
|
||||
// CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus :
|
||||
// d.CheckOut == null ? null : DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
|
||||
// DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}") ?
|
||||
// "ABSENT" :
|
||||
// DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
|
||||
// DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
|
||||
// "ABSENT" :
|
||||
// "NORMAL",
|
||||
// CheckOutIsLocation = d.IsLocationCheckOut,
|
||||
// CheckOutLocationName = d.CheckOutLocationName
|
||||
// //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
|
||||
// })
|
||||
|
||||
// .ToList();
|
||||
|
||||
if (keyword != "")
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue