From 8ea88fedd51e4961d0fd0aec6c2873a579fb6db8 Mon Sep 17 00:00:00 2001
From: tangxu <76880903@qq.com>
Date: 星期一, 31 十月 2022 14:18:36 +0800
Subject: [PATCH] 完善调度计划分析

---
 Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs |   65 ++++++++++++++++++++------------
 1 files changed, 40 insertions(+), 25 deletions(-)

diff --git a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
index 8d1dac1..96a3c70 100644
--- a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
+++ b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
@@ -9,6 +9,8 @@
 using Microsoft.AspNetCore.Authorization;
 using IStation.Calculation;
 using IStation.Dto;
+using System.Collections.Generic;
+using Mapster;
 
 namespace IStation.Application
 {
@@ -56,68 +58,80 @@
         [HttpGet]
         public List<PlanAnaDto> Calculate_debug()
         {
-            var path = @"D:\WorkData\IStation\result_1024b.json";
+            var path = @"D:\WorkData\IStation\result_1024lq.json";
             if (!System.IO.File.Exists(path))
                 return null;
-              
+
             var responseText = System.IO.File.ReadAllText(path);//(娴嬭瘯鐢ㄧ殑)   
             var planDataList = JsonHelper.Json2Object<List<PlanAnaData>>(responseText);
-            return CalculateCore(planDataList);
+      
+            var ret = CalculateCore(planDataList );
+ 
+            return ret;
         }
-       
+
         /// <summary>
         /// 鍒嗘瀽鏍稿績
         /// </summary>
         /// <param name="planDataList"></param>
         /// <returns></returns>
-        private List<PlanAnaDto> CalculateCore(List<PlanAnaData> planDataList) 
+        private List<PlanAnaDto> CalculateCore(List<PlanAnaData> planDataList )
         {
             if (planDataList == null || planDataList.Count < 1)
-            {
+            { 
                 LogHelper.Error("涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾笁楂樿繑鍥炴帴鍙e嚭鍙備负绌�");
                 return default;
             }
             if (planDataList.Exists(x => x.datas == null || x.datas.Count < 1))
-            {
+            { 
                 LogHelper.Error("涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾笁楂樿繑鍥炴帴鍙e嚭鍙傛牸寮忛敊璇�");
                 return default;
             }
 
             var sg_factoryIds = planDataList.SelectMany(x => x.datas).Select(x => x.factory).Distinct().ToList();
             var vmList = new List<PlanAnaDto>();
+             
+        
             foreach (var sg_factoryId in sg_factoryIds)
             {
-                var vmItem = Ana(planDataList, sg_factoryId);
-                if(vmItem != null)
-                vmList.Add(vmItem);
+                string error_info;
+                var vmItem = Ana(planDataList, sg_factoryId,out error_info);
+                if (vmItem != null)
+                {
+                    vmList.Add(vmItem);
+                } 
+                else
+                {
+                    vmList.Add(new PlanAnaDto() { factory=sg_factoryId, name="", Error = error_info });
+                }
             }
             return vmList;
         }
 
-        private PlanAnaDto Ana(List<PlanAnaData> planDataList, int sg_factoryId)
+        private PlanAnaDto Ana(List<PlanAnaData> planDataList, int sg_factoryId, out string error_info)
         {
             //鎵惧埌鐩稿叧娉电珯锛屽苟杩涜璁$畻
             var stationInfo = ShysPlanHelper.GetStationInfo(sg_factoryId);
             if (stationInfo == null)
             {
-                // LogHelper.Error("鏈壘鍒癷d:{factoryId},瀵瑰簲鐨勬车绔�");
-                return null ;
+                error_info = "鏈壘鍒癷d:{factoryId},瀵瑰簲鐨勬车绔�" ;
+                return null;
             }
 
             var stationId = stationInfo.ID;
             var station = new Service.Station().GetByID(_corpId, stationId);
             if (station == null)
             {
-                LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛� 娉电珯id:{stationId}, 鏁版嵁搴撲腑鏈壘鍒版娉电珯");
+                error_info = $"娉电珯id:{stationId}, 鏁版嵁搴撲腑鏈壘鍒版娉电珯" ;
                 return null;
             }
             var calculator = stationInfo.Calculator;
             if (calculator == null)
             {
-                LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛� 娉电珯id:{stationId}, 鏈瀯寤鸿绠楀櫒");
+                error_info =  $"娉电珯id:{stationId}, 鏈瀯寤鸿绠楀櫒" ;
                 return null;
             }
-            calculator.SetStationID(4, stationInfo.ID);//璁剧疆ID
+            calculator.SetStationID(_corpId, stationInfo.ID);//璁剧疆ID
 
             //鏋勯�犺绠楀叆鍙�
             var sumRecordList = new List<MonthSumRecord>();
@@ -145,13 +159,13 @@
                                 {
                                     scadaRecord.RecordValue = 0;
                                 }
-                                else if (calculator.Is娑蹭綅Monitor(scadaItem.tagname))
-                                {
-                                    scadaRecord.RecordValue = 0;
-                                }
+                                //else if (calculator.Is娑蹭綅Monitor(scadaItem.tagname))
+                                //{
+                                //    scadaRecord.RecordValue = 0;
+                                //}
                                 else
                                 {
-                                    LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛� 娉电珯id:{stationId}, {scadaItem.tagname} 鏃堕棿鐐箋i}, 鏈壘鍒版暟鎹�");
+                                    error_info = $"factoryId:{sg_factoryId}, 娉电珯id:{stationId}, 娴嬭瘯tag:{scadaItem.tagname} ,娴嬬偣鍚嶇О{calculator.GetMonitorNameByTag(scadaItem.tagname)},鏃堕棿鐐箋i}, 鏈壘鍒板搴旀暟鎹�" ;
                                     return null;
                                 }
                             }
@@ -168,11 +182,12 @@
                 sumRecordList.Add(sumRecord);
             }
 
-            string error_info = "";
-            var resultList = calculator.Calc(station, sg_factoryId, sumRecordList, out error_info);
+            string  ana_error_info = "";
+            var resultList = calculator.Calc(station, sg_factoryId, sumRecordList, out ana_error_info);
             if (resultList == null || resultList.Count() < 1)
             {
-                LogHelper.Error($"涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑锛屾车绔欏悕绉�:{station.Name} 娉电珯id:{stationId},璁$畻閿欒,鍘熷洜鏄�:{error_info}");
+                error_info = $"娉电珯鍚嶇О:{station.Name} 娉电珯id:{stationId},鍘熷洜鏄�:{ana_error_info}";
+                LogHelper.Error("涓婃捣鍘熸按鑳借�楄鍒掑垎鏋愯绠椾腑 factoryId:{sg_factoryId},锛�" + error_info);
                 return null;
             }
 
@@ -193,7 +208,7 @@
                     vmItem.values.Add(new List<double>() { result.Qt, result.Dt, result.WP });
                 }
             }
-
+            error_info = null;
             return vmItem;
         }
 

--
Gitblit v1.9.3