using System.Collections.Generic; namespace IStation.DataProvider { /// /// 泵站 数据生成器 /// public class StationGenerator { public Dictionary MapperDict = new Dictionary(); /// /// 生成 /// public static bool Creater() { var signalTypes = new List(); var products = new List(); var monitorPointGroups = new List(); var monitorPointExSignalExMappings = new List(); #region signalTypes var signalType_瞬时流量 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "瞬时流量", Identifier = "瞬时流量", UnitType = Unit.eUnitType.流量, UnitValue = "1", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 1, Description = "" }; signalTypes.Add(signalType_瞬时流量); var signalType_累积流量 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "累积流量", Identifier = "累积流量", UnitType = Unit.eUnitType.体积, UnitValue = "1", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 2, Description = "" }; signalTypes.Add(signalType_累积流量); var signalType_压力 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "压力", Identifier = "压力", UnitType = Unit.eUnitType.压力, UnitValue = "1", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 3, Description = "" }; signalTypes.Add(signalType_压力); var signalType_水位 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "水位", Identifier = "水位", UnitType = Unit.eUnitType.长度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 4, Description = "" }; signalTypes.Add(signalType_水位); var signalType_扬程 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "扬程", Identifier = "扬程", UnitType = Unit.eUnitType.扬程, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 33, Description = "" }; signalTypes.Add(signalType_扬程); var signalType_有功功率 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "有功功率", Identifier = "有功功率", UnitType = Unit.eUnitType.有功功率, UnitValue = "1", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 6, Description = "" }; signalTypes.Add(signalType_有功功率); var signalType_频率 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "频率", Identifier = "频率", UnitType = Unit.eUnitType.频率, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 9, Description = "" }; signalTypes.Add(signalType_频率); var signalType_转速 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "转速", Identifier = "转速", UnitType = Unit.eUnitType.转速, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 10, Description = "" }; signalTypes.Add(signalType_转速); var signalType_有功电度 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "有功电度", Identifier = "有功电度", UnitType = Unit.eUnitType.有功电度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 11, Description = "" }; signalTypes.Add(signalType_有功电度); var valueSettings_设备 = new Dictionary { { -2, "未知" }, { -1, "故障" }, { 0, "停机" }, { 1, "开机" }, { 2, "工频" }, { 3, "变频" } }; var signalType_运行状态 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "运行状态", Identifier = "运行状态", UnitType = (0), UnitValue = "", FormatType = Model.eFormatType.Enum, FormatParas = JsonHelper.Object2Json(valueSettings_设备), SortCode = 13, Description = "" }; signalTypes.Add(signalType_运行状态); var signalType_电流 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "电流", Identifier = "电流", UnitType = Unit.eUnitType.电流, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 16, Description = "" }; signalTypes.Add(signalType_电流); var signalType_电压 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "电压", Identifier = "电压", UnitType = Unit.eUnitType.电压, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 17, Description = "" }; signalTypes.Add(signalType_电压); var signalType_温度 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "温度", Identifier = "温度", UnitType = Unit.eUnitType.温度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 22, Description = "" }; signalTypes.Add(signalType_温度); var signalType_浊度 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "浊度", Identifier = "浊度", UnitType = Unit.eUnitType.浊度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 23, Description = "" }; signalTypes.Add(signalType_浊度); var signalType_余氯 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "余氯", Identifier = "余氯", UnitType = Unit.eUnitType.浓度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 24, Description = "" }; signalTypes.Add(signalType_余氯); var signalType_湿度 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "湿度", Identifier = "湿度", UnitType = Unit.eUnitType.湿度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 25, Description = "" }; signalTypes.Add(signalType_湿度); var signalType_PH = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "PH", Identifier = "PH", UnitType = Unit.eUnitType.自定义, UnitValue = "", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 26, Description = "" }; signalTypes.Add(signalType_PH); var signalType_溶解氧 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "溶解氧", Identifier = "溶解氧", UnitType = Unit.eUnitType.浓度, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 27, Description = "" }; signalTypes.Add(signalType_溶解氧); var signalType_音量 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), GroupID = 9, Name = "音量", Identifier = "音量", UnitType = Unit.eUnitType.音量, UnitValue = "0", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 28, Description = "" }; signalTypes.Add(signalType_音量); var valueSettings_阀门 = new Dictionary { { 0, "关" }, { 1, "开" }, { 2, "中间" } }; var signalType_阀门状态 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "阀门状态", Identifier = "阀门状态", UnitType = (0), UnitValue = "", FormatType = Model.eFormatType.Enum, FormatParas = JsonHelper.Object2Json(valueSettings_阀门), SortCode = 29, Description = "" }; signalTypes.Add(signalType_阀门状态); var signalType_阀门开度 = new Model.SignalType { ID = SnowflakeIdHelper.NextId(), Name = "阀门开度", Identifier = "阀门开度", UnitType = Unit.eUnitType.自定义, UnitValue = "", FormatType = Model.eFormatType.Numeric, FormatParas = "", SortCode = 30, Description = "" }; signalTypes.Add(signalType_阀门开度); #endregion var station = new Model.Station() { ID = SnowflakeIdHelper.NextId(), Name = "陈行二取水", SortCode = 1, }; var monitor_长江液位 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "长江液位", BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List() { IStation.Flags.进口 }, TagName = "_0402010205002020001", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_水位.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Station, MappingID = station.ID }; monitorPointExSignalExMappings.Add(monitor_长江液位); var monitor_取水口液位 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "取水口液位", BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List() { IStation.Flags.进口 }, TagName = "_0402010204089903001", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_水位.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Station, MappingID = station.ID }; monitorPointExSignalExMappings.Add(monitor_取水口液位); var monitor_水库水位 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "水库水位", BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List() { IStation.Flags.出口 }, TagName = "_0402010201030103006", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_水位.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Station, MappingID = station.ID }; monitorPointExSignalExMappings.Add(monitor_水库水位); var monitor_前池液位 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "前池液位", BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List() { IStation.Flags.进口 }, TagName = "_0402010204089904009", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_水位.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Station, MappingID = station.ID }; monitorPointExSignalExMappings.Add(monitor_前池液位); var monitor_1号进线累计有功电能 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "1号进线累计有功电能", BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = "_0402010204040193043", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_有功电度.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Station, MappingID = station.ID }; monitorPointExSignalExMappings.Add(monitor_1号进线累计有功电能); var monitor_2号进线累计有功电能 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "2号进线累计有功电能", BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = "_0402010204040293027", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_有功电度.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Station, MappingID = station.ID }; monitorPointExSignalExMappings.Add(monitor_2号进线累计有功电能); for (int i = 1; i <= 5; i++) { #region products var enginePump = new Model.Product { ID = 100 + i, BelongType = IStation.ObjectType.Station, BelongID = station.ID, Catalog = IStation.Product.EnginePump, GroupID = 0, Supplier = "湖南长沙水泵", ParentIds = new List(), NO = "新" + i + " #", Name = i + " #机组", ModelType = "96LKXA-8.2", Specification = string.Empty, RatedParas = new Model.EnginePump().ToJson(), UnitName = string.Empty, Quantity = 1, Flags = new List(), TagName = "", UseStatus = Model.Product.eUseStatus.Enable, SortCode = i, Description = string.Empty }; var pump = new Model.Product { ID = i, BelongType = IStation.ObjectType.Station, BelongID = station.ID, Catalog = IStation.Product.Pump, GroupID = 0, Supplier = "湖南长沙水泵", ParentIds = new List() { enginePump.ID }, NO = "新" + i + " #", Name = i + " #泵", ModelType = "96LKXA-8.2", Specification = string.Empty, RatedParas = new Model.Pump() { Qr = 46260, Hr = 8.2, Nr = 245, Pr = 1177.3, Er = 87.8, NPSHr = 0, StNumr = 1, Ic = null, Oc = 2400, IOd = null, IsBp = false, IsSxp = false }.ToJson(), UnitName = "台", Quantity = 1, Flags = new List(), TagName = "", UseStatus = Model.Product.eUseStatus.Enable, SortCode = 1, Description = string.Empty }; var motor = new Model.Product { ID = SnowflakeIdHelper.NextId(), BelongType = IStation.ObjectType.Station, BelongID = station.ID, Catalog = IStation.Product.Motor, GroupID = 0, Supplier = "湖南长沙水泵", ParentIds = new List() { enginePump.ID }, NO = "新" + i + " #", Name = i + " #电机", ModelType = "96LKXA-8.2", Specification = string.Empty, RatedParas = new Model.Motor() { Er = 0, Ir = 0, Nr = 0, Pr = 0 }.ToJson(), UnitName = "台", Quantity = 1, Flags = new List(), TagName = "", UseStatus = Model.Product.eUseStatus.Enable, SortCode = 1, Description = string.Empty }; products.Add(enginePump); products.Add(pump); products.Add(motor); #endregion var monitorPointGroup = new Model.MonitorPointGroup { ID = SnowflakeIdHelper.NextId(), BelongType = IStation.ObjectType.Station, BelongID = station.ID, ParentIds = new List(), Name = i + "#机组", Flags = null, TagName = string.Empty, SortCode = i, Description = string.Empty }; monitorPointGroups.Add(monitorPointGroup); #region monitorPointExSignalExMappings var monitor_运行状态 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "运行状态", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = $"_0402010204012{i}01001", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_运行状态.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_运行状态); var monitor_出口压力 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "出口压力", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List() { IStation.Flags.出口 }, TagName = $"_0402010204012{i}05001", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_压力.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_出口压力); var monitor_出水累计流量 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "出水累计流量", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = $"_0402010204012{i}03002", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_累积流量.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_出水累计流量); var monitor_出水瞬时流量 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "出水瞬时流量", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = $"_0402010204012{i}03001", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_瞬时流量.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_出水瞬时流量); var monitor_瞬时功率 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "瞬时功率", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = $"_0402010204012{i}08008", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_有功功率.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_瞬时功率); var monitor_累计总电能 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "累计总电能", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Docking, SourceParas = string.Empty, Flags = new List(), TagName = $"_0402010204012{i}08007", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_有功电度.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_累计总电能); if (i == 1) { monitor_瞬时功率.TagName = "_0402010204040193004"; monitor_累计总电能.TagName = "_0402010204040193046"; } else if (i == 2) { monitor_累计总电能.TagName = "_0402010204040193047"; } var monitor_进口压力 = new Model.MonitorPointExSignalExMapping { MonitorPointID = SnowflakeIdHelper.NextId(), SignalID = SnowflakeIdHelper.NextId(), Name = "进口压力(分析)", GroupID = monitorPointGroup.ID, BelongType = IStation.ObjectType.Station, BelongID = station.ID, SourceType = Model.eSourceType.Analyse, SourceParas = string.Empty, Flags = new List() { IStation.Flags.进口 }, TagName = $"{monitor_前池液位.TagName}", UseStatus = Model.MonitorPoint.eUseStatus.Enable, SortCode = 1, SignalTypeID = signalType_压力.ID, MeasureParas = string.Empty, SignalSourceParas = string.Empty, MappingSelfID = SnowflakeIdHelper.NextId(), MappingType = IStation.ObjectType.Product, MappingID = enginePump.ID }; monitorPointExSignalExMappings.Add(monitor_进口压力); #endregion } if (!new BLL.SignalType().Covers(signalTypes)) { return false; }; if (!new BLL.Station().Covers(new List() { station })) { return false; }; if (!new BLL.Product().Covers(products)) { return false; }; if (!new BLL.MonitorPointGroup().Covers(monitorPointGroups)) { return false; }; if (!new BLL.MonitorPoint().CoverEx(monitorPointExSignalExMappings)) { return false; }; return true; } } }