diff --git a/Sinvo.EplanHpD.Plugin.WPFUI/Models/TerminalModel.cs b/Sinvo.EplanHpD.Plugin.WPFUI/Models/TerminalModel.cs new file mode 100644 index 0000000..c47636c --- /dev/null +++ b/Sinvo.EplanHpD.Plugin.WPFUI/Models/TerminalModel.cs @@ -0,0 +1,8 @@ +namespace Sinvo.EplanHpD.Plugin.WPFUI.Models +{ + public class TerminalModel + { + public string TerminalSpec { get; set; } + public string TerminalMaterialCode { get; set; } + } +} diff --git a/Sinvo.EplanHpD.Plugin.WPFUI/ViewModel/MainViewModel.Check.cs b/Sinvo.EplanHpD.Plugin.WPFUI/ViewModel/MainViewModel.Check.cs index 7908af4..604a5ce 100644 --- a/Sinvo.EplanHpD.Plugin.WPFUI/ViewModel/MainViewModel.Check.cs +++ b/Sinvo.EplanHpD.Plugin.WPFUI/ViewModel/MainViewModel.Check.cs @@ -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 /// 检查引用的端子 /// /// - private void CheckTerminals(StuffedDataModel item) + public void CheckTerminals(StuffedDataModel item) { - var canUsedTerminals = new List(); + var canUsedTerminals = new List(); //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 GetCanUsedTerminal(string wireModel) + private List GetCanUsedTerminal(string wireModel) { var result = ExcelHelper.GetWireTerminalMappingTable(wireModel); - var terminals = new List(); + var terminals = new List(); 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 /// /// /// - private List GetD_PECanUsedTerminal(string wireModel) + private List GetD_PECanUsedTerminal(string wireModel) { // 获取D-PE前缀的可用端子 var resultWithPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel, "D-PE"); // 获取不包含前缀的端子 var resultWithoutPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel); - var terminals = new List(); + var terminals = new List(); // 转换 var withPrefixExcelModels = resultWithPrefix as List ?? resultWithPrefix.ToList(); var withoutPrefixExcelModels = resultWithoutPrefix as List ?? 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; }