From 085999249cda6563ea2985c334db42343af25cef Mon Sep 17 00:00:00 2001 From: liguoyang Date: Fri, 29 Nov 2024 12:21:55 +0800 Subject: [PATCH] =?UTF-8?q?fix=200=E5=A4=A9=E4=B8=8D=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=A4=96=E5=8C=85=E8=87=AA=E5=8A=A8=E7=A6=BB=E8=81=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/GainfoOutsourceService.cs | 54 +++++++++++-------- 1 file changed, 31 insertions(+), 23 deletions(-) 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); + } } } }