fix 增加是否离职参数
This commit is contained in:
@@ -6,4 +6,9 @@ namespace Dlhis.Basic.Organization.Request;
|
||||
public class GainfoMealPageRequest : PageDto
|
||||
{
|
||||
public DateTimePeriod DateTimePeriod { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否离职
|
||||
/// </summary>
|
||||
public bool IsLeave { get; set; }
|
||||
}
|
||||
@@ -4,6 +4,7 @@ using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Canteen.Entities;
|
||||
using Dlhis.Entity.Canteen.Enums;
|
||||
using Kurisu.AspNetCore.Authentication.Abstractions;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
||||
@@ -37,6 +38,7 @@ public class GainfoMealService : IGainfoMealService
|
||||
|| gainfo.Name.Contains(request.Search)
|
||||
|| gainfoLeave.Name.Contains(request.Search))
|
||||
.Where((meal, gainfo, gainfoLeave) => gainfo.Factory == tenantId || gainfoLeave.Factory == tenantId)
|
||||
.WhereIF(request.IsLeave, (meal, gainfo, gainfoLeave) => SqlFunc.IsNullOrEmpty(gainfo.No))
|
||||
.Select((meal, gainfo, gainfoLeave, dept1, dept2) => new GainfoMealResponse
|
||||
{
|
||||
Balance = meal.Balance,
|
||||
@@ -52,8 +54,7 @@ public class GainfoMealService : IGainfoMealService
|
||||
var userCodes = page.Data.Select(x => x.UserCode).ToList();
|
||||
var summary = await _dbContext.Queryable<MealSupplementRecordEntity>()
|
||||
.Where(x => userCodes.Contains(x.Code))
|
||||
.WhereIF(request.DateTimePeriod?.Start.HasValue == true && request.DateTimePeriod?.End.HasValue == true,
|
||||
x => x.Date >= request.DateTimePeriod.Start && x.Date <= request.DateTimePeriod.End)
|
||||
.WhereIF(request.DateTimePeriod.HasValue(), x => x.Date >= request.DateTimePeriod.Start && x.Date <= request.DateTimePeriod.End)
|
||||
.GroupBy(x => x.Code)
|
||||
.Select(x => new
|
||||
{
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System.Linq.Expressions;
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Device.Entities;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Dlhis.ScheduledTask.DeviceUploadLog.Request;
|
||||
using Dlhis.ScheduledTask.DeviceUploadLog.Response;
|
||||
using Kurisu.AspNetCore.CustomClass;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
||||
@@ -25,19 +25,19 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
|
||||
public async Task<Pagination<DeviceUploadLogResponse>> GetPageAsync(DeviceUploadLogPageRequest request)
|
||||
{
|
||||
DeviceUploadLogTypeEnumType? type = request.Type == DeviceTypeEnumType.Attendance
|
||||
? DeviceUploadLogTypeEnumType.Attendance
|
||||
: request.Type == DeviceTypeEnumType.Door
|
||||
? DeviceUploadLogTypeEnumType.Door
|
||||
: null;
|
||||
DeviceUploadLogTypeEnumType? type = request.Type switch
|
||||
{
|
||||
DeviceTypeEnumType.Attendance => DeviceUploadLogTypeEnumType.Attendance,
|
||||
DeviceTypeEnumType.Door => DeviceUploadLogTypeEnumType.Door,
|
||||
_ => null
|
||||
};
|
||||
|
||||
return await _dbContext.Queryable<DeviceUploadLogEntity>()
|
||||
.LeftJoin<DeviceEntity>((deviceUp, device) => deviceUp.DeviceUniqueNo == device.UniqueNo)
|
||||
.LeftJoin<GainfoEntity>((deviceUp, device, ga) => deviceUp.UserUniqueNo == ga.Code)
|
||||
.WhereIF(type.HasValue, (deviceUp, device) => deviceUp.Type == type)
|
||||
.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.SearchDateTimePeriod.HasValue(), deviceUp => deviceUp.RaiseDateTime >= request.SearchDateTimePeriod.Start && 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) =>
|
||||
@@ -112,17 +112,13 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
||||
(uniqueNos.Count != devices.Count).ThrowIfTrue("存在非考勤和门禁的设备");
|
||||
|
||||
var tenantId = devices.FirstOrDefault().TenantId;
|
||||
var logs = new List<DeviceUploadLogEntity>(requests.Count);
|
||||
foreach (var request in requests)
|
||||
var logs = requests.Select(request => new DeviceUploadLogEntity
|
||||
{
|
||||
logs.Add(new DeviceUploadLogEntity
|
||||
{
|
||||
DeviceUniqueNo = request.DeviceUniqueNo,
|
||||
Type = DeviceUploadLogTypeEnumType.Raise,
|
||||
RaiseDateTime = request.Begin,
|
||||
TenantId = tenantId
|
||||
});
|
||||
}
|
||||
DeviceUniqueNo = request.DeviceUniqueNo,
|
||||
Type = DeviceUploadLogTypeEnumType.Raise,
|
||||
RaiseDateTime = request.Begin,
|
||||
TenantId = tenantId
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(logs);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user