namespace IStation.Service { /// /// /// public class ScheduleConfigHelper { /// /// 生成 /// /// public static Model.ChScheduleConfig Create() { var station = new IStation.Service.Station().Get(); var chConfig = new IStation.Model.ChScheduleConfig(); chConfig.Station1 = GetStation1(station.S1); chConfig.Station2 = GetStation2(station.S2); return chConfig; } private static IStation.Model.ScheduleConfig GetStation1(List pumps) { var model = new IStation.Model.ScheduleConfig(); model.MustOpenFlagList = new List(); model.MustCloseFlagList = new List(); model.ForbiddenFlagCombineList = new List>() { new List(){16,17,18} }; model.AssociativeFlagCombineList = new List>(); model.SameSectionFlagCombineList = new List>() { new List(){11,13,15,17}, new List(){12,14,16,18}, }; model.WaterSupplyLimitList = new List(); model.FrequencyLimitList = new List(); foreach (var pump in pumps) { var flag = pump.Flag; if (flag == 15 || flag == 16) continue; model.FrequencyLimitList.Add(new IStation.Model.FrequencyLimit() { Flag = pump.Flag, Min = 28, Max = 50 }); } return model; } private static IStation.Model.ScheduleConfig GetStation2(List pumps) { var model = new IStation.Model.ScheduleConfig(); model.MustOpenFlagList = new List(); model.MustCloseFlagList = new List() { 21 }; model.ForbiddenFlagCombineList = new List>() { new(){22,24,25}, }; model.AssociativeFlagCombineList = new List>(); model.SameSectionFlagCombineList = new List>() { new(){21,22,23,24}, new(){25,26,27}, }; model.WaterSupplyLimitList = new List(); model.FrequencyLimitList = new List(); foreach (var pump in pumps) { var flag = pump.Flag; if (flag == 27) { model.FrequencyLimitList.Add(new IStation.Model.FrequencyLimit() { Flag = pump.Flag, Min = (450 / pump.Nr * 50), Max = 680 / pump.Nr * 50, }); } else { model.FrequencyLimitList.Add(new IStation.Model.FrequencyLimit() { Flag = pump.Flag, Min = 280 / pump.Nr * 50, Max = 480 / pump.Nr * 50, }); } model.FrequencyLimitList.ForEach(x => { x.Min = Math.Round(x.Min, 1); x.Max = Math.Round(x.Max, 1); }); } return model; } } }