fix 人脸修改任务生成
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using Dlhis.Basic.Device.Request;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Dlhis.Entity.Sys.Enums;
|
||||
|
||||
namespace Dlhis.Basic.Device.Services;
|
||||
@@ -31,6 +32,15 @@ public interface IDevicePermissionService : IScopeDependency
|
||||
Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 生成下发任务(主动生成)
|
||||
/// </summary>
|
||||
/// <param name="userNo"></param>
|
||||
/// <param name="taskType"></param>
|
||||
/// <returns></returns>
|
||||
Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户所有设备权限
|
||||
/// </summary>
|
||||
|
||||
@@ -102,10 +102,10 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
foreach (var userNo in userNos)
|
||||
{
|
||||
beforeDic.TryGetValue(userNo, out var beforeCodes);
|
||||
if (beforeCodes == null) beforeCodes = new List<Guid>();
|
||||
beforeCodes ??= new List<Guid>();
|
||||
|
||||
currentDic.TryGetValue(userNo, out var currentCodes);
|
||||
if (currentCodes == null) currentCodes = new List<Guid>();
|
||||
currentCodes ??= new List<Guid>();
|
||||
|
||||
//被删除
|
||||
var deletedItems = beforeCodes.Where(x => !currentCodes.Contains(x)).ToList();
|
||||
@@ -157,6 +157,40 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
}
|
||||
}
|
||||
|
||||
public async Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType)
|
||||
{
|
||||
var deviceCodes = await GetAssignDeviceCodesAsync(userNo);
|
||||
if (!deviceCodes.Any())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var deivces = await _dbContext.Queryable<DeviceEntity>().Where(x => deviceCodes.Contains(x.Code)).ToListAsync();
|
||||
deviceCodes = deivces.Select(x => x.Code).ToList();
|
||||
|
||||
var userInfo = await _dbContext.Queryable<GainfoEntity>()
|
||||
.LeftJoin<DepartmentEntity>((ga, department) => department.No == ga.DepartmentNo)
|
||||
.Where(ga => ga.No == userNo)
|
||||
.Select(ga => new
|
||||
{
|
||||
ga.Code
|
||||
})
|
||||
.SingleAsync();
|
||||
|
||||
|
||||
var tasks = deviceCodes.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
DeviceUniqueNo = deivces.First(item => item.Code == x).UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Type = taskType,
|
||||
UserNo = userNo,
|
||||
Version = 0,
|
||||
UserCode = userInfo.Code,
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(tasks);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户所有设备权限
|
||||
|
||||
Reference in New Issue
Block a user