| | |
| | | using System; |
| | | using IStation.ChEr.Application; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Net; |
| | |
| | | namespace IStation.Application |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public class ConnectHelper |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public class OutTotalDayList |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public DateTime DateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public List<TotalOneDay> pumpOutWater { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public class TotalOneDay |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public DateTime DateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// |
| | | /// </summary> |
| | | public double Total { get; set; } |
| | | } |
| | | |
| | | |
| | | |
| | | //获取总管天参数(瞬时总计) |
| | | public static List<OutTotalDayList> ReadPumpAllDayOutWater(DateTime StartDay, DateTime EndDay) |
| | | { |
| | | var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "供水参数"); |
| | | // var root_folder = "D:\\IStation\\ChErWebApi\\Data\\供水参数"; |
| | | if (!System.IO.Directory.Exists(root_folder)) |
| | | { |
| | | return null; |
| | | } |
| | | var month_folder = System.IO.Path.Combine(root_folder, "瞬时总计"); |
| | | // day.ToString("yyyy-MM") |
| | | List<OutTotalDayList> outTotalDayLists = new List<OutTotalDayList>(); |
| | | |
| | | for (DateTime date = StartDay; date < EndDay; date = date.AddDays(1)) |
| | | { |
| | | string Path = System.IO.Path.Combine(month_folder, |
| | | string.Format("{0}", date.ToString("yyyy-MM"))); |
| | | string filepath = System.IO.Path.Combine(Path, |
| | | string.Format("{0}.json", date.ToString("yyyy-MM-dd"))); |
| | | if (!File.Exists(filepath)) |
| | | { |
| | | return null; |
| | | } |
| | | string Text = File.ReadAllText(filepath); |
| | | var outwater = Yw.JsonHelper.Json2Object<List<TotalOneDay>>(Text); |
| | | outTotalDayLists.Add(new OutTotalDayList() { pumpOutWater = outwater, DateTime = outwater[0].DateTime }); |
| | | } |
| | | return outTotalDayLists; |
| | | } |
| | | |
| | | |
| | | |
| | | //获取总管天参数(累计总计) |
| | | public static List<OutTotalDayList> ReadPumpAllDayAccOutWater(DateTime StartDay, DateTime EndDay) |
| | | { |
| | | var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "供水参数"); |
| | | //var root_folder = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "供水参数"); |
| | | var root_folder = "C:\\Users\\ZKC\\Desktop\\累计总计"; |
| | | // var root_folder = "D:\\IStation\\ChErWebApi\\Data\\供水参数"; |
| | | if (!System.IO.Directory.Exists(root_folder)) |
| | | { |
| | | return null; |
| | | } |
| | | var month_folder = System.IO.Path.Combine(root_folder, "累计总计"); |
| | | // var month_folder = System.IO.Path.Combine(root_folder, "累计总计"); |
| | | // day.ToString("yyyy-MM") |
| | | List<OutTotalDayList> outTotalDayLists = new List<OutTotalDayList>(); |
| | | if(StartDay<new DateTime(2022, 11, 2)) |
| | | if (StartDay < new DateTime(2022, 11, 2)) |
| | | { |
| | | return null; |
| | | } |
| | | for (DateTime date = StartDay; date < EndDay; date = date.AddDays(1)) |
| | | { |
| | | string Path = System.IO.Path.Combine(month_folder, |
| | | string Path = System.IO.Path.Combine(root_folder, |
| | | string.Format("{0}", date.ToString("yyyy-MM"))); |
| | | string filepath = System.IO.Path.Combine(Path, |
| | | string.Format("{0}.json", date.ToString("yyyy-MM-dd"))); |
| | | if (!File.Exists(filepath)) |
| | | if (!File.Exists(filepath)) |
| | | { |
| | | var reuslt= GetByPumpOneDayWaterData(date, date); |
| | | outTotalDayLists.Add(new OutTotalDayList() { pumpOutWater = reuslt, DateTime = reuslt[0].DateTime }); |
| | | } |
| | | // var reuslt = GetByPumpOneDayWaterData(date, date); |
| | | // outTotalDayLists.Add(new OutTotalDayList() { pumpOutWater = reuslt, DateTime = reuslt[0].DateTime }); |
| | | } |
| | | else |
| | | { |
| | | string Text = File.ReadAllText(filepath); |
| | | var outwater = Yw.JsonHelper.Json2Object<List<TotalOneDay>>(Text); |
| | | outTotalDayLists.Add(new OutTotalDayList() { pumpOutWater = outwater, DateTime = outwater[0].DateTime }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return outTotalDayLists; |
| | | } |
| | | |
| | | |
| | | public List<TotalOneDay> GetMeanValue(List<OutTotalDayList> realHistoryData) |
| | | { |
| | | List<TotalOneDay> listoutwater = new List<TotalOneDay>(); |
| | | List<OutTotalDayList> currentlist = new List<OutTotalDayList>(realHistoryData); // 创建一个新的列表,并将 realHistoryData 的内容复制过来 |
| | | |
| | | for (int i = 0; i < 2; i++) |
| | | { |
| | | var totalSumByTimePoint = currentlist |
| | | .SelectMany(otdl => otdl.pumpOutWater) |
| | | .GroupBy(totalDay => totalDay.DateTime.TimeOfDay) // 按照小时和分钟进行分组 |
| | | .Select(group => |
| | | { |
| | | var time = group.First().DateTime.TimeOfDay; // 从组中获取时间 |
| | | var totalSumForTimePoint = group.Sum(totalDay => totalDay.Total); // 在时间点分组中计算总和 |
| | | return new { Time = time, Total = totalSumForTimePoint }; |
| | | }); |
| | | |
| | | List<TotalOneDay> demo = new List<TotalOneDay>(); |
| | | foreach (var item in totalSumByTimePoint) |
| | | { |
| | | listoutwater.Add(new TotalOneDay() { DateTime = currentlist.Last().DateTime.AddDays(1) + item.Time, Total = Math.Round(item.Total / currentlist.Count, 2) }); |
| | | demo.Add(new TotalOneDay() { DateTime = currentlist.Last().DateTime.AddDays(1) + item.Time, Total = Math.Round(item.Total / currentlist.Count, 2) }); |
| | | } |
| | | |
| | | currentlist.Add(new OutTotalDayList() { DateTime = currentlist.Last().DateTime.AddDays(1), pumpOutWater = demo }); |
| | | currentlist.RemoveAt(0); |
| | | demo = new List<TotalOneDay>(); |
| | | } |
| | | return listoutwater; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | public static List<TotalOneDay> GetByPumpOneDayWaterData(DateTime starttime,DateTime endtime) |
| | | public static SSAData GetByPumpOneDayWaterData(DateTime starttime) |
| | | { |
| | | // string apiServiceUrl = System.Configuration.ConfigurationManager.AppSettings["ApiServiceUrl"]; |
| | | string apiServiceUrl = "http://47.100.245.85:86/"; |
| | | |
| | | string url = string.Format(@"{0}/PumpRun/GetPumpHistoryData?startday={1}&endday={2}", apiServiceUrl,starttime,endtime); |
| | | string url = string.Format(@"{0}/PumpRun/GetPumpHistoryData?startday={1}&endday={2}", apiServiceUrl, starttime, starttime); |
| | | string Accept = "application/json"; |
| | | //创建Web访问对象 |
| | | HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url); |
| | | myRequest.Method = "GET"; |
| | | //myRequest.Accept = "application/json"; |
| | | // myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | // myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded |
| | | myRequest.AutomaticDecompression = DecompressionMethods.GZip; |
| | | myRequest.Accept = Accept; |
| | | //myRequest.ContentType = ContentType; |
| | |
| | | if (string.IsNullOrEmpty(returnData)) |
| | | { |
| | | myResponse.Close(); |
| | | // error = "利用StreamReader就可以从响应内容从头读到尾"; |
| | | // error = "利用StreamReader就可以从响应内容从头读到尾"; |
| | | return null; |
| | | } |
| | | var ret = Yw.JsonHelper.Json2Object<IStation.Dto.ApiResult<List<TotalOneDay>>>(returnData); |
| | | var ret = Yw.JsonHelper.Json2Object<IStation.Dto.ApiResult<List<SSAData>>>(returnData); |
| | | reader.Close(); |
| | | myResponse.Close(); |
| | | // error = null; |
| | | return ret.Data; |
| | | // error = null; |
| | | return ret.Data.Last(); |
| | | } |
| | | } |
| | | } |
| | | } |