009_DI-Elec/newFront/c#前端/SWS.Model/Signal/SignalManagementInfo.cs
CHEN-ZW\acer e24ee57355 1
2025-09-23 16:38:40 +08:00

698 lines
22 KiB
C#

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using SWS.Model;
using SWS.Share;
using Telerik.Windows.Controls;
using Telerik.Windows.Data;
namespace SWS.Model
{
public class SignalManagementInfo : ViewModelBase
{
public event EventHandler GroupOtherChanged;
public event EventHandler CodeChanged;
public event EventHandler ParametersChanged;
#region
private string _Wire_Group_ID;
/// <summary>
/// ID
/// </summary>
public string Wire_Group_ID
{
get { return _Wire_Group_ID; }
set { _Wire_Group_ID = value; RaisePropertyChanged(nameof(Wire_Group_ID)); }
}
private string _ParentID;
/// <summary>
/// 如果有值表示其为虚拟点
/// </summary>
public string ParentID
{
get { return _ParentID; }
set { _ParentID = value; }
}
private string _LinkedID;
/// <summary>
/// 某一个输出的信号,可以关联多个输入的信号。关联的是<see cref="Wire_Group_ID"/>
/// </summary>
public string LinkedID
{
get { return _LinkedID; }
set { _LinkedID = value; RaisePropertyChanged(nameof(LinkedID)); }
}
private string _Status;
/// <summary>
/// 状态
/// </summary>
public string Status
{
get { return _Status; }
set { _Status = value; RaisePropertyChanged(nameof(Status)); }
}
private string _serialNumber;
/// <summary>
/// 序号
/// </summary>
public string serialNumber
{
get { return _serialNumber; }
set { _serialNumber = value; RaisePropertyChanged(nameof(serialNumber)); }
}
private string _type;
/// <summary>
/// 类型
/// </summary>
public string type
{
get { return _type; }
set { _type = value; RaisePropertyChanged(nameof(type)); }
}
private string _Group_Name;
/// <summary>
/// CH.NO
/// </summary>
public string Group_Name
{
get { return _Group_Name; }
set { _Group_Name = value; RaisePropertyChanged(nameof(Group_Name)); }
}
private string _Group_Desc_EN;
/// <summary>
/// 英文描述
/// </summary>
public string Group_Desc_EN
{
get { return _Group_Desc_EN; }
set { _Group_Desc_EN = value; RaisePropertyChanged(nameof(Group_Desc_EN)); }
}
private string _Group_Desc;
/// <summary>
/// 中文描述
/// </summary>
public string Group_Desc
{
get { return _Group_Desc; }
set { _Group_Desc = value; RaisePropertyChanged(nameof(Group_Desc)); }
}
private string _BelongingMajor;
/// <summary>
/// 归属专业
/// </summary>
public string BelongingMajor
{
get { return _BelongingMajor; }
set { _BelongingMajor = value; RaisePropertyChanged(nameof(BelongingMajor)); }
}
private string _GroupOther;
/// <summary>
/// 组别
/// </summary>
public string GroupOther
{
get { return _GroupOther; }
set
{
_GroupOther = value;
RaisePropertyChanged(nameof(GroupOther));
ParametersChanged?.Invoke(this, EventArgs.Empty);
GroupOtherChanged?.Invoke(this, EventArgs.Empty);
}
}
private List<ec_dataitemdetail> _GroupOthers;
/// <summary>
/// 组别列表
/// </summary>
public List<ec_dataitemdetail> GroupOthers
{
get { return _GroupOthers; }
set { _GroupOthers = value; RaisePropertyChanged(nameof(GroupOthers)); }
}
private string _Signal_SeqNo;
/// <summary>
/// 编码
/// </summary>
public string Signal_SeqNo
{
get { return _Signal_SeqNo; }
set { _Signal_SeqNo = value; RaisePropertyChanged(nameof(Signal_SeqNo)); }
}
private string _Code;
/// <summary>
/// Code
/// </summary>
public string Code
{
get { return _Code; }
set
{
_Code = value;
RaisePropertyChanged(nameof(Code));
ParametersChanged?.Invoke(this, EventArgs.Empty);
}
}
private string _InOrOut;
/// <summary>
/// IO类型
/// </summary>
public string InOrOut
{
get { return _InOrOut; }
set { _InOrOut = value; RaisePropertyChanged(nameof(InOrOut)); }
}
private string _IO_Type;
/// <summary>
/// 信号类型
/// </summary>
public string IO_Type
{
get { return _IO_Type; }
set { _IO_Type = value; RaisePropertyChanged(nameof(IO_Type)); }
}
private string _Range_Min;
/// <summary>
/// Range_Min
/// </summary>
public string Range_Min
{
get { return _Range_Min; }
set { _Range_Min = value; RaisePropertyChanged(nameof(Range_Min)); }
}
private string _Range_Max;
/// <summary>
/// Range_Max
/// </summary>
public string Range_Max
{
get { return _Range_Max; }
set { _Range_Max = value; RaisePropertyChanged(nameof(Range_Max)); }
}
private string _Unit;
/// <summary>
/// 单位
/// </summary>
public string Unit
{
get { return _Unit; }
set { _Unit = value; RaisePropertyChanged(nameof(Unit)); }
}
private string _Alarm_LL;
public string Alarm_LL
{
get { return _Alarm_LL; }
set { _Alarm_LL = value; RaisePropertyChanged(nameof(Alarm_LL)); }
}
private string _Alarm_L;
public string Alarm_L
{
get { return _Alarm_L; }
set { _Alarm_L = value; RaisePropertyChanged(nameof(Alarm_L)); }
}
private string _Alarm_H;
public string Alarm_H
{
get { return _Alarm_H; }
set { _Alarm_H = value; RaisePropertyChanged(nameof(Alarm_H)); }
}
private string _Alarm_HH;
public string Alarm_HH
{
get { return _Alarm_HH; }
set { _Alarm_HH = value; RaisePropertyChanged(nameof(Alarm_HH)); }
}
private string _SENSOR_CODE;
public string SENSOR_CODE
{
get { return _SENSOR_CODE; }
set { _SENSOR_CODE = value; RaisePropertyChanged(nameof(SENSOR_CODE)); }
}
private bool _CommunicationPoint;
/// <summary>
/// 是否是通讯点
/// </summary>
public bool CommunicationPoint
{
get { return _CommunicationPoint; }
set { _CommunicationPoint = value; RaisePropertyChanged(nameof(CommunicationPoint)); }
}
private string _SeriousType;
public string SeriousType
{
get { return _SeriousType; }
set { _SeriousType = value; RaisePropertyChanged(nameof(SeriousType)); }
}
private string _AL_GRP;
public string AL_GRP
{
get { return _AL_GRP; }
set { _AL_GRP = value; RaisePropertyChanged(nameof(AL_GRP)); }
}
private string _BL_GRP;
public string BL_GRP
{
get { return _BL_GRP; }
set { _BL_GRP = value; RaisePropertyChanged(nameof(BL_GRP)); }
}
private string _Time_Delay;
public string Time_Delay
{
get { return _Time_Delay; }
set { _Time_Delay = value; RaisePropertyChanged(nameof(Time_Delay)); }
}
private string _Supplier;
/// <summary>
/// 供应商
/// </summary>
public string Supplier
{
get { return _Supplier; }
set { _Supplier = value; RaisePropertyChanged(nameof(Supplier)); }
}
private string _EquipName;
/// <summary>
/// 设备名
/// </summary>
public string EquipName
{
get { return _EquipName; }
set { _EquipName = value; RaisePropertyChanged(nameof(EquipName)); }
}
private bool _VDR_Record;
public bool VDR_Record
{
get { return _VDR_Record; }
set { _VDR_Record = value; RaisePropertyChanged(nameof(VDR_Record)); }
}
private string _WHConsole;
public string WHConsole
{
get { return _WHConsole; }
set { _WHConsole = value; RaisePropertyChanged(nameof(WHConsole)); }
}
private ObservableCollection<ec_dataitemdetail> _WHCPU = new ObservableCollection<ec_dataitemdetail>();
public ObservableCollection<ec_dataitemdetail> WHCPU
{
get { return _WHCPU; }
set
{
_WHCPU = value;
WHCPUs.AddRange(value);
RaisePropertyChanged(nameof(WHCPU));
}
}
private ObservableCollection<ec_dataitemdetail> _WHCPUs = new ObservableCollection<ec_dataitemdetail>();
public ObservableCollection<ec_dataitemdetail> WHCPUs
{
get { return _WHCPUs; }
set { _WHCPUs = value; OnPropertyChanged(nameof(WHCPUs)); }
}
private string _ECRConsole;
public string ECRConsole
{
get { return _ECRConsole; }
set { _ECRConsole = value; RaisePropertyChanged(nameof(ECRConsole)); }
}
private string _ECRCPU;
public string ECRCPU
{
get { return _ECRCPU; }
set { _ECRCPU = value; RaisePropertyChanged(nameof(ECRCPU)); }
}
private ObservableCollection<ec_dataitemdetail> _ECRCPUs = new ObservableCollection<ec_dataitemdetail>();
public ObservableCollection<ec_dataitemdetail> ECRCPUs
{
get { return _ECRCPUs; }
set { _ECRCPUs = value; RaisePropertyChanged(nameof(ECRCPUs)); }
}
private string _ShipOfficeConsole;
public string ShipOfficeConsole
{
get { return _ShipOfficeConsole; }
set { _ShipOfficeConsole = value; RaisePropertyChanged(nameof(ShipOfficeConsole)); }
}
private string _ShipOfficeCPU;
public string ShipOfficeCPU
{
get { return _ShipOfficeCPU; }
set { _ShipOfficeCPU = value; RaisePropertyChanged(nameof(ShipOfficeCPU)); }
}
private ObservableCollection<ec_dataitemdetail> _ShipOfficeCPUs = new ObservableCollection<ec_dataitemdetail>();
public ObservableCollection<ec_dataitemdetail> ShipOfficeCPUs
{
get { return _ShipOfficeCPUs; }
set { _ShipOfficeCPUs = value; RaisePropertyChanged(nameof(ShipOfficeCPUs)); }
}
private bool _SLD;
public bool SLD
{
get { return _SLD; }
set { _SLD = value; RaisePropertyChanged(nameof(SLD)); }
}
private bool _SHD;
public bool SHD
{
get { return _SHD; }
set { _SHD = value; RaisePropertyChanged(nameof(SHD)); }
}
private string _SafetyDelay;
/// <summary>
/// 安保延迟
/// </summary>
public string SafetyDelay
{
get { return _SafetyDelay; }
set { _SafetyDelay = value; RaisePropertyChanged(nameof(SafetyDelay)); }
}
private string _AutoCtrl;
/// <summary>
/// 自动控制
/// </summary>
public string AutoCtrl
{
get { return _AutoCtrl; }
set { _AutoCtrl = value; RaisePropertyChanged(nameof(AutoCtrl)); }
}
private string _AssociatedCableInfo;
/// <summary>
/// 关联电缆信息
/// </summary>
public string AssociatedCableInfo
{
get { return _AssociatedCableInfo; }
set { _AssociatedCableInfo = value; RaisePropertyChanged(nameof(AssociatedCableInfo)); }
}
private string _AssociatedChannelInfo;
/// <summary>
/// 关联通道信息
/// </summary>
public string AssociatedChannelInfo
{
get { return _AssociatedChannelInfo; }
set { _AssociatedChannelInfo = value; RaisePropertyChanged(nameof(AssociatedChannelInfo)); }
}
private string _Remarks;
/// <summary>
/// 备注
/// </summary>
public string Remarks
{
get { return _Remarks; }
set { _Remarks = value; RaisePropertyChanged(nameof(Remarks)); }
}
private List<ec_dataitemdetail> _Suppliers;
/// <summary>
/// 绑定供应商
/// </summary>
public List<ec_dataitemdetail> Suppliers
{
get { return _Suppliers; }
set { _Suppliers = value; RaisePropertyChanged(nameof(Suppliers)); }
}
private ec_dataitemdetail _tempGroupOther;
/// <summary>
/// 临时组别用来将选择的组别转成页面显示的GroupOther
/// </summary>
public ec_dataitemdetail tempGroupOther
{
get { return _tempGroupOther; }
set { _tempGroupOther = value;
RaisePropertyChanged(nameof(tempGroupOther));
if(_tempGroupOther!=null)
{
GroupOther = _tempGroupOther.DataItemName + "|" + _tempGroupOther.DataItemCode;
}
}
}
#region
private bool _IsModified;
/// <summary>
/// 是否修改
/// </summary>
public bool IsModified
{
get { return _IsModified; }
set { _IsModified = value; RaisePropertyChanged(nameof(IsModified)); }
}
private bool _IsExpanded = false;
/// <summary>
/// 是否展开
/// </summary>
public bool IsExpanded
{
get { return _IsExpanded; }
set { _IsExpanded = value; RaisePropertyChanged(nameof(IsExpanded)); }
}
private bool _IsExpandable;
/// <summary>
/// 是否可展开
/// </summary>
public bool IsExpandable
{
get { return _IsExpandable; }
set { _IsExpandable = value; RaisePropertyChanged(nameof(IsExpandable)); }
}
private List<ActionHistory> _ActionHistorys;
/// <summary>
/// 操作历史
/// </summary>
public List<ActionHistory> ActionHistorys
{
get { return _ActionHistorys; }
set { _ActionHistorys = value; }
}
private bool _DeleteFlg;
/// <summary>
/// 删除标记
/// </summary>
public bool DeleteFlg
{
get { return _DeleteFlg; }
set { _DeleteFlg = value; }
}
private ObservableCollection<SignalManagementInfo> _ChildSignals = new ObservableCollection<SignalManagementInfo>();
public ObservableCollection<SignalManagementInfo> ChildSignals
{
get { return _ChildSignals; }
set { _ChildSignals = value; RaisePropertyChanged(nameof(ChildSignals)); }
}
private QueryableCollectionView _ChildSignalsView;
/// <summary>
/// 虚拟点集合视图
/// </summary>
public QueryableCollectionView ChildSignalsView
{
get { return _ChildSignalsView; }
set { _ChildSignalsView = value; RaisePropertyChanged(nameof(ChildSignalsView)); }
}
private int _updaIndex;
/// <summary>
/// 记录修改行的索引
/// </summary>
public int updaIndex
{
get { return _updaIndex; }
set { _updaIndex = value; }
}
#endregion
#endregion
#region
/// <summary>
/// 将表格对象转换为数据模型类
/// </summary>
/// <returns></returns>
public ec_Wire_Group to_ec_Wire_Group(List<ec_Wire_Group> sigals)
{
ec_Wire_Group ent;
if (string.IsNullOrEmpty(Wire_Group_ID))
{
ent = new ec_Wire_Group();
}
else
{
ent = sigals.Where(e => e.Wire_Group_ID.Equals(Wire_Group_ID)).First();
}
switch (Status)
{
case "ToDelete":
ent.Status = WireGroupStatusEnum.ToDelete;
break;
case "New":
ent.Status = WireGroupStatusEnum.New;
break;
case "Used":
ent.Status = WireGroupStatusEnum.Used;
break;
case "Confirmed":
ent.Status = WireGroupStatusEnum.Confirmed;
break;
case "Reopen":
ent.Status = WireGroupStatusEnum.Reopen;
break;
case "deleted":
ent.Status = WireGroupStatusEnum.deleted;
break;
}
ent.Wire_Group_ID = Wire_Group_ID;
ent.ParentID = ParentID;
ent.LinkedID = LinkedID;
ent.Group_Name = Group_Name;
ent.Group_Desc_EN = Group_Desc_EN;
ent.Group_Desc = Group_Desc;
ent.ElecOnly = BelongingMajor.Equals("E") ? true : false;
if (string.IsNullOrEmpty(GroupOther))
{
ent.Signal_Group = "";
}
else
{
ent.Signal_Group = GroupOther.Split('|')[1];
}
ent.Signal_SeqNo = Signal_SeqNo;
ent.Code = Code;
ent.InOrOut = InOrOut;
ent.IO_Type = IO_Type;
ent.Range_Min = Range_Min;
ent.Range_Max = Range_Max;
ent.Unit = Unit;
ent.Alarm_LL = Alarm_LL;
ent.Alarm_L = Alarm_L;
ent.Alarm_H = Alarm_H;
ent.Alarm_HH = Alarm_HH;
ent.SENSOR_CODE = SENSOR_CODE;
ent.CommunicationPoint = CommunicationPoint;
ent.SeriousType = SeriousType;
ent.AL_GRP = AL_GRP;
ent.BL_GRP = BL_GRP;
ent.Time_Delay = Time_Delay;
ent.Supplier = Suppliers.Where(g => g.DataItemName == Supplier).Select(g => g.DataItemCode).FirstOrDefault();
ent.EquipName = EquipName;
ent.VDR_Record = VDR_Record;
ent.WHConsole = WHConsole;
ent.WHCPU = "";
foreach (var item in WHCPUs)
{
if (item != null)
{
ent.WHCPU = ent.WHCPU + item.DataItemCode + "|";
}
}
ent.ECRConsole = ECRConsole;
ent.ECRCPU = "";
foreach (var item in ECRCPUs)
{
if (item != null)
{
ent.ECRCPU = ent.ECRCPU + item.DataItemCode + "|";
}
}
ent.ShipOfficeConsole = ShipOfficeConsole;
ent.ShipOfficeCPU = "";
foreach (var item in ShipOfficeCPUs)
{
if (item != null)
{
ent.ShipOfficeCPU = ent.ShipOfficeCPU + item.DataItemCode + "|";
}
}
ent.SLD = SLD;
ent.SHD = SHD;
ent.SafetyDelay = SafetyDelay;
ent.AutoCtrl = AutoCtrl;
if (string.IsNullOrEmpty(AssociatedCableInfo))
{
//// 使用正则表达式匹配模式,并提取每组数据
//var matches = Regex.Matches(AssociatedCableInfo, @"电缆位号:(.*?)\s电缆对:(.*)");
// if (matches.Count > 0) // 确保至少有一个匹配项
// {
// string cableNumber = matches[0].Groups[1].Value; // 第一个冒号后的值
// string cableSet = matches[0].Groups[2].Value; // 第二个冒号后的值
// }
ent.CableName = "";
ent.CableSetName = "";
}
else
{
ent.CableName = AssociatedCableInfo.Split(' ')[0].Split(':')[1];
ent.CableSetName = (AssociatedCableInfo.Split(' ').Count() > 1) ? AssociatedCableInfo.Split(' ')[1].Split(':')[1] : "";
}
if (string.IsNullOrEmpty(AssociatedChannelInfo))
{
ent.PanelName = "";
ent.StripName = "";
ent.ChannelName = "";
}
else
{
ent.PanelName = AssociatedChannelInfo.Split(' ')[0].Split(':')[1];
ent.StripName = (AssociatedChannelInfo.Split(' ').Count() > 1) ? AssociatedChannelInfo.Split(' ')[1].Split(':')[1] : "";
ent.ChannelName = (AssociatedChannelInfo.Split(' ').Count() > 2) ? AssociatedChannelInfo.Split(' ')[2].Split(':')[2] : "";
}
ent.Remarks = Remarks;
ent.ActionHistorys = ActionHistorys;
ent.DeleteFlg = DeleteFlg;
return ent;
}
#endregion
}
}