ningshuxia
2022-11-14 7bdd0b5af35ca51624423dfab4f958d40d5e9a06
修改 RepairEtaDayRecordList
已修改1个文件
79 ■■■■ 文件已修改
Application/IStation.Application.Eta/eta_analy_largescreenkpi/EtaAnalyLargeScreenKpi_Controller.cs 79 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
                }
            }
        }