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;
}