using IStation.BLL;
|
using System.Collections.Generic;
|
using System.Linq;
|
|
namespace IStation.DataProvider
|
{
|
/// <summary>
|
/// 泵站 数据生成器
|
/// </summary>
|
public class StationGenerator
|
{
|
|
public Dictionary<long, string> MapperDict = new Dictionary<long, string>();
|
|
|
/// <summary>
|
/// 生成
|
/// </summary>
|
public static bool Creater()
|
{
|
|
var monitorPointGroups = new List<Model.MonitorPointGroup>();
|
var monitorPointExSignals = new List<Model.MonitorPointExSignal>();
|
|
var stations = new Station().GetAll();
|
var station陈行二取 = stations?.Find(x => x.Name == "陈行二取");
|
var station陈行一输 = stations?.Find(x => x.Name == "陈行一输");
|
var station陈行二输 = stations?.Find(x => x.Name == "陈行二输");
|
|
if (station陈行二取 != null)
|
{
|
var belongId = station陈行二取.ID;
|
var g泵站 = BuildGroup("泵站", belongId, 1);
|
var m长江水位 = BuildMonitorPoint(g泵站, "长江水位", belongId, IStation.SignalType.水位, 1, IStation.Flags.进口);
|
var m二取水前池液位 = BuildMonitorPoint(g泵站, "二取水前池液位", belongId, IStation.SignalType.水位, 2, IStation.Flags.进口);
|
var m陈行水库水位 = BuildMonitorPoint(g泵站, "陈行水库水位", belongId, IStation.SignalType.水位, 3, IStation.Flags.出口);
|
|
|
monitorPointGroups.Add(g泵站);
|
monitorPointExSignals.Add(m长江水位);
|
monitorPointExSignals.Add(m二取水前池液位);
|
monitorPointExSignals.Add(m陈行水库水位);
|
for (int i = 1; i <= 5; i++)
|
{
|
var group = BuildGroup($"{i}#机组", belongId, i);
|
var m运行状态 = BuildMonitorPoint(group, "运行状态", belongId, IStation.SignalType.运行状态, 1);
|
var m出水压力 = BuildMonitorPoint(group, "出水压力", belongId, IStation.SignalType.压力, 2, IStation.Flags.出口);
|
var m出水流量 = BuildMonitorPoint(group, "瞬时流量", belongId, IStation.SignalType.瞬时流量, 3, IStation.Flags.出口);
|
var m累积流量 = BuildMonitorPoint(group, "累积流量", belongId, IStation.SignalType.累积流量, 4);
|
var m有功功率 = BuildMonitorPoint(group, "有功功率", belongId, IStation.SignalType.有功功率, 5);
|
var m有功电度 = BuildMonitorPoint(group, "有功电度", belongId, IStation.SignalType.有功电度, 6);
|
|
monitorPointGroups.Add(group);
|
monitorPointExSignals.Add(m运行状态);
|
monitorPointExSignals.Add(m出水压力);
|
monitorPointExSignals.Add(m出水流量);
|
monitorPointExSignals.Add(m累积流量);
|
monitorPointExSignals.Add(m有功功率);
|
monitorPointExSignals.Add(m有功电度);
|
}
|
}
|
|
if (station陈行一输 != null)
|
{
|
var belongId = station陈行一输.ID;
|
var g泵站 = BuildGroup("泵站", belongId, 1);
|
|
var m老前池南侧液位 = BuildMonitorPoint(g泵站, "老前池南侧液位", belongId, IStation.SignalType.水位, 1, IStation.Flags.进口);
|
var m老前池北侧液位 = BuildMonitorPoint(g泵站, "老前池北侧液位", belongId, IStation.SignalType.水位, 2, IStation.Flags.进口);
|
var m新前池液位 = BuildMonitorPoint(g泵站, "新前池液位", belongId, IStation.SignalType.水位, 3, IStation.Flags.进口);
|
|
var m输水嘉定1线出口压力 = BuildMonitorPoint(g泵站, "嘉定1线出口压力", belongId, IStation.SignalType.压力, 4, IStation.Flags.出口);
|
var m输水嘉定2线出口压力 = BuildMonitorPoint(g泵站, "嘉定2线出口压力", belongId, IStation.SignalType.压力, 5, IStation.Flags.出口);
|
var m输水嘉定3线出口压力 = BuildMonitorPoint(g泵站, "嘉定3线出口压力", belongId, IStation.SignalType.压力, 6, IStation.Flags.出口);
|
|
var m输水嘉定1线瞬时流量 = BuildMonitorPoint(g泵站, "嘉定1线瞬时流量", belongId, IStation.SignalType.瞬时流量, 7, IStation.Flags.出口);
|
var m输水嘉定2线瞬时流量 = BuildMonitorPoint(g泵站, "嘉定2线瞬时流量", belongId, IStation.SignalType.瞬时流量, 8, IStation.Flags.出口);
|
var m输水嘉定3线瞬时流量 = BuildMonitorPoint(g泵站, "嘉定3线瞬时流量", belongId, IStation.SignalType.瞬时流量, 9, IStation.Flags.出口);
|
|
var m输水嘉定1线累计流量 = BuildMonitorPoint(g泵站, "嘉定1线累计流量", belongId, IStation.SignalType.累积流量, 10);
|
var m输水嘉定2线累计流量 = BuildMonitorPoint(g泵站, "嘉定2线累计流量", belongId, IStation.SignalType.累积流量, 11);
|
var m输水嘉定3线累计流量 = BuildMonitorPoint(g泵站, "嘉定3线累计流量", belongId, IStation.SignalType.累积流量, 12);
|
|
monitorPointGroups.Add(g泵站);
|
monitorPointExSignals.Add(m老前池南侧液位);
|
monitorPointExSignals.Add(m老前池北侧液位);
|
monitorPointExSignals.Add(m新前池液位);
|
monitorPointExSignals.Add(m输水嘉定1线出口压力);
|
monitorPointExSignals.Add(m输水嘉定2线出口压力);
|
monitorPointExSignals.Add(m输水嘉定3线出口压力);
|
monitorPointExSignals.Add(m输水嘉定1线瞬时流量);
|
monitorPointExSignals.Add(m输水嘉定2线瞬时流量);
|
monitorPointExSignals.Add(m输水嘉定3线瞬时流量);
|
monitorPointExSignals.Add(m输水嘉定1线累计流量);
|
monitorPointExSignals.Add(m输水嘉定2线累计流量);
|
monitorPointExSignals.Add(m输水嘉定3线累计流量);
|
|
var index = 2;
|
for (int i = 11; i <= 18; i++)
|
{
|
var index2 = 1;
|
var group = BuildGroup($"{i}#机组", belongId, index++);
|
var m运行状态 = BuildMonitorPoint(group, "运行状态", belongId, IStation.SignalType.运行状态, index2++);
|
var m出水压力 = BuildMonitorPoint(group, "出水压力", belongId, IStation.SignalType.压力, index2++, IStation.Flags.出口);
|
if (i != 15 && i != 16)
|
{
|
var m转速 = BuildMonitorPoint(group, "转速", belongId, IStation.SignalType.转速, index2++);
|
monitorPointExSignals.Add(m转速);
|
}
|
var m有功功率 = BuildMonitorPoint(group, "有功功率", belongId, IStation.SignalType.有功功率, index2++);
|
var m有功电度 = BuildMonitorPoint(group, "有功电度", belongId, IStation.SignalType.有功电度, index2++);
|
|
|
monitorPointGroups.Add(group);
|
monitorPointExSignals.Add(m运行状态);
|
monitorPointExSignals.Add(m出水压力);
|
monitorPointExSignals.Add(m有功功率);
|
monitorPointExSignals.Add(m有功电度);
|
|
}
|
}
|
|
if (station陈行二输 != null)
|
{
|
var belongId = station陈行二输.ID;
|
var g泵站 = BuildGroup("泵站", belongId, 1);
|
|
var m2400总管出口压力 = BuildMonitorPoint(g泵站, "2400总管出口压力", belongId, IStation.SignalType.压力, 1, IStation.Flags.出口);
|
var m2700总管出口压力 = BuildMonitorPoint(g泵站, "2700总管出口压力", belongId, IStation.SignalType.压力, 2, IStation.Flags.出口);
|
|
var m2400总管瞬时流量 = BuildMonitorPoint(g泵站, "2400总管瞬时流量", belongId, IStation.SignalType.瞬时流量, 3, IStation.Flags.出口);
|
var m2700总管瞬时流量 = BuildMonitorPoint(g泵站, "2700总管瞬时流量", belongId, IStation.SignalType.瞬时流量, 4, IStation.Flags.出口);
|
|
var m2400总管累计流量 = BuildMonitorPoint(g泵站, "2400总管累计流量", belongId, IStation.SignalType.累积流量, 5);
|
var m2700总管累计流量 = BuildMonitorPoint(g泵站, "2700总管累计流量", belongId, IStation.SignalType.累积流量, 6);
|
|
monitorPointExSignals.Add(m2400总管出口压力);
|
monitorPointExSignals.Add(m2700总管出口压力);
|
monitorPointExSignals.Add(m2400总管瞬时流量);
|
monitorPointExSignals.Add(m2700总管瞬时流量);
|
monitorPointExSignals.Add(m2400总管累计流量);
|
monitorPointExSignals.Add(m2700总管累计流量);
|
|
monitorPointGroups.Add(g泵站);
|
var index = 2;
|
for (int i = 21; i <= 27; i++)
|
{
|
var index2 = 1;
|
var group = BuildGroup($"{i}#机组", belongId, index++);
|
var m泵井液位 = BuildMonitorPoint(group, "泵井液位", belongId, IStation.SignalType.水位, index2++, IStation.Flags.进口);
|
var m运行状态 = BuildMonitorPoint(group, "运行状态", belongId, IStation.SignalType.运行状态, index2++);
|
var m出水压力 = BuildMonitorPoint(group, "出水压力", belongId, IStation.SignalType.压力, index2++, IStation.Flags.出口);
|
var m出水流量 = BuildMonitorPoint(group, "瞬时流量", belongId, IStation.SignalType.瞬时流量, index2++, IStation.Flags.出口);
|
var m累积流量 = BuildMonitorPoint(group, "累积流量", belongId, IStation.SignalType.累积流量, index2++);
|
var m转速 = BuildMonitorPoint(group, "转速", belongId, IStation.SignalType.转速, index2++);
|
var m有功功率 = BuildMonitorPoint(group, "有功功率", belongId, IStation.SignalType.有功功率, index2++);
|
var m有功电度 = BuildMonitorPoint(group, "有功电度", belongId, IStation.SignalType.有功电度, index2++);
|
|
monitorPointGroups.Add(group);
|
monitorPointExSignals.Add(m泵井液位);
|
monitorPointExSignals.Add(m运行状态);
|
monitorPointExSignals.Add(m出水压力);
|
monitorPointExSignals.Add(m出水流量);
|
monitorPointExSignals.Add(m累积流量);
|
monitorPointExSignals.Add(m转速);
|
monitorPointExSignals.Add(m有功功率);
|
monitorPointExSignals.Add(m有功电度);
|
}
|
}
|
|
if (monitorPointGroups.Any())
|
{
|
if (!new BLL.MonitorPointGroup().Covers(monitorPointGroups))
|
{
|
return false;
|
};
|
}
|
|
if (monitorPointExSignals.Any())
|
{
|
if (!new BLL.MonitorPoint().CoverExs(monitorPointExSignals))
|
{
|
return false;
|
};
|
}
|
|
return true;
|
}
|
|
|
private static Model.MonitorPointGroup BuildGroup(string name, long belongId, int sortCode)
|
{
|
var model = new Model.MonitorPointGroup();
|
model.ID = SnowflakeIdHelper.NextId();
|
model.BelongType = IStation.ObjectType.Station;
|
model.BelongID = belongId;
|
model.Name = name;
|
model.SortCode = sortCode;
|
return model;
|
}
|
|
private static Model.MonitorPointExSignal BuildMonitorPoint(Model.MonitorPointGroup group, string name, long belongId, string signalType, int sortCode, string flag = null)
|
{
|
var model = new Model.MonitorPointExSignal();
|
model.MonitorPointID = SnowflakeIdHelper.NextId();
|
model.SignalID = SnowflakeIdHelper.NextId();
|
model.Name = name;
|
|
model.BelongType = IStation.ObjectType.Station;
|
model.BelongID = belongId;
|
model.GroupID = group.ID;
|
model.SourceType = Model.eSourceType.Docking;
|
model.SerialNO = 1;
|
model.SortCode = sortCode;
|
model.Importance = 1;
|
if (flag != null)
|
{
|
model.Flags = new List<string>() { flag };
|
}
|
model.UseStatus = Model.eUseStatus.Enable;
|
model.SignalType = signalType;
|
return model;
|
}
|
|
|
|
}
|
}
|