fix 优化获取raiseDateTime?的问题

This commit is contained in:
2025-06-12 12:10:53 +08:00
parent b4a8af21e2
commit 249f26fc60
2 changed files with 10 additions and 18 deletions

View File

@@ -354,33 +354,29 @@ public class AppointmentService : IAppointmentService
.ToListAsync();
var settings = await _factorySettingService.GetListAsync(false);
//0001/1/1 0:00:00
var nullDateTime = new DateTime(1, 1, 1);
//todo 临时处理循环依赖
var gainfoService = _serviceProvider.GetService<IGainfoService>();
//人员分组,key为factory
foreach (var grp in externals.GroupBy(x => x.Factory))
foreach (var exts in externals.GroupBy(x => x.Factory))
{
//factory的设置
var setting = settings.First(x => x.Factory == grp.Key);
var setting = settings.First(x => x.Factory == exts.Key);
if (setting.NoRecordAutoResignExternalDays == 0)
{
continue;
}
foreach (var ext in grp)
foreach (var ext in exts)
{
var raiseDateTime = await _dbContext.Queryable<DeviceUploadLogEntity>()
DateTime? raiseDateTime = await _dbContext.Queryable<DeviceUploadLogEntity>()
.Where(x => x.UserUniqueNo == ext.Code)
.GroupBy(x => x.UserUniqueNo)
.Select(x => SqlFunc.IsNull(SqlFunc.AggregateMax(x.RaiseDateTime), ext.CreateTime))
.Select(x => SqlFunc.IsNull(SqlFunc.AggregateMax(x.RaiseDateTime), default(DateTime?)))
.SingleAsync();
raiseDateTime = raiseDateTime == nullDateTime ? ext.CreateTime : raiseDateTime;
if (raiseDateTime.AddDays(setting.NoRecordAutoResignExternalDays) < DateTime.Now)
if (raiseDateTime.HasValue && raiseDateTime.Value.AddDays(setting.NoRecordAutoResignExternalDays) < DateTime.Now)
{
try
{

View File

@@ -120,8 +120,6 @@ public class GainfoOutsourceService : IGainfoOutsourceService
.ToListAsync();
var settings = await _factorySettingService.GetListAsync(false);
//0001/1/1 0:00:00
var nullDateTime = new DateTime(1, 1, 1);
foreach (var grp in outsources.GroupBy(x => x.Factory))
{
@@ -133,16 +131,14 @@ public class GainfoOutsourceService : IGainfoOutsourceService
foreach (var outsource in grp)
{
var raiseDateTime = await _dbContext.Queryable<DeviceUploadLogEntity>()
DateTime? raiseDateTime = await _dbContext.Queryable<DeviceUploadLogEntity>()
.Where(x => x.UserUniqueNo == outsource.Code)
.Where(x => x.TenantId == grp.Key)//本厂区的
.Where(x => x.TenantId == grp.Key) //本厂区的
.GroupBy(x => x.UserUniqueNo)
.Select(x => SqlFunc.IsNull(SqlFunc.AggregateMax(x.RaiseDateTime), outsource.CreateTime))
.Select(x => SqlFunc.IsNull(SqlFunc.AggregateMax(x.RaiseDateTime), default(DateTime?)))
.SingleAsync();
raiseDateTime = raiseDateTime == nullDateTime ? outsource.CreateTime : raiseDateTime;
if (raiseDateTime.AddDays(setting.NoRecordAutoResignOutsourceDays) < DateTime.Now)
if (raiseDateTime.HasValue && raiseDateTime.Value.AddDays(setting.NoRecordAutoResignOutsourceDays) < DateTime.Now)
{
try
{