diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
index 728e48a9..7eb1795e 100644
--- a/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
+++ b/Src/Dlhis.Basic/Organization/Controllers/GainfoPermissionsController.cs
@@ -14,10 +14,10 @@ namespace Dlhis.Basic.Organization.Controllers;
[ApiController]
public class GainfoPermissionsController : ControllerBase
{
- private readonly IGainfoPermissions _gainfoPermissions;
+ private readonly IGainfoPermissionService _gainfoPermissions;
- public GainfoPermissionsController(IGainfoPermissions gainfoPermissions)
+ public GainfoPermissionsController(IGainfoPermissionService gainfoPermissions)
{
_gainfoPermissions = gainfoPermissions;
}
@@ -65,4 +65,15 @@ public class GainfoPermissionsController : ControllerBase
{
return await _gainfoPermissions.GetAssignGroupAsync(userNo);
}
+
+ ///
+ /// 权限下发重置
+ ///
+ ///
+ ///
+ [HttpPost("reset")]
+ 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
new file mode 100644
index 00000000..bea8a01b
--- /dev/null
+++ b/Src/Dlhis.Basic/Organization/Request/GainfoPermissionResetRequest.cs
@@ -0,0 +1,12 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Basic.Organization.Request;
+
+public class GainfoPermissionResetRequest
+{
+ ///
+ /// 档案号
+ ///
+ [Required]
+ public string UserNo { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs
similarity index 82%
rename from Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs
rename to Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs
index 182926f0..f1feb8e5 100644
--- a/Src/Dlhis.Basic/Organization/Services/IGainfoPermissions.cs
+++ b/Src/Dlhis.Basic/Organization/Services/IGainfoPermissionService.cs
@@ -6,7 +6,7 @@ using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Basic.Organization.Services;
-public interface IGainfoPermissions : IScopeDependency
+public interface IGainfoPermissionService : IScopeDependency
{
Task> GetPlaceByGainfoAsync(DeviceAssRequest request);
@@ -15,4 +15,6 @@ public interface IGainfoPermissions : IScopeDependency
Task> GetAssignDeviceCodesAsync(DeviceAssRequest request);
Task> GetAssignGroupAsync(string userNo);
+
+ Task ResetPermissionsAsync(GainfoPermissionResetRequest request);
}
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
similarity index 88%
rename from Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
rename to Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
index 83d9bf4a..d0cfd27d 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissions.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoPermissionService.cs
@@ -9,6 +9,7 @@ using Dlhis.Entity.Canteen.Enums;
using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
using Dlhis.Entity.Sys.Enums;
+using Kurisu.AspNetCore.Utils.Extensions;
using Kurisu.Core.DataAccess.Dto;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Services;
@@ -16,13 +17,13 @@ using SqlSugar;
namespace Dlhis.Basic.Organization.Services.Implements;
-public class GainfoPermissions : IGainfoPermissions
+public class GainfoPermissionService : IGainfoPermissionService
{
private readonly IGainfoStore _gainfoStore;
private readonly IDevicePermissionService _devicePermissionService;
private readonly IDbContext _dbContext;
- public GainfoPermissions(IGainfoStore gainfoStore, IDevicePermissionService devicePermissionService, IDbContext dbContext)
+ public GainfoPermissionService(IGainfoStore gainfoStore, IDevicePermissionService devicePermissionService, IDbContext dbContext)
{
_gainfoStore = gainfoStore;
_devicePermissionService = devicePermissionService;
@@ -196,6 +197,30 @@ public class GainfoPermissions : IGainfoPermissions
}
+ public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request)
+ {
+ var gainfo = await _dbContext.Queryable().Where(x => x.No == request.UserNo).SingleAsync();
+ gainfo.ThrowIfNull("档案数据不存在");
+
+ var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(request.UserNo);
+ var devices = await _dbContext.Queryable().Where(x => deviceCodes.Contains(x.Code)).ToListAsync();
+
+ var tasks = devices.Select(x => new DeviceTaskEntity
+ {
+ CancellationId = 0,
+ Version = 0,
+ DeviceUniqueNo = x.UniqueNo,
+ Status = DeviceTaskStatusEnumType.Wait,
+ UserNo = request.UserNo,
+ Type = DeviceTaskEnumType.Add,
+ TenantId = gainfo.Factory,
+ })
+ .ToList();
+
+ await _dbContext.InsertAsync(tasks);
+ }
+
+
public async Task> GetAssignGroupAsync(string userNo)
{
var groups = await _devicePermissionService.GetAssignmentsAsync(DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo);
@@ -216,9 +241,3 @@ public class GainfoPermissions : IGainfoPermissions
yield return current.Code;
}
}
-
-public class KeyValue
-{
- public string Key { get; set; }
- public T Value { get; set; }
-}