fix 增加是否离职参数

This commit is contained in:
2024-07-04 15:37:01 +08:00
parent f7a1c5f6ba
commit 682cdd576c
3 changed files with 23 additions and 21 deletions

View File

@@ -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; }
}

View File

@@ -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
{

View File

@@ -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);
}