Shuxia Ning
2025-02-13 2f1cbec203dcff25df7a5c2b51b13ec558f2c3db
01-api/_Expand/IStation.Test/Program.cs
@@ -2,88 +2,62 @@
using IStation;
using NPOI.HSSF.UserModel;
using NPOI.SS.Formula.Functions;
using NPOI.SS.UserModel;
using Microsoft.IdentityModel.Logging;
using Yw;
//var dt_now = DateTime.Now;
//var dt_next = new DateTime(dt_now.Year, dt_now.Month, dt_now.Day, dt_now.Hour, dt_now.Minute + 1, 0);
//var dt_space = dt_next - dt_now;
//Console.WriteLine($"初始化({dt_space.TotalSeconds})...");
//Thread.Sleep(dt_space);
//IStation.Service.MonitorRecord _service_monitor_record = new();
//IStation.Settings.ParasHelper.DataBase.SQLite.AnalysisConnectString = "DataSource=" + IStation.Settings.ParasHelper.LocalFile.DataFolderDirectory + "\\analysis.db";
IStation.Settings.ParasHelper.DataBase.SQLite.ScheduleConnectString = "DataSource=" + IStation.Settings.ParasHelper.LocalFile.DataFolderDirectory + "\\schedule.db";
//IStation.Settings.ParasHelper.DataBase.SQLite.HydraulicConnectString = "DataSource=" + IStation.Settings.ParasHelper.LocalFile.DataFolderDirectory + "\\hydraulic.db";
//IStation.Settings.ParasHelper.DataBase.SQLite.MonitorConnectString = "DataSource=" + IStation.Settings.ParasHelper.LocalFile.DataFolderDirectory + "\\monitor.db";
IStation.Settings.ParasHelper.Save();
IStation.Service.Station _service_station = new();
IStation.Service.ScheduleConfig _service_schedule_config = new();
//Console.WriteLine("启动实时数据采集...");
//var timer = new System.Timers.Timer();
//timer.Interval = 10 * 1000;
//timer.Elapsed += (s, e) =>
//{
//    dt_now = DateTime.Now;
//    var dt_now_str = dt_now.ToString("G");
//    var get_msg = GlobalHelper.GetMonitorRecordList(dt_now, out List<IStation.Model.MonitorRecord> monitor_record_list, false);
//    if (!string.IsNullOrEmpty(get_msg))
//    {
//        Console.WriteLine($"{dt_now_str}:{get_msg}");
//    }
//    else
//    {
//        var bol = _service_monitor_record.Inserts(monitor_record_list);
//        if (bol)
//        {
//            Console.WriteLine($"{dt_now_str}:采集成功!");
//        }
//        else
//        {
//            Console.WriteLine($"{dt_now_str}:采集失败!");
//        }
//    }
//};
//timer.AutoReset = true;
//timer.Start();
var list = new IStation.Service.ScheduleRequest().GetAll();
Export2Excel(list);
bool Export2Excel(List<IStation.Model.ScheduleRequest> list)
var receipt_time = DateTime.Now;
var log_title = string.Empty;
Console.WriteLine("初始化基础信息文件");
var station_info = _service_station.Get();
var is_monitor_record_debug = true;
Console.WriteLine("实时ZyScada请求");
var get_msg = GlobalHelper.GetMonitorRecordList(receipt_time, out List<IStation.Model.MonitorRecord> monitor_record_list, is_monitor_record_debug);
Console.WriteLine(Yw.JsonHelper.Object2Json(monitor_record_list));
var station1 = station_info.Station1;
var station2 = station_info.Station2;
var station1_schedule_config = _service_schedule_config.GetStation1();
var station2_schedule_config = _service_schedule_config.GetStation2();
var station1_flag_list = GlobalHelper.Station1FlagList;
var station2_flag_list = GlobalHelper.Station2FlagList;
GlobalHelper.GetStationOpenFlagList(monitor_record_list, out List<int> station1_open_flag_list, out List<int> station2_open_flag_list);
GlobalHelper.GetStationFlagStateList(monitor_record_list, out List<int> station1_flag_maintenance_list, out List<int> station2_maintenance_flag_list, out List<int> station1_priority_flag_list, out List<int> station2_priority_flag_list);
GlobalHelper.GetFlagInletWaterLevelDict(monitor_record_list, out Dictionary<int, double> station1_flag_inlet_water_level_dict, out Dictionary<int, double> station2_flag_inlet_water_level_dict);
Console.WriteLine("机泵检修");
if (station1_flag_maintenance_list != null && station1_flag_maintenance_list.Any())
{
    HSSFWorkbook theBook = new HSSFWorkbook();
    var theSheet1 = theBook.CreateSheet("Sheet1");
    IRow rowTile = theSheet1.CreateRow(0);
    rowTile.CreateCell(0).SetCellValue("时间");
    rowTile.CreateCell(1).SetCellValue("目标流量");
    rowTile.CreateCell(2).SetCellValue("目标压力");
    var count = list.Count();
    for (int i = 1; i < count; i++)
    {
        var x = list[i];
        var row = theSheet1.CreateRow(i);
        row.CreateCell(0).SetCellValue(x.ReceptionTime.ToString("G"));
        row.CreateCell(1).SetCellValue(x.TargetFlow2);
        row.CreateCell(2).SetCellValue(x.TargetPressure2);
    }
    var root_folder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "问题排查");
    if (!Directory.Exists(root_folder))
    {
        Directory.CreateDirectory(root_folder);
    }
    var file_name = root_folder + "\\" + $"调度数据.xls";
    theSheet1.ForceFormulaRecalculation = true;
    using (FileStream fs = File.OpenWrite(file_name))
    {
        theBook.Write(fs);
    }
    return true;
    Console.WriteLine($"1输水:{Yw.Untity.IntListHelper.ToString(station1_flag_maintenance_list)}");
    station1_schedule_config.MustCloseFlagList.AddRange(station1_flag_maintenance_list);
}
Console.ReadKey();
if (station2_maintenance_flag_list != null && station2_maintenance_flag_list.Any())
{
    Console.WriteLine($"2输水:{Yw.Untity.IntListHelper.ToString(station2_maintenance_flag_list)}");
    station2_schedule_config.MustCloseFlagList.AddRange(station2_maintenance_flag_list);
}
Console.WriteLine("机泵优先");
if (station1_priority_flag_list != null && station1_priority_flag_list.Any())
{
    Console.WriteLine($"1输水:{Yw.Untity.IntListHelper.ToString(station1_priority_flag_list)}");
    station1_schedule_config.PriorityOpenFlagList.AddRange(station1_priority_flag_list);
}
if (station2_priority_flag_list != null && station2_priority_flag_list.Any())
{
    Console.WriteLine($"2输水:{Yw.Untity.IntListHelper.ToString(station2_priority_flag_list)}");
    station2_schedule_config.PriorityOpenFlagList.AddRange(station2_priority_flag_list);
}
Console.ReadKey();