diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs index ed70f63e..2867d1fa 100644 --- a/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs +++ b/Src/Dlhis.Basic/Organization/Request/GainfoMealPageRequest.cs @@ -6,4 +6,9 @@ namespace Dlhis.Basic.Organization.Request; public class GainfoMealPageRequest : PageDto { public DateTimePeriod DateTimePeriod { get; set; } + + /// + /// 是否离职 + /// + public bool IsLeave { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs index 5273418d..0b816dc9 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoMealService.cs @@ -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() .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 { diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs index 100cae69..aef1a533 100644 --- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs +++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs @@ -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> 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() .LeftJoin((deviceUp, device) => deviceUp.DeviceUniqueNo == device.UniqueNo) .LeftJoin((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().Where(x => x.Code == deviceUp.UserUniqueNo).Any()) .WhereIF(request.IsOutSource.HasValue && !request.IsOutSource.Value, deviceUp => SqlFunc.Subqueryable().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(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); }