105040 修改端子检查逻辑,增加地线检查与料号匹配
This commit is contained in:
parent
2978aab2ff
commit
f194ff589c
|
@ -0,0 +1,8 @@
|
|||
namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
|
||||
{
|
||||
public class TerminalModel
|
||||
{
|
||||
public string TerminalSpec { get; set; }
|
||||
public string TerminalMaterialCode { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,4 +1,5 @@
|
|||
using Sinvo.EplanHpD.Plugin.WPFUI.Models;
|
||||
using EPLAN.Harness.Common.Extensions;
|
||||
using Sinvo.EplanHpD.Plugin.WPFUI.Models;
|
||||
using Sinvo.EplanHpD.Plugin.WPFUI.Utils;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
@ -129,9 +130,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
|||
/// 检查引用的端子
|
||||
/// </summary>
|
||||
/// <param name="item"></param>
|
||||
private void CheckTerminals(StuffedDataModel item)
|
||||
public void CheckTerminals(StuffedDataModel item)
|
||||
{
|
||||
var canUsedTerminals = new List<string>();
|
||||
var canUsedTerminals = new List<TerminalModel>();
|
||||
//if(item.)
|
||||
if (item.Imprint.StartsWith("D-PE"))
|
||||
{
|
||||
|
@ -145,14 +146,26 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
|||
}
|
||||
if (canUsedTerminals != null && canUsedTerminals.Any())
|
||||
{
|
||||
if (canUsedTerminals.All(it => it != item.FrontTerminalModel))
|
||||
var terminals = canUsedTerminals.Where(it => !string.IsNullOrEmpty(it.TerminalSpec) && !string.IsNullOrEmpty(it.TerminalMaterialCode));
|
||||
|
||||
if (terminals.All(it => it.TerminalSpec != item.FrontTerminalModel))
|
||||
{
|
||||
SetItemError(item, "前端子不在可选列表中!\r\n");
|
||||
}
|
||||
if (canUsedTerminals.All(it => it != item.RearTerminalModel))
|
||||
if (terminals.All(it => it.TerminalMaterialCode != item.FrontTerminalMaterialCode))
|
||||
{
|
||||
SetItemError(item, "前端子料号不正确,不在可选列表中!\r\n");
|
||||
|
||||
}
|
||||
if (terminals.All(it => it.TerminalSpec != item.RearTerminalModel))
|
||||
{
|
||||
SetItemError(item, "后端子不在可选列表中!\r\n");
|
||||
}
|
||||
if (terminals.All(it => it.TerminalMaterialCode != item.RearTerminalMaterialCode))
|
||||
{
|
||||
SetItemError(item, "后端子料号不正确,不在可选列表中!\r\n");
|
||||
|
||||
}
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(item.FrontTerminalModel) || !string.IsNullOrEmpty(item.RearTerminalModel))
|
||||
{
|
||||
|
@ -162,7 +175,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
|||
|
||||
private void CheckDuplicateModel(StuffedDataModel item)
|
||||
{
|
||||
if (StuffedData.Count(it => it != null && it.Model == item.Model) > 1)
|
||||
if (StuffedData?.Count(it => it != null && it.Model == item.Model) > 1)
|
||||
{
|
||||
if (string.IsNullOrEmpty(item.WireLength))
|
||||
{
|
||||
|
@ -192,24 +205,44 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
|||
item.CheckedMsg += errorMsg;
|
||||
}
|
||||
|
||||
private List<string> GetCanUsedTerminal(string wireModel)
|
||||
private List<TerminalModel> GetCanUsedTerminal(string wireModel)
|
||||
{
|
||||
var result = ExcelHelper.GetWireTerminalMappingTable(wireModel);
|
||||
var terminals = new List<string>();
|
||||
var terminals = new List<TerminalModel>();
|
||||
var excelModels = result as ExcelModel[] ?? result.ToArray();
|
||||
if (!excelModels.Any()) return terminals;
|
||||
foreach (var item in excelModels)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.ForkTerminal))
|
||||
terminals.Add(item.ForkTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.ForkTerminalMaterialCode,
|
||||
TerminalSpec = item.ForkTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.FlatTerminal))
|
||||
terminals.Add(item.FlatTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.FlatTerminalMaterialCode,
|
||||
TerminalSpec = item.FlatTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.PinTerminal))
|
||||
terminals.Add(item.PinTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.PinTerminalMaterialCode,
|
||||
TerminalSpec = item.PinTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.OTypeTerminal))
|
||||
terminals.Add(item.OTypeTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.OTypeTerminalMaterialCode,
|
||||
TerminalSpec = item.OTypeTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.YTypeTerminal))
|
||||
terminals.Add(item.YTypeTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.YTypeTerminalMaterialCode,
|
||||
TerminalSpec = item.YTypeTerminal
|
||||
});
|
||||
}
|
||||
return terminals;
|
||||
}
|
||||
|
@ -218,13 +251,13 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
|||
/// </summary>
|
||||
/// <param name="wireModel"></param>
|
||||
/// <returns></returns>
|
||||
private List<string> GetD_PECanUsedTerminal(string wireModel)
|
||||
private List<TerminalModel> GetD_PECanUsedTerminal(string wireModel)
|
||||
{
|
||||
// 获取D-PE前缀的可用端子
|
||||
var resultWithPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel, "D-PE");
|
||||
// 获取不包含前缀的端子
|
||||
var resultWithoutPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel);
|
||||
var terminals = new List<string>();
|
||||
var terminals = new List<TerminalModel>();
|
||||
// 转换
|
||||
var withPrefixExcelModels = resultWithPrefix as List<ExcelModel> ?? resultWithPrefix.ToList();
|
||||
var withoutPrefixExcelModels = resultWithoutPrefix as List<ExcelModel> ?? resultWithoutPrefix.ToList();
|
||||
|
@ -234,15 +267,35 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
|||
foreach (var item in excelModels)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.ForkTerminal))
|
||||
terminals.Add(item.ForkTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.ForkTerminalMaterialCode,
|
||||
TerminalSpec = item.ForkTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.FlatTerminal))
|
||||
terminals.Add(item.FlatTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.FlatTerminalMaterialCode,
|
||||
TerminalSpec = item.FlatTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.PinTerminal))
|
||||
terminals.Add(item.PinTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.PinTerminalMaterialCode,
|
||||
TerminalSpec = item.PinTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.OTypeTerminal))
|
||||
terminals.Add(item.OTypeTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.OTypeTerminalMaterialCode,
|
||||
TerminalSpec = item.OTypeTerminal
|
||||
});
|
||||
if (!string.IsNullOrEmpty(item.YTypeTerminal))
|
||||
terminals.Add(item.YTypeTerminal);
|
||||
terminals.Add(new TerminalModel
|
||||
{
|
||||
TerminalMaterialCode = item.YTypeTerminalMaterialCode,
|
||||
TerminalSpec = item.YTypeTerminal
|
||||
});
|
||||
}
|
||||
return terminals;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue