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 Sinvo.EplanHpD.Plugin.WPFUI.Utils;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
|
@ -129,9 +130,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
||||||
/// 检查引用的端子
|
/// 检查引用的端子
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="item"></param>
|
/// <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.)
|
||||||
if (item.Imprint.StartsWith("D-PE"))
|
if (item.Imprint.StartsWith("D-PE"))
|
||||||
{
|
{
|
||||||
|
|
@ -145,14 +146,26 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
||||||
}
|
}
|
||||||
if (canUsedTerminals != null && canUsedTerminals.Any())
|
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");
|
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");
|
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))
|
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)
|
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))
|
if (string.IsNullOrEmpty(item.WireLength))
|
||||||
{
|
{
|
||||||
|
|
@ -192,24 +205,44 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
||||||
item.CheckedMsg += errorMsg;
|
item.CheckedMsg += errorMsg;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<string> GetCanUsedTerminal(string wireModel)
|
private List<TerminalModel> GetCanUsedTerminal(string wireModel)
|
||||||
{
|
{
|
||||||
var result = ExcelHelper.GetWireTerminalMappingTable(wireModel);
|
var result = ExcelHelper.GetWireTerminalMappingTable(wireModel);
|
||||||
var terminals = new List<string>();
|
var terminals = new List<TerminalModel>();
|
||||||
var excelModels = result as ExcelModel[] ?? result.ToArray();
|
var excelModels = result as ExcelModel[] ?? result.ToArray();
|
||||||
if (!excelModels.Any()) return terminals;
|
if (!excelModels.Any()) return terminals;
|
||||||
foreach (var item in excelModels)
|
foreach (var item in excelModels)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(item.ForkTerminal))
|
if (!string.IsNullOrEmpty(item.ForkTerminal))
|
||||||
terminals.Add(item.ForkTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.ForkTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.ForkTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.FlatTerminal))
|
if (!string.IsNullOrEmpty(item.FlatTerminal))
|
||||||
terminals.Add(item.FlatTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.FlatTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.FlatTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.PinTerminal))
|
if (!string.IsNullOrEmpty(item.PinTerminal))
|
||||||
terminals.Add(item.PinTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.PinTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.PinTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.OTypeTerminal))
|
if (!string.IsNullOrEmpty(item.OTypeTerminal))
|
||||||
terminals.Add(item.OTypeTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.OTypeTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.OTypeTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.YTypeTerminal))
|
if (!string.IsNullOrEmpty(item.YTypeTerminal))
|
||||||
terminals.Add(item.YTypeTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.YTypeTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.YTypeTerminal
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return terminals;
|
return terminals;
|
||||||
}
|
}
|
||||||
|
|
@ -218,13 +251,13 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="wireModel"></param>
|
/// <param name="wireModel"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private List<string> GetD_PECanUsedTerminal(string wireModel)
|
private List<TerminalModel> GetD_PECanUsedTerminal(string wireModel)
|
||||||
{
|
{
|
||||||
// 获取D-PE前缀的可用端子
|
// 获取D-PE前缀的可用端子
|
||||||
var resultWithPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel, "D-PE");
|
var resultWithPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel, "D-PE");
|
||||||
// 获取不包含前缀的端子
|
// 获取不包含前缀的端子
|
||||||
var resultWithoutPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel);
|
var resultWithoutPrefix = ExcelHelper.GetWireTerminalMappingTable(wireModel);
|
||||||
var terminals = new List<string>();
|
var terminals = new List<TerminalModel>();
|
||||||
// 转换
|
// 转换
|
||||||
var withPrefixExcelModels = resultWithPrefix as List<ExcelModel> ?? resultWithPrefix.ToList();
|
var withPrefixExcelModels = resultWithPrefix as List<ExcelModel> ?? resultWithPrefix.ToList();
|
||||||
var withoutPrefixExcelModels = resultWithoutPrefix as List<ExcelModel> ?? resultWithoutPrefix.ToList();
|
var withoutPrefixExcelModels = resultWithoutPrefix as List<ExcelModel> ?? resultWithoutPrefix.ToList();
|
||||||
|
|
@ -234,15 +267,35 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel
|
||||||
foreach (var item in excelModels)
|
foreach (var item in excelModels)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(item.ForkTerminal))
|
if (!string.IsNullOrEmpty(item.ForkTerminal))
|
||||||
terminals.Add(item.ForkTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.ForkTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.ForkTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.FlatTerminal))
|
if (!string.IsNullOrEmpty(item.FlatTerminal))
|
||||||
terminals.Add(item.FlatTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.FlatTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.FlatTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.PinTerminal))
|
if (!string.IsNullOrEmpty(item.PinTerminal))
|
||||||
terminals.Add(item.PinTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.PinTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.PinTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.OTypeTerminal))
|
if (!string.IsNullOrEmpty(item.OTypeTerminal))
|
||||||
terminals.Add(item.OTypeTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.OTypeTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.OTypeTerminal
|
||||||
|
});
|
||||||
if (!string.IsNullOrEmpty(item.YTypeTerminal))
|
if (!string.IsNullOrEmpty(item.YTypeTerminal))
|
||||||
terminals.Add(item.YTypeTerminal);
|
terminals.Add(new TerminalModel
|
||||||
|
{
|
||||||
|
TerminalMaterialCode = item.YTypeTerminalMaterialCode,
|
||||||
|
TerminalSpec = item.YTypeTerminal
|
||||||
|
});
|
||||||
}
|
}
|
||||||
return terminals;
|
return terminals;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue