2025-08-15 15:25:44 +08:00

439 lines
14 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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