From e08f18c84c96ca794407f4fcb737b26fa76c0a1f Mon Sep 17 00:00:00 2001 From: tangxu <tangxu76880903> Date: 星期二, 11 六月 2024 09:35:03 +0800 Subject: [PATCH] 改了配置类 --- WebApi/Controllers/ReservoirWaterLevelController.cs | 132 ++++++++++++++++++++++++++++++++++--------- 1 files changed, 103 insertions(+), 29 deletions(-) diff --git a/WebApi/Controllers/ReservoirWaterLevelController.cs b/WebApi/Controllers/ReservoirWaterLevelController.cs index b2bfe59..120ce46 100644 --- a/WebApi/Controllers/ReservoirWaterLevelController.cs +++ b/WebApi/Controllers/ReservoirWaterLevelController.cs @@ -8,8 +8,9 @@ using System.Net.Http; using System.Security.Permissions; using System.Text; +using System.Threading.Tasks; using System.Web; -using System.Web.Http; +using System.Web.Http; namespace IStation.WebApi.Controllers { @@ -19,51 +20,124 @@ [RoutePrefix("ReservoirWaterLevel")] public class ReservoirWaterLevelController : ApiController { - /// <summary> - /// 鑾峰彇瀹炴椂鍊� - /// </summary> + /// 鑾峰彇瀹炴椂鍊� + /// </summary> /// <returns></returns> [Route("GetRealValue")] [HttpGet] - public IStation.Dto.ApiResult GetRealValue() + public IStation.Dto.ApiResult GetRealValue() { - var d = ZyConnectHelper.GetRealReservoirWaterLevel().Result; + var d = ZyConnectHelper.GetRealReservoirWaterLevel(); return new IStation.Dto.ApiResult<double>(d); } /// <summary> - /// 鑾峰彇浠婃棩棰勬祴鍊�(24鐐规椂) - /// </summary> + /// 鑾峰彇鏈�鍚庝竴鏉� + /// </summary> /// <returns></returns> - [Route("GetTodayEndPredictiveValue")] + [Route("GetLastPredictValue")] [HttpGet] - public IStation.Dto.ApiResult GetTodayEndPredictiveValue() + public IStation.Dto.ApiResult GetLastPredictValue() { - var now_value = ZyConnectHelper.GetRealReservoirWaterLevel().Result; - - 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); + //} } } \ No newline at end of file -- Gitblit v1.9.3