feat 网格所有记录
This commit is contained in:
@@ -243,6 +243,7 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
||||
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request)
|
||||
{
|
||||
var jinkoCode = _currentUser.GetUserClaim(UserClaimConstants.JinkoCode);
|
||||
|
||||
var workGrid = await _dbContext.Queryable<WorkGridEntity>()
|
||||
.WhereIF(request.WorkGridCode.HasValue, x => x.Code == request.WorkGridCode)
|
||||
.WhereIF(request.WorkGridCode.HasValue == false, x => x.LeaderUserCode == jinkoCode)
|
||||
@@ -268,7 +269,10 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
||||
.WhereIF(request.DateTimePeriod.HasValue(), log => log.RaiseDateTime >= request.DateTimePeriod.Start
|
||||
&& log.RaiseDateTime <= request.DateTimePeriod.End)
|
||||
.WhereIF(request.UserCode.IsPresent(), log => log.UserUniqueNo == request.UserCode)
|
||||
.WhereIF(request.UserCode.IsEmpty(), log => SqlFunc.Subqueryable<WorkGridUserEntity>().Where(p => p.WorkGridCode == workGrid.Code && p.UserCode == log.UserUniqueNo && p.IsDeleted == false).Any())
|
||||
.WhereIF(request.UserCode.IsEmpty(), log => SqlFunc.Subqueryable<WorkGridUserEntity>()
|
||||
.Where(p => p.WorkGridCode == workGrid.Code && p.UserCode == log.UserUniqueNo && p.IsDeleted == false)
|
||||
.Any()
|
||||
)
|
||||
.Where(log => log.WorkGridInfo.StartsWith(filterString))
|
||||
.Where((log, d) => d.Type == DeviceTypeEnumType.Attendance || (d.Type == DeviceTypeEnumType.Door && d.AsAttendance))
|
||||
.OrderBy(log => log.RaiseDateTime)
|
||||
@@ -291,6 +295,45 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
|
||||
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAllAttendancePageAsync(WorkGridScheduleAttendancePageRequest request)
|
||||
{
|
||||
var t = request.IsError.ToString().ToLower();
|
||||
var filterString = $"{{\"IsError\":{t}";
|
||||
|
||||
return await _dbContext.Queryable<DeviceUploadLogEntity>()
|
||||
.LeftJoin<DeviceEntity>((log, d) => log.DeviceUniqueNo == d.UniqueNo)
|
||||
.LeftJoin<GainfoEntity>((log, d, ga) => log.UserUniqueNo == ga.Code)
|
||||
.WhereIF(request.DateTimePeriod.HasValue(), log => log.RaiseDateTime >= request.DateTimePeriod.Start
|
||||
&& log.RaiseDateTime <= request.DateTimePeriod.End)
|
||||
.Where(log => SqlFunc.Subqueryable<WorkGridUserEntity>()
|
||||
.Where(p => p.UserCode == log.UserUniqueNo && p.IsDeleted == false)
|
||||
.WhereIF(request.WorkGridCode.HasValue, p => p.WorkGridCode == request.WorkGridCode)
|
||||
.WhereIF(request.UserCode.IsPresent(), p => p.UserCode == request.UserCode)
|
||||
.Any()
|
||||
)
|
||||
.Where(log => log.WorkGridInfo.StartsWith(filterString))
|
||||
.Where((log, d) => d.Type == DeviceTypeEnumType.Attendance || (d.Type == DeviceTypeEnumType.Door && d.AsAttendance))
|
||||
.OrderBy(log => log.RaiseDateTime)
|
||||
.Select((log, d, ga) => new WorkGridScheduleAttendancePageResponse
|
||||
{
|
||||
Id = log.Id,
|
||||
OriginUserUniqueNo = log.UserUniqueNo,
|
||||
DeviceUniqueNo = log.DeviceUniqueNo,
|
||||
RaiseDateTime = log.RaiseDateTime,
|
||||
CreateTime = log.CreateTime,
|
||||
SerialNo = log.SerialNo,
|
||||
DeployPlace = d.DeployPlace,
|
||||
UserCode = log.UserUniqueNo,
|
||||
UserName = ga.Name,
|
||||
Sync = log.Sync,
|
||||
NeedUpload = log.NeedUpload,
|
||||
Status = log.Status,
|
||||
WorkGridInfo = log.WorkGridInfo,
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task ManuallyUploadAsync(List<long> logIds)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user