fix 中文描述转换

This commit is contained in:
2024-12-12 17:14:46 +08:00
parent 37ca88c6f9
commit 342b8ca0e7
3 changed files with 45 additions and 7 deletions

View File

@@ -24,4 +24,6 @@ public class DevicePermissionSourceTypeDto
public DeviceAssignmentTypeEnumType UniqueType { get; set; }
public IEnumerable<Guid> Codes { get; set; }
public string CodeDesc { get; set; }
}

View File

@@ -23,6 +23,12 @@ public class GainfoDevicePermissionResponse
/// </summary>
public int HeartbeatInterval { get; set; }
/// <summary>
/// 部署点
/// </summary>
public string DeployPlace { get; set; }
/// <summary>
/// 设备机功能类型
/// </summary>

View File

@@ -133,6 +133,15 @@ public class GainfoPermissionService : IGainfoPermissionService
.Select((d, dr) => new GainfoDevicePermissionResponse { Factory = d.TenantId }, true)
.ToPageListAsync(request);
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))
? await _dbContext.Queryable<DepartmentEntity>().Select(x => new { x.No, x.Name }).ToListAsync()
: new[] { new { No = string.Empty, Name = string.Empty } }.ToList();
var userGroups = permissions.Any(x => x.AssignTypes.Any(p => p.AssignType == AssignTypeEnumType.Group))
? 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 =>
{
var permission = permissions.First(x => x.Tenant == item.Factory);
@@ -140,14 +149,35 @@ public class GainfoPermissionService : IGainfoPermissionService
item.Source = new DevicePermissionSourceDto
{
Factory = item.Factory,
Types = permission.AssignTypes.Where(x => x.Codes.Any(p => p == item.Code)).Select(x => new DevicePermissionSourceTypeDto
Types = permission.AssignTypes.Where(x => x.Codes.Any(p => p == item.Code)).Select(x =>
{
var codeDesc = x.UniqueType == DeviceAssignmentTypeEnumType.Device
? item.DeployPlace
: deviceGroups.First(p => p.Code == x.Codes.First()).Name;
var currentAssignValue = x.AssignValue;
if (x.AssignType == AssignTypeEnumType.Department)
{
currentAssignValue = departments.First(p => p.No == x.AssignValue.Split(":")[1]).Name;
}
if (x.AssignType == AssignTypeEnumType.Group)
{
currentAssignValue = userGroups.First(p => p.Code == Guid.Parse(currentAssignValue)).Name;
}
var r = new DevicePermissionSourceTypeDto
{
AssignType = x.AssignType,
AssignValue = x.AssignValue,
AssignValue = currentAssignValue,
UniqueType = x.UniqueType,
Codes = x.UniqueType == DeviceAssignmentTypeEnumType.Device
? x.Codes.Where(p => p == item.Code)
: x.Codes.Take(1)
: x.Codes.Take(1),
CodeDesc = codeDesc
};
return r;
})
};
});