feat 删除多余人员

This commit is contained in:
2025-10-10 18:04:48 +08:00
parent 0d87b79473
commit 66bb96a057
4 changed files with 45 additions and 1 deletions

View File

@@ -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);
}
}

View File

@@ -0,0 +1,9 @@
using System.ComponentModel.DataAnnotations;
namespace Dlhis.Basic.Device.Request;
public class DeviceRemoveExceptUserRequest
{
[Required]
public string DeviceUniqueNo { get; set; }
}

View File

@@ -60,4 +60,6 @@ public interface IDevicePermissionService : IScopeDependency
Task<List<string>> GetDeviceExceptUsersAsync(string deviceUniqueNo);
Task<int> GenerateDeleteDeviceTasksAsync(string deviceUniqueNo);
}

View File

@@ -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)
{