增强多芯线数据模型的灵活性和可扩展性

在 `MultiCoreWireDataModel.cs` 中添加多个新属性以扩展数据模型。删除 `MultiCoreWireLecModel` 类并用 `MultiCoreWireExcelModel` 替换,更新相关引用。修改 `MultiCoreWireTerminalModel.cs` 中 `TerminalStripLength` 属性的类型。更新项目文件以包含新的映射类 `ConnectorHeatShrinkMapping.cs` 和 `WireHeatShrinkMapping.cs`。调整数据绑定和视图模型以适应新的数据结构,确保数据处理逻辑的一致性。
This commit is contained in:
lihanbo 2025-05-05 09:06:42 +08:00
parent aafcacaeb5
commit 27cd690bc6
10 changed files with 374 additions and 109 deletions

View File

@ -0,0 +1,71 @@
using MiniExcelLibs.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sinvo.EplanHpD.Plugin.WPFUI.Models.MultiCoreWire
{
public class ConnectorHeatShrinkMapping
{
/*
(CE认证) CAD图纸规格 (mm)
*/
/// <summary>
/// 序号
/// </summary>
[ExcelColumn(Name = "序号")]
public int SequenceNumber { get; set; }
/// <summary>
/// 料号
/// </summary>
[ExcelColumn(Name = "料号")]
public string MaterialCode { get; set; }
/// <summary>
/// 品名
/// </summary>
[ExcelColumn(Name = "品名")]
public string ProductName { get; set; }
/// <summary>
/// 规格(CE认证)
/// </summary>
[ExcelColumn(Name = "规格(CE认证)")]
public string CESpecification { get; set; }
/// <summary>
/// 对应CAD图纸规格
/// </summary>
[ExcelColumn(Name = "对应CAD图纸规格")]
public string CADDrawingSpecification { get; set; }
/// <summary>
/// 针脚数量
/// </summary>
[ExcelColumn(Name = "针脚数量")]
public int PinCount { get; set; }
/// <summary>
/// 热缩管规格
/// </summary>
[ExcelColumn(Name = "热缩管规格")]
public string HeatShrinkTubeSpecification { get; set; }
/// <summary>
/// 热缩管物料编码
/// </summary>
[ExcelColumn(Name = "热缩管物料编码")]
public string HeatShrinkTubeMaterialCode { get; set; }
/// <summary>
/// 热缩管长度(mm)
/// </summary>
[ExcelColumn(Name = "热缩管长度(mm)")]
public double HeatShrinkTubeLength { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using System; using MiniExcelLibs.Attributes;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -8,6 +9,19 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
{ {
public class MultiCoreWireDataModel public class MultiCoreWireDataModel
{ {
public int SeqNo { get; set; }
public string Id { get; set; }
public string UniqueKey { get; set; }
public string ProjectName { get; set; }
public string UserId { get; set; }
public string WireKey { get; set; }
public string ApplicationScenario { get; set; }
public string WireDiameterSpecification { get; set; }
public string IsHighFlexibilityStr { get; set; }
public string WireCoreCount { get; set; }
/// <summary> /// <summary>
/// 引脚编号 /// 引脚编号
/// </summary> /// </summary>
@ -68,6 +82,69 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
/// </summary> /// </summary>
public int RearConnectorQuantity { get; set; } public int RearConnectorQuantity { get; set; }
/// <summary>
/// 号码管型号
/// </summary>
public string NumberTubeModel { get; set; }
/// <summary>
/// 号码管物料编码
/// </summary>
public string NumberTubeMCode { get; set; }
/// <summary>
/// 号码管长度
/// </summary>
public int NumberTubeLength { get; set; }
public bool FrontConnectorIsPin { get; set; }
public bool RearConnectorIsPin { get; set; }
/// <summary>
/// 透明热缩管型号
/// </summary>
public string TransparentHeatShrinkTubeModel { get; set; }
/// <summary>
/// 透明热缩管标示
/// </summary>
public string TransparentHeatShrinkTubeDesc { get; set; }
/// <summary>
/// 透明热缩管物料编码
/// </summary>
public string TransparentHeatShrinkTubeMCode { get; set; }
/// <summary>
/// 黑色热缩管型号(插头)
/// </summary>
public string BlackHeatShrinkTubeModel { get; set; }
/// <summary>
/// 黑色热缩管物料编码(插头)
/// </summary>
public string BlackHeatShrinkTubeMCode { get; set; }
/// <summary>
/// 黑色热缩管型号(剥线后)
/// </summary>
public string BlackHeatShrinkTubeModelAfterStripping { get; set; }
/// <summary>
/// 黑色热缩管物料编码(剥线后)
/// </summary>
public string BlackHeatShrinkTubeMCodeAfterStripping { get; set; }
/// <summary>
/// 热缩管标识
/// </summary>
public string HeatShrinkTubeDesc { get; set; }
/// <summary>
/// 前段子剥线长度
/// </summary>
public int FrontStrippingLength { get; set; }
/// <summary>
/// 后段子剥线长度
/// </summary>
public int RearStrippingLength { get; set; }
public bool Layouted { get;set; }
private List<MultiCoreWireDataModel> _children = []; private List<MultiCoreWireDataModel> _children = [];

View File

@ -10,31 +10,13 @@ using System.Threading.Tasks;
namespace Sinvo.EplanHpD.Plugin.WPFUI.Models namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
{ {
public class MultiCoreWireLecModel : INotifyPropertyChanged public class MultiCoreWireExcelModel : INotifyPropertyChanged
{ {
/* /*
* 线mm2) 线 线 * 线mm2) 线 线
*/ */
public string Id { get; set; }
public string UniqueKey { get; set; }
public string ProjectName { get; set; }
public string UserId { get; set; }
/// <summary>
/// 线材名称
/// </summary>
public string WireKey { get; set; }
private int _seqNo;
[ExcelColumn(Ignore = true)]
public int SeqNo
{
get => _seqNo;
set
{
_seqNo = value;
OnPropertyChanged(nameof(SeqNo));
}
}
/// <summary> /// <summary>
/// 应用场景 /// 应用场景
@ -81,6 +63,14 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
} }
} }
/*号码管/热缩管型号 号码管物料编码*/
[ExcelColumn(Name = "号码管/热缩管型号")]
public string NumberTubeModel { get; set; }
[ExcelColumn(Name = "号码管物料编码")]
public string NumberTubeMCode { get; set; }
/// <summary> /// <summary>
/// 是否高柔 /// 是否高柔
/// </summary> /// </summary>
@ -175,9 +165,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
/// <summary> /// <summary>
/// 叉耳端子剥线长度(mm) /// 叉耳端子剥线长度(mm)
/// </summary> /// </summary>
private double _forkTerminalStripLength; private int _forkTerminalStripLength;
[ExcelColumn(Name = "叉耳端子剥线长度(mm)")] [ExcelColumn(Name = "叉耳端子剥线长度(mm)")]
public double ForkTerminalStripLength public int ForkTerminalStripLength
{ {
get => _forkTerminalStripLength; get => _forkTerminalStripLength;
set set
@ -223,9 +213,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
/// <summary> /// <summary>
/// 扁形端子剥线长度(mm) /// 扁形端子剥线长度(mm)
/// </summary> /// </summary>
private double _flatTerminalStripLength; private int _flatTerminalStripLength;
[ExcelColumn(Name = "扁形端子剥线长度(mm)")] [ExcelColumn(Name = "扁形端子剥线长度(mm)")]
public double FlatTerminalStripLength public int FlatTerminalStripLength
{ {
get => _flatTerminalStripLength; get => _flatTerminalStripLength;
set set
@ -271,9 +261,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
/// <summary> /// <summary>
/// O型端子剥线长度(mm) /// O型端子剥线长度(mm)
/// </summary> /// </summary>
private double _oTypeTerminalStripLength; private int _oTypeTerminalStripLength;
[ExcelColumn(Name = "O型端子剥线长度(mm)")] [ExcelColumn(Name = "O型端子剥线长度(mm)")]
public double OTypeTerminalStripLength public int OTypeTerminalStripLength
{ {
get => _oTypeTerminalStripLength; get => _oTypeTerminalStripLength;
set set
@ -319,9 +309,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
/// <summary> /// <summary>
/// 针型端子剥线长度(mm) /// 针型端子剥线长度(mm)
/// </summary> /// </summary>
private double _pinTerminalStripLength; private int _pinTerminalStripLength;
[ExcelColumn(Name = "针型端子剥线长度(mm)")] [ExcelColumn(Name = "针型端子剥线长度(mm)")]
public double PinTerminalStripLength public int PinTerminalStripLength
{ {
get => _pinTerminalStripLength; get => _pinTerminalStripLength;
set set
@ -367,9 +357,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
/// <summary> /// <summary>
/// Y形端子剥线长度(mm) /// Y形端子剥线长度(mm)
/// </summary> /// </summary>
private double _yTypeTerminalStripLength; private int _yTypeTerminalStripLength;
[ExcelColumn(Name = "Y形端子剥线长度(mm)")] [ExcelColumn(Name = "Y形端子剥线长度(mm)")]
public double YTypeTerminalStripLength public int YTypeTerminalStripLength
{ {
get => _yTypeTerminalStripLength; get => _yTypeTerminalStripLength;
set set
@ -507,39 +497,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models
} }
private int _frontConnectorCount;
/// <summary>
///
[ExcelColumn(Ignore = true)]
public int FrontConnectorQuantity
{
get => _frontConnectorCount;
set
{
_frontConnectorCount = value;
OnPropertyChanged(nameof(FrontConnectorQuantity));
}
}
private int _rearConnectorQuantity;
/// <summary>
///
[ExcelColumn(Ignore = true)]
public int RearConnectorQuantity
{
get => _rearConnectorQuantity;
set
{
_rearConnectorQuantity = value;
OnPropertyChanged(nameof(RearConnectorQuantity));
}
}
/// <summary>
/// 号码管型号
/// </summary>
public string NumberTubeModel { get; set; }
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName) public void OnPropertyChanged(string propertyName)

View File

@ -16,7 +16,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Models.MultiCoreWire
/// <summary> /// <summary>
/// 端子剥线长度(mm) /// 端子剥线长度(mm)
public double TerminalStripLength { get; set; } public int TerminalStripLength { get; set; }
/// <summary> /// <summary>
/// 端子物料编码 /// 端子物料编码

View File

@ -0,0 +1,46 @@
using MiniExcelLibs.Attributes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Sinvo.EplanHpD.Plugin.WPFUI.Models.MultiCoreWire
{
public class WireHeatShrinkMapping
{
/*
线
*/
/// <summary>
/// 线材型号
/// </summary>
[ExcelColumn(Name = "线材型号")]
public string WireModelSpecification { get; set; }
/// <summary>
/// 透明热缩管型号
/// </summary>
[ExcelColumn(Name = "透明热缩管型号")]
public string TransparentHeatShrinkTubeModel { get; set; }
/// <summary>
/// 透明热缩管物料编码
/// </summary>
[ExcelColumn(Name = "透明热缩管物料编码")]
public string TransparentHeatShrinkTubeMaterialCode { get; set; }
/// <summary>
/// 黑色热缩管型号
/// </summary>
[ExcelColumn(Name = "黑色热缩管型号")]
public string BlackHeatShrinkTubeModel { get; set; }
/// <summary>
/// 黑色热缩管物料编码
/// </summary>
[ExcelColumn(Name = "黑色热缩管物料编码")]
public string BlackHeatShrinkTubeMaterialCode { get; set; }
}
}

View File

@ -254,7 +254,9 @@
<Compile Include="Extension\CheckedModelExt.cs" /> <Compile Include="Extension\CheckedModelExt.cs" />
<Compile Include="Extension\MotorModelUniqueFlagExt.cs" /> <Compile Include="Extension\MotorModelUniqueFlagExt.cs" />
<Compile Include="Extension\PropertyListExt.cs" /> <Compile Include="Extension\PropertyListExt.cs" />
<Compile Include="Models\MultiCoreWire\ConnectorHeatShrinkMapping.cs" />
<Compile Include="Models\MultiCoreWire\MultiCoreWireTerminalModel.cs" /> <Compile Include="Models\MultiCoreWire\MultiCoreWireTerminalModel.cs" />
<Compile Include="Models\MultiCoreWire\WireHeatShrinkMapping.cs" />
<Compile Include="Models\WireCheck\CheckedModel.cs" /> <Compile Include="Models\WireCheck\CheckedModel.cs" />
<Compile Include="Models\ConfigItemModel.cs" /> <Compile Include="Models\ConfigItemModel.cs" />
<Compile Include="Models\WireCheck\ExcelModel.cs" /> <Compile Include="Models\WireCheck\ExcelModel.cs" />
@ -292,7 +294,7 @@
<Compile Include="ViewModel\CableLectotype\LectotypeViewModel.cs" /> <Compile Include="ViewModel\CableLectotype\LectotypeViewModel.cs" />
<Compile Include="ViewModel\LoginViewModel.cs" /> <Compile Include="ViewModel\LoginViewModel.cs" />
<Compile Include="Models\MultiCoreWire\MultiCoreWireDataModel.cs" /> <Compile Include="Models\MultiCoreWire\MultiCoreWireDataModel.cs" />
<Compile Include="Models\MultiCoreWire\MultiCoreWireLecModel.cs" /> <Compile Include="Models\MultiCoreWire\MultiCoreWireExcelModel.cs" />
<Compile Include="ViewModel\MultiCoreWireViewModel\MultiCoreWireLayoutHelperViewModel.cs" /> <Compile Include="ViewModel\MultiCoreWireViewModel\MultiCoreWireLayoutHelperViewModel.cs" />
<Compile Include="ViewModel\MultiCoreWireViewModel\MultiCoreWireViewModel.cs" /> <Compile Include="ViewModel\MultiCoreWireViewModel\MultiCoreWireViewModel.cs" />
<Compile Include="ViewModel\WireCheck\MainViewModel.Check.cs" /> <Compile Include="ViewModel\WireCheck\MainViewModel.Check.cs" />

View File

@ -1,5 +1,6 @@
using MiniExcelLibs; using MiniExcelLibs;
using Sinvo.EplanHpD.Plugin.WPFUI.Models; using Sinvo.EplanHpD.Plugin.WPFUI.Models;
using Sinvo.EplanHpD.Plugin.WPFUI.Models.MultiCoreWire;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
@ -28,7 +29,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Utils
} }
} }
public IEnumerable<MultiCoreWireLecModel> GetMultiCoreWireLecDatas() public IEnumerable<MultiCoreWireExcelModel> GetMultiCoreWireLecDatas()
{ {
if (dataFileStream == null || !dataFileStream.CanRead) if (dataFileStream == null || !dataFileStream.CanRead)
{ {
@ -36,10 +37,35 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.Utils
ReadDataToStream(); ReadDataToStream();
} }
//var filePath = "D:\\旧电脑文件\\Desktop\\Data\\三菱伺服HK-KT线材选型BOM表_按程序格式整理后.xlsx"; //var filePath = "D:\\旧电脑文件\\Desktop\\Data\\三菱伺服HK-KT线材选型BOM表_按程序格式整理后.xlsx";
var data = MiniExcel.Query<MultiCoreWireLecModel>(dataFileStream,sheetName: "多芯线WPS数据配对"); var data = MiniExcel.Query<MultiCoreWireExcelModel>(dataFileStream,sheetName: "多芯线WPS数据配对");
//MiniExcel.Query()
return data;
}
public ConnectorHeatShrinkMapping GetConnectorHeatShrinkMappingDatas(string connectorModel)
{
if (dataFileStream == null || !dataFileStream.CanRead)
{
// 未初始化或是无法读取时,重试一次
ReadDataToStream();
}
//var filePath = "D:\\旧电脑文件\\Desktop\\Data\\三菱伺服HK-KT线材选型BOM表_按程序格式整理后.xlsx";
var data = MiniExcel.Query<ConnectorHeatShrinkMapping>(dataFileStream, sheetName: "插头对应热缩管")
.FirstOrDefault(it => it.ProductName == connectorModel);
//MiniExcel.Query()
return data;
}
public WireHeatShrinkMapping GetWireHeatShrinkMappingDatas(string wireModelSpecification)
{
if (dataFileStream == null || !dataFileStream.CanRead)
{
// 未初始化或是无法读取时,重试一次
ReadDataToStream();
}
//var filePath = "D:\\旧电脑文件\\Desktop\\Data\\三菱伺服HK-KT线材选型BOM表_按程序格式整理后.xlsx";
var data = MiniExcel.Query<WireHeatShrinkMapping>(dataFileStream, sheetName: "线材对应热缩管")
.FirstOrDefault(it => it.WireModelSpecification == wireModelSpecification);
//MiniExcel.Query() //MiniExcel.Query()
return data; return data;
} }
} }
} }

View File

@ -159,7 +159,7 @@
<hc:TextBox <hc:TextBox
MinWidth="100" MinWidth="100"
Margin="10,0" Margin="10,0"
IsEnabled="{Binding Wirekey}" /> Text="{Binding Wirekey}" />
</hc:SimpleStackPanel> </hc:SimpleStackPanel>
</hc:SimpleStackPanel> </hc:SimpleStackPanel>
@ -234,14 +234,14 @@
<hc:ComboBox <hc:ComboBox
MinWidth="100" MinWidth="100"
Margin="10,0" Margin="10,0"
SelectedValue="{Binding BackConnectorType}" SelectedValue="{Binding RearConnectorType}"
SelectedValuePath="Content"> SelectedValuePath="Content">
<ComboBoxItem Content="端子" /> <ComboBoxItem Content="端子" />
<ComboBoxItem Content="插头" /> <ComboBoxItem Content="插头" />
</hc:ComboBox> </hc:ComboBox>
<TextBlock VerticalAlignment="Center" Text="连接物数量:" /> <TextBlock VerticalAlignment="Center" Text="连接物数量:" />
<hc:NumericUpDown Value="{Binding BackConnectorCount}" /> <hc:NumericUpDown Value="{Binding RearConnectorCount}" />
</hc:SimpleStackPanel> </hc:SimpleStackPanel>
<hc:SimpleStackPanel Orientation="Horizontal"> <hc:SimpleStackPanel Orientation="Horizontal">
<TextBlock <TextBlock
@ -252,8 +252,8 @@
MinWidth="100" MinWidth="100"
Margin="10,0" Margin="10,0"
DisplayMemberPath="TerminalModel" DisplayMemberPath="TerminalModel"
ItemsSource="{Binding BackConnectorModels}" ItemsSource="{Binding RearConnectorModels}"
SelectedValue="{Binding BackConnectorModel}" SelectedValue="{Binding RearConnectorModel}"
SelectedValuePath="TerminalModel" /> SelectedValuePath="TerminalModel" />
</hc:SimpleStackPanel> </hc:SimpleStackPanel>
</hc:SimpleStackPanel> </hc:SimpleStackPanel>
@ -324,10 +324,12 @@
<DataGridTextColumn Binding="{Binding FrontConnectorModel}" Header="前连接物型号" /> <DataGridTextColumn Binding="{Binding FrontConnectorModel}" Header="前连接物型号" />
<DataGridTextColumn Binding="{Binding FrontConnectorMCode}" Header="前连接物料号" /> <DataGridTextColumn Binding="{Binding FrontConnectorMCode}" Header="前连接物料号" />
<DataGridTextColumn Binding="{Binding FrontConnectorQuantity}" Header="前连接物数量" /> <DataGridTextColumn Binding="{Binding FrontConnectorQuantity}" Header="前连接物数量" />
<DataGridTextColumn Binding="{Binding FrontConnectorCount}" Header="热缩管型号(插头)" /> <DataGridTextColumn Binding="{Binding BlackHeatShrinkTubeModel}" Header="热缩管型号(插头)" />
<DataGridTextColumn Binding="{Binding FrontConnectorCount}" Header="热缩管物料编码(插头)" /> <DataGridTextColumn Binding="{Binding BlackHeatShrinkTubeMCode}" Header="热缩管物料编码(插头)" />
<DataGridTextColumn Binding="{Binding FrontConnectorCount}" Header="热缩管数量(插头)" /> <DataGridTextColumn Binding="{Binding TransparentHeatShrinkTubeModel}" Header="透明热缩管" />
<DataGridTextColumn Binding="{Binding FrontConnectorCount}" Header="热缩管总长度(插头)" /> <DataGridTextColumn Binding="{Binding TransparentHeatShrinkTubeMCode}" Header="透明热缩管物料编码" />
<DataGridTextColumn Binding="{Binding BlackHeatShrinkTubeModelAfterStripping}" Header="热缩管型号(剥线后)" />
<DataGridTextColumn Binding="{Binding BlackHeatShrinkTubeMCodeAfterStripping}" Header="热缩管物料编码(剥线后)" />
<DataGridTextColumn Binding="{Binding RearConnectorModel}" Header="后连接物型号" /> <DataGridTextColumn Binding="{Binding RearConnectorModel}" Header="后连接物型号" />
<DataGridTextColumn Binding="{Binding RearConnectorMCode}" Header="后连接物料号" /> <DataGridTextColumn Binding="{Binding RearConnectorMCode}" Header="后连接物料号" />
<DataGridTextColumn Binding="{Binding RearConnectorQuantity}" Header="后连接物数量" /> <DataGridTextColumn Binding="{Binding RearConnectorQuantity}" Header="后连接物数量" />

View File

@ -29,7 +29,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
private FlexDesigner _currentFlexDesigner; private FlexDesigner _currentFlexDesigner;
private List<string> ApplicationScenarios = []; private List<string> ApplicationScenarios = [];
public int ApplicationScenarioIndex = 0; public int ApplicationScenarioIndex = 0;
private List<MultiCoreWireLecModel> _wireData = []; private List<MultiCoreWireDataModel> _wireData = [];
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName) public void OnPropertyChanged(string propertyName)
{ {
@ -43,7 +43,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
UpdatePropNotify(); UpdatePropNotify();
wireDatas.ForEach(wire => wireDatas.ForEach(wire =>
{ {
_wireData.Add(MapperUtil.MapFor<MultiCoreWireLecModel, MultiCoreWireLecDBModel>(wire)); _wireData.Add(MapperUtil.MapFor<MultiCoreWireDataModel, MultiCoreWireLecDBModel>(wire));
}); });
_wireData.Where(wire => wire.ApplicationScenario == ApplicationScenario).ForEach(LecWires.Add); _wireData.Where(wire => wire.ApplicationScenario == ApplicationScenario).ForEach(LecWires.Add);
@ -210,9 +210,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
OnPropertyChanged(nameof(ApplicationScenario)); OnPropertyChanged(nameof(ApplicationScenario));
} }
} }
private ObservableCollection<MultiCoreWireLecModel> _lecWires = []; private ObservableCollection<MultiCoreWireDataModel> _lecWires = [];
public ObservableCollection<MultiCoreWireLecModel> LecWires public ObservableCollection<MultiCoreWireDataModel> LecWires
{ {
get { return _lecWires; } get { return _lecWires; }
set set

View File

@ -20,7 +20,6 @@ using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows; using System.Windows;
using System.Windows.Forms;
namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
{ {
@ -44,9 +43,9 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
} }
} }
private ObservableCollection<MultiCoreWireLecModel> _lecWires = []; private ObservableCollection<MultiCoreWireDataModel> _lecWires = [];
public ObservableCollection<MultiCoreWireLecModel> LecWires public ObservableCollection<MultiCoreWireDataModel> LecWires
{ {
get { return _lecWires; } get { return _lecWires; }
set set
@ -461,11 +460,22 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
#endregion #endregion
private IEnumerable<MultiCoreWireLecModel> _datas; private IEnumerable<MultiCoreWireExcelModel> _datas;
public void LoadLecData() public void LoadLecData()
{ {
_datas = _dataHelper.GetMultiCoreWireLecDatas(); try
{
_datas = _dataHelper.GetMultiCoreWireLecDatas();
}
catch (Exception ex)
{
HandyControl.Controls.MessageBox.Show(ex.Message);
return;
}
SetDatas(_datas); SetDatas(_datas);
try try
{ {
@ -475,7 +485,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
{ {
wiresData.ForEach(wire => wiresData.ForEach(wire =>
{ {
LecWires.Add(new MultiCoreWireLecModel LecWires.Add(new MultiCoreWireDataModel
{ {
Id = wire.Id, Id = wire.Id,
SeqNo = wire.SeqNo, SeqNo = wire.SeqNo,
@ -528,7 +538,7 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
SetDatas(canUsedDatas, propName,true); SetDatas(canUsedDatas, propName,true);
} }
private void SetDatas(IEnumerable<MultiCoreWireLecModel> datas, string propName = "",bool isLecChange = false) private void SetDatas(IEnumerable<MultiCoreWireExcelModel> datas, string propName = "",bool isLecChange = false)
{ {
if (datas != null) if (datas != null)
{ {
@ -649,6 +659,11 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
HandyControl.Controls.MessageBox.Show("有信息未选择!",caption: "提示",icon: MessageBoxImage.Warning); HandyControl.Controls.MessageBox.Show("有信息未选择!",caption: "提示",icon: MessageBoxImage.Warning);
return; return;
} }
if(RearConnectorType == "插头" && FrontConnectorType == "插头")
{
HandyControl.Controls.MessageBox.Show("不能两头都是插头!", caption: "提示", icon: MessageBoxImage.Warning);
return;
}
if (LecWires.Any(it => it.ApplicationScenario == ApplicationScenario && it.WireModelSpecification == WireModelSpecification if (LecWires.Any(it => it.ApplicationScenario == ApplicationScenario && it.WireModelSpecification == WireModelSpecification
&& it.FrontConnectorModel == FrontConnectorModel && it.RearConnectorModel == RearConnectorModel)) && it.FrontConnectorModel == FrontConnectorModel && it.RearConnectorModel == RearConnectorModel))
{ {
@ -666,11 +681,12 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
var wire = new MultiCoreWireLecModel var wire = new MultiCoreWireDataModel
{ {
Id = Guid.NewGuid().ToString(), Id = Guid.NewGuid().ToString(),
SeqNo = LecWires.Count + 1, SeqNo = LecWires.Count + 1,
ApplicationScenario = ApplicationScenario, ApplicationScenario = ApplicationScenario,
WireKey = Wirekey,
WireDiameterSpecification = WireDiameterSpecification, WireDiameterSpecification = WireDiameterSpecification,
IsHighFlexibilityStr = HighFlexibility, IsHighFlexibilityStr = HighFlexibility,
WireCoreCount = WireCoreCount, WireCoreCount = WireCoreCount,
@ -678,36 +694,103 @@ namespace Sinvo.EplanHpD.Plugin.WPFUI.ViewModel.MultiCoreWireViewModel
FrontConnectorModel = FrontConnectorModel, FrontConnectorModel = FrontConnectorModel,
FrontConnectorQuantity = FrontConnectorCount, FrontConnectorQuantity = FrontConnectorCount,
FrontConnectorMCode = frontConnectorMCode, FrontConnectorMCode = frontConnectorMCode,
FrontConnectorIsPin = FrontConnectorType == "端子",
RearConnectorModel = RearConnectorModel, RearConnectorModel = RearConnectorModel,
RearConnectorQuantity = RearConnectorCount, RearConnectorQuantity = RearConnectorCount,
RearConnectorMCode = rearConnectorMCode, RearConnectorMCode = rearConnectorMCode,
RearConnectorIsPin = RearConnectorType == "端子",
UserId = PluginServices.user.ID, UserId = PluginServices.user.ID,
ProjectName = LectotypeManager.CURRENT_DOC_NAME, ProjectName = LectotypeManager.CURRENT_DOC_NAME,
UniqueKey = $"{LectotypeManager.CURRENT_DOC_NAME}_{PluginServices.user.ID}" UniqueKey = $"{LectotypeManager.CURRENT_DOC_NAME}_{PluginServices.user.ID}"
}; };
Task.Factory.StartNew(() =>
_service.SaveData(new MultiCoreWireLecDBModel
{ {
Id = wire.Id, try
UniqueKey = wire.UniqueKey, {
ProjectName = wire.ProjectName,
UserId = wire.UserId,
SeqNo = wire.SeqNo,
ApplicationScenario = wire.ApplicationScenario,
WireDiameterSpecification = wire.WireDiameterSpecification,
IsHighFlexibilityStr = wire.IsHighFlexibilityStr,
WireCoreCount = wire.WireCoreCount,
WireModelSpecification = wire.WireModelSpecification,
FrontConnectorModel = wire.FrontConnectorModel, if (!wire.FrontConnectorIsPin)
FrontConnectorQuantity = wire.FrontConnectorQuantity, {
RearConnectorModel = wire.RearConnectorModel, // 获取插头信息
RearConnectorQuantity = wire.RearConnectorQuantity var connectorInfo = MultiCoreWireExcelHelper.Instance.GetConnectorHeatShrinkMappingDatas(wire.FrontConnectorModel);
if (connectorInfo != null)
{
wire.BlackHeatShrinkTubeMCode = connectorInfo.HeatShrinkTubeSpecification;
wire.BlackHeatShrinkTubeMCode = connectorInfo.HeatShrinkTubeMaterialCode;
//wire.bla
}
}
if (!wire.RearConnectorIsPin)
{
// 获取插头信息
// 获取插头信息
var connectorInfo = MultiCoreWireExcelHelper.Instance.GetConnectorHeatShrinkMappingDatas(wire.RearConnectorModel);
if (connectorInfo != null)
{
wire.BlackHeatShrinkTubeModel = connectorInfo.HeatShrinkTubeSpecification;
wire.BlackHeatShrinkTubeMCode = connectorInfo.HeatShrinkTubeMaterialCode;
//wire.bla
}
}
// 获取透明热缩管 、黑色热缩管
var heatShrinkTubeInfo = MultiCoreWireExcelHelper.Instance.GetWireHeatShrinkMappingDatas(wire.WireModelSpecification);
if(heatShrinkTubeInfo != null)
{
wire.TransparentHeatShrinkTubeModel = heatShrinkTubeInfo.TransparentHeatShrinkTubeModel;
wire.TransparentHeatShrinkTubeMCode = heatShrinkTubeInfo.TransparentHeatShrinkTubeMaterialCode;
wire.BlackHeatShrinkTubeModelAfterStripping = heatShrinkTubeInfo.BlackHeatShrinkTubeModel;
wire.BlackHeatShrinkTubeMCodeAfterStripping = heatShrinkTubeInfo.BlackHeatShrinkTubeMaterialCode;
}
var wireData = _datas.Where(it => it.WireModelSpecification == wire.WireModelSpecification).FirstOrDefault();
if (wireData != null)
{
wire.NumberTubeModel = wireData.NumberTubeModel;
wire.NumberTubeMCode = wireData.NumberTubeMCode;
if (wire.FrontConnectorIsPin)
{
wire.FrontStrippingLength = wireData.TerminalModels.FirstOrDefault(it => it.TerminalModel == wire.FrontConnectorModel)?.TerminalStripLength ?? 0;
}
if (wire.RearConnectorIsPin)
{
wire.RearStrippingLength = wireData.TerminalModels.FirstOrDefault(it => it.TerminalModel == wire.RearConnectorModel)?.TerminalStripLength ?? 0;
}
}
}
catch (Exception ex)
{
HandyControl.Controls.MessageBox.Show(ex.Message);
}
}).ContinueWith(x =>
{
//_service.SaveData(new MultiCoreWireLecDBModel
//{
// Id = wire.Id,
// UniqueKey = wire.UniqueKey,
// ProjectName = wire.ProjectName,
// UserId = wire.UserId,
// SeqNo = wire.SeqNo,
// ApplicationScenario = wire.ApplicationScenario,
// WireDiameterSpecification = wire.WireDiameterSpecification,
// IsHighFlexibilityStr = wire.IsHighFlexibilityStr,
// WireCoreCount = wire.WireCoreCount,
// WireModelSpecification = wire.WireModelSpecification,
// FrontConnectorModel = wire.FrontConnectorModel,
// FrontConnectorQuantity = wire.FrontConnectorQuantity,
// RearConnectorModel = wire.RearConnectorModel,
// RearConnectorQuantity = wire.RearConnectorQuantity
//});
Application.Current.Dispatcher.BeginInvoke(() =>
{
LecWires.Add(wire);
OnPropertyChanged(nameof(LecWires));
});
}); });
LecWires.Add(wire);
} }
catch (Exception ex) catch (Exception ex)
{ {