using System.Collections.Generic;
|
using System.Linq;
|
using System.Windows.Forms;
|
using System.Xml;
|
|
namespace IStation.WinFrmUI.Monitor
|
{
|
/// <summary>
|
/// 常规监测数据导入辅助类
|
/// </summary>
|
public class MonitorDataImportHelper
|
{
|
public static bool Import()
|
{
|
var monitorPoints = new BLL.MonitorPoint().GetAllExSignalExSignalType();
|
if (monitorPoints == null || !monitorPoints.Any())
|
return false;
|
var importMappers = new List<DataSourcesMapper>();
|
foreach (var monitorPoint in monitorPoints)
|
{
|
if (string.IsNullOrEmpty(monitorPoint.TagName))
|
continue;
|
var mapper = new DataSourcesMapper
|
{
|
SysID = monitorPoint.MonitorPointID,
|
SignID = monitorPoint.TagName
|
};
|
|
if (monitorPoint.UnitType == Unit.eUnitType.压力)
|
{
|
if (monitorPoint.Flags != null)
|
{
|
if (monitorPoint.Flags.Contains(IStation.Flags.出口))
|
{
|
mapper.Coefficients = new Coefficients();
|
mapper.Coefficients.A = 0.001; //kpa>map
|
}
|
else
|
{
|
mapper.Coefficients = new Coefficients();
|
mapper.Coefficients.A = 0.00981;//m>map
|
}
|
}
|
}
|
importMappers.Add(mapper);
|
}
|
|
return Import(importMappers);
|
}
|
|
|
/// <summary>
|
/// 导入
|
/// </summary>
|
public static bool Import(List<DataSourcesMapper> mapperList)
|
{
|
if (mapperList == null || mapperList.Count < 1)
|
return false;
|
var monitorPointIds = mapperList.Select(x => x.SysID).Distinct().ToList();
|
var monitorList = new BLL.MonitorPoint().GetExSignalListByIds(monitorPointIds);
|
if (monitorList == null || monitorList.Count < 1)
|
return false;
|
var fileDlg = new OpenFileDialog();
|
fileDlg.Title = "历史数据导入";
|
fileDlg.Filter = "CSV文档|*.csv";
|
fileDlg.Multiselect = true;
|
fileDlg.AutoUpgradeEnabled = true;
|
if (fileDlg.ShowDialog() != DialogResult.OK)
|
{
|
return false;
|
}
|
var fileNames = fileDlg.FileNames?.ToList();
|
if (fileNames == null || fileNames.Count < 1)
|
return false;
|
var dockingList = new List<MonitorDataImportModel>();
|
foreach (var monitor in monitorList)
|
{
|
var mapper = mapperList.Find(x => x.SysID == monitor.ID);
|
var dockingModel = new MonitorDataImportModel();
|
var signal = monitor.SignalList.First();
|
dockingModel.MonitorPointID = monitor.ID;
|
dockingModel.SignalId = signal.ID;
|
dockingModel.TagName = mapper.SignID;
|
dockingModel.Coefficients = mapper.Coefficients;
|
dockingList.Add(dockingModel);
|
}
|
|
var waitDlg = new WaitMonitorDataImportDlg();
|
waitDlg.SetBindingData(dockingList, fileNames);
|
if (waitDlg.ShowDialog() != DialogResult.OK)
|
return false;
|
return true;
|
}
|
|
}
|
}
|