| | |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Web; |
| | | using System.Web.Http; |
| | | using System.Web.Http; |
| | | |
| | | namespace IStation.WebApi.Controllers |
| | | { |
| | |
| | | [RoutePrefix("ReservoirWaterLevel")] |
| | | public class ReservoirWaterLevelController : ApiController |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 获取实时值 |
| | | /// </summary> |
| | | /// 获取实时值 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Route("GetRealValue")] |
| | | [HttpGet] |
| | | public async Task<IStation.Dto.ApiResult> GetRealValue() |
| | | public IStation.Dto.ApiResult GetRealValue() |
| | | { |
| | | var d = await ZyConnectHelper.GetRealReservoirWaterLevel(); |
| | | var d = ZyConnectHelper.GetRealReservoirWaterLevel(); |
| | | |
| | | return new IStation.Dto.ApiResult<double>(d); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取今日预测值(24点时) |
| | | /// </summary> |
| | | /// 获取最后一条 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Route("GetTodayEndPredictiveValue")] |
| | | [Route("GetLastPredictValue")] |
| | | [HttpGet] |
| | | public async Task<IStation.Dto.ApiResult> GetTodayEndPredictiveValue() |
| | | public IStation.Dto.ApiResult GetLastPredictValue() |
| | | { |
| | | var now_value = await ZyConnectHelper.GetRealReservoirWaterLevel(); |
| | | |
| | | var today_prj = Common.HistoryAnaPrjFileHelper.GetPrj(DateTime.Today); |
| | | |
| | | if(today_prj == null || today_prj.BlockTimes == null || today_prj.PointTimes == null) |
| | | try |
| | | { |
| | | return new IStation.Dto.ApiResult<double>(-100); |
| | | } |
| | | |
| | | var now = DateTime.Now; |
| | | double predictiveValue = now_value; |
| | | |
| | | foreach(var pt in today_prj.PointTimes) |
| | | { |
| | | if (now > pt.Time) |
| | | IStation.DAL.WaterPredictRecord dal = new DAL.WaterPredictRecord(); |
| | | var records = dal.GetLast(1); |
| | | if (records == null || records.Count == 0) |
| | | { |
| | | predictiveValue = now_value + today_prj.PointTimes.Last().WaterLevelH - pt.WaterLevelH; |
| | | return new IStation.Dto.ApiResult<double>(predictiveValue); |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = "数据为空" }; |
| | | } |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = records.Last().PredictValueList }; |
| | | } |
| | | |
| | | |
| | | return new IStation.Dto.ApiResult<double>(now_value); |
| | | catch (Exception ex) |
| | | { |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = ex.Message }; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 获取最后一条 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Route("GetPredictRecordBySingleHour")] |
| | | [HttpGet] |
| | | public IStation.Dto.ApiResult GetPredictRecordBySingleHour(DateTime time) |
| | | { |
| | | try |
| | | { |
| | | IStation.DAL.WaterPredictRecord dal = new DAL.WaterPredictRecord(); |
| | | var records = dal.GetBySingleHour(time); |
| | | if (records == null ) |
| | | { |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = "数据为空" }; |
| | | } |
| | | return new IStation.Dto.ApiResult<IStation.Model.WaterPredictRecord>() { Code = ApiResultCode.Error, Data = records }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = ex.Message }; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取最后一条 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [Route("GetPredictRecordByHourRange")] |
| | | [HttpGet] |
| | | public IStation.Dto.ApiResult GetPredictRecordByHourRange(string start_time, string end_time) |
| | | { |
| | | if (string .IsNullOrEmpty(start_time) || string .IsNullOrEmpty(end_time)) |
| | | { |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = "start_time 或者 end_time 数据为空" }; |
| | | } |
| | | try |
| | | { |
| | | IStation.DAL.WaterPredictRecord dal = new DAL.WaterPredictRecord(); |
| | | var records = dal.GetByHourRangle(DateTime.Parse( start_time), DateTime.Parse(end_time)); |
| | | if (records == null) |
| | | { |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = "数据为空" }; |
| | | } |
| | | return new IStation.Dto.ApiResult<List<IStation.Model.WaterPredictRecord>>() { Code = ApiResultCode.Error, Data = records }; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return new IStation.Dto.ApiResult<string>() { Code = ApiResultCode.Error, Data = ex.Message }; |
| | | } |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// 获取今日预测值(24点时) |
| | | ///// </summary> |
| | | ///// <returns></returns> |
| | | //[Route("GetTodayEndPredictiveValue")] |
| | | //[HttpGet] |
| | | //public async Task<IStation.Dto.ApiResult> GetTodayEndPredictiveValue() |
| | | //{ |
| | | // var now_value = await ZyConnectHelper.GetRealReservoirWaterLevel(); |
| | | // IStation.CalcModel.AnaRequestBase requestBase |
| | | // var today_prj = Common.HistoryAnaPrjFileHelper.GetPrj(DateTime.Today); |
| | | |
| | | // if(today_prj == null || today_prj.BlockTimes == null || today_prj.PointTimes == null) |
| | | // { |
| | | // return new IStation.Dto.ApiResult<double>(-100); |
| | | // } |
| | | |
| | | // var now = DateTime.Now; |
| | | // double predictiveValue = now_value; |
| | | |
| | | // foreach(var pt in today_prj.PointTimes) |
| | | // { |
| | | // if (now > pt.Time) |
| | | // { |
| | | // predictiveValue = now_value + today_prj.PointTimes.Last().WaterLevelH - pt.WaterLevelH; |
| | | // return new IStation.Dto.ApiResult<double>(predictiveValue); |
| | | // } |
| | | // } |
| | | |
| | | // return new IStation.Dto.ApiResult<double>(now_value); |
| | | //} |
| | | } |
| | | } |