From dc97e187c607119bbd2945b9a277db8da15f8dc0 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期三, 27 三月 2024 13:51:36 +0800
Subject: [PATCH] 重新优化接口调取数据

---
 DAL/IStation.DAL.Paras/泵运行参数/PumpHistoryDataFileHelper.cs |  973 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 744 insertions(+), 229 deletions(-)

diff --git "a/DAL/IStation.DAL.Paras/\346\263\265\350\277\220\350\241\214\345\217\202\346\225\260/PumpHistoryDataFileHelper.cs" "b/DAL/IStation.DAL.Paras/\346\263\265\350\277\220\350\241\214\345\217\202\346\225\260/PumpHistoryDataFileHelper.cs"
index c59dda0..9b183b6 100644
--- "a/DAL/IStation.DAL.Paras/\346\263\265\350\277\220\350\241\214\345\217\202\346\225\260/PumpHistoryDataFileHelper.cs"
+++ "b/DAL/IStation.DAL.Paras/\346\263\265\350\277\220\350\241\214\345\217\202\346\225\260/PumpHistoryDataFileHelper.cs"
@@ -1,23 +1,56 @@
-锘縰sing IStation.Model;
+锘縰sing IStation.CalcModel.Tide;
+using IStation.Model;
 using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
+using System.Security.AccessControl;
 using System.Text;
 using System.Threading.Tasks;
+using System.Xml;
 
 namespace IStation.Common
 {
     public class PumpHistoryDataFileHelper
     {
 
-        public class RunParasData 
+        public class RunParasData
         {
-            public DateTime Day { get; set; }
+            /// <summary>
+            /// 鏁版嵁鏃ユ湡
+            /// </summary>
+            public DateTime DateTime { get; set; }
             /// <summary>
             /// 娉佃繍琛岀姸鎬�
             /// </summary>
-            public List<RunParasBlock>   Blocks { get; set; }
+            public List<RunParasBlock> Pump1 { get; set; }
+            public List<RunParasBlock> Pump2 { get; set; }
+            public List<RunParasBlock> Pump3 { get; set; }
+            public List<RunParasBlock> Pump4 { get; set; }
+            public List<RunParasBlock> Pump5 { get; set; }
+            /// <summary>
+            /// 鎬诲彇姘撮噺
+            /// </summary>
+            public double FlowIn { get; set; }
+            /// <summary>
+            /// 鎬荤敤鐢甸噺
+            /// </summary>
+            public double Electric { get; set; }
+            /// <summary>
+            /// 鎬荤數璐�
+            /// </summary>
+            public double Money { get; set; }
+        }
+        public class RunParasBlock
+        {
+            /// <summary>
+            /// 寮�濮嬫椂闂�
+            /// </summary>
+            public DateTime StartTime { get; set; }
+            /// <summary>
+            /// 缁撴潫鏃堕棿
+            /// </summary>
+            public DateTime EndTime { get; set; }
             /// <summary>
             /// 鍙栨按閲�
             /// </summary>
@@ -26,106 +59,533 @@
             /// 鐢ㄧ數閲�
             /// </summary>
             public double Electric { get; set; }
-
             /// <summary>
-            /// 鐢ㄧ數閲�
+            /// 鐢佃垂
             /// </summary>
             public double Money { get; set; }
         }
-        public class RunParasBlock
-        { 
-            public DateTime StartTime { get; set; }
 
-            public DateTime EndTime { get; set; }
 
-            public double FlowIn1 { get; set; }
+        List<ZyModel.RealScadaData> allFlows = null;
+        List<ZyModel.RealScadaData> allEles = null;
 
-            public double FlowIn2 { get; set; }
+        //鍙栨按閲�
+        private double? GetPumpFlowIndexByStartTime(int start_index, int pump_index, DateTime time)
+        {
+            for (int i = 0; i < allFlows[pump_index].MonitorRecords.Count; i++)
+            {
+                var v = allFlows[pump_index].MonitorRecords[i];
+                if (v.Time >= time && v.Value != null)
+                {
+                    return v.Value;
+                }
+            }
 
-            public double FlowIn3 { get; set; }
-
-            public double FlowIn4 { get; set; }
-
-            public double FlowIn5 { get; set; }
-
-            /// <summary>
-            /// 鐢ㄧ數閲�
-            /// </summary>
-            public double Electric1 { get; set; }
-            /// <summary>
-            /// 鐢佃垂
-            /// </summary>
-            public double Money1 { get; set; }
-            /// <summary>
-            /// 鐢ㄧ數閲�
-            /// </summary>
-            public double Electric2 { get; set; }
-            /// <summary>
-            /// 鐢佃垂
-            /// </summary>
-            public double Money2 { get; set; }
-
-            /// <summary>
-            /// 鐢ㄧ數閲�
-            /// </summary>
-            public double Electric3 { get; set; }
-            /// <summary>
-            /// 鐢佃垂
-            /// </summary>
-            public double Money3 { get; set; }
-
-            /// <summary>
-            /// 鐢ㄧ數閲�
-            /// </summary>
-            public double Electric4 { get; set; }
-            /// <summary>
-            /// 鐢佃垂
-            /// </summary>
-            public double Money4 { get; set; }
-
-            /// <summary>
-            /// 鐢ㄧ數閲�
-            /// </summary>
-            public double Electric5 { get; set; }
-            /// <summary>
-            /// 鐢佃垂
-            /// </summary>
-            public double Money5 { get; set; }
+            return -1;
         }
+
+        //鐢佃兘
+        private double? GetPumpEleIndexByStartTime(int start_index, int pump_index, DateTime time)
+        {
+            for (int i = 0; i < allEles[pump_index].MonitorRecords.Count; i++)
+            {
+                var v = allEles[pump_index].MonitorRecords[i];
+                if (v.Time >= time && v.Value != null)
+                {
+                    return v.Value;
+                }
+            }
+
+            return -1;
+        }
+        private double GetByEndTime(int index, DateTime time)
+        {
+            foreach (var v in allFlows[index].MonitorRecords)
+            {
+                if (v.Time >= time && v.Value != null)
+                    return v.Value.Value;
+            }
+
+            return -1;
+        }
+
+
         /// <summary>
         /// 鍒濆鏂规硶鑾峰彇鎵�鏈夋暟鎹�
         /// </summary>
         /// <param name="day"></param>
         /// <returns></returns>
-        public static List<RunParasData> GetHistoryData(DateTime day)
+        public void GetHistoryData()
         {
-            List<double> doublesWater = new List<double>();
-            List<double> doublesEle = new List<double>();
-            var PumpIsOpen = getPumpIsOpen(day);
-            foreach (var item in PumpIsOpen)
+            List<RunParasData> runParasDatasList = new List<RunParasData>();
+
+            DateTime startDay = new DateTime(2022, 11, 1);
+            DateTime endDay = new DateTime(2023, 11, 14);
+
+            allFlows = GetAllWaterData();  //鍙栨按閲�
+            allEles = GetAllEleData();           //鏈夊姛鐢佃兘
+            //var allRunStaus = GetAllRunStatusData();
+            var allRunstatus = getPumpIsOpen();//杩愯鍙傛暟
+            var pumprun1 = allRunstatus.Where(x => x.Item1 == 1).ToList();
+            var pumprun2 = allRunstatus.Where(x => x.Item1 == 2).ToList();
+            var pumprun3 = allRunstatus.Where(x => x.Item1 == 3).ToList();
+            var pumprun4 = allRunstatus.Where(x => x.Item1 == 4).ToList();
+            var pumprun5 = allRunstatus.Where(x => x.Item1 == 5).ToList();
+            List<RunParasBlock> runParasBlockpump1 = new List<RunParasBlock>();
+            List<RunParasBlock> runParasBlockpump2 = new List<RunParasBlock>();
+            List<RunParasBlock> runParasBlockpump3 = new List<RunParasBlock>();
+            List<RunParasBlock> runParasBlockpump4 = new List<RunParasBlock>();
+            List<RunParasBlock> runParasBlockpump5 = new List<RunParasBlock>();
+            RunParasData day_sum = new RunParasData();
+            for (DateTime day = startDay; day <= endDay; day = day.AddDays(1))
             {
-                doublesWater.Add(GetWaterdata(item.Item1, item.Item2));
+                day_sum = new RunParasData();
+                var next_day = day.AddDays(1);
+                day_sum.DateTime = day;
+
+                foreach (var time_block in pumprun1)
+                {
+                    if (time_block.Item2 >= day && time_block.Item3 <= next_day)
+                    {
+                        RunParasBlock block = new RunParasBlock();
+                        block.EndTime = time_block.Item3;
+                        block.StartTime = time_block.Item2;
+                        double? start_flow_in = GetPumpFlowIndexByStartTime(0, 0, time_block.Item2);
+                        double? end_flow = GetPumpFlowIndexByStartTime(0, 0, time_block.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.FlowIn = (double)(end_flow - start_flow_in);  //鍙栨按閲�
+                        }
+                        double? start_ELe = GetPumpEleIndexByStartTime(0, 0, time_block.Item2);
+                        double? end_Ele = GetPumpEleIndexByStartTime(0, 0, time_block.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.Electric = (double)(end_Ele - start_ELe);  //鐢ㄧ數閲�
+                        }
+                        block.Money = GetMoney(time_block.Item2, time_block.Item3, 0);
+                        if (time_block.Item1 == 1)
+                        {
+                            runParasBlockpump1.Add(block);
+                        }
+                        if (time_block.Item1 == 2)
+                        {
+                            runParasBlockpump2.Add(block);
+                        }
+                        if (time_block.Item1 == 3)
+                        {
+                            runParasBlockpump3.Add(block);
+                        }
+                        if (time_block.Item1 == 4)
+                        {
+                            runParasBlockpump4.Add(block);
+                        }
+                        if (time_block.Item1 == 5)
+                        {
+                            runParasBlockpump5.Add(block);
+                        }
+                    }
+                }
+                foreach (var item in pumprun2)
+                {
+                    if (item.Item2 >= day && item.Item3 <= next_day)
+                    {
+                        RunParasBlock block = new RunParasBlock();
+                        block.EndTime = item.Item3;
+                        block.StartTime = item.Item2;
+                        double? start_flow_in = GetPumpFlowIndexByStartTime(1, 1, item.Item2);
+                        double? end_flow = GetPumpFlowIndexByStartTime(1, 1, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.FlowIn = (double)(end_flow - start_flow_in);  //鍙栨按閲�
+                        }
+                        double? start_ELe = GetPumpEleIndexByStartTime(1, 1, item.Item2);
+                        double? end_Ele = GetPumpEleIndexByStartTime(1, 1, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.Electric = (double)(end_Ele - start_ELe);  //鐢ㄧ數閲�
+                        }
+                        block.Money = GetMoney(item.Item2, item.Item3, 1);
+                        if (item.Item1 == 1)
+                        {
+                            runParasBlockpump1.Add(block);
+                        }
+                        if (item.Item1 == 2)
+                        {
+                            runParasBlockpump2.Add(block);
+                        }
+                        if (item.Item1 == 3)
+                        {
+                            runParasBlockpump3.Add(block);
+                        }
+                        if (item.Item1 == 4)
+                        {
+                            runParasBlockpump4.Add(block);
+                        }
+                        if (item.Item1 == 5)
+                        {
+                            runParasBlockpump5.Add(block);
+                        }
+                    }
+                }
+                foreach (var item in pumprun3)
+                {
+                    if (item.Item2 >= day && item.Item3 <= next_day)
+                    {
+                        RunParasBlock block = new RunParasBlock();
+                        block.EndTime = item.Item3;
+                        block.StartTime = item.Item2;
+                        double? start_flow_in = GetPumpFlowIndexByStartTime(2, 2, item.Item2);
+                        double? end_flow = GetPumpFlowIndexByStartTime(2, 2, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.FlowIn = (double)(end_flow - start_flow_in);  //鍙栨按閲�
+                        }
+                        double? start_ELe = GetPumpEleIndexByStartTime(2, 2, item.Item2);
+                        double? end_Ele = GetPumpEleIndexByStartTime(2, 2, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.Electric = (double)(end_Ele - start_ELe);  //鐢ㄧ數閲�
+                        }
+                        block.Money = GetMoney(item.Item2, item.Item3, 2);
+                        if (item.Item1 == 1)
+                        {
+                            runParasBlockpump1.Add(block);
+                        }
+                        if (item.Item1 == 2)
+                        {
+                            runParasBlockpump2.Add(block);
+                        }
+                        if (item.Item1 == 3)
+                        {
+                            runParasBlockpump3.Add(block);
+                        }
+                        if (item.Item1 == 4)
+                        {
+                            runParasBlockpump4.Add(block);
+                        }
+                        if (item.Item1 == 5)
+                        {
+                            runParasBlockpump5.Add(block);
+                        }
+                    }
+                }
+                foreach (var item in pumprun4)
+                {
+                    if (item.Item2 >= day && item.Item3 <= next_day)
+                    {
+                        RunParasBlock block = new RunParasBlock();
+                        block.EndTime = item.Item3;
+                        block.StartTime = item.Item2;
+                        double? start_flow_in = GetPumpFlowIndexByStartTime(3, 3, item.Item2);
+                        double? end_flow = GetPumpFlowIndexByStartTime(3, 3, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.FlowIn = (double)(end_flow - start_flow_in);  //鍙栨按閲�
+                        }
+                        double? start_ELe = GetPumpEleIndexByStartTime(3, 3, item.Item2);
+                        double? end_Ele = GetPumpEleIndexByStartTime(3, 3, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.Electric = (double)(end_Ele - start_ELe);  //鐢ㄧ數閲�
+                        }
+                        block.Money = GetMoney(item.Item2, item.Item3, 3);
+
+                        if (item.Item1 == 1)
+                        {
+                            runParasBlockpump1.Add(block);
+                        }
+                        if (item.Item1 == 2)
+                        {
+                            runParasBlockpump2.Add(block);
+                        }
+                        if (item.Item1 == 3)
+                        {
+                            runParasBlockpump3.Add(block);
+                        }
+                        if (item.Item1 == 4)
+                        {
+                            runParasBlockpump4.Add(block);
+                        }
+                        if (item.Item1 == 5)
+                        {
+                            runParasBlockpump5.Add(block);
+                        }
+                    }
+                }
+                foreach (var item in pumprun5)
+                {
+                    if (item.Item2 >= day && item.Item3 <= next_day)
+                    {
+                        RunParasBlock block = new RunParasBlock();
+                        block.EndTime = item.Item3;
+                        block.StartTime = item.Item2;
+                        double? start_flow_in = GetPumpFlowIndexByStartTime(4, 4, item.Item2);
+                        double? end_flow = GetPumpFlowIndexByStartTime(4, 4, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.FlowIn = (double)(end_flow - start_flow_in);  //鍙栨按閲�
+                        }
+                        double? start_ELe = GetPumpEleIndexByStartTime(4, 4, item.Item2);
+                        double? end_Ele = GetPumpEleIndexByStartTime(4, 4, item.Item3);
+                        if (end_flow >= 0 && start_flow_in >= 0 && start_flow_in < end_flow)
+                        {
+                            block.Electric = (double)(end_Ele - start_ELe);  //鐢ㄧ數閲�
+                        }
+                        block.Money = GetMoney(item.Item2, item.Item3, 4);
+
+                        if (item.Item1 == 1)
+                        {
+                            runParasBlockpump1.Add(block);
+                        }
+                        if (item.Item1 == 2)
+                        {
+                            runParasBlockpump2.Add(block);
+                        }
+                        if (item.Item1 == 3)
+                        {
+                            runParasBlockpump3.Add(block);
+                        }
+                        if (item.Item1 == 4)
+                        {
+                            runParasBlockpump4.Add(block);
+                        }
+                        if (item.Item1 == 5)
+                        {
+                            runParasBlockpump5.Add(block);
+                        }
+                    }
+                }
+                day_sum.Pump1 = runParasBlockpump1;
+                day_sum.Pump2 = runParasBlockpump2;
+                day_sum.Pump3 = runParasBlockpump3;
+                day_sum.Pump4 = runParasBlockpump4;
+                day_sum.Pump5 = runParasBlockpump5;
+                foreach (var item in runParasBlockpump1)
+                {
+                    day_sum.Electric += item.Electric;
+                    day_sum.FlowIn += item.FlowIn;
+                    day_sum.Money += item.Money;
+                }
+                foreach (var item in runParasBlockpump2)
+                {
+                    day_sum.Electric += item.Electric;
+                    day_sum.FlowIn += item.FlowIn;
+                    day_sum.Money += item.Money;
+                }
+                foreach (var item in runParasBlockpump3)
+                {
+                    day_sum.Electric += item.Electric;
+                    day_sum.FlowIn += item.FlowIn;
+                    day_sum.Money += item.Money;
+                }
+                foreach (var item in runParasBlockpump4)
+                {
+                    day_sum.Electric += item.Electric;
+                    day_sum.FlowIn += item.FlowIn;
+                    day_sum.Money += item.Money;
+                }
+                foreach (var item in runParasBlockpump5)
+                {
+                    day_sum.Electric += item.Electric;
+                    day_sum.FlowIn += item.FlowIn;
+                    day_sum.Money += item.Money;
+                }
+                runParasDatasList.Add(day_sum);
+                var json = JsonHelper.Object2Json(runParasDatasList);
+
+
+                runParasBlockpump1 = new List<RunParasBlock>();
+                runParasBlockpump2 = new List<RunParasBlock>();
+                runParasBlockpump3 = new List<RunParasBlock>();
+                runParasBlockpump4 = new List<RunParasBlock>();
+                runParasBlockpump5 = new List<RunParasBlock>();
             }
-            foreach (var item in PumpIsOpen)
+            DateTime date = new DateTime(2022, 11, 1);
+            DateTime currenttime = new DateTime(2022, 11, 1);
+
+            //  int daysInMonth = DateTime.DaysInMonth(date.Year, date.Month);
+            //  var path = "C:\\Users\\ZKC\\Desktop\\鏂板缓鏂囦欢澶� (2)";
+            int processedDays = 0;
+            for (int k = 0; k < 30; k++)
             {
-                doublesEle.Add(GetElectrityData(item.Item1, item.Item2));
+                int daysInMonth = DateTime.DaysInMonth(date.Year, date.Month); // 鑾峰彇褰撳墠鏈堜唤鐨勫ぉ鏁�
+                 var path22 = $"C:\\Users\\ZKC\\Desktop\\鏂板缓鏂囦欢澶� (2)\\{date.ToString("yyyy-MM")}";
+                var filepath = Directory.CreateDirectory(path22);
+                 int i = 0;
+             
+                foreach (var item in runParasDatasList.Skip(processedDays)) // 璺宠繃宸插鐞嗙殑澶╂暟
+                {
+                    string jsonpath = string.Concat(path22, $"\\{currenttime.ToString("dd")}");
+                    string json = JsonHelper.Object2Json(item);
+                    File.WriteAllText($"{jsonpath}.json", json);
+                    currenttime = currenttime.AddDays(1);
+                    i++;
+                    if (i == daysInMonth)
+                        break;
+                }
+
+                processedDays += i; // 鏇存柊宸插鐞嗙殑澶╂暟
+                date = date.AddMonths(1); // 鏇存柊鏃ユ湡鍒颁笅涓�涓湀浠�
+                currenttime = date; // 閲嶇疆 currenttime 涓烘柊鏈堜唤鐨勭涓�
             }
-            List<RunParasData> runParasDatas = new List<RunParasData>();
-            runParasDatas.Add(new RunParasData
-            {
-                /*TimeRunParas = PumpIsOpen,
-                Water = doublesWater,
-                Electric = doublesEle*/
-            });
-            return runParasDatas;
+
         }
+
+
+
+
+
+        /*
+                /// <summary>
+                ///鍙栨按閲�
+                /// </summary>
+                /// <returns></returns>
+                public   List<ZyModel.StatusScadaData> GetWater()
+                {
+                    var tagDict = new List<string>
+                    {
+                           "_0402010204012101001",//"浜屽彇姘�1鍙锋车绱娴侀噺" },
+                           "_0402010204012203002",//"浜屽彇姘�2鍙锋车绱娴侀噺" },
+                           "_0402010204012303002",// "浜屽彇姘�3鍙锋车绱娴侀噺" },
+                           "_0402010204012403002", //"浜屽彇姘�4鍙锋车绱娴侀噺" },
+                           "_0402010204012503002", //"浜屽彇姘�5鍙锋车绱娴侀噺" },
+                    };
+
+                    ZyModel.StatusScadaData pump1 = new ZyModel.StatusScadaData();
+                    pump1.TagName = tagDict[0];
+                    pump1.MonitorRecords = new List<ZyModel.RunStatusRecord>();
+                    ZyModel.StatusScadaData pump2 = new ZyModel.StatusScadaData();
+                    ZyModel.StatusScadaData pump3 = new ZyModel.StatusScadaData();
+                    ZyModel.StatusScadaData pump4 = new ZyModel.StatusScadaData();
+                    ZyModel.StatusScadaData pump5 = new ZyModel.StatusScadaData();
+                     string path = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(),
+                      "PumpRunParas", "浜屽彇姘存満娉靛紑鍋滅姸鎬�.csv");
+                    if (!File.Exists(path))
+                        return null;
+                    int totalLines = File.ReadLines(path, Encoding.GetEncoding("gb2312")).Count();//鎬昏鏁�
+                    System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open);
+                    System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding("gb2312"));
+                    string tempText;
+                     int last_status1 = 0;
+                    for (int i = 0; i < totalLines - 1; i++)
+                    {
+                        tempText = sr.ReadLine();
+                        string[] arr = tempText.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
+                         var row = new ZyModel.MonitorRecord
+                        {
+                            Time = Convert.ToDateTime(arr[0]),
+                            Value = Convert.ToDouble(arr[2])
+                        };
+                     }
+                    fs.Close();
+                     //   return new List<ZyModel.RealScadaData>() { pump1, pump2, pump3, pump4, pump5 };
+                    return null;
+                }*/
+
+
+        /*        /// <summary>
+                /// 鑾峰彇鐢佃垂浠锋牸
+                /// </summary>
+                private double getEleMoney(List<RunParasBlock> runParasBlocks)
+                {
+                    double totalPrice=0;
+                    foreach (var item in runParasBlocks)
+                    {
+                        totalPrice+=GetMoney(item.StartTime, item.EndTime);
+                    }
+                    return totalPrice;
+                }*/
+
+        //鑾峰彇鐢佃垂
+        private double GetMoney(DateTime str, DateTime end, int sort)
+        {
+            var list = IStation.Common.ElecPrice.GetAll();
+            double Price = 0;
+            var month = str.Month;
+            var Starthour = str.Hour;
+            var Endhour = end.Hour;
+            foreach (var item in list[0].Settings.MonthList)
+            {
+                if (month >= item.StartMonth && month <= item.EndMonth)
+                {
+                    foreach (var Hour in item.HourList)
+                    {
+                        if (Starthour == Endhour) continue;
+                        // Check if the hour range overlaps with the given start and end hours
+                        if ((Starthour >= Hour.StartHour && Starthour <= Hour.EndHour) ||
+                          (Endhour >= Hour.StartHour && Endhour <= Hour.EndHour) ||
+                          (Starthour < Hour.StartHour && Endhour > Hour.EndHour)) // If the range spans across multiple hours
+                        {
+                            // Calculate the amount based on the portion of hours covered
+                            double? start_flow_in = GetPumpFlowIndexByStartTime(sort, sort, new DateTime(str.Year, str.Month, str.Day, Starthour, 0, 0));
+                            double? end_flow = GetPumpFlowIndexByStartTime(sort, sort, new DateTime(str.Year, str.Month, str.Day, Endhour, 0, 0));
+                            double amount = 0;
+                            if (Starthour >= Hour.StartHour && Endhour <= Hour.EndHour) // If start and end hours are within this hour range
+                            {
+                                amount = (double)(end_flow - start_flow_in);
+                                Price += Hour.Price * amount; // Accumulate price
+                                Starthour = Endhour; // Update StartHour to EndHour for next iteration
+                            }
+                            else if (Starthour < Hour.StartHour && Endhour <= Hour.EndHour) // If the range starts before this hour range
+                            {
+                                double? next_flow = GetPumpFlowIndexByStartTime(sort, sort, new DateTime(str.Year, str.Month, str.Day, Hour.StartHour, 0, 0));
+                                amount = (double)(next_flow - start_flow_in);
+                                Price += Hour.Price * amount; // Accumulate price
+                                Starthour = Hour.StartHour; // Update StartHour to Hour.StartHour for next iteration
+                            }
+                            else if (Starthour >= Hour.StartHour && Endhour > Hour.EndHour && Starthour < Hour.EndHour) // If the range ends after this hour range
+                            {
+                                double? prev_flow = GetPumpFlowIndexByStartTime(sort, sort, new DateTime(str.Year, str.Month, str.Day, Hour.EndHour, 0, 0));
+                                amount = (double)(prev_flow - start_flow_in);
+                                Price += Hour.Price * amount; // Accumulate price
+                                Starthour = Hour.EndHour; // Update StartHour to Hour.EndHour for next iteration
+                            }
+                            else // If the range spans across this hour range
+                            {
+                                double? next_flow = GetPumpFlowIndexByStartTime(sort, sort, new DateTime(str.Year, str.Month, str.Day, Hour.StartHour, 0, 0));
+                                double? prev_flow = GetPumpFlowIndexByStartTime(sort, sort, new DateTime(str.Year, str.Month, str.Day, Hour.EndHour, 0, 0));
+                                amount = (double)(next_flow - prev_flow);
+                                Price += Hour.Price * amount; // Accumulate price
+                                Starthour = Hour.EndHour; // Update StartHour to Hour.EndHour for next iteration
+                            }
+                        }
+
+                    }
+                }
+            };
+            return Price;
+        }
+
 
         /// <summary>
         /// 鑾峰彇鎬诲彇姘撮噺
         /// </summary>
         /// <returns></returns>
-        public static List<Model.PumpWater> GetWaterData()
+        public List<ZyModel.RealScadaData> GetAllWaterData()
         {
+            var tagDict = new List<string>
+            {
+                   "浜屽彇姘�1鍙蜂富姘存车.鏃ョ疮璁�",//"浜屽彇姘�1鍙锋车绱娴侀噺" },
+                   "浜屽彇姘�2鍙蜂富姘存车.鏃ョ疮璁�",//"浜屽彇姘�2鍙锋车绱娴侀噺" },
+                   "浜屽彇姘�3鍙蜂富姘存车.鏃ョ疮璁�",// "浜屽彇姘�3鍙锋车绱娴侀噺" },
+                   "浜屽彇姘�4鍙蜂富姘存车.鏃ョ疮璁�", //"浜屽彇姘�4鍙锋车绱娴侀噺" },
+                   "浜屽彇姘�5鍙蜂富姘存车.鏃ョ疮璁�", //"浜屽彇姘�5鍙锋车绱娴侀噺" },
+            };
+            ZyModel.RealScadaData pump1 = new ZyModel.RealScadaData();
+            pump1.TagName = tagDict[0];
+            pump1.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump2 = new ZyModel.RealScadaData();
+            pump2.TagName = tagDict[1];
+            pump2.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump3 = new ZyModel.RealScadaData();
+            pump3.TagName = tagDict[2];
+            pump3.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump4 = new ZyModel.RealScadaData();
+            pump4.TagName = tagDict[3];
+            pump4.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump5 = new ZyModel.RealScadaData();
+            pump5.TagName = tagDict[4];
+            pump5.MonitorRecords = new List<ZyModel.MonitorRecord>();
             string path = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(),
               "PumpRunParas", "浜屽彇姘存満娉电疮璁℃祦閲�.csv");
             if (!File.Exists(path))
@@ -134,36 +594,39 @@
             System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open);
             System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding("gb2312"));
             string tempText;
-            List<Model.PumpWater> pumpISopenlist = new List<Model.PumpWater>();
-            for (int i = 0; i < totalLines-1; i++)
+
+            for (int i = 0; i < totalLines - 1; i++)
             {
                 tempText = sr.ReadLine();
                 string[] arr = tempText.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
-                try
+                var row = new ZyModel.MonitorRecord
                 {
-                    var pumpISopen = new Model.PumpWater
-                    {
-                        Tag = arr[1],
-                        Values = new List<Model.Water>
-                    {
-                        new Model.Water
-                        {
-                            DateTime = Convert.ToDateTime(arr[0]),
-                            SingleWater =Convert.ToDouble( arr[2])
-                        }
-                     }
-
-
-                    };
-                    pumpISopenlist.Add(pumpISopen);
+                    Time = Convert.ToDateTime(arr[0]),
+                    Value = Convert.ToDouble(arr[2])
+                };
+                if (arr[1] == tagDict[0])
+                {
+                    pump1.MonitorRecords.Add(row);
                 }
-                catch 
+                if (arr[1] == tagDict[1])
                 {
-                    var a = i;
+                    pump2.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[2])
+                {
+                    pump3.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[3])
+                {
+                    pump4.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[4])
+                {
+                    pump5.MonitorRecords.Add(row);
                 }
             }
             fs.Close();
-            return pumpISopenlist;
+            return new List<ZyModel.RealScadaData>() { pump1, pump2, pump3, pump4, pump5 };
         }
 
 
@@ -172,8 +635,16 @@
         /// 鑾峰彇鏈夊姛鐢佃兘
         /// </summary>
         /// <returns></returns>
-        public static List<Model.electricity> GetEleData()
+        public static List<ZyModel.RealScadaData> GetAllEleData()
         {
+            var tagDict = new List<string>
+            {
+                   "_0402010204040193046",//"浜屽彇姘�1鍙锋车绱娴侀噺" },
+                   "_0402010204040193047",//"浜屽彇姘�2鍙锋车绱娴侀噺" },
+                   "_0402010204012308007",// "浜屽彇姘�3鍙锋车绱娴侀噺" },
+                   "_0402010204012408007", //"浜屽彇姘�4鍙锋车绱娴侀噺" },
+                   "_0402010204012508007", //"浜屽彇姘�5鍙锋车绱娴侀噺" },
+            };
             string path = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(),
               "PumpRunParas", "浜屽彇姘存満娉垫湁鍔熺數鑳�.csv");
             if (!File.Exists(path))
@@ -181,28 +652,54 @@
             int totalLines = File.ReadLines(path, Encoding.GetEncoding("gb2312")).Count();//鎬昏鏁�
             System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open);
             System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding("gb2312"));
+            ZyModel.RealScadaData pump1 = new ZyModel.RealScadaData();
+            pump1.TagName = tagDict[0];
+            pump1.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump2 = new ZyModel.RealScadaData();
+            pump2.TagName = tagDict[1];
+            pump2.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump3 = new ZyModel.RealScadaData();
+            pump3.TagName = tagDict[2];
+            pump3.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump4 = new ZyModel.RealScadaData();
+            pump4.TagName = tagDict[3];
+            pump4.MonitorRecords = new List<ZyModel.MonitorRecord>();
+            ZyModel.RealScadaData pump5 = new ZyModel.RealScadaData();
+            pump5.TagName = tagDict[4];
+            pump5.MonitorRecords = new List<ZyModel.MonitorRecord>();
             string tempText;
-            List<Model.electricity> pumpISopenlist = new List<Model.electricity>();
             for (int i = 0; i < totalLines; i++)
             {
                 tempText = sr.ReadLine();
                 string[] arr = tempText.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
-                var pumpISopen = new Model.electricity
+                var row = new ZyModel.MonitorRecord
                 {
-                    Tag = arr[1],
-                    TotalEle = new List<Model.Ele>
-                    {
-                       new Model.Ele
-                        {
-                            DateTime = Convert.ToDateTime(arr[0]),
-                            Value =Convert.ToDouble( arr[2])
-                        }
-                    }
+                    Time = Convert.ToDateTime(arr[0]),
+                    Value = Convert.ToDouble(arr[2])
                 };
-                pumpISopenlist.Add(pumpISopen);
+                if (arr[1] == tagDict[0])
+                {
+                    pump1.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[1])
+                {
+                    pump2.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[2])
+                {
+                    pump3.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[3])
+                {
+                    pump4.MonitorRecords.Add(row);
+                }
+                if (arr[1] == tagDict[4])
+                {
+                    pump5.MonitorRecords.Add(row);
+                }
             }
             fs.Close();
-            return pumpISopenlist;
+            return new List<ZyModel.RealScadaData>() { pump1, pump2, pump3, pump4, pump5 };
         }
 
 
@@ -210,7 +707,7 @@
         /// <summary>
         /// 鑾峰彇鍏蜂綋鏃堕棿娈电殑寮�娉靛彴鏁�
         /// </summary>
-        public static List<(DateTime, DateTime, int)> getPumpIsOpen(DateTime datetime)
+        public List<(int, DateTime, DateTime)> getPumpIsOpen()
         {
             List<IsOpen> isOpenpump1 = new List<IsOpen>();
             List<IsOpen> isOpenpump2 = new List<IsOpen>();
@@ -223,44 +720,44 @@
             var Pump1 = TestIsOpen.Where(x => x.Tag == "_0402010204012101001").ToList();
             foreach (var item in Pump1)
             {
-                isOpenpump1.AddRange(item.Values.Where(x => x.DateTime >= datetime && x.DateTime <= datetime.AddHours(23).AddMinutes(59)).ToList());
+                isOpenpump1.AddRange(item.Values);
             }
             var Pump2 = TestIsOpen.Where(x => x.Tag == "_0402010204012201001").ToList();
             foreach (var item in Pump2)
             {
-                isOpenpump2.AddRange(item.Values.Where(x => x.DateTime >= datetime && x.DateTime <= datetime.AddHours(23).AddMinutes(59)).ToList());
+                isOpenpump2.AddRange(item.Values);
             }
             var Pump3 = TestIsOpen.Where(x => x.Tag == "_0402010204012301001").ToList();
             foreach (var item in Pump3)
             {
-                isOpenpump3.AddRange(item.Values.Where(x => x.DateTime >= datetime && x.DateTime <= datetime.AddHours(23).AddMinutes(59)).ToList());
+                isOpenpump3.AddRange(item.Values);
             }
             var Pump4 = TestIsOpen.Where(x => x.Tag == "_0402010204012401001").ToList();
             foreach (var item in Pump4)
             {
-                isOpenpump4.AddRange(item.Values.Where(x => x.DateTime >= datetime && x.DateTime <= datetime.AddHours(23).AddMinutes(59)).ToList());
+                isOpenpump4.AddRange(item.Values);
             }
             var Pump5 = TestIsOpen.Where(x => x.Tag == "_0402010204012501001").ToList();
             foreach (var item in Pump5)
             {
-                isOpenpump5.AddRange(item.Values.Where(x => x.DateTime >= datetime && x.DateTime <= datetime.AddHours(23).AddMinutes(59)).ToList());
+                isOpenpump5.AddRange(item.Values);
             }
-            List<string> startTime = new List<string>();
-            List<string> endtime = new List<string>();
-            var Run1 = GetData(isOpenpump1);
-            var Run2 = GetData(isOpenpump2);
-            var Run3 = GetData(isOpenpump3);
-            var Run4 = GetData(isOpenpump4);
-            var Run5 = GetData(isOpenpump5);
-            List<(DateTime, DateTime)> mergedList = MergeList(Run1, Run2, Run3, Run4, Run5);
-            return MergeTimeSlots(mergedList);
+            //    List<string> startTime = new List<string>();
+            //  List<string> endtime = new List<string>();
+            var Run1 = GetData(isOpenpump1, 1);
+            var Run2 = GetData(isOpenpump2, 2);
+            var Run3 = GetData(isOpenpump3, 3);
+            var Run4 = GetData(isOpenpump4, 4);
+            var Run5 = GetData(isOpenpump5, 5);
+            List<(int, DateTime, DateTime)> mergedList = MergeList(Run1, Run2, Run3, Run4, Run5);
+            return (mergedList);
         }
 
         /// <summary>
         /// 鑾峰彇娉电殑寮�鏈哄弬鏁�
         /// </summary>
         /// <returns></returns>
-        public static List<Model.PumpIsopen> GetPumpRunParas()
+        public List<Model.PumpIsopen> GetPumpRunParas()
         {
             string path = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(),
                "PumpRunParas", "浜屽彇姘存満娉靛紑鍋滅姸鎬�.csv");
@@ -295,34 +792,51 @@
 
 
         //娉靛紑鏈哄弬鏁扮殑杈呭姪鏂规硶
-        private  static List<(DateTime, DateTime)> GetData(List<IsOpen> PumpList)
+        private static List<(int, DateTime, DateTime)> GetData(List<IsOpen> PumpList, int sort)
         {
-            List<(DateTime, DateTime)> values = new List<(DateTime, DateTime)>();
-            values.Clear();
-            //    List<DateTime> Endvalues = new List<DateTime>();
-            DateTime startTime;
-            DateTime EndTime;
-            for (int time = 0; time < PumpList.Count; time++)
+            List<(int, DateTime, DateTime)> openTimeRanges = new List<(int, DateTime, DateTime)>();
+
+            // 姣忓ぉ鐨勬暟鎹潯鏁�
+            int itemsPerDay = 288;
+
+            // 閬嶅巻鍒楄〃
+            for (int i = 0; i < PumpList.Count - 1; i += itemsPerDay)
             {
-                if (PumpList[time].Isopen == "1")
+                DateTime currentDate = PumpList[i].DateTime.Date;
+                DateTime startTime = DateTime.MinValue;
+                bool isOpen = false;
+
+                // 閬嶅巻褰撳ぉ鐨勬暟鎹�
+                for (int j = i; j < i + itemsPerDay && j < PumpList.Count - 1; j++)
                 {
-                    startTime = PumpList[time].DateTime;
-                    EndTime = PumpList[time].DateTime;
-                    for (int k = time + 1; k < PumpList.Count; k++)   //k涓轰粠寮�鏈哄悗姣旇緝鐨勫彉閲忎笅鏍�
+                    if (PumpList[j].Isopen == "1")
                     {
-                        if (PumpList[k].Isopen == "1")
+                        if (!isOpen)
                         {
-                            EndTime = PumpList[k].DateTime;
-                            time = k;
+                            startTime = PumpList[j].DateTime;
+                            isOpen = true;
                         }
-                        else break;
                     }
-                    values.Add((startTime, EndTime));
+                    else
+                    {
+                        if (isOpen)
+                        {
+                            openTimeRanges.Add((sort, startTime, PumpList[j - 1].DateTime));
+                            isOpen = false;
+                        }
+                    }
                 }
 
+                // 濡傛灉褰撳ぉ鏈�鍚庝竴鏉℃暟鎹槸鎵撳紑鐘舵�侊紝娣诲姞鏃堕棿娈�
+                if (isOpen)
+                {
+                    openTimeRanges.Add((sort, startTime, PumpList[i + itemsPerDay - 1].DateTime));
+                }
             }
-            return values;
+
+            return openTimeRanges;
         }
+
 
 
 
@@ -374,9 +888,9 @@
         /// </summary>
         /// <param name="lists"></param>
         /// <returns></returns>
-        static List<(DateTime, DateTime)> MergeList(params List<(DateTime, DateTime)>[] lists)
+        static List<(int, DateTime, DateTime)> MergeList(params List<(int, DateTime, DateTime)>[] lists)
         {
-            List<(DateTime, DateTime)> mergedList = new List<(DateTime, DateTime)>();
+            List<(int, DateTime, DateTime)> mergedList = new List<(int, DateTime, DateTime)>();
             foreach (var list in lists)
             {
                 mergedList.AddRange(list);
@@ -387,88 +901,89 @@
 
 
 
-        private  static double GetWaterdata(DateTime Str, DateTime end)
+        /*  private static double GetWaterdata(DateTime Str, DateTime end)
+          {
+              List<Model.Water> water1 = new List<Model.Water>();
+              List<Model.Water> water2 = new List<Model.Water>();
+              List<Model.Water> water3 = new List<Model.Water>();
+              List<Model.Water> water4 = new List<Model.Water>();
+              List<Model.Water> water5 = new List<Model.Water>();
+              var waterData = GetWaterData();
+              var pump1 = waterData.Where(x => x.Tag == "浜屽彇姘�1鍙蜂富姘存车.鏃ョ疮璁�").ToList();
+              foreach (var item in pump1)
+              {
+                  water1.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
+              }
+              var pump2 = waterData.Where(x => x.Tag == "浜屽彇姘�2鍙蜂富姘存车.鏃ョ疮璁�").ToList();
+              foreach (var item in pump2)
+              {
+                  water2.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
+              }
+              var pump3 = waterData.Where(x => x.Tag == "浜屽彇姘�3鍙蜂富姘存车.鏃ョ疮璁�").ToList();
+              foreach (var item in pump3)
+              {
+                  water3.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
+              }
+              var pump4 = waterData.Where(x => x.Tag == "浜屽彇姘�4鍙蜂富姘存车.鏃ョ疮璁�").ToList();
+              foreach (var item in pump4)
+              {
+                  water4.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
+              }
+              var pump5 = waterData.Where(x => x.Tag == "浜屽彇姘�5鍙蜂富姘存车.鏃ョ疮璁�").ToList();
+              foreach (var item in pump5)
+              {
+                  water5.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
+              }
+              var Result1 = water1.Last().SingleWater - water1.First().SingleWater;
+              var Result2 = water2.Last().SingleWater - water2.First().SingleWater;
+              var Result3 = water3.Last().SingleWater - water3.First().SingleWater;
+              var Result4 = water4.Last().SingleWater - water4.First().SingleWater;
+              var Result5 = water5.Last().SingleWater - water5.First().SingleWater;
+              return Result1 + Result2 + Result3 + Result4 + Result5;
+          }
+
+  */
+
+        private static double GetElectrityData(DateTime Str, DateTime end)
         {
-            List<Model.Water> water1 = new List<Model.Water>();
-            List<Model.Water> water2 = new List<Model.Water>();
-            List<Model.Water> water3 = new List<Model.Water>();
-            List<Model.Water> water4 = new List<Model.Water>();
-            List<Model.Water> water5 = new List<Model.Water>();
-             var waterData = GetWaterData();
-            var pump1 = waterData.Where(x => x.Tag == "浜屽彇姘�1鍙蜂富姘存车.鏃ョ疮璁�").ToList();
-            foreach (var item in pump1)
-            {
-                water1.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump2 = waterData.Where(x => x.Tag == "浜屽彇姘�2鍙蜂富姘存车.鏃ョ疮璁�").ToList();
-            foreach (var item in pump2)
-            {
-                water2.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump3 = waterData.Where(x => x.Tag == "浜屽彇姘�3鍙蜂富姘存车.鏃ョ疮璁�").ToList();
-            foreach (var item in pump3)
-            {
-                water3.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump4 = waterData.Where(x => x.Tag == "浜屽彇姘�4鍙蜂富姘存车.鏃ョ疮璁�").ToList();
-            foreach (var item in pump4)
-            {
-                water4.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump5 = waterData.Where(x => x.Tag == "浜屽彇姘�5鍙蜂富姘存车.鏃ョ疮璁�").ToList();
-            foreach (var item in pump5)
-            {
-                water5.AddRange(item.Values.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var Result1 = water1.Last().SingleWater - water1.First().SingleWater;
-            var Result2 = water2.Last().SingleWater - water2.First().SingleWater;
-            var Result3 = water3.Last().SingleWater - water3.First().SingleWater;
-            var Result4 = water4.Last().SingleWater - water4.First().SingleWater;
-            var Result5 = water5.Last().SingleWater - water5.First().SingleWater;
-            return Result1 + Result2 + Result3 + Result4 + Result5;
-        }
-
-
-
-        private  static double GetElectrityData(DateTime Str, DateTime end)
-        {
-             var Ele = GetEleData();
-            List<Model.Ele> Ele1 = new List<Model.Ele>();
-            List<Model.Ele> Ele2 = new List<Model.Ele>();
-            List<Model.Ele> Ele3 = new List<Model.Ele>();
-            List<Model.Ele> Ele4 = new List<Model.Ele>();
-            List<Model.Ele> Ele5 = new List<Model.Ele>();
-            var pump1 = Ele.Where(x => x.Tag == "_0402010204040193046").ToList();
-            foreach (var item in pump1)
-            {
-                Ele1.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump2 = Ele.Where(x => x.Tag == "_0402010204040193047").ToList();
-            foreach (var item in pump2)
-            {
-                Ele2.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump3 = Ele.Where(x => x.Tag == "_0402010204012308007").ToList();
-            foreach (var item in pump3)
-            {
-                Ele3.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump4 = Ele.Where(x => x.Tag == "_0402010204012408007").ToList();
-            foreach (var item in pump4)
-            {
-                Ele4.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var pump5 = Ele.Where(x => x.Tag == "_0402010204012508007").ToList();
-            foreach (var item in pump5)
-            {
-                Ele5.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
-            }
-            var Result1 = Ele1.Last().Value - Ele1.First().Value;
-            var Result2 = Ele2.Last().Value - Ele2.First().Value;
-            var Result3 = Ele3.Last().Value - Ele3.First().Value;
-            var Result4 = Ele4.Last().Value - Ele4.First().Value;
-            var Result5 = Ele5.Last().Value - Ele5.First().Value;
-            return Result1 + Result2 + Result3 + Result4 + Result5;
+            /*   var Ele = GetEleData();
+              List<Model.Ele> Ele1 = new List<Model.Ele>();
+              List<Model.Ele> Ele2 = new List<Model.Ele>();
+              List<Model.Ele> Ele3 = new List<Model.Ele>();
+              List<Model.Ele> Ele4 = new List<Model.Ele>();
+              List<Model.Ele> Ele5 = new List<Model.Ele>();*/
+            /*         var pump1 = Ele.Where(x => x.Tag == "_0402010204040193046").ToList();
+                     foreach (var item in pump1)
+                     {
+                         Ele1.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
+                     }
+                     var pump2 = Ele.Where(x => x.Tag == "_0402010204040193047").ToList();
+                     foreach (var item in pump2)
+                     {
+                         Ele2.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
+                     }
+                     var pump3 = Ele.Where(x => x.Tag == "_0402010204012308007").ToList();
+                     foreach (var item in pump3)
+                     {
+                         Ele3.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
+                     }
+                     var pump4 = Ele.Where(x => x.Tag == "_0402010204012408007").ToList();
+                     foreach (var item in pump4)
+                     {
+                         Ele4.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
+                     }
+                     var pump5 = Ele.Where(x => x.Tag == "_0402010204012508007").ToList();
+                     foreach (var item in pump5)
+                     {
+                         Ele5.AddRange(item.TotalEle.Where(x => x.DateTime >= Str && x.DateTime <= end));
+                     }
+                     var Result1 = Ele1.Last().Value - Ele1.First().Value;
+                     var Result2 = Ele2.Last().Value - Ele2.First().Value;
+                     var Result3 = Ele3.Last().Value - Ele3.First().Value;
+                     var Result4 = Ele4.Last().Value - Ele4.First().Value;
+                     var Result5 = Ele5.Last().Value - Ele5.First().Value;
+                     return Result1 + Result2 + Result3 + Result4 + Result5;*/
+            return 0;
         }
     }
 }

--
Gitblit v1.9.3