From 64c0604d9a7d2460f6bf1b6cc7df02d769db3a15 Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期三, 19 六月 2024 09:23:32 +0800
Subject: [PATCH] 优化预测错误日志

---
 Library/Newtonsoft.Json.dll                                                                                 |    0 
 WebApi/Logs/Tests/20240617.txt                                                                              |    0 
 WaterPredict/IStation.ChEr.Application.WaterPredict/02-predict/ConnectHelper.cs                             |    2 
 WebApi/Logs/Tests/20240612.txt                                                                              |    0 
 WaterPredict/IStation.ChEr.TopShelf.WaterPredict.Core/Properties/PublishProfiles/FolderProfile2.pubxml.user |    2 
 WaterPredict/IStation.ChEr.WebApi.Predict/任务/PredictCronJobHelper.cs                                        |    2 
 BLL/IStation.BLL.Connect/ReservoirWaterLevel.cs                                                             |   32 +--
 Model/IStation.Model.Basic/waterLevel/WaterPredictRecord.cs                                                 |    9 
 Library/Newtonsoft.Json.xml                                                                                 |   64 ++++++
 WebApi/Controllers/AnaPrjController.cs                                                                      |   82 ++++-----
 WebApi/Controllers/ReservoirParasController - 复制.cs                                                         |   50 +++++
 WebApi/Logs/Tests/20240613.txt                                                                              |    0 
 WebApi/IStation.ChEr.WebApi.csproj.user                                                                     |    2 
 WaterPredict/IStation.ChEr.WebApi.Predict/任务/PredictHelper.cs                                               |   17 -
 WebApi/Logs/info.log                                                                                        |   10 +
 WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user                                                 |   84 ++++----
 WaterPredict/IStation.ChEr.WebApi.Predict/任务/CalcWaterPredictJob.cs                                         |  156 ++++++++++++----
 WebApi/众毅调度/ZyConnectHelper.cs                                                                              |    9 
 18 files changed, 344 insertions(+), 177 deletions(-)

diff --git a/BLL/IStation.BLL.Connect/ReservoirWaterLevel.cs b/BLL/IStation.BLL.Connect/ReservoirWaterLevel.cs
index 705f1c0..c413eb6 100644
--- a/BLL/IStation.BLL.Connect/ReservoirWaterLevel.cs
+++ b/BLL/IStation.BLL.Connect/ReservoirWaterLevel.cs
@@ -4,28 +4,27 @@
 using System.IO;
 using System.Linq;
 using System.Net;
-using System.Text; 
+using System.Text;
 
 namespace IStation.BLL
 {
     /// <summary>
-    /// 姘村簱姘翠綅 
+    /// 姘村簱姘翠綅
     /// </summary>
     public class ReservoirWaterLevel
     {
         public static double GetRealValue()
         {
-            if(!ServiceParas.IsRemote)
+            if (!ServiceParas.IsRemote)
             {
                 return -100;
             }
- 
+
             if (string.IsNullOrEmpty(ServiceParas.ApiServiceUrl))
             {
                 return -100;
             }
             string url = string.Format(@"{0}/ReservoirWaterLevel/GetRealValue", ServiceParas.ApiServiceUrl);
-
 
             //鍏堟牴鎹敤鎴疯姹傜殑uri鏋勯�犺姹傚湴鍧�
             //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
@@ -38,7 +37,7 @@
 
             myRequest.Method = "GET";
             //myRequest.Accept = "application/json";
-            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded 
+            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded
             myRequest.AutomaticDecompression = DecompressionMethods.GZip;
             myRequest.Accept = Accept;
             //myRequest.ContentType = ContentType;
@@ -71,13 +70,12 @@
             reader.Close();
             myResponse.Close();
 
-
             return ret.Data;
         }
 
         /// <summary>
-        /// 鑾峰彇 棰勬祴鍊� 
-        /// </summary> 
+        /// 鑾峰彇 棰勬祴鍊�
+        /// </summary>
         /// <returns></returns>
         public static List<IStation.Model.WaterPredictRecord> GetPredictRecordByHourRange(DateTime start_time, DateTime end_time)
         {
@@ -86,11 +84,10 @@
             {
                 return null;
             }
-            string url = string.Format(@"{0}/ReservoirWaterLevel/GetPredictRecordByHourRange?start_time={1}&end_time={2}", 
+            string url = string.Format(@"{0}/ReservoirWaterLevel/GetPredictRecordByHourRange?start_time={1}&end_time={2}",
                 apiServiceUrl,
                 start_time.ToString("yyyy-MM-dd HH:mm:00"),
                 end_time.ToString("yyyy-MM-dd HH:mm:00"));
-
 
             //鍏堟牴鎹敤鎴疯姹傜殑uri鏋勯�犺姹傚湴鍧�
             //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
@@ -103,7 +100,7 @@
 
             myRequest.Method = "GET";
             //myRequest.Accept = "application/json";
-            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded 
+            //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded
             myRequest.AutomaticDecompression = DecompressionMethods.GZip;
             myRequest.Accept = Accept;
             //myRequest.ContentType = ContentType;
@@ -136,13 +133,12 @@
             reader.Close();
             myResponse.Close();
 
-
             return ret.Data;
         }
 
         ///// <summary>
-        ///// 鑾峰彇浠婃棩棰勬祴鍊�(24鐐规椂) 
-        ///// </summary> 
+        ///// 鑾峰彇浠婃棩棰勬祴鍊�(24鐐规椂)
+        ///// </summary>
         ///// <returns></returns>
         //public static double GetTodayEndPredictiveValue()
         //{
@@ -152,7 +148,6 @@
         //        return -100;
         //    }
         //    string url = string.Format(@"{0}/ReservoirWaterLevel/GetTodayEndPredictiveValue", apiServiceUrl);
-
 
         //    //鍏堟牴鎹敤鎴疯姹傜殑uri鏋勯�犺姹傚湴鍧�
         //    //string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
@@ -165,7 +160,7 @@
 
         //    myRequest.Method = "GET";
         //    //myRequest.Accept = "application/json";
-        //    //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded 
+        //    //myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded
         //    myRequest.AutomaticDecompression = DecompressionMethods.GZip;
         //    myRequest.Accept = Accept;
         //    //myRequest.ContentType = ContentType;
@@ -198,8 +193,7 @@
         //    reader.Close();
         //    myResponse.Close();
 
-
         //    return ret.Data;
         //}
     }
-}
+}
\ No newline at end of file
diff --git a/Library/Newtonsoft.Json.dll b/Library/Newtonsoft.Json.dll
index 7af125a..341d08f 100644
--- a/Library/Newtonsoft.Json.dll
+++ b/Library/Newtonsoft.Json.dll
Binary files differ
diff --git a/Library/Newtonsoft.Json.xml b/Library/Newtonsoft.Json.xml
index 008e0ca..2c981ab 100644
--- a/Library/Newtonsoft.Json.xml
+++ b/Library/Newtonsoft.Json.xml
@@ -865,6 +865,32 @@
             Converts a <see cref="T:System.DateTime"/> to and from Unix epoch time
             </summary>
         </member>
+        <member name="P:Newtonsoft.Json.Converters.UnixDateTimeConverter.AllowPreEpoch">
+            <summary>
+            Gets or sets a value indicating whether the dates before Unix epoch
+            should converted to and from JSON.
+            </summary>
+            <value>
+            <c>true</c> to allow converting dates before Unix epoch to and from JSON;
+            <c>false</c> to throw an exception when a date being converted to or from JSON
+            occurred before Unix epoch. The default value is <c>false</c>.
+            </value>
+        </member>
+        <member name="M:Newtonsoft.Json.Converters.UnixDateTimeConverter.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Newtonsoft.Json.Converters.UnixDateTimeConverter"/> class.
+            </summary>
+        </member>
+        <member name="M:Newtonsoft.Json.Converters.UnixDateTimeConverter.#ctor(System.Boolean)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Newtonsoft.Json.Converters.UnixDateTimeConverter"/> class.
+            </summary>
+            <param name="allowPreEpoch">
+            <c>true</c> to allow converting dates before Unix epoch to and from JSON;
+            <c>false</c> to throw an exception when a date being converted to or from JSON
+            occurred before Unix epoch. The default value is <c>false</c>.
+            </param>
+        </member>
         <member name="M:Newtonsoft.Json.Converters.UnixDateTimeConverter.WriteJson(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.JsonSerializer)">
             <summary>
             Writes the JSON representation of the object.
@@ -2554,7 +2580,7 @@
             <summary>
             Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a <see cref="T:Newtonsoft.Json.JsonReaderException"/>.
             A null value means there is no maximum. 
-            The default value is <c>128</c>.
+            The default value is <c>64</c>.
             </summary>
         </member>
         <member name="P:Newtonsoft.Json.JsonReader.TokenType">
@@ -3014,7 +3040,7 @@
             <summary>
             Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a <see cref="T:Newtonsoft.Json.JsonReaderException"/>.
             A null value means there is no maximum.
-            The default value is <c>128</c>.
+            The default value is <c>64</c>.
             </summary>
         </member>
         <member name="P:Newtonsoft.Json.JsonSerializer.CheckAdditionalContent">
@@ -3330,7 +3356,7 @@
             <summary>
             Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a <see cref="T:Newtonsoft.Json.JsonReaderException"/>.
             A null value means there is no maximum.
-            The default value is <c>128</c>.
+            The default value is <c>64</c>.
             </summary>
         </member>
         <member name="P:Newtonsoft.Json.JsonSerializerSettings.Formatting">
@@ -3395,6 +3421,12 @@
         <member name="M:Newtonsoft.Json.JsonSerializerSettings.#ctor">
             <summary>
             Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> class.
+            </summary>
+        </member>
+        <member name="M:Newtonsoft.Json.JsonSerializerSettings.#ctor(Newtonsoft.Json.JsonSerializerSettings)">
+            <summary>
+            Initializes a new instance of the <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/> class
+            using values copied from the passed in <see cref="T:Newtonsoft.Json.JsonSerializerSettings"/>.
             </summary>
         </member>
         <member name="T:Newtonsoft.Json.JsonTextReader">
@@ -7031,6 +7063,25 @@
             <param name="reader">The reader.</param>
             <returns>An instance of <see cref="T:Newtonsoft.Json.Linq.JRaw"/> with the content of the reader's current token.</returns>
         </member>
+        <member name="T:Newtonsoft.Json.Linq.JsonCloneSettings">
+            <summary>
+            Specifies the settings used when cloning JSON.
+            </summary>
+        </member>
+        <member name="M:Newtonsoft.Json.Linq.JsonCloneSettings.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JsonCloneSettings"/> class.
+            </summary>
+        </member>
+        <member name="P:Newtonsoft.Json.Linq.JsonCloneSettings.CopyAnnotations">
+            <summary>
+            Gets or sets a flag that indicates whether to copy annotations when cloning a <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
+            The default value is <c>true</c>.
+            </summary>
+            <value>
+            A flag that indicates whether to copy annotations when cloning a <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
+            </value>
+        </member>
         <member name="T:Newtonsoft.Json.Linq.JsonLoadSettings">
             <summary>
             Specifies the settings used when loading JSON.
@@ -8071,6 +8122,13 @@
             </summary>
             <returns>A new instance of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</returns>
         </member>
+        <member name="M:Newtonsoft.Json.Linq.JToken.DeepClone(Newtonsoft.Json.Linq.JsonCloneSettings)">
+            <summary>
+            Creates a new instance of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>. All child tokens are recursively cloned.
+            </summary>
+            <param name="settings">A <see cref="T:Newtonsoft.Json.Linq.JsonCloneSettings"/> object to configure cloning settings.</param>
+            <returns>A new instance of the <see cref="T:Newtonsoft.Json.Linq.JToken"/>.</returns>
+        </member>
         <member name="M:Newtonsoft.Json.Linq.JToken.AddAnnotation(System.Object)">
             <summary>
             Adds an object to the annotation list of this <see cref="T:Newtonsoft.Json.Linq.JToken"/>.
diff --git a/Model/IStation.Model.Basic/waterLevel/WaterPredictRecord.cs b/Model/IStation.Model.Basic/waterLevel/WaterPredictRecord.cs
index 7934b0c..5a093b7 100644
--- a/Model/IStation.Model.Basic/waterLevel/WaterPredictRecord.cs
+++ b/Model/IStation.Model.Basic/waterLevel/WaterPredictRecord.cs
@@ -25,18 +25,20 @@
         {
             this.ID = rhs.ID;
             this.DayHour = rhs.DayHour;
-            this.LastPredictValue = rhs.LastPredictValue; 
-            this.LastPredictTime = rhs.LastPredictTime; 
+            this.LastPredictValue = rhs.LastPredictValue;
+            this.LastPredictTime = rhs.LastPredictTime;
             this.PredictValueList = rhs.PredictValueList;
             this.PredictTime = rhs.PredictTime;
             this.States = rhs.States;
             this.Description = rhs.Description;
         }
+
         //杞崲涓篿nt绫诲瀷鐨勬椂闂�
         public static int ConvertIntDay(DateTime datetime)
         {
             return int.Parse(string.Format("{0:00}{1:00}{2:00}", datetime.Month, datetime.Day, datetime.Hour));
         }
+
         /// <summary>
         /// id
         /// </summary>
@@ -46,8 +48,6 @@
         /// 灏忔椂: 渚嬪2024-05-14 01:00 琛ㄧず涓� 051401
         /// </summary>
         public int DayHour { get; set; }
-
- 
 
         /// <summary>
         /// 鏈�鏂伴娴嬫祦閲�(婊氬姩鍊�)
@@ -68,7 +68,6 @@
         /// 棰勬祴娴侀噺鍊兼椂闂�:PredictValueList瀵瑰簲鏃堕棿
         /// </summary>
         public DateTime PredictTime { get; set; }
- 
 
         /// <summary>
         /// 鐘舵�佺爜(0涓洪敊璇�,1涓烘纭�)
diff --git a/WaterPredict/IStation.ChEr.Application.WaterPredict/02-predict/ConnectHelper.cs b/WaterPredict/IStation.ChEr.Application.WaterPredict/02-predict/ConnectHelper.cs
index e26936c..d2cf55f 100644
--- a/WaterPredict/IStation.ChEr.Application.WaterPredict/02-predict/ConnectHelper.cs
+++ b/WaterPredict/IStation.ChEr.Application.WaterPredict/02-predict/ConnectHelper.cs
@@ -126,7 +126,7 @@
         public static List<SSAData> GetByPumpOpenState(DateTime starttime, DateTime endtime)
         {
             // string apiServiceUrl = System.Configuration.ConfigurationManager.AppSettings["ApiServiceUrl"];
-            string apiServiceUrl = "http://192.168.21.14:86/";
+            string apiServiceUrl = "http://192.168.21.14:86";
 
             string url = string.Format(@"{0}/PumpRun/GetPumpOpenState?startday={1}&endday={2}", apiServiceUrl, starttime, endtime);
             string Accept = "application/json";
diff --git a/WaterPredict/IStation.ChEr.TopShelf.WaterPredict.Core/Properties/PublishProfiles/FolderProfile2.pubxml.user b/WaterPredict/IStation.ChEr.TopShelf.WaterPredict.Core/Properties/PublishProfiles/FolderProfile2.pubxml.user
index c6a96f0..c679576 100644
--- a/WaterPredict/IStation.ChEr.TopShelf.WaterPredict.Core/Properties/PublishProfiles/FolderProfile2.pubxml.user
+++ b/WaterPredict/IStation.ChEr.TopShelf.WaterPredict.Core/Properties/PublishProfiles/FolderProfile2.pubxml.user
@@ -4,7 +4,7 @@
 -->
 <Project>
   <PropertyGroup>
-    <History>True|2024-05-30T13:59:08.2455401Z;True|2024-05-30T21:58:19.3234045+08:00;True|2024-05-30T21:57:30.3444112+08:00;True|2024-05-30T21:46:41.5809632+08:00;True|2024-05-30T21:44:31.2092288+08:00;True|2024-05-30T21:39:40.9872627+08:00;True|2024-06-01T17:23:23.5735421+08:00;True|2024-06-01T17:21:46.2076474+08:00;True|2024-06-01T17:20:10.3017359+08:00;True|2024-06-01T17:18:16.6449135+08:00;True|2024-06-01T17:18:02.6749261+08:00;True|2024-06-01T17:16:51.6629440+08:00;True|2024-06-01T17:11:32.9349239+08:00;True|2024-06-01T17:11:23.0294296+08:00;True|2024-05-30T17:10:44.0968822+08:00;True|2024-05-30T17:10:32.6735967+08:00;</History>
+    <History>True|2024-06-17T11:48:00.3386053Z;True|2024-06-13T15:33:29.4047649+08:00;True|2024-06-13T13:16:01.0932180+08:00;True|2024-06-13T13:09:10.3610474+08:00;True|2024-06-13T13:03:48.1740561+08:00;True|2024-06-13T13:02:43.5996009+08:00;True|2024-06-13T12:21:59.1079195+08:00;True|2024-06-13T12:19:41.9720787+08:00;True|2024-06-13T12:19:26.1098813+08:00;True|2024-06-13T12:17:02.3593639+08:00;True|2024-06-13T12:16:46.0329584+08:00;True|2024-06-13T12:11:46.5166191+08:00;True|2024-06-13T12:11:27.1757041+08:00;True|2024-06-13T12:04:20.5143859+08:00;True|2024-06-13T12:03:56.0685533+08:00;True|2024-05-30T21:59:08.2455401+08:00;True|2024-05-30T21:58:19.3234045+08:00;True|2024-05-30T21:57:30.3444112+08:00;True|2024-05-30T21:46:41.5809632+08:00;True|2024-05-30T21:44:31.2092288+08:00;True|2024-05-30T21:39:40.9872627+08:00;True|2024-06-01T17:23:23.5735421+08:00;True|2024-06-01T17:21:46.2076474+08:00;True|2024-06-01T17:20:10.3017359+08:00;True|2024-06-01T17:18:16.6449135+08:00;True|2024-06-01T17:18:02.6749261+08:00;True|2024-06-01T17:16:51.6629440+08:00;True|2024-06-01T17:11:32.9349239+08:00;True|2024-06-01T17:11:23.0294296+08:00;True|2024-05-30T17:10:44.0968822+08:00;True|2024-05-30T17:10:32.6735967+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git "a/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/CalcWaterPredictJob.cs" "b/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/CalcWaterPredictJob.cs"
index cce8e46..11c17fb 100644
--- "a/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/CalcWaterPredictJob.cs"
+++ "b/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/CalcWaterPredictJob.cs"
@@ -33,17 +33,17 @@
         /// <returns></returns>
         public Task Execute(IJobExecutionContext context)
         {
-            LogHelper.Info(DateTime.Now.ToString());
-            if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 5)
+            if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 15)
             {
                 insert2daysPredictData();
             }
             var TodayRealdataList = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "1h").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();
             //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
             int dayHour = WaterPredictRecord.ConvertIntDay(DateTime.Now);
+            int lastHour = WaterPredictRecord.ConvertIntDay(DateTime.Now.AddHours(-1));
             var TwoDaysList = _bll.GetEnd2Days(300);
-            LogHelper.Info("2");
             var select = TwoDaysList.Where(x => x.DayHour == dayHour).FirstOrDefault();
+            var lastDifferenceValue = TwoDaysList.Where(x => x.DayHour == lastHour).FirstOrDefault();
             if (TodayRealdataList != null)
             {
                 LogHelper.Info("宸叉壘鍒板綋鍓嶆椂闂村墠鎵�鏈夋暟鎹�");
@@ -57,16 +57,36 @@
                             var secondLastElementTotal = TodayRealdataList[TodayRealdataList.Count - 2].Total;
                             select.RealTotalValue = TodayRealdataList.Last().Total;
                             select.RealDifferenceValue = lastElementTotal - secondLastElementTotal;
-                            if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0)
+                            if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0 || select.RealDifferenceValue > 100000)
                             {
                                 if (PredictHelper.IsOpenState())
                                 {
-                                    select.Description = "鐪熷疄鏁版嵁鍑虹幇寮傚父";
+                                    select.Description += ",鏃堕棿:" + DateTime.Now.ToString("HH:mm") + "浼楁瘏鎻愪緵鐪熷疄鏁版嵁鍑虹幇寮傚父";
                                     var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
                                     select.BakData = JsonHelper.Object2Json(ErrorBakData);
                                     select.States = 0;
+                                    if (lastDifferenceValue.RealDifferenceValue > 0)
+                                    {
+                                        select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue;
+                                    }
+                                    else
+                                    {
+                                        select.RealDifferenceValue = 60000;
+                                    }
                                     _bll.Update(select);
-                                    return null;
+                                }
+                                else
+                                {
+                                    if (lastDifferenceValue.RealDifferenceValue > 0)
+                                    {
+                                        select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue;
+                                    }
+                                    else
+                                    {
+                                        select.RealDifferenceValue = 60000;
+                                    }
+                                    select.States = 0;
+                                    _bll.Update(select);
                                 }
                             }
                             else
@@ -79,14 +99,35 @@
                         {
                             select.RealTotalValue = TodayRealdataList.Last().Total;
                             select.RealDifferenceValue = TodayRealdataList.Last().Total - _bll.GetEnd2Days(240).Where(x => x.DayHour == WaterPredictRecord.ConvertIntDay(DateTime.Now.AddHours(-1))).Last().RealTotalValue;
-                            if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0)
+                            if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0 || select.RealDifferenceValue > 100000)
                             {
                                 if (PredictHelper.IsOpenState())
                                 {
-                                    select.Description = "鐪熷疄鏁版嵁鍑虹幇寮傚父";
+                                    select.Description += ",鏃堕棿:" + DateTime.Now.ToString("HH:mm") + "浼楁瘏鎻愪緵鐪熷疄鏁版嵁鍑虹幇寮傚父";
                                     var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
                                     select.BakData = JsonHelper.Object2Json(ErrorBakData);
                                     select.States = 0;
+                                    if (lastDifferenceValue.RealDifferenceValue > 0)
+                                    {
+                                        select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue;
+                                    }
+                                    else
+                                    {
+                                        select.RealDifferenceValue = 60000;
+                                    }
+                                    _bll.Update(select);
+                                }
+                                else
+                                {
+                                    if (lastDifferenceValue.RealDifferenceValue > 0)
+                                    {
+                                        select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue;
+                                    }
+                                    else
+                                    {
+                                        select.RealDifferenceValue = 60000;
+                                    }
+                                    select.States = 1;
                                     _bll.Update(select);
                                 }
                             }
@@ -99,32 +140,35 @@
                     }
                     catch (Exception e)
                     {
-                        select.RealTotalValue = 0;
+                        select.RealTotalValue = TodayRealdataList.Last().Total;
                         select.States = 0;
-                        select.Description = "涓虹湡瀹炴暟鎹祴鍊奸敊璇�!" + "鍘熷洜:" + e;
+                        select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; ;
+                        select.Description += ",鏃堕棿:" + DateTime.Now.ToString("HH:mm") + "閬囧埌鏈煡閿欒!" + "鍘熷洜:" + e;
                         var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
                         select.BakData = JsonHelper.Object2Json(ErrorBakData);
                         _bll.Update(select);
-                        // LogHelper.Info("鏈兘浠庝紬姣呭彇鍒扮湡瀹炴暟鎹�,鏃堕棿:" + DateTime.Now.ToString());
+                        LogHelper.Info("閬囧埌鏈煡閿欒!" + "鍘熷洜:" + e);
                     }
                 }
                 else
                 {
-                    select.RealTotalValue = 0;
-                    select.States = 0;
-                    select.RealDifferenceValue = 60000;
-                    select.Description = "鍙栧埌鐨勬暟鎹笌褰撳墠鏃堕棿涓嶅尮閰�,鎴栨壘涓嶅埌涓庡綋鍓嶆椂闂村尮閰嶇殑棰勬祴鍊�";
-                    var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
-                    select.BakData = JsonHelper.Object2Json(ErrorBakData);
-                    _bll.Update(select);
+                    /*  select.RealTotalValue = 0;
+                      select.States = 0;
+                      select.RealDifferenceValue = 60000;
+                      select.Description += ",鏃堕棿:" + DateTime.Now.ToString("HH:mm") + "鍙栧埌鐨勬暟鎹笌褰撳墠鏃堕棿涓嶅尮閰�,鎴栨壘涓嶅埌涓庡綋鍓嶆椂闂村尮閰嶇殑棰勬祴鍊�";
+                      var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
+                      select.BakData = JsonHelper.Object2Json(ErrorBakData);
+                      _bll.Update(select);*/
+                    LogHelper.Info("鎵句笉鍒板搴斿綋鍓嶆椂闂村搴旀暟鎹� 鏃堕棿:" + DateTime.Now);
+                    return null;
                 }
             }
             else
             {
                 select.RealTotalValue = 0;
                 select.States = 0;
-                select.Description = "鏈兘浠庝紬姣呭彇鍒扮湡瀹炴暟鎹�";
-                select.RealDifferenceValue = 60000;
+                select.Description += ",鏃堕棿:" + DateTime.Now.ToString("HH:mm") + "鏈兘浠庝紬姣呭彇鍒扮湡瀹炴暟鎹�";
+                select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; ;
                 var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
                 select.BakData = JsonHelper.Object2Json(ErrorBakData);
                 _bll.Update(select);
@@ -145,22 +189,29 @@
             var starthour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, 0));
             var endhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, 23));
             var currentdata = TwoDaysList.Where(x => x.DayHour >= starthour && x.DayHour <= endhour).OrderBy(x => x.DayHour).ToList();
-            for (int i = 0; i < currentdata.Count; i++)
+            if (currentdata.Count == 24)
             {
-                currentdata[i].LastPredictValue = Math.Round(predictdata[i].Total, 0);
-                if (currentdata[i].LastPredictValue > 90000 || currentdata[i].LastPredictValue < 20000)
+                for (int i = 0; i < currentdata.Count; i++)
                 {
-                    currentdata[i].Description = "棰勬祴鏁版嵁鍋忓樊杩囧ぇ";
-                    var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
-                    currentdata[i].BakData = JsonHelper.Object2Json(ErrorBakData);
-                    currentdata[i].States = 0;
+                    currentdata[i].LastPredictValue = Math.Round(predictdata[i].Total, 0);
+                    if (currentdata[i].LastPredictValue > 90000 || currentdata[i].LastPredictValue < 20000)
+                    {
+                        currentdata[i].Description += ",鏃堕棿:" + DateTime.Now.ToString("HH:mm") + "棰勬祴鏁版嵁鍋忓樊杩囧ぇ";
+                        var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();  //鑾峰彇褰撳墠鏃ユ湡鍓嶄粖澶╃殑鎵�鏈夊��
+                        currentdata[i].BakData = JsonHelper.Object2Json(ErrorBakData);
+                        currentdata[i].States = 0;
+                    }
+                    else
+                    {
+                        currentdata[i].States = 1;
+                    }
+                    currentdata[i].LastPredictTime = DateTime.Now;
+                    currentdata[i].PredictValueList = currentdata[i].LastPredictValue.ToString() + "," + currentdata[i].PredictValueList;
                 }
-                else
-                {
-                    currentdata[i].States = 1;
-                }
-                currentdata[i].LastPredictTime = DateTime.Now;
-                currentdata[i].PredictValueList = currentdata[i].LastPredictValue.ToString() + "," + currentdata[i].PredictValueList;
+            }
+            else
+            {
+                LogHelper.Info("浠婂ぉ涓�澶╃殑鏁版嵁灏忎簬24鏉� ---涓嶅叏");
             }
             _bll.BatSet(currentdata);
             LogHelper.Info("宸茬粡鏇挎崲鐪熷疄鏁版嵁");
@@ -189,23 +240,40 @@
             var predictdata = _SSAPredictHelper.Predict(tupleList, 3600, 10, 2880, (float)0.99, 48);
             var list = alllist.Where(x => x.DayHour >= lastdaystarthour + 100 && x.DayHour <= lastdayendhour + 100).OrderBy(x => x.DayHour).ToList();
             //鎵惧埌浠婂ぉ鎵�鏈夌殑棰勬祴鏁版嵁,骞舵浛鎹�
-            for (int i = 0; i < predictdata.Count; i++)
+            if (list.Count == 0 || list.Count < 24)
             {
-                if (i < 24)
-                {
-                    list[i].LastPredictTime = DateTime.Now;
-                    list[i].LastPredictValue = Math.Round(predictdata[i].Total, 0);
-                    list[i].PredictValueList = list[i].LastPredictValue.ToString() + "," + list[i].PredictValueList;
-                    list[i].States = 1;
-                }
-                else
+                LogHelper.Info("鏇挎崲褰撴棩瀹屾暣棰勬祴鏁版嵁鏃舵壘涓嶅埌瀵瑰簲鏃堕棿--");
+                for (int i = 24; i < predictdata.Count; i++)
                 {
                     int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", predictdata[i].DateTime.Month, predictdata[i].DateTime.Day, predictdata[i].DateTime.Hour));
                     list.Add(new WaterPredictRecord { DayHour = dayHour, PredictTime = DateTime.Now, LastPredictValue = Math.Round(predictdata[i].Total, 0), States = 1 });
                 }
+                _bll.BatSet(list);
+                LogHelper.Info("鏃堕棿:" + DateTime.Now + "---棰勬祴浠婃槑涓ゅぉ鏁版嵁");
+                return;
             }
-            _bll.BatSet(list);
-            LogHelper.Info("鏃堕棿:" + DateTime.Now + "---棰勬祴浠婃槑涓ゅぉ鏁版嵁");
+            if (list.Count == 24)
+            {
+                for (int i = 0; i < predictdata.Count; i++)
+                {
+                    if (i < 24)
+                    {
+                        list[i].LastPredictTime = DateTime.Now;
+                        list[i].LastPredictValue = Math.Round(predictdata[i].Total, 0);
+                        list[i].PredictValueList = list[i].LastPredictValue.ToString() + "," + list[i].PredictValueList;
+                        list[i].States = 1;
+                    }
+                    else
+                    {
+                        int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", predictdata[i].DateTime.Month, predictdata[i].DateTime.Day, predictdata[i].DateTime.Hour));
+                        list.Add(new WaterPredictRecord { DayHour = dayHour, PredictTime = DateTime.Now, LastPredictValue = Math.Round(predictdata[i].Total, 0), States = 1 });
+                    }
+                }
+                _bll.BatSet(list);
+                LogHelper.Info("鏃堕棿:" + DateTime.Now + "---棰勬祴浠婃槑涓ゅぉ鏁版嵁");
+            }
+            /*  _bll.BatSet(list);
+              LogHelper.Info("鏃堕棿:" + DateTime.Now + "---棰勬祴浠婃槑涓ゅぉ鏁版嵁");*/
         }
     }
 }
\ No newline at end of file
diff --git "a/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictCronJobHelper.cs" "b/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictCronJobHelper.cs"
index c57725d..ddef850 100644
--- "a/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictCronJobHelper.cs"
+++ "b/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictCronJobHelper.cs"
@@ -36,7 +36,7 @@
         //   4.鍒涘缓Trigger
         var trigger = TriggerBuilder.Create()
         .WithIdentity(_triggerName, _jobGroup)
-        .WithCronSchedule("0 05 0/1 * * ? ")//"0 32 0/1 * * ? "
+        .WithCronSchedule("0 15 0/1 * * ? ")//"0 32 0/1 * * ? "
         .Build();
 
         /*        //4.鍒涘缓Trigger
diff --git "a/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictHelper.cs" "b/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictHelper.cs"
index 060487c..80a51f0 100644
--- "a/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictHelper.cs"
+++ "b/WaterPredict/IStation.ChEr.WebApi.Predict/\344\273\273\345\212\241/PredictHelper.cs"
@@ -1,9 +1,4 @@
 锘縰sing IStation.Application;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace IStation.ChEr.WebApi
 {
@@ -11,13 +6,17 @@
     {
         public static bool IsOpenState()
         {
-            var result = ConnectHelper.GetByPumpOpenState(DateTime.Now, DateTime.Now.AddHours(-1));
+            var result = ConnectHelper.GetByPumpOpenState(DateTime.Now, DateTime.Now.AddDays(1));
             foreach (var item in result)
             {
-                if (item.Total != 0)
+                if (item.DateTime.Hour == DateTime.Now.Hour)
                 {
-                    LogHelper.Info("寮�鏈烘椂闂翠笌绱娴侀噺涓嶅搴�");
-                    return true;
+                    if (item.Total != 0)
+                    {
+                        LogHelper.Info("寮�鏈烘椂闂翠笌绱娴侀噺涓嶅搴�");
+                        return true;
+                    }
+                    return false;
                 }
             }
             return false;
diff --git a/WebApi/Controllers/AnaPrjController.cs b/WebApi/Controllers/AnaPrjController.cs
index 617e5a9..bc6b71d 100644
--- a/WebApi/Controllers/AnaPrjController.cs
+++ b/WebApi/Controllers/AnaPrjController.cs
@@ -12,7 +12,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using System.Web;
-using System.Web.Http; 
+using System.Web.Http;
 
 namespace IStation.WebApi.Controllers
 {
@@ -23,15 +23,15 @@
     public class AnaPrjController : ApiController
     {
         /// <summary>
-        ///  
+        ///
         /// </summary>
         /// <param name="day"></param>
         /// <returns></returns>
         [Route("Debug")]
         [HttpGet]
         public IStation.Dto.ApiResult Debug(string info)
-        { 
-            IStation.LogHelper.Info("debug:"+ info);
+        {
+            IStation.LogHelper.Info("debug:" + info);
 
             //IStation.CalcModel.AnaPrj entity = new IStation.CalcModel.AnaPrj();
             //entity.ID = "123";
@@ -45,14 +45,13 @@
             //var dal = new IStation.DAL.AnaProject();
             //dal.Insert(entity, ana_request);
 
-
             var dal = new IStation.DAL.AnaProject();
             var aa = dal.GetLastRecord();
-            return new IStation.Dto.ApiResult<string >("ok");
+            return new IStation.Dto.ApiResult<string>("ok");
         }
 
         /// <summary>
-        ///  
+        ///
         /// </summary>
         /// <param name="day"></param>
         /// <returns></returns>
@@ -70,7 +69,7 @@
                 return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 鏍煎紡涓嶆纭�" };
             }
             IStation.CalcModel.AnaRequestBase requestBase = null;
-            var prj = Common.HistoryAnaPrjFileHelper.GetByStartDay(d,out requestBase); 
+            var prj = Common.HistoryAnaPrjFileHelper.GetByStartDay(d, out requestBase);
             return new IStation.Dto.ApiResult<IStation.CalcModel.AnaPrj>(prj);
         }
 
@@ -127,6 +126,7 @@
             anaRequest.WaterLevels闀挎睙 = ZyPrjController.GetTide3Day(Model.eTideSouce.Book, start_timme);
 
             #region 鍙栨按鎬婚噺
+
             if (!string.IsNullOrEmpty(request.TotalFlowIn))
             {
                 double TotalFlowIn = 0;
@@ -145,9 +145,11 @@
 
                 anaRequest.TotalFlowIn = TotalFlowIn;
             }
-            #endregion
 
-            #region  姘翠綅瑕佹眰
+            #endregion 鍙栨按鎬婚噺
+
+            #region 姘翠綅瑕佹眰
+
             if (!string.IsNullOrEmpty(request.MaxReservoirLevelTime))
             {
                 anaRequest.MaxReservoirLevelTime = request.MaxReservoirLevelTime;
@@ -175,12 +177,15 @@
                     return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "璇疯緭鍏ュ彇姘存�婚噺鎴栨按浣嶈姹�" };
                 }
             }
-            #endregion
+
+            #endregion 姘翠綅瑕佹眰
 
             #region 渚涙按閲�
+
             if (string.IsNullOrEmpty(request.TotalFlowOut))
             {//鐢ㄩ娴嬪��
                 #region 鐢ㄩ娴嬪��
+
                 anaRequest.PerHourFlowOut = new List<double>();
                 IStation.DAL.WaterPredictRecord dal = new DAL.WaterPredictRecord();
                 var water_records = dal.GetByHourRangle(start_timme, end_timme);
@@ -212,9 +217,10 @@
                             Data = error_info11
                         };
                     }
-                    anaRequest.PerHourFlowOut.Add(r.LastPredictValue );//璁$畻涓敤鍚�
+                    anaRequest.PerHourFlowOut.Add(r.LastPredictValue);//璁$畻涓敤鍚�
                 }
-                #endregion
+
+                #endregion 鐢ㄩ娴嬪��
             }
             else
             {
@@ -240,7 +246,8 @@
                 }
                 anaRequest.PerHourFlowOut = list;
             }
-            #endregion
+
+            #endregion 渚涙按閲�
 
             //寮�濮嬫椂鐨勫紑鏈虹姸鎬�
             if (request.StartOpenPumpIndexArray == null)
@@ -250,7 +257,6 @@
             }
             anaRequest.IsKnownStartOpenPump = true;
             anaRequest.StartOpenPumpIndexArray = request.StartOpenPumpIndexArray;
-
 
             //闄堣姘村簱姘翠綅
             if (string.IsNullOrEmpty(request.StartReservoirLevel))
@@ -276,7 +282,6 @@
             //    isTemp = Convert.ToBoolean(request.IsTemporary);
             //}
 
-
             var calcHelper = new IStation.CalcPrjHelper();
             AnaPrj defaultPrj = null;
             string error_info = calcHelper.Calc(anaRequest, out defaultPrj);
@@ -299,9 +304,6 @@
             //{
             //    var ret = Common.HistoryAnaPrjFileHelper.SavePrj(IStation.AnaGlobalParas.Setting, anaRequest, defaultPrj);
             //}
-
-
-           
 
             #region 鎺ㄩ��
 
@@ -336,8 +338,6 @@
                 {
                     return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day 鏍煎紡涓嶆纭�" };
                 }
-       
-               
 
                 IStation.CalcModel.AnaRequestBase requestBase;
                 var prj = Common.HistoryAnaPrjFileHelper.GetByEndTime(last_end_time, out requestBase);
@@ -347,14 +347,13 @@
                     return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = string.Format("鏈壘鍒皗0}缁撴潫鐨勫垎鏋愰」鐩�", AnaStartTime) };
                 }
 
-                DateTime calcTime =  DateTime.Now;//new DateTime(2024, 6, 11, 17, 10, 10);//
+                DateTime calcTime = DateTime.Now;//new DateTime(2024, 6, 11, 17, 10, 10);//
 
                 IStation.CalcModel.ZyStartInfo zyStartInfo = new IStation.CalcModel.ZyStartInfo();
                 if (prj.EndTimeOpenPumpStatus != null && prj.EndTimeOpenPumpStatus.Count > 0)
                 {
-                    zyStartInfo.OpenPumpStatus = string.Join("," , prj.EndTimeOpenPumpStatus);
+                    zyStartInfo.OpenPumpStatus = string.Join(",", prj.EndTimeOpenPumpStatus);
                 }
-                
 
                 var near_pt = prj.NearPointTime(calcTime);
                 if (near_pt == null)
@@ -375,7 +374,6 @@
                 var lz = prj.BlockTimes.Last().PointTimes.Last().WaterLevelH;
                 double start_yuce = lz + now_level - new_yuce;
 
-
                 IStation.LogHelper.Info(string.Format("GetAnaStartPara  {0},{1},{2},{3} ", lz, now_level, new_yuce, start_yuce));
 
                 zyStartInfo.ReservoirWaterLevel = start_yuce;
@@ -389,7 +387,7 @@
         }
 
         /// <summary>
-        ///  
+        ///
         /// </summary>
         /// <param name="day"></param>
         /// <returns></returns>
@@ -400,15 +398,14 @@
             var list = HistoryAnaPrjFileHelper.GetExistStatus(year, month);
             if (list == null)
             {
-                list = new List<string >();
+                list = new List<string>();
             }
-    
+
             return new IStation.Dto.ApiResult<List<string>>(list);
         }
 
-
         ///// <summary>
-        /////  
+        /////
         ///// </summary>
         ///// <param name="day"></param>
         ///// <returns></returns>
@@ -428,7 +425,7 @@
         //}
 
         ///// <summary>
-        /////  
+        /////
         ///// </summary>
         ///// <param name="day"></param>
         ///// <returns></returns>
@@ -439,19 +436,20 @@
         //    var  status = HistoryAnaPrjFileHelper.GetLastTime_OpenPumpStatus(day);
         //    if(status == null)
         //        return new IStation.Dto.ApiResult<string >("");
-        //    else 
+        //    else
         //    return new IStation.Dto.ApiResult<string >(string.Join(",",status));
         //}
 
         public class SavePrjRequest
-        { 
+        {
             public IStation.CalcModel.AnaSetting settting { get; set; }
             public IStation.CalcModel.AnaRequestBase requestBase { get; set; }
             public IStation.CalcModel.AnaPrj prj { get; set; }
             public bool isSubmit { get; set; }
         }
+
         /// <summary>
-        /// 
+        ///
         /// </summary>
         /// <param name="request"></param>
         /// <returns></returns>
@@ -459,7 +457,7 @@
         [HttpPost]
         public async Task<IStation.Dto.ApiResult> SavePrj([FromBody] SavePrjRequest request)
         {
-            if (request == null  )
+            if (request == null)
             {
                 return new IStation.Dto.ApiResult() { Code = ApiResultCode.Error, Message = "day null" };
             }
@@ -474,15 +472,14 @@
             //var dal = new IStation.DAL.AnaProject();
             //dal.Insert(request.prj, request.requestBase);
 
-
             if (request.isSubmit)
             {
                 string error = await ZyProjectHelper.SubmitPrj(request.prj);//, (id) => { IStation.LogHelper.Info("SavePrj success id=" + id); }, (info) => { IStation.LogHelper.Info("SavePrj failse info:" + info); });//.Result;
 
-                if(!string.IsNullOrEmpty(error))
+                if (!string.IsNullOrEmpty(error))
                 {
                     IStation.LogHelper.Info("Submit prj finish (fail) day:" + request.requestBase.StartTime + ",error:" + error);
-                    return new IStation.Dto.ApiResult<string>(error) {  Code = ApiResultCode.Error};
+                    return new IStation.Dto.ApiResult<string>(error) { Code = ApiResultCode.Error };
                 }
                 else
                 {
@@ -490,14 +487,7 @@
                 }
             }
 
-
             return new IStation.Dto.ApiResult<bool>(ret) { Code = ApiResultCode.Success };
         }
-
-
-
- 
-
-
     }
-}
+}
\ No newline at end of file
diff --git "a/WebApi/Controllers/ReservoirParasController - \345\244\215\345\210\266.cs" "b/WebApi/Controllers/ReservoirParasController - \345\244\215\345\210\266.cs"
new file mode 100644
index 0000000..62fd67a
--- /dev/null
+++ "b/WebApi/Controllers/ReservoirParasController - \345\244\215\345\210\266.cs"
@@ -0,0 +1,50 @@
+锘縰sing IStation.Common;
+using IStation.Dto;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Web;
+using System.Web.Http;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+
+namespace IStation.WebApi.Controllers
+{
+    /// <summary>
+    /// 姘村簱鍙傛暟
+    /// </summary>
+    [RoutePrefix("ReservoirParas")]
+    public class ReservoirParasController : ApiController
+    {
+        /// <summary>
+        /// 鑾峰彇 
+        /// </summary> 
+        /// <returns></returns>
+        [Route("GetList")]
+        [HttpGet]
+        public IStation.Dto.ApiResult GetList()
+        {
+            var list = AnaGlobalParas.ReservoirParasList;
+
+            return new IStation.Dto.ApiResult<List<Model.ReservoirParas>>(list);
+        }
+
+        /// <summary>
+        /// 淇濆瓨 
+        /// </summary> 
+        /// <returns></returns>
+        [Route("SaveList")]
+        [HttpPost]
+        public IStation.Dto.ApiResult GetList([FromBody] List<Model.ReservoirParas> list)
+        {
+            IStation.Common.ReservoirParasHelper.SaveList(list);
+
+            return new IStation.Dto.ApiResult<bool>(true);
+        }
+
+    }
+}
\ No newline at end of file
diff --git a/WebApi/IStation.ChEr.WebApi.csproj.user b/WebApi/IStation.ChEr.WebApi.csproj.user
index 205e1f4..60d5730 100644
--- a/WebApi/IStation.ChEr.WebApi.csproj.user
+++ b/WebApi/IStation.ChEr.WebApi.csproj.user
@@ -1,7 +1,7 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <LastActiveSolutionConfig>Release|Any CPU</LastActiveSolutionConfig>
+    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
     <UseIISExpress>true</UseIISExpress>
     <Use64BitIISExpress>true</Use64BitIISExpress>
     <IISExpressSSLPort>44318</IISExpressSSLPort>
diff --git a/WebApi/Logs/Tests/20240612.txt b/WebApi/Logs/Tests/20240612.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/WebApi/Logs/Tests/20240612.txt
diff --git a/WebApi/Logs/Tests/20240613.txt b/WebApi/Logs/Tests/20240613.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/WebApi/Logs/Tests/20240613.txt
diff --git a/WebApi/Logs/Tests/20240617.txt b/WebApi/Logs/Tests/20240617.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/WebApi/Logs/Tests/20240617.txt
diff --git a/WebApi/Logs/info.log b/WebApi/Logs/info.log
index ce05951..0447e1e 100644
--- a/WebApi/Logs/info.log
+++ b/WebApi/Logs/info.log
@@ -219,3 +219,13 @@
 2024-05-31 12:17:33,193|通过取数据库2|
 2024-05-31 12:17:34,647|下一步|
 2024-05-31 12:17:35,828|下一步2|
+2024-06-12 10:50:54,829|初始化成功|
+2024-06-12 10:51:17,438|初始化成功|
+2024-06-12 10:52:36,760|初始化成功|
+2024-06-12 18:32:40,269|初始化成功|
+2024-06-13 14:28:50,970|初始化成功|
+2024-06-13 14:34:05,403|初始化成功|
+2024-06-13 14:41:10,117|初始化成功|
+2024-06-13 14:45:06,282|初始化成功|
+2024-06-13 14:48:47,992|初始化成功|
+2024-06-17 19:57:13,068|初始化成功|
diff --git a/WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index 97b8e7e..d21276f 100644
--- a/WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/WebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project>
   <PropertyGroup>
     <_PublishTargetUrl>D:\WorkData\IStation\ChEqCalc.V1.3\WebApi\bin\app.publish\</_PublishTargetUrl>
-    <History>True|2024-05-29T14:55:40.8917081Z;True|2024-05-29T22:53:51.8888824+08:00;True|2024-05-29T21:24:14.2935182+08:00;True|2024-05-29T21:15:26.4176230+08:00;True|2024-05-29T20:21:23.2652363+08:00;True|2024-05-20T22:19:25.6819845+08:00;True|2024-05-20T22:17:16.3228686+08:00;True|2024-05-20T22:09:43.8419388+08:00;True|2024-05-20T20:47:30.7123496+08:00;False|2024-05-20T20:46:44.8172532+08:00;True|2024-05-17T09:19:12.0003732+08:00;True|2024-05-13T16:34:26.1798389+08:00;True|2024-05-13T15:25:51.2634210+08:00;True|2024-05-13T15:06:06.6614778+08:00;True|2024-05-13T14:05:16.2224051+08:00;True|2024-04-12T11:21:29.5845897+08:00;True|2024-04-12T11:05:57.4077528+08:00;True|2024-04-12T09:48:11.6556767+08:00;True|2024-04-07T14:56:11.5899311+08:00;True|2024-03-13T13:43:30.5799100+08:00;True|2024-03-13T13:36:27.8330849+08:00;True|2024-03-13T13:28:52.4054628+08:00;True|2024-03-13T13:09:48.3039075+08:00;True|2024-03-13T13:06:59.6509464+08:00;True|2024-03-13T12:56:44.3509382+08:00;True|2024-03-13T12:43:04.0436634+08:00;False|2024-03-13T12:42:49.1037427+08:00;False|2024-03-13T12:42:25.1444775+08:00;True|2024-03-13T12:34:29.4082591+08:00;True|2024-03-13T12:32:39.1414007+08:00;True|2024-03-13T12:27:13.0387359+08:00;True|2024-03-13T12:24:15.2859267+08:00;</History>
+    <History>True|2024-06-17T12:21:42.5898298Z;True|2024-06-13T10:29:57.3049924+08:00;True|2024-05-29T22:55:40.8917081+08:00;True|2024-05-29T22:53:51.8888824+08:00;True|2024-05-29T21:24:14.2935182+08:00;True|2024-05-29T21:15:26.4176230+08:00;True|2024-05-29T20:21:23.2652363+08:00;True|2024-05-20T22:19:25.6819845+08:00;True|2024-05-20T22:17:16.3228686+08:00;True|2024-05-20T22:09:43.8419388+08:00;True|2024-05-20T20:47:30.7123496+08:00;False|2024-05-20T20:46:44.8172532+08:00;True|2024-05-17T09:19:12.0003732+08:00;True|2024-05-13T16:34:26.1798389+08:00;True|2024-05-13T15:25:51.2634210+08:00;True|2024-05-13T15:06:06.6614778+08:00;True|2024-05-13T14:05:16.2224051+08:00;True|2024-04-12T11:21:29.5845897+08:00;True|2024-04-12T11:05:57.4077528+08:00;True|2024-04-12T09:48:11.6556767+08:00;True|2024-04-07T14:56:11.5899311+08:00;True|2024-03-13T13:43:30.5799100+08:00;True|2024-03-13T13:36:27.8330849+08:00;True|2024-03-13T13:28:52.4054628+08:00;True|2024-03-13T13:09:48.3039075+08:00;True|2024-03-13T13:06:59.6509464+08:00;True|2024-03-13T12:56:44.3509382+08:00;True|2024-03-13T12:43:04.0436634+08:00;False|2024-03-13T12:42:49.1037427+08:00;False|2024-03-13T12:42:25.1444775+08:00;True|2024-03-13T12:34:29.4082591+08:00;True|2024-03-13T12:32:39.1414007+08:00;True|2024-03-13T12:27:13.0387359+08:00;True|2024-03-13T12:24:15.2859267+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
   <ItemGroup>
@@ -100,16 +100,16 @@
       <publishTime>04/17/2020 04:38:56</publishTime>
     </File>
     <File Include="bin/IStation.AutoMapper.dll">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.AutoMapper.pdb">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Calc.Core.dll">
-      <publishTime>05/29/2024 21:15:24</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.Calc.Core.pdb">
-      <publishTime>05/29/2024 21:15:24</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.Calc.ErQu.dll">
       <publishTime>03/13/2024 12:32:32</publishTime>
@@ -118,61 +118,61 @@
       <publishTime>03/13/2024 12:32:32</publishTime>
     </File>
     <File Include="bin/IStation.Calc.Model.dll">
-      <publishTime>05/29/2024 20:24:52</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.Calc.Model.pdb">
-      <publishTime>05/29/2024 20:24:52</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.Core.dll">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Core.pdb">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.DAL.Paras.dll">
-      <publishTime>05/29/2024 21:15:24</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.DAL.Paras.pdb">
-      <publishTime>05/29/2024 21:15:24</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.DAL.Project.dll">
-      <publishTime>05/29/2024 20:24:52</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.DAL.Project.dll.config">
       <publishTime>04/29/2024 13:50:24</publishTime>
     </File>
     <File Include="bin/IStation.DAL.Project.pdb">
-      <publishTime>05/29/2024 20:24:52</publishTime>
+      <publishTime>06/17/2024 20:21:40</publishTime>
     </File>
     <File Include="bin/IStation.Entity.Basic.dll">
-      <publishTime>05/13/2024 16:34:21</publishTime>
+      <publishTime>06/17/2024 19:56:55</publishTime>
     </File>
     <File Include="bin/IStation.Entity.Basic.pdb">
-      <publishTime>05/13/2024 16:34:21</publishTime>
+      <publishTime>06/17/2024 19:56:55</publishTime>
     </File>
     <File Include="bin/IStation.Entity.Core.dll">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Entity.Core.pdb">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Log.dll">
-      <publishTime>05/20/2024 20:47:07</publishTime>
+      <publishTime>06/17/2024 19:56:55</publishTime>
     </File>
     <File Include="bin/IStation.Log.pdb">
-      <publishTime>05/20/2024 20:47:07</publishTime>
+      <publishTime>06/17/2024 19:56:55</publishTime>
     </File>
     <File Include="bin/IStation.MemoryCache.dll">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.MemoryCache.pdb">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Model.Basic.dll">
-      <publishTime>05/29/2024 20:21:19</publishTime>
+      <publishTime>06/17/2024 20:21:39</publishTime>
     </File>
     <File Include="bin/IStation.Model.Basic.pdb">
-      <publishTime>05/29/2024 20:21:19</publishTime>
+      <publishTime>06/17/2024 20:21:39</publishTime>
     </File>
     <File Include="bin/IStation.Model.Config.dll">
       <publishTime>03/13/2024 12:32:32</publishTime>
@@ -181,58 +181,58 @@
       <publishTime>03/13/2024 12:32:32</publishTime>
     </File>
     <File Include="bin/IStation.Model.Core.dll">
-      <publishTime>05/20/2024 20:46:40</publishTime>
+      <publishTime>06/13/2024 15:04:43</publishTime>
     </File>
     <File Include="bin/IStation.Model.Core.pdb">
-      <publishTime>05/20/2024 20:46:40</publishTime>
+      <publishTime>06/13/2024 15:04:43</publishTime>
     </File>
     <File Include="bin/IStation.Model.Curve.dll">
-      <publishTime>05/20/2024 22:17:13</publishTime>
+      <publishTime>06/17/2024 19:56:55</publishTime>
     </File>
     <File Include="bin/IStation.Model.Curve.pdb">
-      <publishTime>05/20/2024 22:17:13</publishTime>
+      <publishTime>06/17/2024 19:56:55</publishTime>
     </File>
     <File Include="bin/IStation.Model.Monitor.dll">
-      <publishTime>05/20/2024 20:46:40</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Model.Monitor.pdb">
-      <publishTime>05/20/2024 20:46:40</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Newtonsoft.dll">
-      <publishTime>05/20/2024 15:40:36</publishTime>
+      <publishTime>06/13/2024 14:05:48</publishTime>
     </File>
     <File Include="bin/IStation.Newtonsoft.pdb">
-      <publishTime>05/20/2024 15:40:36</publishTime>
+      <publishTime>06/13/2024 14:05:48</publishTime>
     </File>
     <File Include="bin/IStation.Settings.dll">
-      <publishTime>05/20/2024 20:46:40</publishTime>
+      <publishTime>06/13/2024 15:04:43</publishTime>
     </File>
     <File Include="bin/IStation.Settings.pdb">
-      <publishTime>05/20/2024 20:46:40</publishTime>
+      <publishTime>06/13/2024 15:04:43</publishTime>
     </File>
     <File Include="bin/IStation.SnowflakeId.dll">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.SnowflakeId.pdb">
-      <publishTime>05/13/2024 16:29:27</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Unit.dll">
-      <publishTime>05/13/2024 16:29:28</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Unit.pdb">
-      <publishTime>05/13/2024 16:29:28</publishTime>
+      <publishTime>06/13/2024 15:04:42</publishTime>
     </File>
     <File Include="bin/IStation.Untity.dll">
-      <publishTime>05/24/2024 13:41:44</publishTime>
+      <publishTime>06/17/2024 20:21:39</publishTime>
     </File>
     <File Include="bin/IStation.Untity.pdb">
-      <publishTime>05/24/2024 13:41:44</publishTime>
+      <publishTime>06/17/2024 20:21:39</publishTime>
     </File>
     <File Include="bin/IStation.WebApi.dll">
-      <publishTime>05/31/2024 01:34:14</publishTime>
+      <publishTime>06/17/2024 20:21:41</publishTime>
     </File>
     <File Include="bin/IStation.WebApi.pdb">
-      <publishTime>05/31/2024 01:34:14</publishTime>
+      <publishTime>06/17/2024 20:21:41</publishTime>
     </File>
     <File Include="bin/log4net.dll">
       <publishTime>03/25/2024 09:57:26</publishTime>
@@ -682,7 +682,7 @@
       <publishTime>03/25/2024 09:57:27</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>05/29/2024 21:15:25</publishTime>
+      <publishTime>06/13/2024 14:50:47</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git "a/WebApi/\344\274\227\346\257\205\350\260\203\345\272\246/ZyConnectHelper.cs" "b/WebApi/\344\274\227\346\257\205\350\260\203\345\272\246/ZyConnectHelper.cs"
index 93f486e..2950bde 100644
--- "a/WebApi/\344\274\227\346\257\205\350\260\203\345\272\246/ZyConnectHelper.cs"
+++ "b/WebApi/\344\274\227\346\257\205\350\260\203\345\272\246/ZyConnectHelper.cs"
@@ -1,12 +1,11 @@
-锘� 
-using IStation.Untity;
+锘縰sing IStation.Untity;
 using IStation.ZyDto;
-using IStation.ZyModel; 
+using IStation.ZyModel;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
-using System.Linq; 
+using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -70,7 +69,7 @@
         }
 
         /// <summary>
-        /// 
+        ///
         /// </summary>
         /// <param name="result"></param>
         /// <returns></returns>

--
Gitblit v1.9.3