feat 删除多余人员
This commit is contained in:
@@ -154,4 +154,11 @@ public class DevicePermissionsController : ControllerBase
|
|||||||
{
|
{
|
||||||
return await _devicePermissionService.GetDeviceExceptUsersAsync(deviceUniqueNo);
|
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<List<string>> GetDeviceExceptUsersAsync(string deviceUniqueNo);
|
||||||
|
|
||||||
|
Task<int> GenerateDeleteDeviceTasksAsync(string deviceUniqueNo);
|
||||||
}
|
}
|
||||||
@@ -514,7 +514,7 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
device.ThrowIfNull("设备不存在");
|
device.ThrowIfNull("设备不存在");
|
||||||
|
|
||||||
var usersQuery = await GetDeviceUsersQueryAsync(deviceUniqueNo, string.Empty, null);
|
var usersQuery = await GetDeviceUsersQueryAsync(deviceUniqueNo, string.Empty, null);
|
||||||
var userCodes = (await usersQuery.ToListAsync()).Select(x=>x.Code);
|
var userCodes = (await usersQuery.ToListAsync()).Select(x => x.Code);
|
||||||
|
|
||||||
var devicePermissionManuallyUserNos = await GetManuallyDeviceUserNoAsync(device.Code);
|
var devicePermissionManuallyUserNos = await GetManuallyDeviceUserNoAsync(device.Code);
|
||||||
var visitorUserNos = await GetDeviceUserNosFromVisitorAsync(device.Code);
|
var visitorUserNos = await GetDeviceUserNosFromVisitorAsync(device.Code);
|
||||||
@@ -536,6 +536,32 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
return toDeleteUserCodes;
|
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)
|
public async Task<List<string>> GetDeviceUserCodesAsync(string deviceUniqueNo)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user