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;
}
}
}