From fd681339c81201ed6fb3303647ecab89e3e6c0c1 Mon Sep 17 00:00:00 2001 From: Shuxia Ning <NingShuxia0927@outlook.com> Date: 星期三, 17 七月 2024 09:50:11 +0800 Subject: [PATCH] 调度逻辑修改,新增笛卡尔积过滤循环 --- IStation.Application/01-ch/02-schedule/Schedule_Controller.cs | 548 +++++++++++++++++++++++++----------------------------- 1 files changed, 250 insertions(+), 298 deletions(-) diff --git a/IStation.Application/01-ch/02-schedule/Schedule_Controller.cs b/IStation.Application/01-ch/02-schedule/Schedule_Controller.cs index d2649b1..d9ebf1d 100644 --- a/IStation.Application/01-ch/02-schedule/Schedule_Controller.cs +++ b/IStation.Application/01-ch/02-schedule/Schedule_Controller.cs @@ -15,8 +15,8 @@ private readonly Service.SchedulePump _service_schedule_pump = new(); private readonly Service.Station _service_station = new(); - private readonly Service.Scada _service_scada = new(); private readonly Service.ScheduleConfig _service_schedule_config = new(); + /// <summary> /// 璁$畻 @@ -33,154 +33,81 @@ log_title = "鍒濆鍖栧熀纭�淇℃伅鏂囦欢"; var station_info = _service_station.Get(); - var scada_info = _service_scada.Get(); - var schedule_config1 = _service_schedule_config.GetStation1(); - var schedule_config2 = _service_schedule_config.GetStation2(); - if (station_info == null || scada_info == null) + if (station_info == null) { Log.Info(request_id, log_title, "鏂囦欢缂哄け!"); return new StationScheduleOutput() { flag = 0, message = "鏂囦欢缂哄け" }; } - var output = new StationScheduleOutput(); - output.InitObjects(station_info.S1Flags, station_info.S2Flags); + log_title = "闇�姘磋姹�"; + Log.Debug(request_id, log_title, JsonHelper.Object2Json(input)); var target_flow1 = input.objects["TotalFlow1"]; var target_pressure1 = input.objects["TotalPressure1"]; var target_flow2 = input.objects["TotalFlow2"]; var target_pressure2 = input.objects["TotalPressure2"]; - - var water_level1 = 0.0; - var water_level2 = 0.0; - var current_open_pump_flags1 = new List<int>(); - var current_open_pump_flags2 = new List<int>(); - var scada_list = new List<Model.ScheduleScada>(); - - log_title = "闇�姘磋姹�"; Log.Info(request_id, log_title, $"target_flow1:{target_flow1},target_pressure1:{target_pressure1},target_flow2:{target_flow2},target_pressure2:{target_pressure2}"); - Log.Debug(request_id, log_title, JsonHelper.Object2Json(input)); - if (Settings.ParasHelper.ZyDocking.Enable) + + var target_head1 = Curve.PumpCalculateHelper.Mpa2M(target_pressure1); + var target_head2 = Curve.PumpCalculateHelper.Mpa2M(target_pressure2); + + var is_zy_scada_debug = false; +#if DEBUG + is_zy_scada_debug = true; +#endif + + log_title = "瀹炴椂ZyScada璇锋眰"; + var get_msg = GlobalHelper.GetRealTimeZyScadaList(out List<Model.ZyScada> zy_scada_list, is_zy_scada_debug); + if (!string.IsNullOrEmpty(get_msg)) { - var url = Settings.ParasHelper.ZyDocking.ScadaHttpUrl; - try - { - log_title = "Scada璇锋眰"; - Log.Info(request_id, log_title, $"{url}"); - var response_text = Yw.Untity.HttpRequestHelper.Get(url); - Log.Debug(request_id, log_title, $"url:{url},responseText:{response_text}"); - var scada_output = JsonHelper.Json2Object<ScadaScheduleInput>(response_text); - if (scada_output.data != null && scada_output.data.Any()) - { - foreach (var scada_dict in scada_output.data) - { - var vals = scada_dict.Value.ElementAt(0).Value; - var time = scada_dict.Value.ElementAt(1).Value; - var key = scada_dict.Value.ElementAt(2).Value; - - var scada = new Model.ScheduleScada(); - scada.RequestID = request_id; - scada.Tag = key; - if (DateTime.TryParse(time, out DateTime t)) - scada.Time = t; - if (double.TryParse(vals, out double v)) - scada.Value = v; - scada_list.Add(scada); - } - - } - else - { - Log.Info(request_id, log_title, "scada鏁版嵁涓虹┖"); - } - } - catch (System.Exception ex) - { - Log.Error(request_id, log_title, "http璇锋眰寮傚父", ex); - } - - if (scada_list.Any()) - { - var water_level_tag_list_1 = scada_info.GetS1WaterLevelTagList(); - var water_level_tag_list_2 = scada_info.GetS2WaterLevelTagList(); - var water_level_valid_value_list1 = new List<double>(); - var water_level_valid_value_list2 = new List<double>(); - - var run_status_tag_dict_1 = scada_info.GetS1RunStatusTagDict(); - var run_status_tag_dict_2 = scada_info.GetS2RunStatusTagDict(); - - foreach (var scada in scada_list) - { - if (!scada.Value.HasValue) - continue; - - var tag = scada.Tag; - var value = scada.Value.Value; - if (water_level_tag_list_1.Contains(tag)) - { - water_level_valid_value_list1.Add(value); - continue; - } - else if (water_level_tag_list_2.Contains(tag)) - { - water_level_valid_value_list2.Add(value); - continue; - } - - if (value != 1) - continue; - if (run_status_tag_dict_1.ContainsKey(tag)) - { - current_open_pump_flags1.Add(run_status_tag_dict_1[tag]); - continue; - } - else if (run_status_tag_dict_2.ContainsKey(tag)) - { - current_open_pump_flags2.Add(run_status_tag_dict_2[tag]); - continue; - } - } - - if (water_level_valid_value_list1.Any()) - water_level1 = water_level_valid_value_list1.Average(x => x); - if (water_level_valid_value_list2.Any()) - water_level2 = water_level_valid_value_list2.Average(x => x); - } + Log.Info(request_id, log_title, get_msg); } + Log.Debug(request_id, log_title, JsonHelper.Object2Json(zy_scada_list)); - log_title = "褰撳墠姘翠綅"; - var target_head1 = Curve.PumpCalculateHelper.Mpa2M(target_pressure1) - water_level1; - var target_head2 = Curve.PumpCalculateHelper.Mpa2M(target_pressure2) - water_level2; - Log.Info(request_id, log_title, $"water_level1:{water_level1},target_head1:{target_head1},water_level2:{water_level2},target_head2:{target_head2}"); + var station1 = station_info.Station1; + var station2 = station_info.Station2; + var station1_same_type_flag_group_first = GlobalHelper.Station1SameTypeFlagGroupFirst; + var station2_same_type_flag_group_first = GlobalHelper.Station2SameTypeFlagGroupFirst; + 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(zy_scada_list, out List<int> station1_open_flag_list, out List<int> station2_open_flag_list); + GlobalHelper.GetFlagInletWaterLevelDict(zy_scada_list, out Dictionary<int, double> station1_flag_inlet_water_level_dict, out Dictionary<int, double> station2_flag_inlet_water_level_dict); var helper = new Algorithm.ScheduleHelper(); - helper.Initial(current_open_pump_flags1, schedule_config1); - var optimal_combine1 = helper.Calc(station_info.S1, station_info.S1FlagsPart1, station_info.S1FlagsPart2, target_flow1, target_head1); + helper.Initial(station1_open_flag_list, station1_schedule_config); + var optimal_combine1 = helper.GetOptAnaCombine(station1, station1_same_type_flag_group_first, station1_flag_inlet_water_level_dict, target_flow1, target_head1); - helper.Initial(current_open_pump_flags2, schedule_config2); - var optimal_combine2 = helper.Calc(station_info.S2, station_info.S2FlagsPart1, station_info.S2FlagsPart2, target_flow2, target_head2); - Model.ScheduleRequest schedule_request = new Model.ScheduleRequest(); - schedule_request = new Model.ScheduleRequest(); - schedule_request.ID = request_id; - schedule_request.TargetFlow1 = target_flow1; - schedule_request.TargetPressure1 = target_pressure1; - schedule_request.TargetFlow2 = target_flow2; - schedule_request.TargetPressure2 = target_pressure2; - schedule_request.WaterLevel1 = water_level1; - schedule_request.WaterLevel2 = water_level2; - schedule_request.ScheduleStatus1 = optimal_combine1 != null; - schedule_request.ScheduleStatus2 = optimal_combine2 != null; - schedule_request.TotalTimeSpent = (DateTime.Now - receipt_time).TotalSeconds; - schedule_request.ReceptionTime = receipt_time; + helper.Initial(station2_open_flag_list, station2_schedule_config); + var optimal_combine2 = helper.GetOptAnaCombine(station2, station2_same_type_flag_group_first, station2_flag_inlet_water_level_dict, target_flow2, target_head2); + + var schedule_request = new Model.ScheduleRequest + { + ID = request_id, + TargetFlow1 = target_flow1, + TargetPressure1 = target_pressure1, + TargetFlow2 = target_flow2, + TargetPressure2 = target_pressure2, + ScheduleStatus1 = optimal_combine1 != null, + ScheduleStatus2 = optimal_combine2 != null, + TotalTimeSpent = (DateTime.Now - receipt_time).TotalSeconds, + ReceptionTime = receipt_time + }; Model.ScheduleConclusion schedule_conclusion1 = null; Model.ScheduleConclusion schedule_conclusion2 = null; List<Model.SchedulePump> schedule_pump_list1 = null; List<Model.SchedulePump> schedule_pump_list2 = null; - var msg = "璁$畻鎴愬姛"; log_title = "璋冨害杩斿洖"; + var msg = "璁$畻缁撴潫!"; + + var output = new StationScheduleOutput(); + output.InitObjects(station1_flag_list, station2_flag_list); if (optimal_combine1 == null && optimal_combine2 == null) { output.flag = 0; @@ -191,200 +118,207 @@ { if (optimal_combine1 != null) { - schedule_conclusion1 = new Model.ScheduleConclusion(); - schedule_conclusion1.ID = Yw.YitIdHelper.NextId(); - schedule_conclusion1.RequestID = request_id; - schedule_conclusion1.Station = IStation.eDockingStation.Ch1s; - schedule_conclusion1.TotalFlow = optimal_combine1.Flow; - schedule_conclusion1.TotalHead = optimal_combine1.Head; - schedule_conclusion1.TotalPower = optimal_combine1.Power; - schedule_conclusion1.TotalEfficiency = optimal_combine1.Efficiency; - schedule_conclusion1.WP = optimal_combine1.WP; - schedule_conclusion1.UWP = optimal_combine1.UWP; - schedule_conclusion1.Flags = IntListHelper.ToString(optimal_combine1.Flags); - schedule_conclusion1.MeritRatio = optimal_combine1.MeritRatio; + optimal_combine1.Round(); + schedule_conclusion1 = new Model.ScheduleConclusion + { + ID = Yw.YitIdHelper.NextId(), + RequestID = request_id, + Station = IStation.eDockingStation.Ch1s, + TotalFlow = optimal_combine1.TotalFlow, + TotalHead = optimal_combine1.TotalHead, + TotalPower = optimal_combine1.TotalPower, + TotalEfficiency = optimal_combine1.TotalEfficiency, + WP = optimal_combine1.WP, + UWP = optimal_combine1.UWP, + Flags = IntListHelper.ToString(optimal_combine1.Flags), + MeritRatio = optimal_combine1.MeritRatio + }; schedule_pump_list1 = new List<Model.SchedulePump>(); - output.objects["1杈撴按鎬绘祦閲�"] = optimal_combine1.Flow; - output.objects["1杈撴按鎬诲帇鍔�"] = Math.Round(Curve.PumpCalculateHelper.M2Mpa(optimal_combine1.Head), 4); - output.objects["1杈撴按鎬诲姛鐜�"] = optimal_combine1.Power; - output.objects["1杈撴按鎬绘晥鐜�"] = optimal_combine1.Efficiency; + output.objects["1杈撴按鎬绘祦閲�"] = optimal_combine1.TotalFlow; + output.objects["1杈撴按鎬诲帇鍔�"] = Math.Round(Curve.PumpCalculateHelper.M2Mpa(optimal_combine1.TotalHead), 4); + output.objects["1杈撴按鎬诲姛鐜�"] = optimal_combine1.TotalPower; + output.objects["1杈撴按鎬绘晥鐜�"] = optimal_combine1.TotalEfficiency; output.objects["1杈撴按鎬诲崈鍚ㄨ兘鑰�"] = optimal_combine1.WP; output.objects["1杈撴按鎬诲崟浣嶈兘鑰�"] = optimal_combine1.UWP; - foreach (var combine in optimal_combine1.Combines) + foreach (var fre_pump in optimal_combine1.AnaFrePumps) { - foreach (var fre_pump in combine.FrePumps) + var flag = fre_pump.Flag; + output.objects[$"1杈撴按{flag}#娴侀噺"] = fre_pump.Flow; + output.objects[$"1杈撴按{flag}#鎵▼"] = fre_pump.Head; + output.objects[$"1杈撴按{flag}#鍔熺巼"] = fre_pump.Power; + output.objects[$"1杈撴按{flag}#鏁堢巼"] = fre_pump.Efficiency; + output.objects[$"1杈撴按{flag}#棰戠巼"] = fre_pump.Frequency; + output.objects[$"1杈撴按{flag}#杞��"] = fre_pump.Speed; + + switch (flag) { - var flag = fre_pump.Flag; - output.objects[$"1杈撴按{flag}#娴侀噺"] = fre_pump.Flow; - output.objects[$"1杈撴按{flag}#鎵▼"] = fre_pump.Head; - output.objects[$"1杈撴按{flag}#鍔熺巼"] = fre_pump.Power; - output.objects[$"1杈撴按{flag}#鏁堢巼"] = fre_pump.Efficiency; - output.objects[$"1杈撴按{flag}#棰戠巼"] = fre_pump.Frequency; - output.objects[$"1杈撴按{flag}#杞��"] = fre_pump.Speed; - - switch (flag) - { - case 11: - { - output.objects["涓�杈撴按娉�11鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; - } - break; - case 12: - { - output.objects["涓�杈撴按娉�12鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; - } - break; - case 13: - { - output.objects["涓�杈撴按娉�13鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; - } - break; - case 14: - { - output.objects["涓�杈撴按娉�14鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; - } - break; - case 15: - { - output.objects["HF闀挎睙鍘熸按鍘侫BPLC.6KV閰嶇數涓�杈撴按.0402010201011501003涓�杈撴按15鍙锋车杩愯"] = 1; - } - break; - case 16: - { - output.objects["HF涓�杈撴按16鍙峰伐棰戞帶鍒跺浘.16#姘存车杩愯"] = 1; - } - break; - case 17: - { - output.objects["涓�杈撴按娉�17鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; - } - break; - case 18: - { - output.objects["涓�杈撴按娉�18鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; - } - break; - default: - break; - } - - var schedule_pump = new Model.SchedulePump(); - schedule_pump.RequestID = request_id; - schedule_pump.Station = IStation.eDockingStation.Ch1s; - schedule_pump.Flag = flag; - schedule_pump.Flow = fre_pump.Flow; - schedule_pump.Head = fre_pump.Head; - schedule_pump.Power = fre_pump.Power; - schedule_pump.Efficiency = fre_pump.Efficiency; - schedule_pump.Frequency = fre_pump.Frequency; - schedule_pump.Speed = fre_pump.Speed; - schedule_pump_list1.Add(schedule_pump); + case 11: + { + output.objects["涓�杈撴按娉�11鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; + } + break; + case 12: + { + output.objects["涓�杈撴按娉�12鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; + } + break; + case 13: + { + output.objects["涓�杈撴按娉�13鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; + } + break; + case 14: + { + output.objects["涓�杈撴按娉�14鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; + } + break; + case 15: + { + output.objects["HF闀挎睙鍘熸按鍘侫BPLC.6KV閰嶇數涓�杈撴按.0402010201011501003涓�杈撴按15鍙锋车杩愯"] = 1; + } + break; + case 16: + { + output.objects["HF涓�杈撴按16鍙峰伐棰戞帶鍒跺浘.16#姘存车杩愯"] = 1; + } + break; + case 17: + { + output.objects["涓�杈撴按娉�17鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; + } + break; + case 18: + { + output.objects["涓�杈撴按娉�18鍙峰彉棰戝崟娉�.鍙橀鍣ㄨ繍琛�"] = 1; + } + break; + default: + break; } + + var schedule_pump = new Model.SchedulePump + { + RequestID = request_id, + Station = IStation.eDockingStation.Ch1s, + Flag = flag, + Flow = fre_pump.Flow, + Head = fre_pump.Head, + Power = fre_pump.Power, + Efficiency = fre_pump.Efficiency, + Frequency = fre_pump.Frequency, + Speed = fre_pump.Speed + }; + schedule_pump_list1.Add(schedule_pump); + } } else { - msg += $"\r\n1杈撴按璋冨害璁$畻澶辫触锛屾棤娉曟弧瓒崇洰鏍囨祦閲�:{target_flow1},鐩爣鍘嬪姏:{target_pressure1}!"; + msg += $" 1杈撴按璋冨害璁$畻澶辫触锛屾棤娉曟弧瓒崇洰鏍囨祦閲�:{target_flow1},鐩爣鍘嬪姏:{target_pressure1}!"; } if (optimal_combine2 != null) { - schedule_conclusion2 = new Model.ScheduleConclusion(); - schedule_conclusion2.ID = Yw.YitIdHelper.NextId(); - schedule_conclusion2.RequestID = request_id; - schedule_conclusion2.Station = IStation.eDockingStation.Ch2s; - schedule_conclusion2.TotalFlow = optimal_combine2.Flow; - schedule_conclusion2.TotalHead = optimal_combine2.Head; - schedule_conclusion2.TotalPower = optimal_combine2.Power; - schedule_conclusion2.TotalEfficiency = optimal_combine2.Efficiency; - schedule_conclusion2.WP = optimal_combine2.WP; - schedule_conclusion2.UWP = optimal_combine2.UWP; - schedule_conclusion2.Flags = IntListHelper.ToString(optimal_combine2.Flags); - schedule_conclusion2.MeritRatio = optimal_combine2.MeritRatio; + optimal_combine2.Round(); + schedule_conclusion2 = new Model.ScheduleConclusion + { + ID = Yw.YitIdHelper.NextId(), + RequestID = request_id, + Station = IStation.eDockingStation.Ch2s, + TotalFlow = optimal_combine2.TotalFlow, + TotalHead = optimal_combine2.TotalHead, + TotalPower = optimal_combine2.TotalPower, + TotalEfficiency = optimal_combine2.TotalEfficiency, + WP = optimal_combine2.WP, + UWP = optimal_combine2.UWP, + Flags = IntListHelper.ToString(optimal_combine2.Flags), + MeritRatio = optimal_combine2.MeritRatio + }; schedule_pump_list2 = new List<Model.SchedulePump>(); - output.objects["2杈撴按鎬绘祦閲�"] = optimal_combine2.Flow; - output.objects["2杈撴按鎬诲帇鍔�"] = Math.Round(Curve.PumpCalculateHelper.M2Mpa(optimal_combine2.Head), 4); - output.objects["2杈撴按鎬诲姛鐜�"] = optimal_combine2.Power; - output.objects["2杈撴按鎬绘晥鐜�"] = optimal_combine2.Efficiency; + output.objects["2杈撴按鎬绘祦閲�"] = optimal_combine2.TotalFlow; + output.objects["2杈撴按鎬诲帇鍔�"] = Math.Round(Curve.PumpCalculateHelper.M2Mpa(optimal_combine2.TotalHead), 4); + output.objects["2杈撴按鎬诲姛鐜�"] = optimal_combine2.TotalPower; + output.objects["2杈撴按鎬绘晥鐜�"] = optimal_combine2.TotalEfficiency; output.objects["2杈撴按鎬诲崈鍚ㄨ兘鑰�"] = optimal_combine2.WP; output.objects["2杈撴按鎬诲崟浣嶈兘鑰�"] = optimal_combine2.UWP; - foreach (var combine in optimal_combine2.Combines) + foreach (var fre_pump in optimal_combine2.AnaFrePumps) { - foreach (var fre_pump in combine.FrePumps) + + var flag = fre_pump.Flag; + output.objects[$"2杈撴按{flag}#娴侀噺"] = fre_pump.Flow; + output.objects[$"2杈撴按{flag}#鎵▼"] = fre_pump.Head; + output.objects[$"2杈撴按{flag}#鍔熺巼"] = fre_pump.Power; + output.objects[$"2杈撴按{flag}#鏁堢巼"] = fre_pump.Efficiency; + output.objects[$"2杈撴按{flag}#棰戠巼"] = fre_pump.Frequency; + output.objects[$"2杈撴按{flag}#杞��"] = fre_pump.Speed; + + switch (flag) { - var flag = fre_pump.Flag; - output.objects[$"2杈撴按{flag}#娴侀噺"] = fre_pump.Flow; - output.objects[$"2杈撴按{flag}#鎵▼"] = fre_pump.Head; - output.objects[$"2杈撴按{flag}#鍔熺巼"] = fre_pump.Power; - output.objects[$"2杈撴按{flag}#鏁堢巼"] = fre_pump.Efficiency; - output.objects[$"2杈撴按{flag}#棰戠巼"] = fre_pump.Frequency; - output.objects[$"2杈撴按{flag}#杞��"] = fre_pump.Speed; - - switch (flag) - { - case 21: - { - output.objects["浜岃緭姘�21鍙锋按娉佃鍥�.娉佃繍琛�"] = 1; - } - break; - case 22: - { - output.objects["浜岃緭姘�22鍙锋按娉佃鍥�.娉佃繍琛�"] = 1; - } - break; - case 23: - { - output.objects["浜岃緭姘�23鍙锋按娉佃蒋鍚姩.杩愯"] = 1; - } - break; - case 24: - { - output.objects["浜岃緭姘�24鍙锋按娉佃蒋鍚姩.杩愯"] = 1; - } - break; - case 25: - { - output.objects["浜岃緭姘�25鍙锋按娉佃蒋鍚姩.杩愯"] = 1; - } - break; - case 26: - { - output.objects["浜岃緭姘�26鍙锋按娉佃蒋鍚姩.杩愯"] = 1; - } - break; - case 27: - { - output.objects["浜岃緭姘�27鍙锋按娉靛彉棰戝櫒.杩愯鐘舵��"] = 1; - } - break; - default: - break; - } - - var schedule_pump = new Model.SchedulePump(); - schedule_pump.RequestID = request_id; - schedule_pump.Station = IStation.eDockingStation.Ch2s; - schedule_pump.Flag = flag; - schedule_pump.Flow = fre_pump.Flow; - schedule_pump.Head = fre_pump.Head; - schedule_pump.Power = fre_pump.Power; - schedule_pump.Efficiency = fre_pump.Efficiency; - schedule_pump.Frequency = fre_pump.Frequency; - schedule_pump.Speed = fre_pump.Speed; - schedule_pump_list2.Add(schedule_pump); + case 21: + { + output.objects["浜岃緭姘�21鍙锋按娉佃鍥�.娉佃繍琛�"] = 1; + } + break; + case 22: + { + output.objects["浜岃緭姘�22鍙锋按娉佃鍥�.娉佃繍琛�"] = 1; + } + break; + case 23: + { + output.objects["浜岃緭姘�23鍙锋按娉佃蒋鍚姩.杩愯"] = 1; + } + break; + case 24: + { + output.objects["浜岃緭姘�24鍙锋按娉佃蒋鍚姩.杩愯"] = 1; + } + break; + case 25: + { + output.objects["浜岃緭姘�25鍙锋按娉佃蒋鍚姩.杩愯"] = 1; + } + break; + case 26: + { + output.objects["浜岃緭姘�26鍙锋按娉佃蒋鍚姩.杩愯"] = 1; + } + break; + case 27: + { + output.objects["浜岃緭姘�27鍙锋按娉靛彉棰戝櫒.杩愯鐘舵��"] = 1; + } + break; + default: + break; } + + var schedule_pump = new Model.SchedulePump + { + RequestID = request_id, + Station = IStation.eDockingStation.Ch2s, + Flag = flag, + Flow = fre_pump.Flow, + Head = fre_pump.Head, + Power = fre_pump.Power, + Efficiency = fre_pump.Efficiency, + Frequency = fre_pump.Frequency, + Speed = fre_pump.Speed + }; + schedule_pump_list2.Add(schedule_pump); } + } else { - msg += $"\r\n2杈撴按璋冨害璁$畻澶辫触锛屾棤娉曟弧瓒崇洰鏍囨祦閲�:{target_flow2},鐩爣鍘嬪姏:{target_pressure2}!"; + msg += $" 2杈撴按璋冨害璁$畻澶辫触锛屾棤娉曟弧瓒崇洰鏍囨祦閲�:{target_flow2},鐩爣鍘嬪姏:{target_pressure2}!"; } - output.flag = 1; } + output.flag = optimal_combine1 != null && optimal_combine2 != null ? 1 : 0; output.ReceiptTime = receipt_time; output.ReturnTime = DateTime.Now; output.message = msg; @@ -401,12 +335,14 @@ Log.Debug(request_id, log_title, JsonHelper.Object2Json(schedule_request)); } - if (schedule_config1 != null) + if (station1_schedule_config != null) { - var schedule_rule1 = new Model.ScheduleRule(); - schedule_rule1.RequestID = request_id; - schedule_rule1.Station = eDockingStation.Ch1s; - schedule_rule1.Config = JsonHelper.Object2Json(schedule_config1); + var schedule_rule1 = new Model.ScheduleRule + { + RequestID = request_id, + Station = eDockingStation.Ch1s, + Config = JsonHelper.Object2Json(station1_schedule_config) + }; bol = _service_schedule_rule.Insert(schedule_rule1) > 0; if (!bol) { @@ -415,12 +351,14 @@ } } - if (schedule_config2 != null) + if (station2_schedule_config != null) { - var schedule_rule2 = new Model.ScheduleRule(); - schedule_rule2.RequestID = request_id; - schedule_rule2.Station = eDockingStation.Ch2s; - schedule_rule2.Config = JsonHelper.Object2Json(schedule_config2); + var schedule_rule2 = new Model.ScheduleRule + { + RequestID = request_id, + Station = eDockingStation.Ch2s, + Config = JsonHelper.Object2Json(station2_schedule_config) + }; bol = _service_schedule_rule.Insert(schedule_rule2) > 0; if (!bol) { @@ -429,8 +367,19 @@ } } - if (scada_list.Any()) + if (zy_scada_list != null && zy_scada_list.Any()) { + var scada_list = zy_scada_list + .OrderBy(x => x.Code) + .Select(x => new Model.ScheduleScada() + { + RequestID = request_id, + Time = x.Time, + Code = x.Code, + Tag = x.Tag, + Value = x.Value, + + }).ToList(); bol = _service_schedule_scada.Inserts(scada_list); if (!bol) { @@ -481,8 +430,11 @@ { Log.Error(request_id, log_title, "鏁版嵁搴撳紓甯�!", ex); } + return output; + } + } } -- Gitblit v1.9.3