fix 分配人员到用户组:处理出差人员

This commit is contained in:
2025-05-21 16:03:58 +08:00
parent 08562df8eb
commit 081ab58659

View File

@@ -8,10 +8,13 @@ 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 Kurisu.AspNetCore;
using Kurisu.AspNetCore.Authentication.Abstractions;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils.Extensions;
using Mapster;
using SqlSugar;
namespace Dlhis.Basic.Organization.Services.Implements;
@@ -104,10 +107,36 @@ public class GainfoGroupService : IGainfoGroupService
.ToListAsync();
var presentUserNos = await _dbContext.Queryable<GainfoEntity>()
.Where(x => request.UserNos.Contains(x.No) || request.UserNos.Contains(x.Code)) //NO和工号匹配
.Where(x => request.UserNos.Contains(x.No)
|| request.UserNos.Contains(x.Code)
) //NO和工号匹配
.Select(x => x.No)
.ToListAsync();
var queryableSetting = App.GetServiceProvider().GetService<IQueryableSetting>();
try
{
queryableSetting.EnableCrossTenant = false;
var factories = _currentUser.GetUserClaim("tenants").Split(",").ToList();
var businessUserNos = await _dbContext.Queryable<GainfoEntity>()
.Where(x => request.UserNos.Contains(x.No)
|| request.UserNos.Contains(x.Code)
)
.Where(x => SqlFunc.Subqueryable<BusinessTripEntity>()
.Where(p => p.Code == x.Code && factories.Contains(p.Destination) && SqlFunc.DateIsSame(p.BeginDate, DateTime.Now))
.Any())
.Select(x => x.No)
.ToListAsync();
presentUserNos.AddRange(businessUserNos);
}
finally
{
queryableSetting.EnableCrossTenant = true;
}
//(userNos.Count != request.UserNos.Count).ThrowIfTrue("存在权限外人员,无法添加");
var r = await PermissionResetAsync(request.GroupCode, relations.Select(x => x.UserNo).Distinct().ToList(), presentUserNos);