fix 优化按人导入
This commit is contained in:
@@ -102,28 +102,42 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
|
||||
public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
|
||||
{
|
||||
await GenerateDeviceTasksAsync(async () =>
|
||||
{
|
||||
var currentTenantId = _currentUser.GetStringTenantId();
|
||||
var currentTenantId = _currentUser.GetStringTenantId();
|
||||
var today = DateTime.Today;
|
||||
var factories = _currentUser.GetUserClaim("tenants").Split(",").ToList();
|
||||
|
||||
//删除当前匹配的基地权限
|
||||
var p = await _dbContext.Queryable<DevicePermissionEntity>()
|
||||
.Where(x => x.UniqueType == request.UniqueType)
|
||||
.Where(x => x.UniqueValue == request.UniqueValue)
|
||||
.Where(x => x.AssignType == request.AssignType)
|
||||
.Where(x => x.Type == request.Type)
|
||||
.Where(x => x.TenantId == currentTenantId)
|
||||
//删除当前匹配的基地权限
|
||||
var p = await _dbContext.Queryable<DevicePermissionEntity>()
|
||||
.Where(x => x.UniqueType == request.UniqueType)
|
||||
.Where(x => x.UniqueValue == request.UniqueValue)
|
||||
.Where(x => x.AssignType == request.AssignType)
|
||||
.Where(x => x.Type == request.Type)
|
||||
.Where(x => x.TenantId == currentTenantId)
|
||||
.ToListAsync();
|
||||
|
||||
var gainfoNos = p.Select(x => x.AssignValue).ToList();
|
||||
if (request.Values.IsPresent())
|
||||
{
|
||||
var nos = await _dbContext.Client.Queryable<GainfoEntity>()
|
||||
.Where(gainfo => factories.Contains(gainfo.Factory) || SqlFunc.Subqueryable<BusinessTripEntity>()
|
||||
.Where(x => factories.Contains(x.Destination) && SqlFunc.DateIsSame(x.BeginDate, today))
|
||||
.Any()
|
||||
)
|
||||
.Where(gainfo => request.Values.Contains(gainfo.Code) || request.Values.Contains(gainfo.No) || request.Values.Contains(gainfo.IdNo))
|
||||
.Select(gainfo => gainfo.No)
|
||||
.ToListAsync();
|
||||
|
||||
gainfoNos = gainfoNos.Concat(nos).Distinct().ToList();
|
||||
}
|
||||
|
||||
await GenerateDeviceTasksAsync(async () =>
|
||||
{
|
||||
await _dbContext.DeleteAsync(p);
|
||||
|
||||
//保存配置的权限
|
||||
if (request.Values.IsPresent())
|
||||
{
|
||||
var today = DateTime.Today;
|
||||
var factories = _currentUser.GetUserClaim("tenants").Split(",").ToList();
|
||||
|
||||
var gainfoNos = await _dbContext.Client.Queryable<GainfoEntity>()
|
||||
var nos = await _dbContext.Client.Queryable<GainfoEntity>()
|
||||
.Where(gainfo => factories.Contains(gainfo.Factory) || SqlFunc.Subqueryable<BusinessTripEntity>()
|
||||
.Where(x => factories.Contains(x.Destination) && SqlFunc.DateIsSame(x.BeginDate, today))
|
||||
.Any()
|
||||
@@ -135,7 +149,7 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
//todo 临时注释
|
||||
//(gainfoNos.Count != request.Values.Count).ThrowIfTrue("存在非当前权限访问的人员,操作禁止!");
|
||||
|
||||
var devicePermissions = gainfoNos.Select(v => new DevicePermissionEntity
|
||||
var devicePermissions = nos.Select(v => new DevicePermissionEntity
|
||||
{
|
||||
UniqueType = request.UniqueType,
|
||||
UniqueValue = request.UniqueValue,
|
||||
@@ -147,7 +161,8 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
|
||||
await _dbContext.InsertAsync(devicePermissions);
|
||||
}
|
||||
}, null);
|
||||
|
||||
}, gainfoNos);
|
||||
}
|
||||
|
||||
public async Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request)
|
||||
|
||||
Reference in New Issue
Block a user