定值信息解析

This commit is contained in:
郭睿 2024-12-09 14:44:33 +08:00
parent 7b8a1a1ed2
commit 284ccebf74
3 changed files with 45 additions and 4 deletions

View File

@ -18,5 +18,12 @@ namespace YunDa.ISAS.Application.GeneralInformation.SecondaryCircuitInfo
/// <param name="dzType"></param> /// <param name="dzType"></param>
/// <returns></returns> /// <returns></returns>
Task<RequestResult<List<ImDeviceDzOutput>>> FindDZDataByEquipmentInfoId(Guid? equipmentInfoId, string dzType); Task<RequestResult<List<ImDeviceDzOutput>>> FindDZDataByEquipmentInfoId(Guid? equipmentInfoId, string dzType);
/// <summary>
/// 根据装置获取定值
/// </summary>
/// <param name="deviceAddr"></param>
/// <param name="cpuIndex"></param>
/// <returns></returns>
RequestResult<List<ImDeviceDzOutput>> GetDzByDeviceAddr(int deviceAddr, int cpuIndex);
} }
} }

View File

@ -134,8 +134,7 @@ namespace YunDa.ISAS.Application.GeneralInformation.ProtectionSettingInfo
{ {
var data = _imDeviceDzRepository.GetAllIncluding(t => t.Device,t=>t.DzTypeNavigation).Where(t => t.Device.DeviceAddr == deviceAddr) var data = _imDeviceDzRepository.GetAllIncluding(t => t.Device,t=>t.DzTypeNavigation).Where(t => t.Device.DeviceAddr == deviceAddr)
.Where(t => t.CpuIndex == cpuIndex).OrderBy(t=>t.DzIndex); .Where(t => t.CpuIndex == cpuIndex).OrderBy(t=>t.DzIndex);
rst.ResultData = MapDzPutput(data);
rst.ResultData =ObjectMapper.Map<List<ImDeviceDzOutput>>(data);
rst.Flag = true; rst.Flag = true;
} }
catch (Exception ex) catch (Exception ex)
@ -362,7 +361,8 @@ namespace YunDa.ISAS.Application.GeneralInformation.ProtectionSettingInfo
if (true) if (true)
{ {
var list = dz.Where(t => t.CpuIndex == 9).OrderBy(t=>t.DzIndex); var list = dz.Where(t => t.CpuIndex == 9).OrderBy(t=>t.DzIndex);
List<ImDeviceDzOutput> imDeviceDzOutputs = ObjectMapper.Map<List<ImDeviceDzOutput>>(list); // 手动转换为 ImDeviceDzOutput 列表
List<ImDeviceDzOutput> imDeviceDzOutputs = MapDzPutput(list);
List<string> redisSystems = imDeviceDzOutputs.Select(t => t.Id).ToList(); List<string> redisSystems = imDeviceDzOutputs.Select(t => t.Id).ToList();
await _imDeviceDzRedis.HashSetUpdateManyAsync($"DZ_{dz.Key.ToString("X2")}_System", redisSystems, imDeviceDzOutputs); await _imDeviceDzRedis.HashSetUpdateManyAsync($"DZ_{dz.Key.ToString("X2")}_System", redisSystems, imDeviceDzOutputs);
@ -370,7 +370,7 @@ namespace YunDa.ISAS.Application.GeneralInformation.ProtectionSettingInfo
if (true) if (true)
{ {
var list = dz.Where(t => t.CpuIndex == 1).OrderBy(t => t.DzIndex); var list = dz.Where(t => t.CpuIndex == 1).OrderBy(t => t.DzIndex);
List<ImDeviceDzOutput> imDeviceDzOutputs = ObjectMapper.Map<List<ImDeviceDzOutput>>(list); List<ImDeviceDzOutput> imDeviceDzOutputs = MapDzPutput(list);
List<string> redisSystems = imDeviceDzOutputs.Select(t => t.Id).ToList(); List<string> redisSystems = imDeviceDzOutputs.Select(t => t.Id).ToList();
await _imDeviceDzRedis.HashSetUpdateManyAsync($"DZ_{dz.Key.ToString("X2")}_User", redisSystems, imDeviceDzOutputs); await _imDeviceDzRedis.HashSetUpdateManyAsync($"DZ_{dz.Key.ToString("X2")}_User", redisSystems, imDeviceDzOutputs);
} }
@ -385,5 +385,38 @@ namespace YunDa.ISAS.Application.GeneralInformation.ProtectionSettingInfo
} }
return rst; return rst;
} }
private List<ImDeviceDzOutput> MapDzPutput(IEnumerable<ImDeviceDz> list)
{
return list.Select(t => new ImDeviceDzOutput
{
Id = t.Id,
DeviceId = t.DeviceId,
CpuIndex = t.CpuIndex,
DzIndex = t.DzIndex,
DzName = t.DzName,
DzComment = t.DzComment,
DzRange = t.DzRange,
DzMin = t.DzMin,
DzMax = t.DzMax,
DzUnit = t.DzUnit,
DzCoeff = t.DzCoeff,
DzPrecise = t.DzPrecise,
DzUnit1 = t.DzUnit1,
DzCoeff1 = t.DzCoeff1,
DzPrecise1 = t.DzPrecise1,
CtrlWordTypeId = t.CtrlWordTypeId,
DzType = t.DzType,
PUCtgyCode = t.Device.PuctgyCode, // 假设这个字段由某些条件决定
EnumTypeId = t.EnumTypeId,
DzUnitCvtCoeff = t.DzUnitCvtCoeff,
RelatePtId = t.RelatePtId,
RelateCtId = t.RelateCtId,
ReadOnly = t.ReadOnly,
Hidden = t.Hidden,
DzTypeNavigation = new ImDztypeOutput { /* 映射 ImDztype 到 ImDztypeOutput 的属性 */ },
Value = (new Random().Next(0, 10)).ToString() // 随机值
}).ToList();
}
} }
} }

View File

@ -29,6 +29,7 @@ namespace YunDa.SOMS.DataTransferObject.GeneralInformation.ProtectionSettingDto
public int? DzPrecise1 { get; set; } public int? DzPrecise1 { get; set; }
public int? CtrlWordTypeId { get; set; } public int? CtrlWordTypeId { get; set; }
public int DzType { get; set; } public int DzType { get; set; }
public int PUCtgyCode { get; set; }
public int? EnumTypeId { get; set; } public int? EnumTypeId { get; set; }
public double? DzUnitCvtCoeff { get; set; } public double? DzUnitCvtCoeff { get; set; }
public string? RelatePtId { get; set; } public string? RelatePtId { get; set; }