From 6954aa5b4a32aeba903b9532d5ff8e75c1b9548b Mon Sep 17 00:00:00 2001 From: tangxu <tangxu76880903> Date: 星期二, 11 六月 2024 15:03:26 +0800 Subject: [PATCH] 计算调用远程服务 --- WebApi/Controllers/PumpRunController.cs | 66 +++++++++++++++++++++++++++++---- 1 files changed, 58 insertions(+), 8 deletions(-) diff --git a/WebApi/Controllers/PumpRunController.cs b/WebApi/Controllers/PumpRunController.cs index dbe5584..13264f8 100644 --- a/WebApi/Controllers/PumpRunController.cs +++ b/WebApi/Controllers/PumpRunController.cs @@ -5,6 +5,7 @@ using IStation.ZyModel; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Security.Policy; using System.Threading.Tasks; @@ -102,7 +103,7 @@ { var PumpTotalElecty = await ZyConnectHelper.GetPumpTotalElectricity(d, d); //鑾峰彇鏌愭鏃堕棿鐨勭敤鐢甸噺 var PumpState = await ZyConnectHelper.GetPumpOpenStatusBySingleDay(d); //鑾峰彇娉电殑寮�鏈烘儏鍐� - var TotalWater = await ZyConnectHelper.GetTotalWaterByDayTimeRange_In(d, d); //鍙栨按閲� + var TotalWater = await ZyConnectHelper.GetTotalWaterByDayTimeRange_In(d.AddDays(-1), d); //鍙栨按閲� /* PumpHistoryDataFileHelper pumpHistoryDataFileHelper=new PumpHistoryDataFileHelper(); var TotalWater = pumpHistoryDataFileHelper.GetAllWaterData(); @@ -324,7 +325,7 @@ /// <returns></returns> [Route("GetPumpHistoryData")] [HttpGet] - public async Task<IStation.Dto.ApiResult> GetPumpHistoryData(string startday, string endday) + public async Task<IStation.Dto.ApiResult> GetPumpHistoryData(string startday, string endday, string resolution) { if (startday == null || endday == null) { @@ -340,15 +341,22 @@ { return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 鏍煎紡涓嶆纭�" }; } - var TotalWater = await ZyConnectHelper.GetTotalWaterByDayTimeRange_In(Start, d, "3600"); //鍙栨按閲� - // ReadPumpAllDayOutAccWater - // var TotalWater = PumpRunParasHelper.ReadPumpAllDayOutAccWater(d, d.AddDays(1)); + var TotalWater = await ZyConnectHelper.GetTotalWaterByTimeRange_Out(Start, d, resolution); //鍙栨按閲� + /* var one = TotalWater + .SelectMany(otdl => otdl.MonitorRecords); + var two = one.GroupBy(totalDay => totalDay.Time); + var three = two.Select(group => + { + var time = group.First().Time; // 浠庣粍涓幏鍙栨椂闂� + var totalSumForTimePoint = group.Sum(totalDay => totalDay.Value); // 鍦ㄦ椂闂寸偣鍒嗙粍涓绠楁�诲拰 + return new { Time = time, Total = totalSumForTimePoint }; + });*/ var totalSumByTimePoint = TotalWater .SelectMany(otdl => otdl.MonitorRecords) - .GroupBy(totalDay => totalDay.Time.TimeOfDay) // 鎸夌収灏忔椂鍜屽垎閽熻繘琛屽垎缁� + .GroupBy(totalDay => totalDay.Time) // 鎸夌収灏忔椂鍜屽垎閽熻繘琛屽垎缁� .Select(group => { - var time = group.First().Time.TimeOfDay; // 浠庣粍涓幏鍙栨椂闂� + var time = group.First().Time; // 浠庣粍涓幏鍙栨椂闂� var totalSumForTimePoint = group.Sum(totalDay => totalDay.Value); // 鍦ㄦ椂闂寸偣鍒嗙粍涓绠楁�诲拰 return new { Time = time, Total = totalSumForTimePoint }; }); @@ -364,7 +372,49 @@ List<SSAData> totalOneDays = new List<SSAData>(); foreach (var item in totalSumByTimePoint) { - totalOneDays.Add(new SSAData() { DateTime = d + item.Time, Total = (double)item.Total }); + totalOneDays.Add(new SSAData() { DateTime = item.Time, Total = (double)item.Total }); + } + return new IStation.Dto.ApiResult<List<SSAData>>(totalOneDays) { Code = ApiResultCode.Success, Message = "Success" }; + } + + /// <summary> + /// 鑾峰彇渚涙按寮�鏈虹姸鎬� + /// </summary> + /// <param name="startday"></param> 寮�濮嬫棩鏈� + /// <param name="endday"></param> 缁撴潫鏃ユ湡 + /// <returns></returns> + [Route("GetPumpOpenState")] + [HttpGet] + public async Task<IStation.Dto.ApiResult> GetPumpOpenState(string startday, string endday) + { + if (startday == null || endday == null) + { + return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day null" }; + } + DateTime Start; + if (!DateTime.TryParse(startday, out Start)) + { + return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 鏍煎紡涓嶆纭�" }; + } + DateTime d; + if (!DateTime.TryParse(endday, out d)) + { + return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 鏍煎紡涓嶆纭�" }; + } + var result = await ZyConnectHelper.GetPumpOpenStatusDay(Start, d, "1h"); + var totalSumByTimePoint = result + .SelectMany(otdl => otdl.MonitorRecords) + .GroupBy(totalDay => totalDay.Time) // 鎸夌収灏忔椂鍜屽垎閽熻繘琛屽垎缁� + .Select(group => + { + var time = group.First().Time; // 浠庣粍涓幏鍙栨椂闂� + var totalSumForTimePoint = group.Sum(totalDay => totalDay.Value); // 鍦ㄦ椂闂寸偣鍒嗙粍涓绠楁�诲拰 + return new { Time = time, Total = totalSumForTimePoint }; + }); + List<SSAData> totalOneDays = new List<SSAData>(); + foreach (var item in totalSumByTimePoint) + { + totalOneDays.Add(new SSAData() { DateTime = item.Time, Total = (double)item.Total }); } return new IStation.Dto.ApiResult<List<SSAData>>(totalOneDays) { Code = ApiResultCode.Success, Message = "Success" }; } -- Gitblit v1.9.3