From 2be5d90e96f163c67101571f6865b17effcb0f3f Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期三, 12 四月 2023 13:26:55 +0800 Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/IStation/Service.V4.1 --- Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeOutput - 副本.cs | 113 +++++++++ Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController - 副本.cs | 504 ++++++++++++++++++++++++++++++++++++++++++ Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeItemOutput - 副本.cs | 83 ++++++ 3 files changed, 700 insertions(+), 0 deletions(-) diff --git "a/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController - \345\211\257\346\234\254.cs" "b/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController - \345\211\257\346\234\254.cs" new file mode 100644 index 0000000..daf4a3d --- /dev/null +++ "b/Application/IStation.Application.OpenApi/shys/dispatch/DispatchAna_ShysController - \345\211\257\346\234\254.cs" @@ -0,0 +1,504 @@ +锘縰sing Microsoft.AspNetCore.Mvc; +using System.Net; +using System.Net.Http.Headers; +using Microsoft.Extensions.Hosting.Internal; +using Microsoft.AspNetCore.Http.Extensions; +using IStation.Untity; +using Furion.DynamicApiController; +using System.ComponentModel.DataAnnotations; +using Mapster; +using Microsoft.AspNetCore.Authorization; +using SqlSugar; + +namespace IStation.Application +{ + /// <summary> + /// ShysDispatchAna + /// </summary> + [Route("OpenApi/DispatchAna/SHYS")] + [ApiDescriptionSettings("OpenApi", Name = "涓婃捣鍘熸按璋冨害鍒嗘瀽", Order = 1000)] + public class DispatchAna_ShysController : IDynamicApiController + { + /// <summary> + /// 璁$畻淇濇寔鐨勬柟妗� + /// </summary> + [AllowAnonymous] + [NonUnify] + [Route("CalcuKeepDispatch")] + [HttpPost] + public IStation.Application.DispatchAnaSchemeOutput CalcuKeepDispatch([Required] StationDispatchExInput input) + { + if (input == null) + return default; + LogHelper.Debug(JsonHelper.Object2Json(input)); + var url_sg = Settings.WebApi.OpenApi.SanGaoDispatchUrl; + var responseText = HttpRequestHelper.Post(url_sg,JsonHelper.Object2Json(input)); + LogHelper.Debug(responseText); + var result_sg = JsonHelper.Json2Object<DispatchFactoryDto>(responseText); + if (result_sg == null) + return default; + string error_info = null; + switch (input.type) + { + case 1://闀垮叴娉电珯 + { + var result= shys_cxd(input, result_sg,out error_info); + //LogHelper.Debug(JsonHelper.Object2Json(result)); + return result; + } + default:return default; + } + } + + /// <summary> + /// 璁$畻淇濇寔鐨勬柟妗� + /// </summary> + [AllowAnonymous] + [NonUnify] + [Route("CalcuKeepDispatch@Debug")] + [HttpPost] + public DispatchAnaSchemeOutput CalcuKeepDispatchDebug([Required] StationDispatchExInput input) + { + if (input == null) + return default; + + var responseText = System.IO.File.ReadAllText(@"D:\result.txt");//(娴嬭瘯鐢ㄧ殑) + var result_sg = JsonHelper.Json2Object<DispatchFactoryDto>(responseText); + if (result_sg == null) + return default; + + string error_info = null; + switch (input.type) + { + case 1://闀垮叴娉电珯 + { + return shys_cxd(input, result_sg, out error_info); + } + default: return default; + } + } + + /// <summary> + /// 璁$畻闀垮叴淇濇寔鐨勬柟妗� + /// </summary> + [AllowAnonymous] + [NonUnify] + [Route("CalcuCxKeepDispatch@Debug")] + [HttpGet] + public DispatchAnaSchemeOutput CalcuCxKeepDispatchDebug + ( + double waterLevel,//姘翠綅 + double flow1,//绠¢亾1娴侀噺 + double press1,//绠¢亾1鍘嬪姏 + double valveStatus1,//绠¢亾1闃�闂ㄧ姸鎬� + double flow2,//绠¢亾2娴侀噺 + double press2,//绠¢亾2鍘嬪姏 + double valveStatus2,//绠¢亾2闃�闂ㄧ姸鎬� + int middleValveStatus,//涓棿闃�闂ㄧ姸鎬� + int runStatus1,//1#鏈烘车杩愯鐘舵�� + int runStatus2,//2#鏈烘车杩愯鐘舵�� + int runStatus3,//3#鏈烘车杩愯鐘舵�� + int runStatus4//4#鏈烘车杩愯鐘舵�� + ) + { + waterLevel = 2.558; + flow1 = 2573; + flow2 = 0; + press1 = 9.5527 / 102; + press2 = 9.5527 / 102; + valveStatus1 = 1; + valveStatus2 = 0; + middleValveStatus = 1; + runStatus1 = 1; + runStatus2 = 0; + runStatus3 = 0; + runStatus4 = 1; + + var input = new StationDispatchExInput(); + input.flowId = "娴嬭瘯"; + input.type = 1; + input.factory = new List<FactoryDispatchInput>() { new FactoryDispatchInput() { id=1,value=200} }; + + var result_sg = new DispatchFactoryDto(); + result_sg.result = new List<DispatchBranchDto>(); + result_sg.result.Add(new DispatchBranchDto() { key= "stationCX_1#_flow",value= flow1 }); + result_sg.result.Add(new DispatchBranchDto() { key = "stationCX_1#_pressure", value = press1 }); + result_sg.result.Add(new DispatchBranchDto() { key = "stationCX_2#_flow", value = flow2 }); + result_sg.result.Add(new DispatchBranchDto() { key = "stationCX_2#_pressure", value = press2 }); + result_sg.scada = new List<DispatchScadaDto>(); + result_sg.scada.Add(new DispatchScadaDto() {tagname= "_0402010404030103001",value=waterLevel }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403150103003", value = middleValveStatus }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403010101003", value = runStatus1 }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403010201003", value = runStatus2 }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403010301003", value = runStatus3 }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403010401003", value = runStatus4 }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403150101003", value = valveStatus1 }); + result_sg.scada.Add(new DispatchScadaDto() { tagname = "_0402010403150102003", value = valveStatus2 }); + + string error_info = null; + switch (input.type) + { + case 1://闀垮叴娉电珯 + { + return shys_cxd(input, result_sg, out error_info); + } + default: return default; + } + } + + /// <summary> + /// 闀垮叴宀� + /// </summary> + /// <param name="input"></param> + /// <param name="result_sg"></param> + /// <param name="error_info"></param> + /// <returns></returns> + private IStation.Application.DispatchAnaSchemeOutput shys_cxd( + StationDispatchExInput input, + DispatchFactoryDto result_sg, + out string error_info) + { + error_info = null; + + var complex_request_paras = new IStation.Calculation.DispatchAna.Model.RequestParasComplex(); + complex_request_paras.CorpID = 4; + complex_request_paras.StationID = 2; + + //姘翠綅 + var scada_water = result_sg.scada.Find(t => t.tagname == "_0402010404030103001"); + double water_level = 0; + if (scada_water == null) + { + error_info = "姘翠綅鏃犳硶鑾峰彇"; + return null; + } + else + { + water_level = scada_water.value; + } + + complex_request_paras.InletPipePara = new List<IStation.Calculation.DispatchAna.Model.InletPipePara>(); + complex_request_paras.InletPipePara.Add(new IStation.Calculation.DispatchAna.Model.InletPipePara() { + Name = "鍚告按浜曟恫浣�", + Value = water_level }); + + + + //1鍙风涓�2鍙风杩炴帴闃�鐘舵�� 0402010403150103003 + int middleValveStatus = 1; + var scada_middle_vavle = result_sg.scada.Find(t => t.tagname == "_0402010403150103003"); + if (scada_middle_vavle != null) + middleValveStatus = (int)scada_middle_vavle.value; + complex_request_paras.ValvePara = new List<IStation.Calculation.DispatchAna.Model.ValvePara>(); + complex_request_paras.ValvePara.Add(new IStation.Calculation.DispatchAna.Model.ValvePara() { Name = "涓棿闃�闂�", OpenStatus = middleValveStatus }); + + + //鏈烘车 寮�鍋滄満鐘舵�� + List<long> machine_id_array = new List<long> { 19, 22, 25, 28 }; + List<long> machine_run_status = new List<long>(4); + //1鍙锋车寮�鏈虹姸鎬� + var scada_runstatus1 = result_sg.scada.Find(t => t.tagname == "_0402010403010101003"); + if (scada_runstatus1 != null && (int)scada_runstatus1.value == 1) + machine_run_status.Add(machine_id_array[0]); + + //2鍙锋车寮�鏈虹姸鎬� + var scada_runstatus2 = result_sg.scada.Find(t => t.tagname == "_0402010403010201003"); + if (scada_runstatus2 != null && (int)scada_runstatus2.value == 1) + machine_run_status.Add(machine_id_array[1]); + + //3鍙锋车寮�鏈虹姸鎬� + var scada_runstatus3 = result_sg.scada.Find(t => t.tagname == "_0402010403010301003"); + if (scada_runstatus3 != null && (int)scada_runstatus3.value == 1) + machine_run_status.Add(machine_id_array[2]); + + //4鍙锋车寮�鏈虹姸鎬� + var scada_runstatus4 = result_sg.scada.Find(t => t.tagname == "_0402010403010401003"); + if (scada_runstatus4 != null && (int)scada_runstatus4.value == 1) + machine_run_status.Add(machine_id_array[3]); + + if (machine_run_status.Count == 0) + { + error_info = "娌℃湁浠讳綍娉靛紑鍚�.鏃犳硶璁$畻"; + return null; + } + + //1鍙风 + IStation.Calculation.DispatchAna.Model.OutletPipePara pipe1 = new Calculation.DispatchAna.Model.OutletPipePara(); + pipe1.Name = "涓�鍙风"; + var flow1 = result_sg.result.Find(x => x.key == "stationCX_1#_flow"); + if(flow1 == null) + { + error_info = "涓�鍙风娴侀噺鏃犳硶鑾峰彇"; + return null; + } + else + { + pipe1.TargetFlow = flow1.value; + } + var press1 = result_sg.result.Find(x => x.key == "stationCX_1#_pressure"); + if (press1 == null) + { + error_info = "涓�鍙风鍘嬪姏鏃犳硶鑾峰彇"; + return null; + } + else + { + pipe1.TargetPress = press1.value; + } + var pipe1_val = result_sg.scada.Find(t => t.tagname == "_0402010403150101003"); + if (pipe1_val != null) + { + pipe1.ValveStatus = (int)pipe1_val.value; + } + + + + //2鍙风 + IStation.Calculation.DispatchAna.Model.OutletPipePara pipe2 = new Calculation.DispatchAna.Model.OutletPipePara(); + pipe2.Name = "浜屽彿绠�"; + var flow2 = result_sg.result.Find(x => x.key == "stationCX_2#_flow"); + if (flow2 == null) + { + error_info = "浜屽彿绠℃祦閲忔棤娉曡幏鍙�"; + return null; + } + else + { + pipe2.TargetFlow = flow2.value; + } + + var press2 = result_sg.result.Find(x => x.key == "stationCX_2#_pressure"); + if (press2 == null) + { + error_info = "浜屽彿绠″帇鍔涙棤娉曡幏鍙�"; + return null; + } + else + { + pipe2.TargetPress = press2.value; + } + var pipe2_val = result_sg.scada.Find(t => t.tagname == "_0402010403150102003"); + if (pipe2_val != null) + { + pipe2.ValveStatus = (int)pipe2_val.value; + } + + + complex_request_paras.OutletPipePara = new List<IStation.Calculation.DispatchAna.Model.OutletPipePara>(2); + complex_request_paras.OutletPipePara.Add(pipe1); + complex_request_paras.OutletPipePara.Add(pipe2); + + complex_request_paras.SchemeSortType = Calculation.DispatchAna.Model.eAnaSchemeSortType.鍔熺巼; + complex_request_paras.SchemeNumber = 1; + + //鏋勯�犺绠楀櫒 + var calulator = IStation.Calculation.DispatchAnalyCalculatorFactory.CreateKeepStatusCalculator(4, + IStation.ObjectType.Station, 2,null); + calulator.IntialRequest(complex_request_paras, + null, + machine_run_status); + + #region 瀹炴椂閲� + double real_total_flow_pipe1 = 0; + var pipe1_val_flow_real = result_sg.scada.Find(t => t.tagname == "_0402010403030002001"); + if (pipe1_val_flow_real != null && pipe1_val_flow_real.value > 100) + {//瀹炴椂閲�, stationCX_2#_flow" 涓夐珮缁欑殑鐩爣閲� + real_total_flow_pipe1 = pipe1_val_flow_real.value; + } + + double real_oulet_press_pipe1 = 0; + var pipe1_val_press_real = result_sg.scada.Find(t => t.tagname == "_0402010403030002005"); + if (pipe1_val_press_real != null && pipe1_val_press_real.value > 100) + {//瀹炴椂閲�, stationCX_2#_flow" 涓夐珮缁欑殑鐩爣閲� + real_oulet_press_pipe1 = pipe1_val_press_real.value; + } + + + double real_total_flow_pipe2 = 0; + var pipe2_val_flow_real = result_sg.scada.Find(t => t.tagname == "_0402010403030002002"); + if (pipe2_val_flow_real != null && pipe2_val_flow_real.value > 100) + { + real_total_flow_pipe2 = pipe2_val_flow_real.value; + } + + double real_oulet_press_pipe2 = 0; + var pipe2_val_press_real = result_sg.scada.Find(t => t.tagname == "_0402010403030002006"); + if (pipe2_val_press_real != null && pipe2_val_press_real.value > 100) + {//瀹炴椂閲�, stationCX_2#_flow" 涓夐珮缁欑殑鐩爣閲� + real_oulet_press_pipe2 = pipe2_val_press_real.value; + } + + #endregion + + + //鍑烘柟妗� + var scheme = calulator.Calc(out error_info); + if (scheme == null) + return default; + var result = new IStation.Application.DispatchAnaSchemeOutput(); + result.flowId = input.flowId; + result.Q = scheme.TotalWrkQ; + result.H = scheme.TotalWrkH; + result.E = scheme.TotalWrkE; + result.P = scheme.TotalWrkP; + result.WP = scheme.WP; + result.UWP = scheme.UWP; + result.Scheme = new DispatchAnaCurrentOutput(); + result.Scheme.MiddleValveStatus = middleValveStatus; + result.Scheme.Pipes = new List<DispatchAnaCurrentOutput.PipeParaOutput>(); + result.Scheme.Pipes.Add( + new DispatchAnaCurrentOutput.PipeParaOutput() + { + Name = "1#绠�", + TargetFlow = pipe1.TargetFlow, + TargetPressure = pipe1.TargetPress, + CurrentFlow = real_total_flow_pipe1, + CurrentPressure = real_oulet_press_pipe1 + } + ); + result.Scheme.Pipes.Add( + new DispatchAnaCurrentOutput.PipeParaOutput() + { + Name = "2#绠�", + TargetFlow = pipe2.TargetFlow, + TargetPressure = pipe2.TargetPress, + CurrentFlow = real_total_flow_pipe2, + CurrentPressure = real_oulet_press_pipe2 + } + ); + + List<string> machine_frq_hz_target_name = new List<string> { + "_0402010403010112007", + "_0402010403010212019", + "_0402010403010312007", + "_0402010403010412019" }; + + List<string> machine_speed_target_name = new List<string> { + "_0402010403010112008", + "_0402010403010212020", + "_0402010403010312008", + "_0402010403010412020" }; + + List<string> machine_names = new List<string> { + "闀垮叴娉垫埧1鍙锋満娉�", + "闀垮叴娉垫埧2鍙锋満娉�", + "闀垮叴娉垫埧3鍙锋満娉�", + "闀垮叴娉垫埧4鍙锋満娉�" }; + + result.Pumps = new List<IStation.Application.DispatchAnaSchemeItemOutput>(); + foreach (IStation.Calculation.DispatchAna.Model.AnaSchemeItem item in scheme.Items) + { + var pump_item = new IStation.Application.DispatchAnaSchemeItemOutput(); + pump_item.Id = item.MachineID.ToString(); + pump_item.Index = machine_id_array.IndexOf(item.MachineID); + pump_item.Name = item.MachineName; + pump_item.IsFrequency = item.IsFrequency; + pump_item.IsCurveExtend = item.IsCurveExtend; + pump_item.Q = item.WorkPointQ; + pump_item.H = item.WorkPointH; + pump_item.E = item.WorkPointE; + pump_item.P = item.WorkPointP; + pump_item.Frequency = item.Frequence; + pump_item.Speed = item.Speed; + + if (pump_item.Index >= 0 && pump_item.Index < 4) + { + //鑾峰彇瀹炴椂棰戠巼 + var fr_hz_tag_name = machine_frq_hz_target_name[pump_item.Index]; + var current_val_fr_hz = result_sg.scada.Find(t => t.tagname == fr_hz_tag_name); + if (current_val_fr_hz != null && current_val_fr_hz.value > 10) + { + pump_item.CurrentFrequency = current_val_fr_hz.value; + } + + //鑾峰彇瀹炴椂杞�� + var speed_tag_name = machine_speed_target_name[pump_item.Index]; + var current_val_speed = result_sg.scada.Find(t => t.tagname == speed_tag_name); + if (current_val_speed != null && current_val_speed.value > 10) + { + pump_item.CurrentSpeed = current_val_speed.value; + } + + //鏈烘车鍚嶇О + pump_item.Name = machine_names[pump_item.Index]; + } + + + result.Pumps.Add(pump_item); + + + + } + + + + + if (machine_run_status.Count == 1) + {//淇濊瘉寮�涓�鍙版车鏃�, 娴侀噺澶� 棰戠巼涔熷ぇ, 娴侀噺灏� , 棰戠巼涔熷皬 + if(pipe1.TargetFlow + pipe2.TargetFlow > 100) + { + double current_total_flow = 0; + if (pipe1.TargetFlow > 100) + current_total_flow = pipe1.TargetFlow; + else + current_total_flow = pipe2.TargetFlow; + + + var open_pump = result.Pumps.First(); + var fr_hz_tag_name = machine_frq_hz_target_name[open_pump.Index]; + var current_val_fr_hz = result_sg.scada.Find(t => t.tagname == fr_hz_tag_name); + if (current_val_fr_hz != null && current_val_fr_hz.value > 10) + { + if (current_total_flow < scheme.TotalWrkQ && current_val_fr_hz.value > open_pump.Frequency) + {//淇濊瘉瓒嬪娍姝g‘ + open_pump.Frequency = Math.Round(current_val_fr_hz.value * scheme.TotalWrkQ / current_total_flow, 2); + } + else if (current_total_flow > scheme.TotalWrkQ && current_val_fr_hz.value < open_pump.Frequency) + {//淇濊瘉瓒嬪娍姝g‘ + open_pump.Frequency = Math.Round(current_val_fr_hz.value * scheme.TotalWrkQ / current_total_flow, 2); + } + else + {//鍘熸按鍙嶉 , 鐢ㄦ洸绾胯绠�, 棰戠巼鍋忎綆, 浜轰负澧炲姞0.5HZ + if (open_pump.Frequency < 49.5) + { + open_pump.Speed = Math.Round + (open_pump.Speed * (open_pump.Frequency + 0.5) / (open_pump.Frequency),0); + open_pump.Frequency = open_pump.Frequency + 0.5; + } + + if (open_pump.Frequency > 50) + { + open_pump.Frequency = 50; + } + + } + } + } + } + else + { + result.Pumps.ForEach(x => + {//鍘熸按鍙嶉 , 鐢ㄦ洸绾胯绠�, 棰戠巼鍋忎綆, 浜轰负澧炲姞0.5HZ + if (x.Frequency > 10) + { + if (x.Frequency < 49.5) + { + x.Speed = Math.Round + (x.Speed * (x.Frequency + 0.5) / (x.Frequency), 0); + x.Frequency = x.Frequency + 0.5; + } + } + if (x.Frequency > 50) + x.Frequency = 50; + }); + } + + return result; + } + + + + + + } +} \ No newline at end of file diff --git "a/Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeItemOutput - \345\211\257\346\234\254.cs" "b/Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeItemOutput - \345\211\257\346\234\254.cs" new file mode 100644 index 0000000..3ccd1f0 --- /dev/null +++ "b/Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeItemOutput - \345\211\257\346\234\254.cs" @@ -0,0 +1,83 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IStation.Application +{ + /// <summary> + /// 鏈烘车淇℃伅 + /// </summary> + public class DispatchAnaSchemeItemOutput + { + /// <summary> + /// 鏈烘车鏍囪瘑 + /// </summary> + public string Id { get; set; } + + /// <summary> + /// 鏈烘车绱㈠紩 浠�0寮�濮� + /// </summary> + public int Index { get; set; } + + /// <summary> + /// 鏈烘车鍚嶇О + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 鏄惁鍙橀 + /// </summary> + public bool IsFrequency { get; set; } + + /// <summary> + /// 鏄惁鍦ㄦ洸绾垮欢闀跨嚎涓� + /// </summary> + public bool IsCurveExtend { get; set; } + + /// <summary> + /// 娴侀噺 m鲁/h + /// </summary> + public double Q { get; set; } + + /// <summary> + /// 鎵▼ m + /// </summary> + public double H { get; set; } + + /// <summary> + /// 鏁堢巼 鏁堢巼 % + /// </summary> + public double E { get; set; } + + /// <summary> + /// 鍔熺巼 kw + /// </summary> + public double P { get; set; } + + /// <summary> + /// 棰戠巼 hz + /// </summary> + public double Frequency { get; set; } + + /// <summary> + /// 杞�� r/min + /// </summary> + public double Speed { get; set; } + + + /// <summary> + /// 棰戠巼 hz + /// </summary> + public double CurrentFrequency { get; set; } + + /// <summary> + /// 杞�� r/min + /// </summary> + public double CurrentSpeed { get; set; } + + } + + +} diff --git "a/Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeOutput - \345\211\257\346\234\254.cs" "b/Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeOutput - \345\211\257\346\234\254.cs" new file mode 100644 index 0000000..87f21eb --- /dev/null +++ "b/Application/IStation.Application.OpenApi/shys/dispatch/dto/DispatchAnaSchemeOutput - \345\211\257\346\234\254.cs" @@ -0,0 +1,113 @@ +锘縰sing Microsoft.AspNetCore.Components.Forms; +using Org.BouncyCastle.Bcpg.OpenPgp; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IStation.Application +{ + /// <summary> + /// 璋冨害娉电珯缁撴灉 + /// </summary> + public class DispatchAnaSchemeOutput + { + /// <summary> + /// + /// </summary> + public string flowId { get; set; } + + /// <summary> + /// 娴侀噺 m鲁/h + /// </summary> + public double Q { get; set; } + + /// <summary> + /// 鎵▼ m + /// </summary> + public double H { get; set; } + + /// <summary> + /// 鏁堢巼 % + /// </summary> + public double E { get; set; } + + /// <summary> + /// 鍔熺巼 kw + /// </summary> + public double P { get; set; } + + /// <summary> + /// 鍗冨惃姘磋兘鑰� kw/m.m3/h + /// </summary> + public double WP { get; set; } + + /// <summary> + /// 鍗曚綅鑳借�� kw/m3/h + /// </summary> + public double UWP { get; set; } + + /// <summary> + /// 寮�娉典俊鎭� + /// </summary> + public List<DispatchAnaSchemeItemOutput> Pumps { get; set; } + + /// <summary> + /// + /// </summary> + public DispatchAnaCurrentOutput Scheme { get; set; } + + + + } + + /// <summary> + /// + /// </summary> + public class DispatchAnaCurrentOutput + { + /// <summary> + /// + /// </summary> + public List<PipeParaOutput> Pipes { get; set; } + + /// <summary> + /// + /// </summary> + public int MiddleValveStatus { get; set; } + /// <summary> + /// + /// </summary> + public class PipeParaOutput + { + /// <summary> + /// + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 娴侀噺 m鲁/h (涓夐珮缁欑殑鏁版嵁) + /// </summary> + public double TargetFlow { get; set; } + + /// <summary> + /// 鍘嬪姏 MPa (涓夐珮缁欑殑鏁版嵁) + /// </summary> + public double TargetPressure { get; set; } + + /// <summary> + /// 娴侀噺 m鲁/h (瀹炴椂) + /// </summary> + public double CurrentFlow { get; set; } + + /// <summary> + /// 鍘嬪姏 MPa(瀹炴椂) + /// </summary> + public double CurrentPressure { get; set; } + } + + + } + +} -- Gitblit v1.9.3