From 7bdd0b5af35ca51624423dfab4f958d40d5e9a06 Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期一, 14 十一月 2022 16:24:23 +0800
Subject: [PATCH] 修改 RepairEtaDayRecordList

---
 Application/IStation.Application.Eta/eta_analy_largescreenkpi/EtaAnalyLargeScreenKpi_Controller.cs |   79 ++++++++++++++++++++++++++++-----------
 1 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/Application/IStation.Application.Eta/eta_analy_largescreenkpi/EtaAnalyLargeScreenKpi_Controller.cs b/Application/IStation.Application.Eta/eta_analy_largescreenkpi/EtaAnalyLargeScreenKpi_Controller.cs
index c68568f..d31e801 100644
--- a/Application/IStation.Application.Eta/eta_analy_largescreenkpi/EtaAnalyLargeScreenKpi_Controller.cs
+++ b/Application/IStation.Application.Eta/eta_analy_largescreenkpi/EtaAnalyLargeScreenKpi_Controller.cs
@@ -517,37 +517,70 @@
         /// </summary>
         [Route("RepairEtaDayRecordList")]
         [HttpGet]
-        public bool RepairEtaDayRecordList([FromQuery] long CorpID, long LogicAreaID, DateTime StartTime, DateTime EndTime)
+        public bool RepairEtaDayRecordList([FromQuery] long CorpID,  DateTime StartTime, DateTime EndTime)
         {
-            var corpId = CorpID;
-            var logicAreaId = LogicAreaID;
+            //鑾峰彇涓氬姟鍖哄煙
+            var logic_catalog_list = new Service.LogicCatalog().GetByCorpID(CorpID);
+            if (logic_catalog_list == null || logic_catalog_list.Count < 1)
+                return false;
 
-            var service_eta = new Service.EtaLogicRealRecord();
-            var service_eta_sum = new Service.EtaSumLogicRecord();
-
-            var spanDays = (EndTime - StartTime).TotalDays;
-            var result = false;
-            for (int i = 0; i <= spanDays; i++)
+            //閬嶅巻涓氬姟绫诲埆
+            foreach (var logicCataog in logic_catalog_list)
             {
-                var currentTime = StartTime.AddDays(i);
-                var realRecordList = service_eta.GetByObjectOfDay(corpId, ObjectType.LogicArea, logicAreaId, currentTime);
-                var cureentDayRecord = service_eta_sum.GetDayByObjectOfDay(corpId, ObjectType.LogicArea, logicAreaId, currentTime);
-                var record = EtaSumLogicDayHelper.Sum(corpId, ObjectType.LogicArea, logicAreaId, currentTime, realRecordList);
-                if (cureentDayRecord == null)
-                {
-                    result = service_eta_sum.Insert(record) > 0;
-                }
-                else
-                {
-                    result = service_eta_sum.Update(record);
-                }
-            }
+                //鑾峰彇涓氬姟娓呭崟
+                var logicTreeList = new Service.LogicTree().GetByCatalogID(CorpID, logicCataog.ID);
+                //閬嶅巻涓氬姟娓呭崟
+                if (logicTreeList == null || logicTreeList.Count < 1)
+                    continue;
 
-            return result;
+                foreach (var logicTree in logicTreeList)
+                {
+                    RepairCore(CorpID, logicTree.LogicType, logicTree.LogicID, StartTime, EndTime);
+                    if (logicTree.LogicType == IStation.ObjectType.Station)
+                    {
+                        var station = new Service.Station().GetByID(CorpID, logicTree.LogicID);
+                        if (station == null)
+                            continue;
+                        //鑾峰彇绠¤矾
+                        var pipeLineList = new Service.PipeLine().GetEnginePumpListByBelongTypeAndBelongID(CorpID, IStation.ObjectType.Station, station.ID);
+                        if (pipeLineList == null || pipeLineList.Count < 1)
+                            continue;
+                        foreach (var pipeLine in pipeLineList)
+                        {
+                            RepairCore(CorpID, ObjectType.PipeLine, pipeLine.ID, StartTime, EndTime);
+                        }
+                    }
+                }
+
+            }
+            return true;
         }
 
 
+        private void RepairCore(long corpId, string objectType, long objectId, DateTime startTime, DateTime endTime)
+        {
+            var service_eta = new Service.EtaLogicRealRecord();
+            var service_eta_sum = new Service.EtaSumLogicRecord();
 
+            var spanDays = (endTime - startTime).TotalDays;
+            for (int i = 0; i <= spanDays; i++)
+            {
+                var currentTime = startTime.AddDays(i);
+                var realRecordList = service_eta.GetByObjectOfDay(corpId, objectType, objectId, currentTime);
+                if (realRecordList == null || realRecordList.Count < 1)
+                    continue;
+                var cureentDayRecord = service_eta_sum.GetDayByObjectOfDay(corpId, objectType, objectId, currentTime);
+                var record = EtaSumLogicDayHelper.Sum(corpId, objectType, objectId, currentTime, realRecordList);
+                if (cureentDayRecord == null)
+                {
+                    service_eta_sum.Insert(record);
+                }
+                else
+                {
+                    service_eta_sum.Update(record);
+                }
+            } 
+        }
 
 
 

--
Gitblit v1.9.3