feat 人员任务重发
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 权限下发重置
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost("reset")]
|
||||
public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request)
|
||||
{
|
||||
await _gainfoPermissions.ResetPermissionsAsync(request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Request;
|
||||
|
||||
public class GainfoPermissionResetRequest
|
||||
{
|
||||
/// <summary>
|
||||
/// 档案号
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string UserNo { get; set; }
|
||||
}
|
||||
@@ -6,7 +6,7 @@ using Kurisu.Core.DataAccess.Dto;
|
||||
|
||||
namespace Dlhis.Basic.Organization.Services;
|
||||
|
||||
public interface IGainfoPermissions : IScopeDependency
|
||||
public interface IGainfoPermissionService : IScopeDependency
|
||||
{
|
||||
Task<Pagination<BusinessPlaceResponse>> GetPlaceByGainfoAsync(DeviceAssRequest request);
|
||||
|
||||
@@ -15,4 +15,6 @@ public interface IGainfoPermissions : IScopeDependency
|
||||
Task<Pagination<DevicePageResponse>> GetAssignDeviceCodesAsync(DeviceAssRequest request);
|
||||
|
||||
Task<List<DeviceGroupTreeResponse>> GetAssignGroupAsync(string userNo);
|
||||
|
||||
Task ResetPermissionsAsync(GainfoPermissionResetRequest request);
|
||||
}
|
||||
@@ -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<GainfoEntity>().Where(x => x.No == request.UserNo).SingleAsync();
|
||||
gainfo.ThrowIfNull("档案数据不存在");
|
||||
|
||||
var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(request.UserNo);
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>().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<List<DeviceGroupTreeResponse>> 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<T>
|
||||
{
|
||||
public string Key { get; set; }
|
||||
public T Value { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user