diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs index 1beb50be..bf7fde4a 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs @@ -122,33 +122,41 @@ public class GainfoOutsourceService : IGainfoOutsourceService var settings = await _factorySettingService.GetListAsync(); //0001/1/1 0:00:00 var nullDateTime = new DateTime(1, 1, 1); - foreach (var outsource in outsources) + + foreach (var grp in outsources.GroupBy(x => x.Factory)) { - var setting = settings.First(x => x.Factory == outsource.Factory); - - var raiseDateTime = await _dbContext.Queryable() - .Where(x => x.UserUniqueNo == outsource.Code) - .GroupBy(x => x.UserUniqueNo) - .Select(x => SqlFunc.IsNull(SqlFunc.AggregateMax(x.RaiseDateTime), outsource.CreateTime)) - .SingleAsync(); - - raiseDateTime = raiseDateTime == nullDateTime ? outsource.CreateTime : raiseDateTime; - - if (raiseDateTime.AddDays(setting.NoRecordAutoResignOutsourceDays) < DateTime.Now) + var setting = settings.First(x => x.Factory == grp.Key); + if (setting.NoRecordAutoResignOutsourceDays == 0) { - try + continue; + } + + foreach (var outsource in grp) + { + var raiseDateTime = await _dbContext.Queryable() + .Where(x => x.UserUniqueNo == outsource.Code) + .GroupBy(x => x.UserUniqueNo) + .Select(x => SqlFunc.IsNull(SqlFunc.AggregateMax(x.RaiseDateTime), outsource.CreateTime)) + .SingleAsync(); + + raiseDateTime = raiseDateTime == nullDateTime ? outsource.CreateTime : raiseDateTime; + + if (raiseDateTime.AddDays(setting.NoRecordAutoResignOutsourceDays) < DateTime.Now) { - await _gainfoService.ResignAsync(new GainfoResignRequest + try { - Id = outsource.Id, - Reason = $"{setting.NoRecordAutoResignOutsourceDays}天无打开记录", - Date = DateTime.Now, - IsOutsource = true - }); - } - catch (Exception e) - { - _logger.LogError(e, "自动离职外包异常:{msg}", e.Message); + await _gainfoService.ResignAsync(new GainfoResignRequest + { + Id = outsource.Id, + Reason = $"{setting.NoRecordAutoResignOutsourceDays}天无打开记录", + Date = DateTime.Now, + IsOutsource = true + }); + } + catch (Exception e) + { + _logger.LogError(e, "自动离职外包异常:{msg}", e.Message); + } } } }