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(); .ToListAsync();
var settings = await _factorySettingService.GetListAsync(false); var settings = await _factorySettingService.GetListAsync(false);
//0001/1/1 0:00:00
var nullDateTime = new DateTime(1, 1, 1);
//todo 临时处理循环依赖 //todo 临时处理循环依赖
var gainfoService = _serviceProvider.GetService<IGainfoService>(); var gainfoService = _serviceProvider.GetService<IGainfoService>();
//人员分组,key为factory //人员分组,key为factory
foreach (var grp in externals.GroupBy(x => x.Factory)) foreach (var exts in externals.GroupBy(x => x.Factory))
{ {
//factory的设置 //factory的设置
var setting = settings.First(x => x.Factory == grp.Key); var setting = settings.First(x => x.Factory == exts.Key);
if (setting.NoRecordAutoResignExternalDays == 0) if (setting.NoRecordAutoResignExternalDays == 0)
{ {
continue; 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) .Where(x => x.UserUniqueNo == ext.Code)
.GroupBy(x => x.UserUniqueNo) .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(); .SingleAsync();
raiseDateTime = raiseDateTime == nullDateTime ? ext.CreateTime : raiseDateTime; if (raiseDateTime.HasValue && raiseDateTime.Value.AddDays(setting.NoRecordAutoResignExternalDays) < DateTime.Now)
if (raiseDateTime.AddDays(setting.NoRecordAutoResignExternalDays) < DateTime.Now)
{ {
try try
{ {

View File

@@ -120,8 +120,6 @@ public class GainfoOutsourceService : IGainfoOutsourceService
.ToListAsync(); .ToListAsync();
var settings = await _factorySettingService.GetListAsync(false); 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)) foreach (var grp in outsources.GroupBy(x => x.Factory))
{ {
@@ -133,16 +131,14 @@ public class GainfoOutsourceService : IGainfoOutsourceService
foreach (var outsource in grp) 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.UserUniqueNo == outsource.Code)
.Where(x => x.TenantId == grp.Key)//本厂区的 .Where(x => x.TenantId == grp.Key) //本厂区的
.GroupBy(x => x.UserUniqueNo) .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(); .SingleAsync();
raiseDateTime = raiseDateTime == nullDateTime ? outsource.CreateTime : raiseDateTime; if (raiseDateTime.HasValue && raiseDateTime.Value.AddDays(setting.NoRecordAutoResignOutsourceDays) < DateTime.Now)
if (raiseDateTime.AddDays(setting.NoRecordAutoResignOutsourceDays) < DateTime.Now)
{ {
try try
{ {