From 9033ed86142784153fd8ee9e118aff1425890792 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Sun, 7 Apr 2024 20:55:41 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A4=84=E7=90=86=E7=A6=BB=E8=81=8C?= =?UTF-8?q?=E4=B8=8B=E5=8F=91=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IBusinessPlacePermissionsApi.cs | 5 +++++ .../Request/GainfoPermissionResetRequest.cs | 11 +++++++++++ .../Controllers/GainfoPermissionsController.cs | 1 - .../Implements/GainfoPermissionService.cs | 1 + .../Device/Entities/DeviceTaskEntity.cs | 6 ++++++ .../Services/Implements/GainfoUpdateService.cs | 18 ++++++++++++++++++ .../Services/Implements/AssignmentService.cs | 2 +- 7 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 Src/Dlhis.Basic.Api/Request/GainfoPermissionResetRequest.cs diff --git a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs index 9d5cf5f4..db7adac1 100644 --- a/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs +++ b/Src/Dlhis.Basic.Api/IBusinessPlacePermissionsApi.cs @@ -1,4 +1,5 @@ using Dlhis.Basic.Api.Dtos; +using Dlhis.Basic.Api.Request; using Kurisu.Core.Result; using Kurisu.RemoteCall.Attributes; @@ -10,4 +11,8 @@ public interface IBusinessPlacePermissionsApi [Auth] [Get("/api/businessplacepermissions/my")] Task>> GetMyAsync(); + + [Auth] + [Post("/api/gainfoPermissions/reset")] + Task ResetAsync(GainfoPermissionResetRequest request); } diff --git a/Src/Dlhis.Basic.Api/Request/GainfoPermissionResetRequest.cs b/Src/Dlhis.Basic.Api/Request/GainfoPermissionResetRequest.cs new file mode 100644 index 00000000..c089772f --- /dev/null +++ b/Src/Dlhis.Basic.Api/Request/GainfoPermissionResetRequest.cs @@ -0,0 +1,11 @@ +namespace Dlhis.Basic.Api.Request; + +public class GainfoPermissionResetRequest +{ + public string UserNo { get; set; } + + /// + /// 是否是离职 + /// + public bool IsLeave { get; set; } +} diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs index 465ddc8d..fbee4251 100644 --- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs +++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs @@ -72,7 +72,6 @@ public class GainfoPermissionsController : ControllerBase /// /// /// - [Authorize(Roles = "admin,tenant-admin")] [HttpPost("reset")] [IgnoreTenant] public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request) diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs index 3495db1a..14442703 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs @@ -217,6 +217,7 @@ public class GainfoPermissionService : IGainfoPermissionService var tasks = devices.Select(x => new DeviceTaskEntity { + UserId = gainfo.Id, CancellationId = 0, Version = 0, DeviceUniqueNo = x.UniqueNo, diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs index e286125f..aa5c0d9c 100644 --- a/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs +++ b/Src/Dlhis.Entity/Device/Entities/DeviceTaskEntity.cs @@ -18,6 +18,12 @@ public class DeviceTaskEntity : SugarBaseEntity, ITenantId, IVersion [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] public DeviceTaskEnumType Type { get; set; } + /// + /// 用户id + /// + [SugarColumn(IsNullable = true)] + public long? UserId { get; set; } + /// /// 用户档案号 /// diff --git a/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs b/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs index 645d439e..c0b7dd2e 100644 --- a/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs +++ b/Src/Dlhis.ScheduledTask/Common/Services/Implements/GainfoUpdateService.cs @@ -9,6 +9,7 @@ using Dlhis.ScheduledTask.Common.Dto; using Dlhis.ScheduledTask.Common.Comparers; using Kurisu.AspNetCore.Utils.Extensions; using Dlhis.Basic.Api.Dtos; +using Microsoft.AspNetCore.Mvc.Formatters; namespace Dlhis.ScheduledTask.Common.Services.Implements; @@ -17,6 +18,7 @@ public class GainfoUpdateService : IGainfoUpdateService private readonly IDbContext _dbContext; private readonly ILogger _logger; private readonly ITenantApi _tenantApi; + private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi; private readonly IDevicePermissionApi _devicePermissionApi; private readonly IJinkoSapService _jinkoSapService; @@ -27,6 +29,7 @@ public class GainfoUpdateService : IGainfoUpdateService public GainfoUpdateService(IDbContext dbContext, ILogger logger, ITenantApi tenantApi, + IBusinessPlacePermissionsApi businessPlacePermissionsApi, IDevicePermissionApi devicePermissionApi, IJinkoSapService jinkoSapService) { @@ -34,6 +37,7 @@ public class GainfoUpdateService : IGainfoUpdateService _dbContext.Client.QueryFilter.Clear(); _logger = logger; _tenantApi = tenantApi; + _businessPlacePermissionsApi = businessPlacePermissionsApi; _devicePermissionApi = devicePermissionApi; _jinkoSapService = jinkoSapService; } @@ -334,8 +338,22 @@ public class GainfoUpdateService : IGainfoUpdateService } else { + //离职 if (gainfo != null) { + try + { + await _businessPlacePermissionsApi.ResetAsync(new Basic.Api.Request.GainfoPermissionResetRequest + { + IsLeave = true, + UserNo = gainfo.No + }); + } + catch (Exception ex) + { + _logger.LogError(ex, "离职任务生成失败:{message}", ex.Message); + } + //先写入离职表 gainfo.IdentityUserId = (int)gainfo.Id; gainfo.Id = 0; diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs index f9f212ff..b655867f 100644 --- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs +++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs @@ -54,7 +54,7 @@ public class AssignmentService : IAssignmentService .OrderBy(deviceTask => deviceTask.CreateTime) .Select((deviceTask, deivce, deivceTamplate, ga, department) => new { - UserId = SqlFunc.IsNull(ga.Id, 0), + UserId = SqlFunc.IsNull(deviceTask.UserId, ga.Id), TaskId = deviceTask.Id, deviceTask.Type, deviceTask.DeviceUniqueNo,