using IStation.Common; namespace IStation.Application { internal class TempOutHelper { public static DispatchSolutionOutput GetDispatchSolutionOutput(string flowId) { var output = new DispatchSolutionOutput(); output.SolutionId = "temp999"; output.FlowId = flowId; output.Station = new List(); var chss1Pumps = new List { GetPumpDispatchOutput("Pump11", 0, true, 4307.7588, 15.8093, 81.6112, 227.219, 37.6271, 444), GetPumpDispatchOutput("Pump12", 1, true, 4024.6057, 15.742, 81.3045, 212.1781, 36.523, 431), GetPumpDispatchOutput("Pump13", 2, true, 3941.9631, 16.1554, 82.7758, 209.4876, 36.533, 431.1), GetPumpDispatchOutput("Pump17", 6, true, 4130.7578, 15.9835, 82.6751, 217.4493, 36.6102, 432) }; // var chss1totalH = 20.7518; var chss1totalH = chss1Pumps.Average(x => x.H); var chss1totalQ = chss1Pumps.Sum(x => x.Q); var chss1totalP = chss1Pumps.Sum(x => x.P); var chss1totalE = PumpParaHelper.CalculateE(chss1totalQ, chss1totalH, chss1totalP); var chss1 = GetStationDispatchOutput(1, chss1totalQ, chss1totalH, chss1totalE, chss1totalP, chss1Pumps); var chss2Pumps = new List { GetPumpDispatchOutput("Pump22", 1, true, 9589.2422, 15.3166, 75.3, 533.233,33.4343, 331), GetPumpDispatchOutput("Pump23", 2, true, 9423.4463, 15.1016, 72.4, 567.1, 34.4242, 340.8), GetPumpDispatchOutput("Pump25", 4, true, 10226.1523, 15.0448, 72.4, 563.2, 34.3434, 340), GetPumpDispatchOutput("Pump26", 5, true, 10011.1924, 15.1511, 74, 558.6, 33.9394, 336) }; var chss2totalH = chss2Pumps.Average(x => x.H); var chss2totalQ = chss2Pumps.Sum(x => x.Q); var chss2totalP = chss2Pumps.Sum(x => x.P); var chss2totalE = PumpParaHelper.CalculateE(chss2totalQ, chss2totalH, chss2totalP); var chss2 = GetStationDispatchOutput(2, chss2totalQ, chss2totalH, chss2totalE, chss2totalP, chss2Pumps); output.Station.Add(chss1); output.Station.Add(chss2); return output; } private static StationDispatchOutput GetStationDispatchOutput(int index, double q, double h, double e, double p, List pumps) { var model = new StationDispatchOutput(); model.Id = index.ToString(); model.Index = index; model.Q = Math.Round(q, 1); model.H = Math.Round(h, 1); model.E = Math.Round(e, 1); model.P = Math.Round(p, 1); model.WP = Math.Round(Calcu_WP(p, q), 1); model.UWP = Math.Round(Calcu_UWP(p, q, h), 1); model.Pumps = pumps; return model; } private static PumpDispatchOutput GetPumpDispatchOutput(string id, int index, bool isBp, double q, double h, double e, double p, double fre, double speed) { var model = new PumpDispatchOutput(); model.Id = id; model.Index = index; model.Name = id; model.IsBp = isBp; model.Q = Math.Round(q, 1); model.H = Math.Round(h, 1); model.E = Math.Round(e, 1); model.P = Math.Round(p, 1); model.Frequency = Math.Round(fre, 1); model.Speed = Math.Round(speed, 1); return model; } /// /// 单位水耗 千吨水 /// private static double Calcu_UWP(double P, double Q, double H) { if (Q <= 0.001) return 0; if (H <= 0.00001) return 0; if (P <= 0.001) return 0; return P * 1000f / Q / H; } /// /// 单位水耗 千吨水 /// private static double Calcu_UWP(double P, double Q, double inletPress, double outletPress) { double H = (outletPress - inletPress) * 102; if (Q <= 0.001) return 0; if (H <= 0.00001) return 0; if (P <= 0.001) return 0; return P * 1000f / Q / H; } /// /// 单位水耗 /// private static double Calcu_WP(double P, double Q) { if (Q <= 0.001) return 0; if (P <= 0.001) return 0; return P * 1000f / Q; } } }