fix 权限任务生成优化

This commit is contained in:
2024-12-09 18:32:09 +08:00
parent 3e08b63cbf
commit 2d1191e125
21 changed files with 1419 additions and 880 deletions

View File

@@ -13,13 +13,13 @@ public class GainfoGroupService : IGainfoGroupService
{
private readonly IDbContext _dbContext;
private readonly ICurrentUser _currentUser;
private readonly IDevicePermissionService _devicePermissionService;
private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService;
public GainfoGroupService(IDbContext dbContext, ICurrentUser currentUser, IDevicePermissionService devicePermissionService)
public GainfoGroupService(IDbContext dbContext, ICurrentUser currentUser, IDevicePermissionAnalyzeService devicePermissionAnalyzeService)
{
_dbContext = dbContext;
_currentUser = currentUser;
_devicePermissionService = devicePermissionService;
_devicePermissionAnalyzeService = devicePermissionAnalyzeService;
}
public async Task<List<GainfoGroupTreeResponse>> GetTreeAsync()
@@ -82,7 +82,7 @@ public class GainfoGroupService : IGainfoGroupService
var existsNextGroup = await _dbContext.Queryable<GainfoGroupEntity>().Where(x => x.PCode == request.GroupCode).AnyAsync();
existsNextGroup.ThrowIfTrue("存在下级分组,无法分配人员");
await _devicePermissionService.GenerateDeviceTasksAsync(async () =>
await _devicePermissionAnalyzeService.GenerateDeviceTasksAsync(async () =>
{
var relations = await _dbContext.Queryable<GainfoGroupRelationshipEntity>()
.Where(x => x.GroupCode == request.GroupCode)

View File

@@ -18,13 +18,13 @@ namespace Dlhis.Basic.Organization.Services.Implements;
public class GainfoPermissionService : IGainfoPermissionService
{
private readonly IGainfoStore _gainfoStore;
private readonly IDevicePermissionService _devicePermissionService;
private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService;
private readonly IDbContext _dbContext;
public GainfoPermissionService(IGainfoStore gainfoStore, IDevicePermissionService devicePermissionService, IDbContext dbContext)
public GainfoPermissionService(IGainfoStore gainfoStore, IDevicePermissionAnalyzeService devicePermissionAnalyzeService, IDbContext dbContext)
{
_gainfoStore = gainfoStore;
_devicePermissionService = devicePermissionService;
_devicePermissionAnalyzeService = devicePermissionAnalyzeService;
_dbContext = dbContext;
}
@@ -40,7 +40,7 @@ public class GainfoPermissionService : IGainfoPermissionService
}
//用户所有deviceCode权限
var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(gainfo.Code);
var deviceCodes = await _devicePermissionAnalyzeService.GetAssignDeviceCodesAsync(gainfo.Code);
return await _dbContext.Queryable<DeviceEntity>()
.LeftJoin<DeviceRegistryEntity>((x, dr) => x.UniqueNo == dr.DeviceUniqueNo)
@@ -120,7 +120,7 @@ public class GainfoPermissionService : IGainfoPermissionService
public async Task<Pagination<DevicePageResponse>> GetAssignDeviceCodesAsync(DeviceAssRequest request)
{
var ids = await _devicePermissionService.GetAssignDeviceCodesAsync(request.UserNo);
var ids = await _devicePermissionAnalyzeService.GetAssignDeviceCodesAsync(request.UserNo);
var page = await _dbContext.Queryable<DeviceEntity>()
.LeftJoin<DeviceTemplateEntity>((d, dt) => d.TemplateCode == dt.Code)
@@ -149,10 +149,6 @@ public class GainfoPermissionService : IGainfoPermissionService
.Where(x => x.No == userNo)
.SingleAsync();
var msg = gainfo == null ? "不存在职数据" : string.Empty;
//如果找不到就为离职人员
if (gainfo == null)
{
gainfo = await _dbContext.Queryable<GainfoEntity>().AS("GainfoLeave")
@@ -163,16 +159,14 @@ public class GainfoPermissionService : IGainfoPermissionService
{
gainfo.Id = gainfo.IdentityUserId;
}
msg += gainfo == null ? "并且不存在离职数据" : string.Empty;
}
gainfo.ThrowIfNull($"档案数据有误:{msg}");
gainfo.ThrowIfNull("档案数据不存在");
//获取人员的设备权限
if (deviceCodes.IsEmpty())
{
deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(gainfo!.Code);
deviceCodes = await _devicePermissionAnalyzeService.GetAssignDeviceCodesAsync(gainfo!.Code);
}
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => deviceCodes.Contains(x.Code)).ToListAsync();
@@ -198,7 +192,7 @@ public class GainfoPermissionService : IGainfoPermissionService
public async Task<List<DeviceGroupTreeResponse>> GetAssignGroupAsync(string userNo)
{
//(DeviceAssignmentTypeEnumType.Group, AssignTypeEnumType.User, userNo
var groups = await _devicePermissionService.GetAssignmentsAsync(new DeviceGetAssignmentsRequest
var groups = await _devicePermissionAnalyzeService.GetAssignmentsAsync(new DeviceGetAssignmentsRequest
{
UniqueType = DeviceAssignmentTypeEnumType.Group,
AssignType = AssignTypeEnumType.User,

View File

@@ -16,7 +16,7 @@ public class GainfoUpdateService : IGainfoUpdateService
private readonly ILogger<GainfoUpdateService> _logger;
private readonly ITenantApi _tenantApi;
private readonly IJinkoSapService _jinkoSapService;
private readonly IDevicePermissionService _devicePermissionService;
private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService;
private readonly IIdentityUserSyncService _identityUserSyncService;
private List<TenantResponse> _tenants;
@@ -25,7 +25,7 @@ public class GainfoUpdateService : IGainfoUpdateService
ILogger<GainfoUpdateService> logger,
ITenantApi tenantApi,
IJinkoSapService jinkoSapService,
IDevicePermissionService devicePermissionService,
IDevicePermissionAnalyzeService devicePermissionAnalyzeService,
IIdentityUserSyncService identityUserSyncService)
{
_dbContext = dbContext;
@@ -33,7 +33,7 @@ public class GainfoUpdateService : IGainfoUpdateService
_logger = logger;
_tenantApi = tenantApi;
_jinkoSapService = jinkoSapService;
_devicePermissionService = devicePermissionService;
_devicePermissionAnalyzeService = devicePermissionAnalyzeService;
_identityUserSyncService = identityUserSyncService;
}
@@ -169,7 +169,7 @@ public class GainfoUpdateService : IGainfoUpdateService
if (item.isowner == "T")
{
await _devicePermissionService.GenerateDeviceTasksAsync(async () =>
await _devicePermissionAnalyzeService.GenerateDeviceTasksAsync(async () =>
{
await _dbContext.InsertAsync(info);
await _identityUserSyncService.SyncAccountAsync(info.Code, info.Name, info.IdNo, info.Factory);
@@ -259,7 +259,7 @@ public class GainfoUpdateService : IGainfoUpdateService
{
if (item.isowner == "T")
{
await _devicePermissionService.GenerateDeviceTasksAsync(async () =>
await _devicePermissionAnalyzeService.GenerateDeviceTasksAsync(async () =>
{
await _dbContext.Updateable<GainfoEntity>().SetColumns(g => new GainfoEntity
{
@@ -287,7 +287,7 @@ public class GainfoUpdateService : IGainfoUpdateService
}
else
{
await _devicePermissionService.GenerateDeviceTasksAsync(async () =>
await _devicePermissionAnalyzeService.GenerateDeviceTasksAsync(async () =>
{
await _dbContext.Updateable<GainfoEntity>().SetColumns(g => new GainfoEntity
{