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