feat 增加根据厂区/变更时间获取归档数据
This commit is contained in:
@@ -47,6 +47,16 @@ public class GainfosController : ControllerBase
|
||||
return await _gainfoService.GetGainfosAsync(factory);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取归档人员数据
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("/archive/pagination")]
|
||||
public async Task<Pagination<GainfoOpenResponse>> GetGainfoLeavePageAsync([FromQuery] GainfoArchivePageRequest request)
|
||||
{
|
||||
return await _gainfoService.GetGainfoLeavePageAsync(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取考勤数据
|
||||
/// </summary>
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.External.OpenApi.Request;
|
||||
|
||||
public class GainfoArchivePageRequest : PageDto
|
||||
{
|
||||
/// <summary>
|
||||
/// 厂区不能为空
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "{0}厂区不能为空")]
|
||||
public string Factory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 数据变更时间
|
||||
/// </summary>
|
||||
public DateTime? ModifiedTime { get; set; }
|
||||
}
|
||||
@@ -14,4 +14,7 @@ public interface IGainfoService : IScopeDependency
|
||||
|
||||
|
||||
Task<Pagination<DeviceUploadLogResponse>> GetAttendanceRecordPageAsync(DeviceUploadLogMyRecordRequest request);
|
||||
|
||||
|
||||
Task<Pagination<GainfoOpenResponse>> GetGainfoLeavePageAsync(GainfoArchivePageRequest request);
|
||||
}
|
||||
@@ -56,7 +56,6 @@ public class GainfoService : IGainfoService
|
||||
.LeftJoin<DepartmentEntity>((x, d) => x.DepartmentNo == d.No)
|
||||
.Where(x => x.Factory == "2401")
|
||||
.Where(x => SqlFunc.Subqueryable<GainfoEntity>()
|
||||
.Where(p => p.Factory == "2401")
|
||||
.Where(p => p.Code == x.Code)
|
||||
.NotAny()
|
||||
)
|
||||
@@ -128,4 +127,28 @@ public class GainfoService : IGainfoService
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
|
||||
public async Task<Pagination<GainfoOpenResponse>> GetGainfoLeavePageAsync(GainfoArchivePageRequest request)
|
||||
{
|
||||
return await _dbContext.Queryable<GainfoEntity>().AS("GainfoLeave")
|
||||
.LeftJoin<DepartmentEntity>((x, d) => x.DepartmentNo == d.No)
|
||||
.Where(x => x.Factory == request.Factory)
|
||||
.WhereIF(request.ModifiedTime.HasValue, x => x.ModifiedTime >= request.ModifiedTime)
|
||||
.Where(x => SqlFunc.Subqueryable<GainfoEntity>()
|
||||
.Where(p => p.Code == x.Code)
|
||||
.NotAny()
|
||||
)
|
||||
.Select((x, d) => new GainfoOpenResponse
|
||||
{
|
||||
Code = x.Code,
|
||||
Type = SqlFunc.IIF(x.Type == GainfoUserTypeEnumType.SecurityWhite, GainfoUserTypeEnumType.Normal, x.Type),
|
||||
DepartmentNo = x.DepartmentNo,
|
||||
DepartmentName = d.Name,
|
||||
Name = x.Name,
|
||||
Gender = x.Gender,
|
||||
Factory = x.Factory,
|
||||
Status = GainfoStatusEnumType.Leave,
|
||||
})
|
||||
.ToPageListAsync(request);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user