| | |
| | | using IStation.CalcModel; |
| | | using Antlr.Runtime.Tree; |
| | | using IStation.CalcModel; |
| | | using IStation.Common; |
| | | using IStation.Dto; |
| | | using IStation.Model; |
| | |
| | | using System.Linq; |
| | | using System.Net; |
| | | using System.Net.Http; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Security.Permissions; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | |
| | | DateTime end_timme = DateTime.Now; |
| | | if(!DateTime.TryParse(request.StartTime,out start_timme)) |
| | | { |
| | | IStation.LogHelper.Error(string.Format("ZyPrjRequest Time:{0}-{1} StartTime is error format", start_timme, end_timme)); |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "StartTime is error format" }; |
| | | } |
| | | if (!DateTime.TryParse(request.EndTime, out end_timme)) |
| | | { |
| | | IStation.LogHelper.Error(string.Format("ZyPrjRequest Time:{0}-{1} EndTime is error format", start_timme, end_timme)); |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "EndTime is error format" }; |
| | | } |
| | | if(end_timme< start_timme.AddMinutes(60)) |
| | | { |
| | | IStation.LogHelper.Error(string.Format("ZyPrjRequest Time:{0}-{1} 时间范围错误,间隔过短", start_timme, end_timme)); |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "时间范围错误,间隔过短" }; |
| | | } |
| | | if(end_timme > start_timme.AddDays(1)) |
| | | { |
| | | IStation.LogHelper.Error(string.Format("ZyPrjRequest Time:{0}-{1} 时间范围错误,不能超过24小时", start_timme, end_timme)) ; |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "时间范围错误,不能超过24小时" }; |
| | | } |
| | | if (request.TotalFlowIn == null) |
| | |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "注意取水总量单位是吨,当前参数参数过小" }; |
| | | } |
| | | |
| | | |
| | | IStation.LogHelper.Info(string.Format("Zy Prj Time:{0}-{1} ,StartOpenCount:{2}, TotalFlowIn:{3}", |
| | | start_timme, end_timme, request.StartOpenCount, request.TotalFlowIn)); |
| | | |
| | | IStation.CalcModel.AnaRequest anaRequest = new AnaRequest(); |
| | | anaRequest.CalcOptType = eCalcOptType.电费; |
| | | anaRequest.StartTime = start_timme; |
| | |
| | | dto_prj.schemeID = defaultPrj.ID; |
| | | dto_prj.Day = defaultPrj.StartTime.ToString("yyyy-MM-dd"); |
| | | dto_prj.StartTime = defaultPrj.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | dto_prj.EndTime = defaultPrj.StartTime.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | dto_prj.EndTime = defaultPrj.EndTime.ToString("yyyy-MM-dd HH:mm:ss"); |
| | | |
| | | dto_prj.FlowTotal = defaultPrj.SumFlow; |
| | | dto_prj.PowerTotal = defaultPrj.SumPower; |
| | | dto_prj.MoneyTotal = defaultPrj.SumMoney; |
| | | dto_prj.FlowTotal = Math.Round(defaultPrj.SumFlow, 0); |
| | | dto_prj.PowerTotal = Math.Round(defaultPrj.SumPower, 0); |
| | | dto_prj.MoneyTotal = Math.Round(defaultPrj.SumMoney, 0); |
| | | |
| | | dto_prj.Items = new List<ZyDto.SubmitPrjItem>(); |
| | | foreach (var bt in defaultPrj.BlockTimes) |
| | |
| | | dto_item.StartTime = bt.StartTime; |
| | | dto_item.EndTime = bt.EndTime; |
| | | dto_item.OpenPumpCount = bt.OpenPumpCount; |
| | | dto_item.OpenPumpIndexs = CalcPrjHelper.GetOpenPumpIndexs(bt.OpenPumpCount); |
| | | dto_item.OpenPumpIndexs = IStation.AnaGlobalParas.Setting.GetOpenPumpIndexArrays(bt.OpenPumpCount); |
| | | dto_prj.Items.Add(dto_item); |
| | | } |
| | | |
| | |
| | | return new IStation.Dto.ApiResult< IStation.ZyDto.SubmitPrj>(dto_prj) { Code = ApiResultCode.Success }; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Route("GetSetting")] |
| | | [HttpGet] |
| | | public IStation.Dto.ApiResult GetSetting() |
| | | { |
| | | var model_setting = IStation.AnaGlobalParas.Setting; |
| | | IStation.Dto.ZyPrjAnaSetting dto_setting = new ZyPrjAnaSetting(); |
| | | dto_setting.MinOpenTimeMinute = model_setting.MinOpenTimeMinute; |
| | | dto_setting.MinSwitchTimeMinute = model_setting.MinSwitchTimeMinute; |
| | | dto_setting.MaxPumpSwitchCount = model_setting.MaxPumpSwitchCountQ; |
| | | dto_setting.OptSortType = model_setting.OptSortType; |
| | | dto_setting.OpenPumpIndexs = model_setting.OpenPumpIndexs; |
| | | |
| | | if (model_setting.SwitchPumpIgnoreTimes != null) |
| | | { |
| | | dto_setting.SwitchPumpIgnoreTimes = new List<ZyPrjAnaSetting.TimeRangeZy>(); |
| | | foreach(var m in model_setting.SwitchPumpIgnoreTimes) |
| | | { |
| | | dto_setting.SwitchPumpIgnoreTimes.Add(new ZyPrjAnaSetting.TimeRangeZy() |
| | | { |
| | | IsUse = m.IsUse, |
| | | StartHour = m.StartHour, |
| | | StartMinute = m.StartMinute, |
| | | EndHour = m.EndHour, |
| | | EndMinute = m.EndMinute, |
| | | }); |
| | | } |
| | | } |
| | | if (model_setting.OpenPumpTimes != null) |
| | | { |
| | | dto_setting.OpenPumpTimes = new List<ZyPrjAnaSetting.TimeRangeZy>(); |
| | | foreach (var m in model_setting.OpenPumpTimes) |
| | | { |
| | | dto_setting.OpenPumpTimes.Add(new ZyPrjAnaSetting.TimeRangeZy() |
| | | { |
| | | IsUse = m.IsUse, |
| | | StartHour = m.StartHour, |
| | | StartMinute = m.StartMinute, |
| | | EndHour = m.EndHour, |
| | | EndMinute = m.EndMinute, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | return new IStation.Dto.ApiResult<IStation.Dto.ZyPrjAnaSetting>(dto_setting); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="ana"></param> |
| | | /// <returns></returns> |
| | | [Route("SaveSetting")] |
| | | [HttpPost] |
| | | public IStation.Dto.ApiResult SaveSetting([FromBody] IStation.Dto.ZyPrjAnaSetting dto) |
| | | { |
| | | if (dto == null) |
| | | { |
| | | return new IStation.Dto.ApiResult<bool>(false); |
| | | } |
| | | var model_setting = IStation.AnaGlobalParas.Setting; |
| | | |
| | | if (dto.MinOpenTimeMinute < 5) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "最少开泵时间 设置过少" }; |
| | | } |
| | | if (dto.MinOpenTimeMinute > 120) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "最少开泵时间 设置过长" }; |
| | | } |
| | | model_setting.MinOpenTimeMinute = dto.MinOpenTimeMinute; |
| | | |
| | | if (dto.MinSwitchTimeMinute < 5) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "最少切泵时间 设置过少" }; |
| | | } |
| | | if (dto.MinSwitchTimeMinute > 120) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "最少切泵时间 设置过长" }; |
| | | } |
| | | model_setting.MinSwitchTimeMinute = dto.MinSwitchTimeMinute; |
| | | |
| | | |
| | | |
| | | if (dto.MaxPumpSwitchCount < 1) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "最大切泵次数 设置过少" }; |
| | | } |
| | | if (dto.MaxPumpSwitchCount > 10) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "最大切泵次数 设置过长" }; |
| | | } |
| | | model_setting.MaxPumpSwitchCountQ = dto.MaxPumpSwitchCount; |
| | | |
| | | |
| | | |
| | | model_setting.OptSortType = dto.OptSortType; |
| | | if (dto.SwitchPumpIgnoreTimes != null) |
| | | { |
| | | model_setting.SwitchPumpIgnoreTimes = new List<CalcModel.AnaSetting.TimeRange>(); |
| | | foreach (var m in dto.SwitchPumpIgnoreTimes) |
| | | { |
| | | if (m.StartHour < 0 || m.StartHour > 24) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不许切泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.EndHour < 0 || m.EndHour > 24) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不许切泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.StartMinute < 0 || m.StartMinute > 60) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不许切泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.EndMinute < 0 || m.EndMinute > 60) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不许切泵时间 时间范围设置不合理" }; |
| | | } |
| | | if(m.StartHour > m.EndHour) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不许切泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.StartHour == m.EndHour) |
| | | { |
| | | if (m.StartMinute > m.EndMinute) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "不许切泵时间 时间范围设置不合理" }; |
| | | } |
| | | } |
| | | model_setting.SwitchPumpIgnoreTimes.Add(new CalcModel.AnaSetting.TimeRange() |
| | | { |
| | | IsUse = m.IsUse, |
| | | StartHour = m.StartHour, |
| | | StartMinute = m.StartMinute, |
| | | EndHour = m.EndHour, |
| | | EndMinute = m.EndMinute, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |
| | | if (dto.OpenPumpTimes != null) |
| | | { |
| | | model_setting.OpenPumpTimes = new List<CalcModel.AnaSetting.TimeRange>(); |
| | | foreach (var m in dto.OpenPumpTimes) |
| | | { |
| | | if (m.StartHour < 0 || m.StartHour > 24) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "开泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.EndHour < 0 || m.EndHour > 24) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "开泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.StartMinute < 0 || m.StartMinute > 60) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "开泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.EndMinute < 0 || m.EndMinute > 60) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "开泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.StartHour > m.EndHour) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "开泵时间 时间范围设置不合理" }; |
| | | } |
| | | if (m.StartHour == m.EndHour) |
| | | { |
| | | if (m.StartMinute > m.EndMinute) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "开泵时间 时间范围设置不合理" }; |
| | | } |
| | | } |
| | | model_setting.OpenPumpTimes.Add(new CalcModel.AnaSetting.TimeRange() |
| | | { |
| | | IsUse = m.IsUse, |
| | | StartHour = m.StartHour, |
| | | StartMinute = m.StartMinute, |
| | | EndHour = m.EndHour, |
| | | EndMinute = m.EndMinute, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | |
| | | if( dto.OpenPumpIndexs != null && dto.OpenPumpIndexs.Count() == 5) |
| | | { |
| | | List<int> penPumpIndexs = new List<int>(); |
| | | foreach(var ind in dto.OpenPumpIndexs) |
| | | { |
| | | if(ind<0 || ind > 5) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "机泵开泵顺序设置参数不合理" }; |
| | | } |
| | | } |
| | | if(penPumpIndexs.Distinct().Count() != 5) |
| | | { |
| | | return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "机泵开泵顺序设置参数不合理" }; |
| | | } |
| | | model_setting.OpenPumpIndexs = penPumpIndexs.ToArray(); |
| | | } |
| | | return new IStation.Dto.ApiResult<bool>(IStation.Common.AnaSetting.SaveSetting(model_setting)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | Model.eTideSouce _tideSouce = Model.eTideSouce.Book; |
| | | private List<Model.TimeWaterLevel> GetTide3Day(DateTime calc_day ) |
| | | { |