fix 兼容出差

This commit is contained in:
2024-08-28 17:29:17 +08:00
parent bb849c8638
commit d6fee46081

View File

@@ -8,6 +8,7 @@ using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
using Dlhis.Entity.Sys.Entities;
using Dlhis.Entity.Sys.Enums;
using Dlhis.Entity.Visitor.Entity;
using Dlhis.Sys.Api;
using Kurisu.AspNetCore.Authentication.Abstractions;
using Kurisu.AspNetCore.DataAccess.Dto;
@@ -98,9 +99,16 @@ public class DevicePermissionService : IDevicePermissionService
//保存配置的权限
if (request.Values.IsPresent())
{
var gainfoNos = await _dbContext.Queryable<GainfoEntity>()
.Where(x => request.Values.Contains(x.Code) || request.Values.Contains(x.No) || request.Values.Contains(x.IdNo))
.Select(x => x.No)
var today = DateTime.Today;
var factories = _currentUser.GetUserClaim("tenants").Split(",").ToList();
var gainfoNos = 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.Count != request.Values.Count).ThrowIfTrue("存在非当前权限访问的人员,操作禁止!");