feat 网格所有记录
This commit is contained in:
@@ -141,7 +141,7 @@ public class WorkGridsController : ControllerBase
|
|||||||
[Transactional]
|
[Transactional]
|
||||||
public async Task SaveScheduleAsync(WorkGridScheduleSaveRequest request)
|
public async Task SaveScheduleAsync(WorkGridScheduleSaveRequest request)
|
||||||
{
|
{
|
||||||
await _workGridScheduleService.SaveAsync(request);
|
await _workGridScheduleService.SaveAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -193,6 +193,18 @@ public class WorkGridsController : ControllerBase
|
|||||||
return await _workGridScheduleService.GetAttendancePageAsync(request);
|
return await _workGridScheduleService.GetAttendancePageAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取网格人员考勤记录分页(所有)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("user/attendance/page-all")]
|
||||||
|
[IgnoreTenant]
|
||||||
|
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAllAttendancePageAsync([FromQuery] WorkGridScheduleAttendancePageRequest request)
|
||||||
|
{
|
||||||
|
return await _workGridScheduleService.GetAllAttendancePageAsync(request);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 网格人员考勤记录补传
|
/// 网格人员考勤记录补传
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -5,11 +5,23 @@ namespace Dlhis.Basic.WorkGrids.Request;
|
|||||||
|
|
||||||
public class WorkGridScheduleAttendancePageRequest : PageDto
|
public class WorkGridScheduleAttendancePageRequest : PageDto
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 工作网格,为空查询所有
|
||||||
|
/// </summary>
|
||||||
public Guid? WorkGridCode { get; set; }
|
public Guid? WorkGridCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 工号
|
||||||
|
/// </summary>
|
||||||
public string UserCode { get; set; }
|
public string UserCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查询时间端
|
||||||
|
/// </summary>
|
||||||
public DateTimePeriod DateTimePeriod { get; set; }
|
public DateTimePeriod DateTimePeriod { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否异常记录
|
||||||
|
/// </summary>
|
||||||
public bool IsError { get; set; }
|
public bool IsError { get; set; }
|
||||||
}
|
}
|
||||||
@@ -20,6 +20,8 @@ public interface IWorkGridScheduleService : IScopeDependency
|
|||||||
|
|
||||||
Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
|
Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
|
||||||
|
|
||||||
|
Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAllAttendancePageAsync(WorkGridScheduleAttendancePageRequest request);
|
||||||
|
|
||||||
Task ManuallyUploadAsync(List<long> logIds);
|
Task ManuallyUploadAsync(List<long> logIds);
|
||||||
|
|
||||||
Task<List<WorkGridScheduleMaximumConsecutiveDto>> MaximumConsecutiveUserCodesAsync(List<string> userCodes, int days, DateOnly date);
|
Task<List<WorkGridScheduleMaximumConsecutiveDto>> MaximumConsecutiveUserCodesAsync(List<string> userCodes, int days, DateOnly date);
|
||||||
|
|||||||
@@ -243,6 +243,7 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
|||||||
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request)
|
public async Task<Pagination<WorkGridScheduleAttendancePageResponse>> GetAttendancePageAsync(WorkGridScheduleAttendancePageRequest request)
|
||||||
{
|
{
|
||||||
var jinkoCode = _currentUser.GetUserClaim(UserClaimConstants.JinkoCode);
|
var jinkoCode = _currentUser.GetUserClaim(UserClaimConstants.JinkoCode);
|
||||||
|
|
||||||
var workGrid = await _dbContext.Queryable<WorkGridEntity>()
|
var workGrid = await _dbContext.Queryable<WorkGridEntity>()
|
||||||
.WhereIF(request.WorkGridCode.HasValue, x => x.Code == request.WorkGridCode)
|
.WhereIF(request.WorkGridCode.HasValue, x => x.Code == request.WorkGridCode)
|
||||||
.WhereIF(request.WorkGridCode.HasValue == false, x => x.LeaderUserCode == jinkoCode)
|
.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
|
.WhereIF(request.DateTimePeriod.HasValue(), log => log.RaiseDateTime >= request.DateTimePeriod.Start
|
||||||
&& log.RaiseDateTime <= request.DateTimePeriod.End)
|
&& log.RaiseDateTime <= request.DateTimePeriod.End)
|
||||||
.WhereIF(request.UserCode.IsPresent(), log => log.UserUniqueNo == request.UserCode)
|
.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 => log.WorkGridInfo.StartsWith(filterString))
|
||||||
.Where((log, d) => d.Type == DeviceTypeEnumType.Attendance || (d.Type == DeviceTypeEnumType.Door && d.AsAttendance))
|
.Where((log, d) => d.Type == DeviceTypeEnumType.Attendance || (d.Type == DeviceTypeEnumType.Door && d.AsAttendance))
|
||||||
.OrderBy(log => log.RaiseDateTime)
|
.OrderBy(log => log.RaiseDateTime)
|
||||||
@@ -291,6 +295,45 @@ public class WorkGridScheduleService : IWorkGridScheduleService
|
|||||||
.ToPageListAsync(request);
|
.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 />
|
/// <inheritdoc />
|
||||||
public async Task ManuallyUploadAsync(List<long> logIds)
|
public async Task ManuallyUploadAsync(List<long> logIds)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user