439 lines
14 KiB
C#
Raw Normal View History

2025-08-15 15:25:44 +08:00
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DI_Electrical.Models
{
public class ec_Wire_Group
{
public ec_Wire_Group()
{
//SoftTags = new List<ec_SofttagEntity>();
NewSoftTags = new List<ec_Wire_Group>();
//Status = WireGroupStatusEnum.New;
}
#region
/// <summary>
/// 状态。比如“待删除的”。默认为New
/// 去找lr base dataitem数据字典的be_signalstate
/// </summary>
//[JsonConverter(typeof(SignalStatusConverter))]
public WireGroupStatusEnum Status { get; set; } = WireGroupStatusEnum.New;
/// <summary>
/// 某一个输出的信号,可以关联多个输入的信号。关联的是<see cref="Wire_Group_ID"/>
/// </summary>
public string LinkedID { get; set; } = "";
/// <summary>
/// ID
/// </summary>
/// <returns></returns>
public string Wire_Group_ID { get; set; }
/// <summary>
/// 信号名称CH. No.)。
/// 1462C列。
/// 8600A列。
/// 如果是虚拟点。就是主信号+<see cref="Code"/>
/// </summary>
/// <returns></returns>
public string Group_Name { get; set; } = "";
/// <summary>
/// ChannelID。ec_panel_channel里。
/// 如果为空,说明这个信号是关联前的状态(或者说未关联的状态)
/// </summary>
/// <returns></returns>
public string ChannelID { get; set; } = "";
/// <summary>
/// 英文描述(Description)。
/// 1462D列。
/// 8600B列。
/// </summary>
/// <returns></returns>
public string Group_Desc_EN { get; set; } = "";
/// <summary>
/// 中文描述。
/// 8600B列第二行
/// </summary>
/// <returns></returns>
public string Group_Desc { get; set; } = "";
/// <summary>
/// (Signal_Type)信号类型如4-20mA。
/// 1462I列。
/// 8600E列模拟量或F列开关量
/// </summary>
/// <returns></returns>
public string IO_Type { get; set; } = "";
/// <summary>
/// 信号的分组组成Group Name的第一部分
/// </summary>
/// <returns></returns>
public string Signal_Group { get; set; } = "";
/// <summary>
/// 信号的序号组成Group Name的第二部分
/// </summary>
/// <returns></returns>
public string Signal_SeqNo { get; set; } = "";
/// <summary>
/// 信号组模板ID(平台上savesignal时不会带出这个)。
/// 只是公司级上才有意义。
/// </summary>
/// <returns></returns>
public string WireGroupTemplateID { get; set; } = "";
/// <summary>
/// 代码。
/// 1462H列。
/// </summary>
/// <returns></returns>
public string Code { get; set; } = "";
/// <summary>
/// Range_Min。
/// 1462J列。
/// 8600G列111~222
/// </summary>
/// <returns></returns>
public string Range_Min { get; set; } = "";
/// <summary>
/// Range_Max.
/// 1462,k列。
/// 8600G列111~222
/// </summary>
/// <returns></returns>
public string Range_Max { get; set; } = "";
/// <summary>
/// Range_Min和Range_Max的单位。
/// 1462L列。
/// 8600H列。
/// </summary>
/// <returns></returns>
public string Unit { get; set; } = "";
/// <summary>
/// Alarm_LL。
/// 1462m列。
/// 8600J列第一行或第二行不确定
/// </summary>
/// <returns></returns>
public string Alarm_LL { get; set; } = "";
/// <summary>
/// Alarm_L。
/// 1462n列。
/// 8600I列第一行或第二行不确定
/// </summary>
/// <returns></returns>
public string Alarm_L { get; set; } = "";
/// <summary>
/// Alarm_H。
/// 1462o列。
/// 8600I列第一行或第二行不确定
/// </summary>
/// <returns></returns>
public string Alarm_H { get; set; } = "";
/// <summary>
/// Alarm_HH。
/// 1462p列。
/// 8600J列第一行或第二行不确定
/// </summary>
/// <returns></returns>
public string Alarm_HH { get; set; } = "";
/// <summary>
/// AL_GRP 延申报警组。
/// 1462S列。
/// 8600U列。
/// </summary>
/// <returns></returns>
public string AL_GRP { get; set; } = "";
/// <summary>
/// BL_GRP 抑制报警。
/// 1462T列。
/// 8600T列。
/// </summary>
/// <returns></returns>
public string BL_GRP { get; set; } = "";
/// <summary>
/// 延时。
/// 1462U列。
/// 8600S列。
/// </summary>
/// <returns></returns>
public string Time_Delay { get; set; } = "";
/// <summary>
/// 供应商。
/// 1463V列。
/// 8600L列。
/// </summary>
/// <returns></returns>
public string Supplier { get; set; } = "";
/// <summary>
/// 设备名
/// </summary>
/// <returns></returns>
public string EquipName { get; set; } = "";
/// <summary>
/// 传感器代码。
/// 1462W列。
/// 8600K列。
/// </summary>
/// <returns></returns>
public string SENSOR_CODE { get; set; } = "";
/// <summary>
/// VDR_Record。
/// 1462X列。
/// </summary>
/// <returns></returns>
public bool VDR_Record { get; set; } = false;
/// <summary>
/// 是否为slow down信号。
/// 1462Q列。
/// </summary>
/// <returns></returns>
public bool SLD { get; set; } = false;
/// <summary>
/// 是否为shut down信号。
/// 1462R列。
/// </summary>
/// <returns></returns>
public bool SHD { get; set; } = false;
/// <summary>
/// Remarks。
/// 1462Y列。
/// 8600X列。
/// </summary>
/// <returns></returns>
public string Remarks { get; set; } = "";
/// <summary>
/// 信号归属
/// true代表该信号是电气进行最终审核确认
/// false代表该信号是轮机进行最终审核确认
/// </summary>
public bool ElecOnly { get; set; } = false;
/// <summary>
/// 是否为通讯点。
/// 1462通过<see cref="ec_Wire_GroupEntity.Remarks"/>里的文字判断
/// 8600通过K列里的文字判断
/// </summary>
public bool CommunicationPoint { get; set; } = false;
///// <summary>
///// ECC 。Bool类型数据库要么是int要么是bool
///// </summary>
//public bool ECC { get; set; } = false;
///// <summary>
///// WCC
///// </summary>
//public bool WCC { get; set; } = false;
///// <summary>
///// BCC
///// </summary>
//public bool BCC { get; set; } = false;
/// <summary>
/// IO类型AI AO DI DO
/// </summary>
public string InOrOut { get; set; } = "";
/// <summary>
/// 驾驶室(控制台)。
/// 8600M列。导入时如果2行都有值中间会|分开
/// </summary>
public string WHConsole { get; set; } = "";
/// <summary>
/// 驾驶室(计算机)。
/// 8600N列。导入时如果2行都有值中间会|分开
/// </summary>
public string WHCPU { get; set; } = "";
/// <summary>
/// 集控室(控制台)。
/// 8600O列。导入时如果2行都有值中间会|分开
/// </summary>
public string ECRConsole { get; set; } = "";
/// <summary>
/// 集控室(计算机)。
/// 8600P列excel中两行均有值时以|分开)
/// </summary>
public string ECRCPU { get; set; } = "";
/// <summary>
/// 船舶办公室(控制台)。
/// 8600Q列。导入时如果2行都有值中间会|分开
/// </summary>
public string ShipOfficeConsole { get; set; } = "";
/// <summary>
/// 船舶办公室(计算机)。
/// 8600R列。导入时如果2行都有值中间会|分开
/// </summary>
public string ShipOfficeCPU { get; set; } = "";
/// <summary>
/// 安全保护。(和<see cref="SLD"/> <see cref="SHD"/>列有关系)
/// 8600V列。
/// </summary>
public string SafetyProt { get; set; } = "";
/// <summary>
/// 安全保护延时。
/// 8600V列下。
/// </summary>
public string SafetyDelay { get; set; } = "";
/// <summary>
/// SeriousType
/// 1462AG列。
/// </summary>
/// <returns></returns>
public string SeriousType { get; set; } = "";
/// <summary>
/// 自动控制。
/// 8600W列。
/// </summary>
public string AutoCtrl { get; set; } = "";
/// <summary>
/// 爸爸。如果有值,则代表其为虚拟点的概念
/// <see cref="Wire_Group_ID"/>
/// </summary>
public string ParentID { get; set; } = "";
/// <summary>
/// 删除标记。因为哪怕是删除了,也要保留数据,以便日后查看。
/// </summary>
public bool DeleteFlg { get; set; } = false;
/// <summary>
/// 电缆位号(某些项目的<see cref="ec_projectSettingsEntity"/>里是允许编辑的IO_allowManualAssign)
/// </summary>
public string CableName { get; set; }
/// <summary>
/// 通讯类信号<see cref="ec_CableEntity.CableClass"/>的母线ID<see cref="ec_CableEntity.CableID"/>
/// </summary>
public string CableId { get; set; }
/// <summary>
/// 创建人
/// </summary>
/// <returns></returns>
public string CreateUserID { get; set; }
/// <summary>
/// 创建时间
/// </summary>
/// <returns></returns>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 更新人
/// </summary>
/// <returns></returns>
public string UpdateUserID { get; set; }
/// <summary>
/// 更新时间
/// </summary>
/// <returns></returns>
public DateTime? UpdateTime { get; set; }
#endregion
#region
///// <summary>
///// 虚拟点 集合
///// </summary>
////[SugarColumn(IsIgnore = true)]
//[Obsolete]
//[Navigate(NavigateType.OneToMany, nameof(ec_SofttagEntity.Wire_Group_ID))] //配置了导航方便DeleteNavec_softtag表中的wiregroupid
//public List<ec_SofttagEntity> SoftTags { get; set; }
public List<ec_Wire_Group> NewSoftTags { get; set; }
/// <summary>
/// 柜子
/// </summary>
public string PanelName { get; set; }
/// <summary>
/// 通道号
/// </summary>
public string ChannelName { get; set; }
/// <summary>
/// 端子排
/// </summary>
public string StripName { get; set; }
/// <summary>
/// 电缆对
/// </summary>
public string CableSetName { get; set; }
/// <summary>
/// status的具体文字描述
/// </summary>
public string StatusValue { get; set; }
/// <summary>
/// 操作历史(因为现在插件端的保存是一次性的。哪怕有多个动作,也只是一次提交)
/// </summary>
public List<ActionHistory> ActionHistorys { get; set; }
/// <summary>
/// 信号属性变更历史
/// </summary>
public List<ec_wire_group_propertyhis> Propertyhis { get; set; }
/// <summary>
/// 信号日志
/// </summary>
public List<ec_wire_group_log> Logs { get; set; }
#endregion
}
public enum WireGroupStatusEnum
{
/// <summary>
/// 待删除
/// </summary>
[Description("待删除")]
ToDelete = 01,
/// <summary>
/// 新增的
/// </summary>
[Description("新增的")]
New = 02,
/// <summary>
/// 已关联
/// </summary>
[Description("已使用(关联)")]
Used = 03,
/// <summary>
/// 已审核
/// </summary>
[Description("已确认(审核)")]
Confirmed = 04,
/// <summary>
/// 重新打开
/// </summary>
[Description("重新打开")]
Reopen = 05,
/// <summary>
/// 彻底删除
/// </summary>
[Description("彻底删除")]
deleted = 06
}
public class ActionHistory
{
public DateTime? ActionTime { get; set; }
public Action ActionType { get; set; }
public string reason { get; set; }
}
}