| | |
| | | private List<Model.ElecPriceMonthSetting> _elePriceMonthList = null; |
| | | private List<IStation.CalcModel.PumpInfo> _allCalcPumpInfos; |
| | | |
| | | public CalcPrj() { } |
| | | |
| | | public string Calc(IStation.CalcModel.AnaRequest anaRequest, out AnaPrj defaultPrj) |
| | | { |
| | | InitalPumpInfo(); |
| | | InitialElePrice(); |
| | | |
| | | var calcHelper = GetCalcHelper(anaRequest); |
| | | //string error_info = null; |
| | | //var prj = calcHelper.CalcOptPrjs(out error_info); |
| | | |
| | | string error_info; |
| | | var anaPrjs = calcHelper.CalcOptPrjs(out error_info); |
| | | |
| | | if (!string.IsNullOrEmpty(error_info) || anaPrjs == null || anaPrjs.Count() == 0) |
| | | { |
| | | defaultPrj = null; |
| | | return error_info; |
| | | } |
| | | anaPrjs.Sort(new AnaPrj.Comparer(anaRequest.CalcOptType)); |
| | | |
| | | defaultPrj = anaPrjs.First(); |
| | | |
| | | return null; |
| | | } |
| | | /// <summary> |
| | | /// 构建计算辅助类 |
| | | /// </summary> |
| | | /// <param name="isIgnoreOpenLimitAble"></param> |
| | | /// <returns></returns> |
| | | private IStation.Calc.ErQuCalcBaseHelper GetCalcHelper(IStation.CalcModel.AnaRequest _anaRequest) |
| | | { |
| | | |
| | | private IStation.Calc.ErQuCalcBaseHelper GetCalcHelper(IStation.CalcModel.AnaRequest anaRequest) |
| | | { |
| | | IStation.Calc.ErQuCalcBaseHelper calcHelper = IStation.Calc.ErQuCalcBaseHelper.Build(); |
| | | calcHelper.MinOpenPumpMinute = IStation.AnaGlobalParas.Setting.MinOpenTimeMinute; |
| | | calcHelper.MinSwitchPumpMinute = IStation.AnaGlobalParas.Setting.MinSwitchTimeMinute; |
| | |
| | | calcHelper.CalcSpaceMinute = IStation.AnaGlobalParas.Setting.CalcSpaceMinuteQ; |
| | | calcHelper.MaxPumpSwitchCount = IStation.AnaGlobalParas.Setting.MaxPumpSwitchCountQ; |
| | | } |
| | | DateTime rangeStartTime = _anaRequest.Day ; |
| | | DateTime rangeEndTime = _anaRequest.Day.AddDays(1); |
| | | DateTime rangeStartTime = anaRequest.StartTime ; |
| | | DateTime rangeEndTime = anaRequest.EndTime; |
| | | calcHelper.SetPumpInfo(_allCalcPumpInfos); |
| | | calcHelper.SetCalcTimeRange(rangeStartTime, rangeEndTime); |
| | | calcHelper.StartOpenCount = _anaRequest.StartOpenCount;// Convert.ToInt32(imageComboCurrentOpenCount.EditValue); |
| | | calcHelper.StartOpenCount = anaRequest.StartOpenCount;// Convert.ToInt32(imageComboCurrentOpenCount.EditValue); |
| | | |
| | | calcHelper.ElecPrice = _elePriceMonthList; |
| | | |
| | | calcHelper.IsDispDebug = true; |
| | | calcHelper.IsDispDebug = false ; |
| | | calcHelper.OnShowDebugInfo += (info) => |
| | | { |
| | | //if (tabPageDebug.PageVisible) |
| | |
| | | { |
| | | if (limit_times[0].Start == rangeStartTime) |
| | | { |
| | | _anaRequest.StartOpenCount = -1;//不考虑 |
| | | anaRequest.StartOpenCount = -1;//不考虑 |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | calcHelper.SetAnaRequest(_anaRequest); |
| | | calcHelper.SetAnaRequest(anaRequest); |
| | | |
| | | |
| | | |
| | |
| | | /// </summary> |
| | | private void InitalPumpInfo() |
| | | { |
| | | if (_allCalcPumpInfos == null) |
| | | { |
| | | |
| | | var allCurveList = IStation.Common.PumpCurve.GetAll(); |
| | | var allPumpMapList = IStation.Common.PumpCurveMapping.GetAll(); |
| | | var allPumpList = IStation.Common.Product.GetAllPump(); |
| | |
| | | |
| | | _allCalcPumpInfos.Add(calcPumpInfo); |
| | | } |
| | | } |
| | | |
| | | } |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | private void InitialElePrice() |
| | | { |
| | | if (_elePriceMonthList == null) |
| | | { |
| | | |
| | | var allPrices = IStation.Common.ElecPrice.GetAll(); |
| | | _elePriceMonthList = allPrices.First().Settings.MonthList; |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | |