From eb32b4263f6901bb7ac1915b400e4fe28db20ef0 Mon Sep 17 00:00:00 2001
From: ningshuxia <ningshuxia0927@outlook.com>
Date: 星期四, 13 四月 2023 15:38:11 +0800
Subject: [PATCH] 123

---
 Calculation/IStation.Calculation.Eta/sum/single/EtaSumSingleDayHelper.cs |   63 +++++++++++++++++++------------
 1 files changed, 38 insertions(+), 25 deletions(-)

diff --git a/Calculation/IStation.Calculation.Eta/sum/single/EtaSumSingleDayHelper.cs b/Calculation/IStation.Calculation.Eta/sum/single/EtaSumSingleDayHelper.cs
index 6877230..f372996 100644
--- a/Calculation/IStation.Calculation.Eta/sum/single/EtaSumSingleDayHelper.cs
+++ b/Calculation/IStation.Calculation.Eta/sum/single/EtaSumSingleDayHelper.cs
@@ -42,29 +42,42 @@
 
             if (run_normal_record_list.Count > 0)
             {
-                model.Qmin = run_normal_record_list.Min(x => x.Qa.Value);
-                model.Qmax = run_normal_record_list.Max(x => x.Qa.Value);
-                model.Qavg = run_normal_record_list.Average(x => x.Qa.Value);
-
-                model.Hmin = run_normal_record_list.Min(x => x.Ha.Value);
-                model.Hmax = run_normal_record_list.Max(x => x.Ha.Value);
-                model.Havg = run_normal_record_list.Average(x => x.Ha.Value);
-
-                model.Emin = run_normal_record_list.Min(x => x.Ea.Value);
-                model.Emax = run_normal_record_list.Max(x => x.Ea.Value);
-                model.Eavg = run_normal_record_list.Average(x => x.Ea.Value);
-
-                model.Pmin = run_normal_record_list.Min(x => x.Pa.Value);
-                model.Pmax = run_normal_record_list.Max(x => x.Pa.Value);
-                model.Pavg = run_normal_record_list.Average(x => x.Pa.Value);
-
-                model.WPmin = run_normal_record_list.Min(x => x.WPa.Value);
-                model.WPmax = run_normal_record_list.Max(x => x.WPa.Value);
-                model.WPavg = run_normal_record_list.Average(x => x.WPa.Value);
-
-                model.UWPmin = run_normal_record_list.Min(x => x.UWPa.Value);
-                model.UWPmax = run_normal_record_list.Max(x => x.UWPa.Value);
-                model.UWPavg = run_normal_record_list.Average(x => x.UWPa.Value);
+                if (run_normal_record_list.Exists(x => x.Qa.HasValue))
+                {
+                    model.Qmin = run_normal_record_list.Where(x => x.Qa.HasValue).Min(x => x.Qa.Value);
+                    model.Qmax = run_normal_record_list.Where(x => x.Qa.HasValue).Max(x => x.Qa.Value);
+                    model.Qavg = run_normal_record_list.Where(x => x.Qa.HasValue).Average(x => x.Qa.Value);
+                }
+                if (run_normal_record_list.Exists(x => x.Ha.HasValue))
+                {
+                    model.Hmin = run_normal_record_list.Where(x => x.Ha.HasValue).Min(x => x.Ha.Value);
+                    model.Hmax = run_normal_record_list.Where(x => x.Ha.HasValue).Max(x => x.Ha.Value);
+                    model.Havg = run_normal_record_list.Where(x => x.Ha.HasValue).Average(x => x.Ha.Value);
+                }
+                if (run_normal_record_list.Exists(x => x.Ea.HasValue))
+                {
+                    model.Emin = run_normal_record_list.Where(x => x.Ea.HasValue).Min(x => x.Ea.Value);
+                    model.Emax = run_normal_record_list.Where(x => x.Ea.HasValue).Max(x => x.Ea.Value);
+                    model.Eavg = run_normal_record_list.Where(x => x.Ea.HasValue).Average(x => x.Ea.Value);
+                }
+                if (run_normal_record_list.Exists(x => x.Pa.HasValue))
+                {
+                    model.Pmin = run_normal_record_list.Where(x => x.Pa.HasValue).Min(x => x.Pa.Value);
+                    model.Pmax = run_normal_record_list.Where(x => x.Pa.HasValue).Max(x => x.Pa.Value);
+                    model.Pavg = run_normal_record_list.Where(x => x.Pa.HasValue).Average(x => x.Pa.Value);
+                }
+                if (run_normal_record_list.Exists(x => x.WPa.HasValue))
+                {
+                    model.WPmin = run_normal_record_list.Where(x => x.WPa.HasValue).Min(x => x.WPa.Value);
+                    model.WPmax = run_normal_record_list.Where(x => x.WPa.HasValue).Max(x => x.WPa.Value);
+                    model.WPavg = run_normal_record_list.Where(x => x.WPa.HasValue).Average(x => x.WPa.Value);
+                }
+                if (run_normal_record_list.Exists(x => x.UWPa.HasValue))
+                {
+                    model.UWPmin = run_normal_record_list.Where(x => x.UWPa.HasValue).Min(x => x.UWPa.Value);
+                    model.UWPmax = run_normal_record_list.Where(x => x.UWPa.HasValue).Max(x => x.UWPa.Value);
+                    model.UWPavg = run_normal_record_list.Where(x => x.UWPa.HasValue).Average(x => x.UWPa.Value);
+                }
             }
 
             if (run_record_list.Count > 1)
@@ -80,8 +93,8 @@
             }
 
             return model;
-
-
+             
         }
+
     }
 }

--
Gitblit v1.9.3