feat 增加根据厂区/变更时间获取归档数据
This commit is contained in:
@@ -47,6 +47,16 @@ public class GainfosController : ControllerBase
|
|||||||
return await _gainfoService.GetGainfosAsync(factory);
|
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>
|
||||||
/// 获取考勤数据
|
/// 获取考勤数据
|
||||||
/// </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<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)
|
.LeftJoin<DepartmentEntity>((x, d) => x.DepartmentNo == d.No)
|
||||||
.Where(x => x.Factory == "2401")
|
.Where(x => x.Factory == "2401")
|
||||||
.Where(x => SqlFunc.Subqueryable<GainfoEntity>()
|
.Where(x => SqlFunc.Subqueryable<GainfoEntity>()
|
||||||
.Where(p => p.Factory == "2401")
|
|
||||||
.Where(p => p.Code == x.Code)
|
.Where(p => p.Code == x.Code)
|
||||||
.NotAny()
|
.NotAny()
|
||||||
)
|
)
|
||||||
@@ -128,4 +127,28 @@ public class GainfoService : IGainfoService
|
|||||||
})
|
})
|
||||||
.ToPageListAsync(request);
|
.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