diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs index 7eb1795e..fbee4251 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs @@ -3,6 +3,7 @@ using Dlhis.Basic.Device.Response; using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Services; +using Kurisu.AspNetCore.DataAccess.SqlSugar.Aop; using Kurisu.Core.DataAccess.Dto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -72,6 +73,7 @@ public class GainfoPermissionsController : ControllerBase /// /// [HttpPost("reset")] + [IgnoreTenant] public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request) { await _gainfoPermissions.ResetPermissionsAsync(request); diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs index bea8a01b..b92bb469 100644 --- a/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs +++ b/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs @@ -9,4 +9,9 @@ public class GainfoPermissionResetRequest /// [Required] public string UserNo { get; set; } + + /// + /// 是否是离职 + /// + public bool IsLeave { get; set; } } diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index d0cfd27d..3495db1a 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -199,7 +199,17 @@ public class GainfoPermissionService : IGainfoPermissionService public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request) { - var gainfo = await _dbContext.Queryable().Where(x => x.No == request.UserNo).SingleAsync(); + var gainfo = await _dbContext.Queryable() + .Where(x => x.No == request.UserNo) + .SingleAsync(); + + if (request.IsLeave) + { + gainfo = await _dbContext.Queryable().AS("GainfoLeave") + .Where(x => x.No == request.UserNo) + .SingleAsync(); + } + gainfo.ThrowIfNull("档案数据不存在"); var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(request.UserNo); @@ -212,7 +222,7 @@ public class GainfoPermissionService : IGainfoPermissionService DeviceUniqueNo = x.UniqueNo, Status = DeviceTaskStatusEnumType.Wait, UserNo = request.UserNo, - Type = DeviceTaskEnumType.Add, + Type = request.IsLeave ? DeviceTaskEnumType.Delete : DeviceTaskEnumType.Add, TenantId = gainfo.Factory, }) .ToList(); diff --git a/Src/Dlhis.Basic/Summary/Services/Implements/SummaryService.cs b/Src/Dlhis.Basic/Summary/Services/Implements/SummaryService.cs index c48fd8dc..3176ad01 100644 --- a/Src/Dlhis.Basic/Summary/Services/Implements/SummaryService.cs +++ b/Src/Dlhis.Basic/Summary/Services/Implements/SummaryService.cs @@ -75,12 +75,12 @@ public class SummaryService : ISummaryService Unemployed = leaveGainfos.Count, GainfoTrend = new GainfoTrendResponse { - EmployedTrend = FixTrend(workingGainfos.Where(x => x.CreateTime >= before7Day && x.CreateTime <= currentDay) - .GroupBy(x => x.CreateTime.Date) - .Select(x => new TrendDto { Date = x.Key, Count = x.Count() }), before7Day, currentDay), - UnemployedTrend = FixTrend(leaveGainfos.Where(x => x.CreateTime >= before7Day && x.CreateTime <= currentDay) - .GroupBy(x => x.CreateTime.Date) - .Select(x => new TrendDto { Date = x.Key, Count = x.Count() }), before7Day, currentDay), + EmployedTrend = FixTrend(workingGainfos.Where(x => x.EntryDate >= before7Day && x.EntryDate <= currentDay) + .GroupBy(x => x.EntryDate) + .Select(x => new TrendDto { Date = x.Key.Value, Count = x.Count() }), before7Day, currentDay), + UnemployedTrend = FixTrend(leaveGainfos.Where(x => x.ResignationDate >= before7Day && x.ResignationDate <= currentDay) + .GroupBy(x => x.ResignationDate) + .Select(x => new TrendDto { Date = x.Key.Value, Count = x.Count() }), before7Day, currentDay), } } };