fix 分配人员到用户组:处理出差人员
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user