feat 删除多余人员
This commit is contained in:
@@ -154,4 +154,11 @@ public class DevicePermissionsController : ControllerBase
|
||||
{
|
||||
return await _devicePermissionService.GetDeviceExceptUsersAsync(deviceUniqueNo);
|
||||
}
|
||||
|
||||
[HttpPost("removeExceptUsers")]
|
||||
[IgnoreTenant]
|
||||
public async Task<int> GenerateDeleteDeviceTasksAsync(DeviceRemoveExceptUserRequest request)
|
||||
{
|
||||
return await _devicePermissionService.GenerateDeleteDeviceTasksAsync(request.DeviceUniqueNo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Dlhis.Basic.Device.Request;
|
||||
|
||||
public class DeviceRemoveExceptUserRequest
|
||||
{
|
||||
[Required]
|
||||
public string DeviceUniqueNo { get; set; }
|
||||
}
|
||||
@@ -60,4 +60,6 @@ public interface IDevicePermissionService : IScopeDependency
|
||||
|
||||
|
||||
Task<List<string>> GetDeviceExceptUsersAsync(string deviceUniqueNo);
|
||||
|
||||
Task<int> GenerateDeleteDeviceTasksAsync(string deviceUniqueNo);
|
||||
}
|
||||
@@ -536,6 +536,32 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
return toDeleteUserCodes;
|
||||
}
|
||||
|
||||
public async Task<int> GenerateDeleteDeviceTasksAsync(string deviceUniqueNo)
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().SingleAsync(x => x.UniqueNo == deviceUniqueNo);
|
||||
device.ThrowIfNull("设备不存在");
|
||||
|
||||
var userCodes = await GetDeviceExceptUsersAsync(deviceUniqueNo);
|
||||
|
||||
var userNos = await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => userCodes.Contains(x.Code))
|
||||
.Select(x => x.No)
|
||||
.ToListAsync();
|
||||
|
||||
return await _dbContext.InsertAsync(userNos.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
DeviceUniqueNo = device.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Type = DeviceTaskEnumType.Delete,
|
||||
DeviceType = device.Type,
|
||||
UserNo = x,
|
||||
Priority = 0,
|
||||
Version = 0,
|
||||
TenantId = device.TenantId,
|
||||
Source = "设备删除,清除设备中非法人员"
|
||||
}).ToList());
|
||||
}
|
||||
|
||||
|
||||
public async Task<List<string>> GetDeviceUserCodesAsync(string deviceUniqueNo)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user