fix 外包人员,餐补导入,人员列表

This commit is contained in:
2024-05-24 15:28:31 +08:00
parent db094bc768
commit 7e2c0c7e39
19 changed files with 410 additions and 73 deletions

View File

@@ -18,6 +18,11 @@ public class DeviceUploadLogPageRequest : PageDto, IValidatableObject
/// </summary>
public bool? Sync { get; set; }
/// <summary>
/// 是否为外包
/// </summary>
public bool? IsOutSource { get; set; }
/// <summary>
/// 日期范围查询
/// </summary>

View File

@@ -27,8 +27,9 @@ public class DeviceUploadLogService : IDeviceUploadLogService
{
DeviceUploadLogTypeEnumType? type = request.Type == DeviceTypeEnumType.Attendance
? DeviceUploadLogTypeEnumType.Attendance
: request.Type == DeviceTypeEnumType.Door ? DeviceUploadLogTypeEnumType.Door
: null;
: request.Type == DeviceTypeEnumType.Door
? DeviceUploadLogTypeEnumType.Door
: null;
return await _dbContext.Queryable<DeviceUploadLogEntity>()
.LeftJoin<DeviceEntity>((deviceUp, device) => deviceUp.DeviceUniqueNo == device.UniqueNo)
@@ -37,10 +38,12 @@ public class DeviceUploadLogService : IDeviceUploadLogService
.WhereIF(request.Sync.HasValue, deviceUp => deviceUp.Sync == request.Sync)
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.RaiseDateTime >= request.SearchDateTimePeriod.Start)
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.RaiseDateTime <= request.SearchDateTimePeriod.End)
.WhereIF(request.IsOutSource.HasValue && request.IsOutSource.Value, deviceUp => SqlFunc.Subqueryable<OutSourceEntity>().Where(x => x.Code == deviceUp.UserUniqueNo).Any())
.WhereIF(request.IsOutSource.HasValue && !request.IsOutSource.Value, deviceUp => SqlFunc.Subqueryable<OutSourceEntity>().Where(x => x.Code == deviceUp.UserUniqueNo).NotAny())
.WhereIF(request.Search.IsPresent(), (deviceUp, device, ga) =>
ga.Code == request.Search
|| ga.Name == request.Search
|| deviceUp.DeviceUniqueNo == request.Search
ga.Code == request.Search
|| ga.Name == request.Search
|| deviceUp.DeviceUniqueNo == request.Search
)
.OrderBy(deviceUp => deviceUp.CreateTime, OrderByType.Desc)
.Select((deviceUp, device, ga) => new DeviceUploadLogResponse
@@ -65,10 +68,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
{
//判断存在的记录
Expression<Func<DeviceUploadLogEntity, bool>> where = LinqExpressionExtensions.False<DeviceUploadLogEntity>();
requests.ForEach(p =>
{
where = where.Or(x => x.DeviceUniqueNo == p.DeviceUniqueNo && x.SerialNo == p.SerialNo && x.RaiseDateTime == p.RaiseDateTime);
});
requests.ForEach(p => { where = where.Or(x => x.DeviceUniqueNo == p.DeviceUniqueNo && x.SerialNo == p.SerialNo && x.RaiseDateTime == p.RaiseDateTime); });
//处理冗余的请求数据
var exists = await _dbContext.Queryable<DeviceUploadLogEntity>().Where(where).ToListAsync();
@@ -94,12 +94,10 @@ public class DeviceUploadLogService : IDeviceUploadLogService
Type = device.Type == DeviceTypeEnumType.Attendance ? DeviceUploadLogTypeEnumType.Attendance : DeviceUploadLogTypeEnumType.Door,
TenantId = device.TenantId,
}).ToList();
}
return null;
}).Where(x => x != null).ToList();
await _dbContext.InsertAsync(records);
@@ -130,4 +128,4 @@ public class DeviceUploadLogService : IDeviceUploadLogService
await _dbContext.InsertAsync(logs);
}
}
}