fix 排除设备类型变更问题

This commit is contained in:
2025-12-24 14:34:58 +08:00
parent 71e3e4fd0b
commit e6c4e523e4

View File

@@ -8,6 +8,7 @@ using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
using Dlhis.Entity.Sys.Enums;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.Extensions;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils.Extensions;
@@ -24,7 +25,7 @@ public class GainfoPermissionService : IGainfoPermissionService
_devicePermissionAnalyzeService = devicePermissionAnalyzeService;
_dbContext = dbContext;
}
/// <inheritdoc />
public async Task<Pagination<GainfoDevicePermissionResponse>> GetAssignDeviceCodesAsync(DeviceAssUserCodeRequest request)
@@ -52,13 +53,12 @@ public class GainfoPermissionService : IGainfoPermissionService
var codes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
var page = await _dbContext.Queryable<DeviceEntity>()
var list = await _dbContext.Queryable<DeviceEntity>()
.LeftJoin<DeviceRegistryEntity>((d, dr) => d.UniqueNo == dr.DeviceUniqueNo)
.WhereIF(request.DeviceType.HasValue, d => d.Type == request.DeviceType)
.WhereIF(request.Search.IsPresent(), d => d.UniqueNo == request.Search)
.Where(d => codes.Contains(d.Code))
.Select((d, dr) => new GainfoDevicePermissionResponse { Factory = d.TenantId }, true)
.ToPageListAsync(request);
.ToListAsync();
var deviceGroups = await _dbContext.Queryable<DeviceGroupEntity>().Select(x => new { x.Code, x.Name }).ToListAsync();
var departments = permissions.Any(x => x.AssignTypes.Any(p => p.AssignType == AssignTypeEnumType.Department))
@@ -69,7 +69,7 @@ public class GainfoPermissionService : IGainfoPermissionService
? await _dbContext.Queryable<GainfoGroupEntity>().Select(x => new { x.Code, x.Name }).ToListAsync()
: new[] { new { Code = Guid.Empty, Name = string.Empty } }.ToList();
page.Data.ForEach(item =>
list.ForEach(item =>
{
var permission = permissions.FirstOrDefault(x => x.Tenant == item.Factory);
if (permission != null)
@@ -110,7 +110,7 @@ public class GainfoPermissionService : IGainfoPermissionService
}
});
return page;
return list.ToPage(request);
}