update issue #1578
Some checks failed
release-dev / release-dev (push) Failing after 11s

This commit is contained in:
Bright 2025-06-18 15:23:41 +07:00
parent ea55d21f51
commit 9e84bddb65
3 changed files with 53 additions and 19 deletions

View file

@ -139,28 +139,62 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
return data;
}
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type, string role, string nodeId, int node, DateTime StartDate, DateTime EndDate)
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type, string role, string nodeId, int? node, DateTime StartDate, DateTime EndDate)
{
var _nodeId = Guid.Parse(nodeId);
var data = new List<ProcessUserTimeStamp>();
//if (role == "OWNER" || role == "CHILD")
//{
// data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
// .Where(x => x.CheckInStatus == "LATE")
// .Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
// .Where(x => x.ProfileType == type.Trim().ToUpper())
// .Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
// .ToListAsync();
//}
//else
//{
// data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
// .Where(x => x.CheckInStatus == "LATE")
// .Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
// .Where(x => x.ProfileType == type.Trim().ToUpper())
// .Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
// .Where(x => node == 0 ? x.Child1Id == null : (node == 1 ? x.Child2Id == null : (node == 2 ? x.Child3Id == null : (node == 3 ? x.Child4Id == null : true))))
// .ToListAsync();
//}
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE")
.Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
.Where(x => x.ProfileType == type.Trim().ToUpper()).ToListAsync();
if (role == "OWNER")
{
node = null;
}
if (role == "OWNER" || role == "CHILD")
{
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE")
.Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
.Where(x => x.ProfileType == type.Trim().ToUpper())
.Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
.ToListAsync();
data = data.Where(x =>
node == 4 ? x.Child4DnaId == Guid.Parse(nodeId) :
node == 3 ? x.Child3DnaId == Guid.Parse(nodeId) :
node == 2 ? x.Child2DnaId == Guid.Parse(nodeId) :
node == 1 ? x.Child1DnaId == Guid.Parse(nodeId) :
node == 0 ? x.RootDnaId == Guid.Parse(nodeId) :
node == null ? true : true
).ToList();
}
else
else if (role == "ROOT")
{
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE")
.Where(u => u.CheckIn.Date >= StartDate && u.CheckIn.Date <= EndDate)
.Where(x => x.ProfileType == type.Trim().ToUpper())
.Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
.Where(x => node == 0 ? x.Child1Id == null : (node == 1 ? x.Child2Id == null : (node == 2 ? x.Child3Id == null : (node == 3 ? x.Child4Id == null : true))))
.ToListAsync();
data = data.Where(x => x.RootDnaId == Guid.Parse(nodeId)).ToList();
}
else if (role == "NORMAL")
{
data = data.Where(x =>
node == 0 ? x.Child1DnaId == null :
node == 1 ? x.Child2DnaId == null :
node == 2 ? x.Child3DnaId == null :
node == 3 ? x.Child4DnaId == null :
true
).ToList();
}
return data;
}

View file

@ -904,7 +904,7 @@ namespace BMA.EHR.Leave.Service.Controllers
ProfileType = profile.ProfileType,
RootDnaId = profile.RootId,
RootDnaId = profile.RootDnaId,
Child1DnaId = profile.Child1DnaId,
Child2DnaId = profile.Child2DnaId,
Child3DnaId = profile.Child3DnaId,

View file

@ -1701,8 +1701,8 @@ namespace BMA.EHR.Leave.Service.Controllers
{
nodeId = profileAdmin?.RootDnaId;
}
var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), jsonData["result"]?.ToString(), req.nodeId, req.node, req.StartDate, req.EndDate);
//var userTimeStamps = await _processUserTikmeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), role, nodeId, profileAdmin?.Node, req.StartDate, req.EndDate);
//var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), jsonData["result"]?.ToString(), req.nodeId, req.node, req.StartDate, req.EndDate);
var userTimeStamps = await _processUserTimeStampRepository.GetTimestampByDateLateAsync(type.Trim().ToUpper(), role, nodeId, profileAdmin.Node, req.StartDate, req.EndDate);
foreach (var p in userTimeStamps)
{
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}";
@ -1720,7 +1720,7 @@ namespace BMA.EHR.Leave.Service.Controllers
return Error("ไม่พบรอบการลงเวลา Default", StatusCodes.Status404NotFound);
}
}
DateTime? checkIn = p.CheckIn ?? null;
DateTime? checkIn = p.CheckIn;
DateTime? checkOut = p.CheckOut ?? null;
var emp = new
{