From e50aa0608755bb4fbb2729912850b6ba4a5c75bc Mon Sep 17 00:00:00 2001
From: tangxu <76880903@qq.com>
Date: 星期四, 03 十一月 2022 21:42:16 +0800
Subject: [PATCH] 添加 三个取水泵房

---
 Calculation/IStation.Calculation.Dispatch/general/OptAna.cs                         |    8 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/陈行一输/OptAna.cs        |    6 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/金海泵站/KeepStatus.cs    |    6 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/长兴岛/OptAna.cs         |   10 
 Application/IStation.Application.OpenApi/shys/plan/shys/shys金泽取水.cs                 |  122 ++++-----
 Application/IStation.Application.OpenApi/shys/plan/shys/shys金泽泵站.cs                 |    2 
 Application/IStation.Application.OpenApi/shys/plan/shys/shys青草沙取水.cs                |  140 ++++------
 Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaBaseCalculator.cs  |   23 +
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/松浦大桥/OptAna.cs        |   14 
 Application/IStation.Application.OpenApi/shys/plan/shys/shys陈行二取.cs                 |  141 +++++------
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/长兴岛/KeepStatus.cs     |   10 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/南汇北/KeepStatus.cs     |    2 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/泰和泵站/OptAna.cs        |   10 
 Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs        |    2 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/陈行二输/KeepStatus.cs    |    8 
 Calculation/IStation.Calculation.Dispatch/IOptAnaCalc.cs                            |   11 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/泰和泵站/KeepStatus.cs    |   10 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/金海泵站/OptAna.cs        |    8 
 Calculation/IStation.Calculation.Dispatch/general/KeepStatus.cs                     |    2 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/五号沟金海方向/KeepStatus.cs |   12 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/五号沟金海方向/OptAna.cs     |    8 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/陈行一输/KeepStatus.cs    |    7 
 Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper压力.cs      |   17 +
 Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs               |   29 -
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/陈行二输/OptAna.cs        |    8 
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/南汇北/OptAna.cs         |    2 
 Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs              |   48 ++-
 27 files changed, 316 insertions(+), 350 deletions(-)

diff --git a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
index b7d1ddf..11169da 100644
--- a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
+++ b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
@@ -58,7 +58,7 @@
         [HttpGet]
         public List<PlanAnaDto> Calculate_debug()
         {
-            var path = @"D:\WorkData\IStation\result_1102.json";
+            var path = @"D:\WorkData\IStation\result_20221103.json";
             if (!System.IO.File.Exists(path))
                 return null;
 
diff --git a/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaBaseCalculator.cs b/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaBaseCalculator.cs
index c35be66..4cd4d4d 100644
--- a/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaBaseCalculator.cs
+++ b/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaBaseCalculator.cs
@@ -99,8 +99,9 @@
                 //涓�涓湀鐨勫ぉ鏁�
                 var dayNumber = DateTime.DaysInMonth(year, monthRecord.Month);
                 //姣忓ぉ鐨勬眹鎬�
-                var daySum = this._dispatchAnaCalc.CalcSumData(allHourRequests, true, out error_info);
-                if (daySum == null || daySum.Qt <= 0)
+                IStation.Calculation.DispatchAna.Model.DaySumData daySum = null;
+                error_info = this._dispatchAnaCalc.CalcSumData(monthRecord.Month, allHourRequests, true, out daySum);
+                if (!string.IsNullOrEmpty(error_info))
                 {
                     error_info = String.Format( "{0}鏈�,璋冨害鍒嗘瀽澶辫触,鍘熷洜:{1}" ,monthRecord.Month, error_info);
                     return null;
@@ -108,10 +109,20 @@
                 //璁$畻姣忔湀鐨勬眹鎬�
                 Dto.MonthCalcuResult monthSum = new Dto.MonthCalcuResult();
                 monthSum.Month = monthRecord.Month;
-                monthSum.Qt = Math.Round(daySum.Qt * dayNumber, 1);
-                monthSum.Dt = Math.Round(daySum.Dt * dayNumber, 2);
-                monthSum.WP = Math.Round(daySum.WP, 3);
-                monthSum.Info = daySum.Info;
+                if (daySum.Qt > 1)
+                {
+                    monthSum.Qt = Math.Round(daySum.Qt * dayNumber, 1);
+                    monthSum.Dt = Math.Round(daySum.Dt * dayNumber, 2);
+                    monthSum.WP = Math.Round(daySum.WP, 3);
+                    monthSum.Info = daySum.Info;
+                }
+                else
+                {
+                    monthSum.Qt = 0;
+                    monthSum.Dt = 0;
+                    monthSum.WP = 0;
+                    monthSum.Info = "娴侀噺鍏ㄤ负0";
+                }
 
                 monthRecordList.Add(monthSum);
             }
diff --git a/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs b/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs
index 4719372..522b5d3 100644
--- a/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs
+++ b/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs
@@ -27,23 +27,7 @@
 
             return  _dict[SgFactoryId];
         }
-        //    {1,2},//闀垮叴娉电珯
-        //    {2,12},//浜斿彿娌熷噷妗ユ柟鍚�
-        //    {3,9},//浜斿彿娌熼噾娴锋柟鍚�
-        //    {4,3},//浜斿彿娌熶弗妗ユ柟鍚�1
-        //    {5,5},//浜斿彿娌熶弗妗ユ柟鍚�2
-        //    {6,4},//涓ユˉ娉电珯
-        //    {7,6},//涓存睙1#娉电珯
-        //    {8,7},//涓存睙2#娉电珯
-        //    {9,8},//寰愭尘娉电珯
-        //    {10,10},//閲戞捣娉电珯
-        //    {11,11},//鍗楁眹鍖楁车绔�
-        //    {12,15},//闄堣涓�杈�
-        //    {13,16},//闄堣浜岃緭
-        //    {14,17},//娉板拰娉电珯
-        //    {15,19},//閲戞辰娉电珯
-        //    {16,20},//鏉炬睙娉电珯
-        //    {17,21},//澶фˉ娉电珯
+ 
         static Dictionary<int, StationInfo> _dict;
         private static void Inital()
         {
@@ -51,20 +35,21 @@
 
 
             //_dict.Add(6, new StationInfo(4, new IStation.Calculation.shys涓ユˉ娉电珯()));//NG 娌℃湁娴侀噺鏁版嵁, 娌℃湁鍑哄彛娑蹭綅鏁版嵁
-
             //_dict.Add(12, new StationInfo(15, new IStation.Calculation.shys闄堣涓�杈�()));//NG 娌℃湁鎻愪緵 _0402010503030202003 涓夊彿绠″嚭鍙f祦閲忓��
             //_dict.Add(7, new StationInfo(6, new IStation.Calculation.shys涓存睙1鍙锋车鎴�())); //NG 娌℃湁鎻愪緵 娴侀噺 ,鏃犳硶璁$畻
-
             //_dict.Add(17, new StationInfo(21, new IStation.Calculation.shys澶фˉ娉电珯()));// NG 鎵▼鍙湁涓�绫冲, 鏃犳硶璁$畻
 
-
+            //_dict.Add(18, new StationInfo(1 , new IStation.Calculation.shys闈掕崏娌欏彇姘�()));//鍏ㄦ槸0 鏄惁姝g‘?
+            //_dict.Add(19, new StationInfo(14, new IStation.Calculation.shys闄堣浜屽彇())); //NG 1鏈�5鏃�, 鍑哄彛鍘嬪姏浣庝簬姘存睜姘翠綅
 #if (DEBUG)
 
-            _dict.Add(10, new StationInfo(10, new IStation.Calculation.shys閲戞捣娉电珯()));
+            _dict.Add(20, new StationInfo(18, new IStation.Calculation.shys閲戞辰鍙栨按()));
+            //_0402010701011204001 搴旇鏄按浣嶆槸鍚︽悶閿�,  鏇茬嚎涓嶅叏
 
 #else
-            _dict.Add(10, new StationInfo(10, new IStation.Calculation.shys閲戞捣娉电珯()));// OK 绗笁鎵�  鏇茬嚎寤堕暱, 涓旈渶瑕佸鍔犲嚭鍙e帇鍔涙墠鑳借绠�
+            _dict.Add(18, new StationInfo(1 , new IStation.Calculation.shys闈掕崏娌欏彇姘�()));//鍏ㄦ槸0 鏄惁姝g‘?
 
+            _dict.Add(10, new StationInfo(10, new IStation.Calculation.shys閲戞捣娉电珯()));// OK 绗笁鎵�  鏇茬嚎寤堕暱, 涓旈渶瑕佸鍔犲嚭鍙e帇鍔涙墠鑳借绠�
             _dict.Add(14, new StationInfo(17, new IStation.Calculation.shys娉板拰娉电珯()));// OK 绗笁鎵� 鏇茬嚎寤堕暱,
 
             _dict.Add(16, new StationInfo(20, new IStation.Calculation.shys鏉炬睙娉电珯())); //ok 绗簩鎵�
diff --git "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\345\217\226\346\260\264.cs" "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\345\217\226\346\260\264.cs"
index 3f605d3..0ffdf15 100644
--- "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\345\217\226\346\260\264.cs"
+++ "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\345\217\226\346\260\264.cs"
@@ -17,8 +17,6 @@
         /// <summary>
         /// 娴嬬偣瀛楀吀(杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
         /// </summary>
-
-
         private Tuple<string, long> monitor鍑烘按鐬椂娴侀噺 = new Tuple<string, long>("_JZQSCS_flow", 1588090894278594560);
         private Tuple<string, long> monitor鍑烘按鍘嬪姏 = new Tuple<string, long>("_JZQSCS_pressure", 1588091028211109888);
         private Tuple<string, long> monitor鏈烘车2杩涘彛鍘嬪姏 = new Tuple<string, long>("_0402010701011204001", 1552172655132676096);
@@ -44,80 +42,68 @@
                 return "鏈烘车2杩涘彛鍘嬪姏";
             return "鏈煡娴嬬偣";
         }
-        ///// <summary>
-        ///// 鏍规嵁涓夐珮鎻愪緵鐨勫弬鏁�,鏋勫缓璋冨害鍒嗘瀽鎵�闇�鐨勫弬鏁�, (杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
-        ///// </summary>
-        ///// <param name="allRecords_hour"></param>
-        ///// <param name="error_info"></param>
-        ///// <returns></returns>
-        //protected override DispatchAna.Model.RequestParasComplex BuildDispatchAnaRequest(
-        //    List<IStation.Dto.MonitorRecord4SG> allRecords_hour,
-        //    out string error_info)
-        //{
-        //    if (allRecords_hour == null || allRecords_hour.Count == 0)
-        //    {
-        //        error_info = "閲戞辰娉电珯娴嬬偣鏁版嵁涓虹┖";
-        //        return null;
-        //    }
-        //    var complex_dispatch_request = new DispatchAna.Model.RequestParasComplex();
-        //    var water_level1 = allRecords_hour.Find(x => x.MonitorTag == monitor鍓嶆睜娑蹭綅1.Item1);
-        //    if (water_level1 == null)
-        //    {
-        //        error_info = "閲戞辰娉电珯娑蹭綅娴嬬偣1鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var water_level2 = allRecords_hour.Find(x => x.MonitorTag == monitor鍓嶆睜娑蹭綅2.Item1);
-        //    if (water_level2 == null)
-        //    {
-        //        error_info = "閲戞辰娉电珯娑蹭綅娴嬬偣2鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var water_level3 = allRecords_hour.Find(x => x.MonitorTag == monitor鍓嶆睜娑蹭綅3.Item1);
-        //    if (water_level3 == null)
-        //    {
-        //        error_info = "閲戞辰娉电珯娑蹭綅娴嬬偣3鏈壘鍒�";
-        //        return null;
-        //    }
-        //    double water_level = (water_level1.RecordValue + water_level2.RecordValue + water_level3.RecordValue) / 3;
+        /// <summary>
+        /// 鏍规嵁涓夐珮鎻愪緵鐨勫弬鏁�,鏋勫缓璋冨害鍒嗘瀽鎵�闇�鐨勫弬鏁�, (杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
+        /// </summary>
+        /// <param name="allRecords_hour"></param>
+        /// <param name="error_info"></param>
+        /// <returns></returns>
+        protected override DispatchAna.Model.RequestParasComplex BuildDispatchAnaRequest(
+            List<IStation.Dto.MonitorRecord4SG> allRecords_hour,
+            out string error_info)
+        {
+            if (allRecords_hour == null || allRecords_hour.Count == 0)
+            {
+                error_info = "閲戞辰鍙栨按娴嬬偣鏁版嵁涓虹┖";
+                return null;
+            }
+            var complex_dispatch_request = new DispatchAna.Model.RequestParasComplex();
+            var water_level1 = allRecords_hour.Find(x => x.MonitorTag == monitor鏈烘车2杩涘彛鍘嬪姏.Item1);
+            if (water_level1 == null)
+            {
+                error_info = "閲戞辰鍙栨按娑蹭綅娴嬬偣1鏈壘鍒�";
+                return null;
+            }
+ 
+ 
+            var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鐬椂娴侀噺.Item1);
+            if (pipe1_flow == null)
+            {
+                error_info = "閲戞辰鍙栨按姘寸閬�1娴侀噺娴嬬偣鏈壘鍒�";
+                return null;
+            }
 
-        //    var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤鐬椂娴侀噺.Item1);
-        //    if (pipe1_flow == null)
-        //    {
-        //        error_info = "閲戞辰娉电珯姘寸閬�1娴侀噺娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-
-        //    var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤鍘嬪姏.Item1);
-        //    if (pipe1_press == null)
-        //    {
-        //        error_info = "閲戞辰娉电珯姘寸閬�1鍘嬪姏娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
+            var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鍘嬪姏.Item1);
+            if (pipe1_press == null)
+            {
+                error_info = "閲戞辰鍙栨按姘寸閬�1鍘嬪姏娴嬬偣鏈壘鍒�";
+                return null;
+            }
 
 
-        //    complex_dispatch_request.CorpID = this._corpID;
-        //    complex_dispatch_request.StationID = this._stationID;
-        //    complex_dispatch_request.SchemeNumber = 1;
-        //    complex_dispatch_request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
-        //    complex_dispatch_request.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
-        //                {
-        //                     new DispatchAna.Model.InletPipePara(){ Name="姘存睜", Value = water_level}
-        //                };
-        //    complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
-        //    complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
-        //    {
-        //        Name = "鎬荤璺�",
-        //        TargetFlow = pipe1_flow.RecordValue,
-        //        TargetPress = pipe1_press.RecordValue,
-        //    });
+            complex_dispatch_request.CorpID = this._corpID;
+            complex_dispatch_request.StationID = this._stationID;
+            complex_dispatch_request.SchemeNumber = 1;
+            complex_dispatch_request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
+            complex_dispatch_request.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
+                    {
+                            new DispatchAna.Model.InletPipePara(){ Name="姘存睜", Value = water_level1.RecordValue}
+                    };
+            complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
+            complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
+                    {
+                        Name = "鎬荤璺�",
+                        TargetFlow = pipe1_flow.RecordValue,
+                        TargetPress = pipe1_press.RecordValue,
+                    });
 
 
 
 
 
-        //    error_info = null;
-        //    return complex_dispatch_request;
-        //}
+            error_info = null;
+            return complex_dispatch_request;
+        }
 
 
     }
diff --git "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\346\263\265\347\253\231.cs" "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\346\263\265\347\253\231.cs"
index ff80e77..a743382 100644
--- "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\346\263\265\347\253\231.cs"
+++ "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\207\221\346\263\275\346\263\265\347\253\231.cs"
@@ -17,8 +17,6 @@
         /// <summary>
         /// 娴嬬偣瀛楀吀(杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
         /// </summary>
-
-
         private Tuple<string, long> monitor鍑烘按鎬荤鍘嬪姏 = new Tuple<string, long>("_0402010701020104001", 1207);
         private Tuple<string, long> monitor鍑烘按鎬荤鐬椂娴侀噺 = new Tuple<string, long>("_0402010701020103001", 1208);
         private Tuple<string, long> monitor鍓嶆睜娑蹭綅1 = new Tuple<string, long>("_0402010701020106001", 1204);
diff --git "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\231\210\350\241\214\344\272\214\345\217\226.cs" "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\231\210\350\241\214\344\272\214\345\217\226.cs"
index 85bf15c..70ab125 100644
--- "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\231\210\350\241\214\344\272\214\345\217\226.cs"
+++ "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\231\210\350\241\214\344\272\214\345\217\226.cs"
@@ -12,7 +12,7 @@
         public shys闄堣浜屽彇()
         {
             this._corpID = 4;
-            this._dispatchAnaCalc = new IStation.Calculation.DispatchAna.Calculator_OptAna_SHYS_闄堣浜岃緭();
+            this._dispatchAnaCalc = new IStation.Calculation.DispatchAna.Calculator_OptAna_General();
         }
 
         /// <summary>
@@ -40,90 +40,71 @@
             return "鏈煡娴嬬偣";
         }
 
-        ///// <summary>
-        ///// 鏍规嵁涓夐珮鎻愪緵鐨勫弬鏁�,鏋勫缓璋冨害鍒嗘瀽鎵�闇�鐨勫弬鏁�, (杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
-        ///// </summary>
-        ///// <param name="allRecords_hour"></param>
-        ///// <param name="error_info"></param>
-        ///// <returns></returns>
-        //protected override DispatchAna.Model.RequestParasComplex BuildDispatchAnaRequest(
-        //    List<IStation.Dto.MonitorRecord4SG> allRecords_hour,
-        //    out string error_info)
-        //{
-        //    if (allRecords_hour == null || allRecords_hour.Count == 0)
-        //    {
-        //        error_info = "闄堣浜岃緭娴嬬偣鏁版嵁涓虹┖";
-        //        return null;
-        //    }
-        //    var complex_dispatch_request = new DispatchAna.Model.RequestParasComplex();
-        //    var water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按鍓嶆睜娑蹭綅.Item1);
-        //    if (water_level == null)
-        //    {
-        //        water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按鍓嶆睜娑蹭綅.Item1);
-        //        if (water_level == null)
-        //        {
-        //            error_info = "闄堣浜岃緭姘村簱娑蹭綅娴嬬偣鏈壘鍒�";
-        //            return null;
-        //        }
-        //    }
-        //    var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤1鐬椂娴侀噺.Item1);
-        //    if (pipe1_flow == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�1娴侀噺娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var pipe2_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤2鐬椂娴侀噺.Item1);
-        //    if (pipe2_flow == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�2娴侀噺娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤1鍘嬪姏.Item1);
-        //    if (pipe1_press == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�1鍘嬪姏娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var pipe2_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤2鍘嬪姏.Item1);
-        //    if (pipe2_press == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�2鍘嬪姏娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
+        /// <summary>
+        /// 鏍规嵁涓夐珮鎻愪緵鐨勫弬鏁�,鏋勫缓璋冨害鍒嗘瀽鎵�闇�鐨勫弬鏁�, (杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
+        /// </summary>
+        /// <param name="allRecords_hour"></param>
+        /// <param name="error_info"></param>
+        /// <returns></returns>
+        protected override DispatchAna.Model.RequestParasComplex BuildDispatchAnaRequest(
+            List<IStation.Dto.MonitorRecord4SG> allRecords_hour,
+            out string error_info)
+        {
+            if (allRecords_hour == null || allRecords_hour.Count == 0)
+            {
+                error_info = "闄堣浜屽彇娴嬬偣鏁版嵁涓虹┖";
+                return null;
+            }
+            var complex_dispatch_request = new DispatchAna.Model.RequestParasComplex();
+            var water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按鍓嶆睜娑蹭綅.Item1);
+            if (water_level == null)
+            {
+                water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按鍓嶆睜娑蹭綅.Item1);
+                if (water_level == null)
+                {
+                    error_info = "闄堣浜屽彇姘村簱娑蹭綅娴嬬偣鏈壘鍒�";
+                    return null;
+                }
+            }
+            var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鐬椂娴侀噺.Item1);
+            if (pipe1_flow == null)
+            {
+                error_info = "闄堣浜屽彇姘寸閬�1娴侀噺娴嬬偣鏈壘鍒�";
+                return null;
+            }
+ 
+            var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鍘嬪姏.Item1);
+            if (pipe1_press == null)
+            {
+                error_info = "闄堣浜屽彇姘寸閬�1鍘嬪姏娴嬬偣鏈壘鍒�";
+                return null;
+            }
+  
 
-        //    complex_dispatch_request.CorpID = this._corpID;
-        //    complex_dispatch_request.StationID = this._stationID;
-        //    complex_dispatch_request.SchemeNumber = 1;
-        //    complex_dispatch_request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
-        //    complex_dispatch_request.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
-        //                {
-        //                    new DispatchAna.Model.InletPipePara(){ Name="姘存睜", Value = water_level.RecordValue}
-        //                };
-        //    complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
-        //    complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
-        //    {
-        //        Name = "涓�鍙风璺�",
-        //        TargetFlow = pipe1_flow.RecordValue,
-        //        TargetPress = pipe1_press.RecordValue,
-        //    });
-        //    complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
-        //    {
-        //        Name = "浜屽彿绠¤矾",
-        //        TargetFlow = pipe2_flow.RecordValue,
-        //        TargetPress = pipe2_press.RecordValue,
-        //    });
-
-        //    complex_dispatch_request.ValvePara = new List<DispatchAna.Model.ValvePara>();
-        //    complex_dispatch_request.ValvePara.Add(new DispatchAna.Model.ValvePara() { Name = "涓棿闃�闂�", OpenStatus = 1 });
+            complex_dispatch_request.CorpID = this._corpID;
+            complex_dispatch_request.StationID = this._stationID;
+            complex_dispatch_request.SchemeNumber = 1;
+            complex_dispatch_request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
+            complex_dispatch_request.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
+                {
+                    new DispatchAna.Model.InletPipePara(){ Name="姘存睜", Value = water_level.RecordValue}
+                };
+            complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
+            complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
+                {
+                    Name = "涓�鍙风璺�",
+                    TargetFlow = pipe1_flow.RecordValue,
+                    TargetPress = pipe1_press.RecordValue,
+                });
+  
+ 
 
 
 
 
-
-
-        //    error_info = null;
-        //    return complex_dispatch_request;
-        //}
+            error_info = null;
+            return complex_dispatch_request;
+        }
 
 
     }
diff --git "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\235\222\350\215\211\346\262\231\345\217\226\346\260\264.cs" "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\235\222\350\215\211\346\262\231\345\217\226\346\260\264.cs"
index 5297845..43fac6e 100644
--- "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\235\222\350\215\211\346\262\231\345\217\226\346\260\264.cs"
+++ "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\235\222\350\215\211\346\262\231\345\217\226\346\260\264.cs"
@@ -12,7 +12,7 @@
         public shys闈掕崏娌欏彇姘�()
         {
             this._corpID = 4;
-            this._dispatchAnaCalc = new IStation.Calculation.DispatchAna.Calculator_OptAna_SHYS_闄堣浜岃緭();
+            this._dispatchAnaCalc = new IStation.Calculation.DispatchAna.Calculator_OptAna_General ();
         }
 
         /// <summary>
@@ -40,90 +40,68 @@
             return "鏈煡娴嬬偣";
         }
 
-        ///// <summary>
-        ///// 鏍规嵁涓夐珮鎻愪緵鐨勫弬鏁�,鏋勫缓璋冨害鍒嗘瀽鎵�闇�鐨勫弬鏁�, (杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
-        ///// </summary>
-        ///// <param name="allRecords_hour"></param>
-        ///// <param name="error_info"></param>
-        ///// <returns></returns>
-        //protected override DispatchAna.Model.RequestParasComplex BuildDispatchAnaRequest(
-        //    List<IStation.Dto.MonitorRecord4SG> allRecords_hour,
-        //    out string error_info)
-        //{
-        //    if (allRecords_hour == null || allRecords_hour.Count == 0)
-        //    {
-        //        error_info = "闄堣浜岃緭娴嬬偣鏁版嵁涓虹┖";
-        //        return null;
-        //    }
-        //    var complex_dispatch_request = new DispatchAna.Model.RequestParasComplex();
-        //    var water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按鍓嶆睜娑蹭綅.Item1);
-        //    if (water_level == null)
-        //    {
-        //        water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按鍓嶆睜娑蹭綅.Item1);
-        //        if (water_level == null)
-        //        {
-        //            error_info = "闄堣浜岃緭姘村簱娑蹭綅娴嬬偣鏈壘鍒�";
-        //            return null;
-        //        }
-        //    }
-        //    var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤1鐬椂娴侀噺.Item1);
-        //    if (pipe1_flow == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�1娴侀噺娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var pipe2_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤2鐬椂娴侀噺.Item1);
-        //    if (pipe2_flow == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�2娴侀噺娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤1鍘嬪姏.Item1);
-        //    if (pipe1_press == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�1鍘嬪姏娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
-        //    var pipe2_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤2鍘嬪姏.Item1);
-        //    if (pipe2_press == null)
-        //    {
-        //        error_info = "闄堣浜岃緭姘寸閬�2鍘嬪姏娴嬬偣鏈壘鍒�";
-        //        return null;
-        //    }
+        /// <summary>
+        /// 鏍规嵁涓夐珮鎻愪緵鐨勫弬鏁�,鏋勫缓璋冨害鍒嗘瀽鎵�闇�鐨勫弬鏁�, (杩欎釜姣忎釜娉电珯閮戒笉涓�鏍�)
+        /// </summary>
+        /// <param name="allRecords_hour"></param>
+        /// <param name="error_info"></param>
+        /// <returns></returns>
+        protected override DispatchAna.Model.RequestParasComplex BuildDispatchAnaRequest(
+            List<IStation.Dto.MonitorRecord4SG> allRecords_hour,
+            out string error_info)
+        {
+            if (allRecords_hour == null || allRecords_hour.Count == 0)
+            {
+                error_info = "闈掕崏娌欏彇姘存车鎴挎祴鐐规暟鎹负绌�";
+                return null;
+            }
+            var complex_dispatch_request = new DispatchAna.Model.RequestParasComplex();
+            var water_level = allRecords_hour.Find(x => x.MonitorTag == monitor杩涙按闀挎睙姘翠綅.Item1);
+            if (water_level == null)
+            {
+      
+                    error_info = "闈掕崏娌欏彇姘存车鎴挎按搴撻暱姹熸按浣嶆祴鐐规湭鎵惧埌";
+                    return null;
+                
+            }
+            var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鐬椂娴侀噺.Item1);
+            if (pipe1_flow == null)
+            {
+                error_info = "闈掕崏娌欏彇姘存车鎴挎按绠¢亾 娴侀噺娴嬬偣鏈壘鍒�";
+                return null;
+            }
+ 
+            var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鍘嬪姏.Item1);
+            if (pipe1_press == null)
+            {
+                error_info = "闈掕崏娌欏彇姘存车鎴挎按绠¢亾鍑烘按鍘嬪姏娴嬬偣鏈壘鍒�";
+                return null;
+            }
+    
 
-        //    complex_dispatch_request.CorpID = this._corpID;
-        //    complex_dispatch_request.StationID = this._stationID;
-        //    complex_dispatch_request.SchemeNumber = 1;
-        //    complex_dispatch_request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
-        //    complex_dispatch_request.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
-        //                {
-        //                    new DispatchAna.Model.InletPipePara(){ Name="姘存睜", Value = water_level.RecordValue}
-        //                };
-        //    complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
-        //    complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
-        //    {
-        //        Name = "涓�鍙风璺�",
-        //        TargetFlow = pipe1_flow.RecordValue,
-        //        TargetPress = pipe1_press.RecordValue,
-        //    });
-        //    complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
-        //    {
-        //        Name = "浜屽彿绠¤矾",
-        //        TargetFlow = pipe2_flow.RecordValue,
-        //        TargetPress = pipe2_press.RecordValue,
-        //    });
-
-        //    complex_dispatch_request.ValvePara = new List<DispatchAna.Model.ValvePara>();
-        //    complex_dispatch_request.ValvePara.Add(new DispatchAna.Model.ValvePara() { Name = "涓棿闃�闂�", OpenStatus = 1 });
+            complex_dispatch_request.CorpID = this._corpID;
+            complex_dispatch_request.StationID = this._stationID;
+            complex_dispatch_request.SchemeNumber = 1;
+            complex_dispatch_request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
+            complex_dispatch_request.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
+                        {
+                            new DispatchAna.Model.InletPipePara(){ Name="姘存睜", Value = water_level.RecordValue}
+                        };
+            complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
+            complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
+            {
+                Name = "涓�鍙风璺�",
+                TargetFlow = pipe1_flow.RecordValue,
+                TargetPress = pipe1_press.RecordValue,
+            });
+ 
+ 
 
 
 
-
-
-
-        //    error_info = null;
-        //    return complex_dispatch_request;
-        //}
+            error_info = null;
+            return complex_dispatch_request;
+        }
 
 
     }
diff --git a/Calculation/IStation.Calculation.Dispatch/IOptAnaCalc.cs b/Calculation/IStation.Calculation.Dispatch/IOptAnaCalc.cs
index 2e468b0..312885e 100644
--- a/Calculation/IStation.Calculation.Dispatch/IOptAnaCalc.cs
+++ b/Calculation/IStation.Calculation.Dispatch/IOptAnaCalc.cs
@@ -27,13 +27,14 @@
             out string error_info);
 
         /// <summary>
-        /// 璁$畻鏃ユ眹鎬�
-        /// </summary>
+        /// 璁$畻鏃ユ眹鎬�:鎴愬姛杩斿洖null, 澶辫触杩斿洖閿欒淇℃伅
+        /// </summary> 
+        /// <param name="Month"></param>
         /// <param name="HourRequests"></param>
         /// <param name="isUseCache">鏄惁鐢ㄧ紦瀛�</param> 
-        /// <param name="error_info"></param>
+        /// <param name="daySumData"></param>
         /// <returns></returns>
-        public IStation.Calculation.DispatchAna.Model.DaySumData CalcSumData(
-            List<HourRequest> HourRequests, bool isUseCache, out string error_info);
+        public string CalcSumData(
+                int Month, List<HourRequest> HourRequests, bool isUseCache, out IStation.Calculation.DispatchAna.Model.DaySumData daySumData);
     }
 }
diff --git a/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs b/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs
index e9aa2ef..23629b2 100644
--- a/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs
+++ b/Calculation/IStation.Calculation.Dispatch/base/CalculatorOptAnaBase.cs
@@ -29,19 +29,23 @@
         }
 
         Dictionary<string, IStation.Calculation.DispatchAna.Model.AnaScheme> _dict = new Dictionary<string, Model.AnaScheme>();
+
         /// <summary>
-        /// 璁$畻姹囨�绘暟鎹�
+        /// 璁$畻姹囨�绘暟鎹� :鎴愬姛杩斿洖null, 澶辫触杩斿洖閿欒淇℃伅
         /// </summary>
+        /// <param name="Month">鏈堜唤</param>
         /// <param name="HourRequests"></param>
         /// <param name="isUseCache">鏄惁鐢ㄧ紦瀛�</param>
-        /// <param name="error_info"></param>
+        /// <param name="daySumData"></param>
         /// <returns></returns>
-        public virtual IStation.Calculation.DispatchAna.Model.DaySumData CalcSumData(
-             List<Model.HourRequest> HourRequests, bool isUseCache, out string error_info)
-        {
-            error_info = null;
-            IStation.Calculation.DispatchAna.Model.DaySumData sum = new Model.DaySumData();
-            sum.Qt = 0;
+        public virtual string  CalcSumData(
+             int Month,
+             List<Model.HourRequest> HourRequests,
+             bool isUseCache,
+             out IStation.Calculation.DispatchAna.Model.DaySumData daySumData)
+        { 
+            daySumData = new Model.DaySumData();
+            daySumData.Qt = 0;
             foreach (var hourRequest in HourRequests)
             {
                 var complex_request_paras = hourRequest.Request;
@@ -49,9 +53,8 @@
                 #region 妫�鏌ユ暟鎹�
                 if (complex_request_paras.OutletPipePara == null || complex_request_paras.OutletPipePara.Count < 1)
                 {
-                    error_info = string.Format("{0}鏃�,鍒嗘瀽鍑洪敊,鍘熷洜鏄�:{1}",
-                        hourRequest.Hour + 1, "鍑哄彛绠¤矾鍙傛暟鏈夎, 璇风‘璁ゆ槸鍚﹁祴鍊�, ERROR 35");
-                    return null;
+                    return string.Format("{0}鏈堢殑{1}鏃�,鍒嗘瀽鍑洪敊,鍘熷洜鏄�:{2}",
+                        Month, hourRequest.Hour  , "鍑哄彛绠¤矾鍙傛暟鏈夎, 璇风‘璁ゆ槸鍚﹁祴鍊�, ERROR 35"); 
                 }
 
                 StringBuilder cacheNameBuilder = new StringBuilder();
@@ -94,22 +97,21 @@
                 }
                 else
                 {
+                    string error_info;
                     var result_anaSchemes = CalcSchemes鍘嬪姏(complex_request_paras, null, out error_info);
                     if (result_anaSchemes == null || result_anaSchemes.Count == 0)
                     {
                         if (string.IsNullOrEmpty(error_info))
                         {
-                            error_info = string.Format("{0}鏃�,鍒嗘瀽鍑洪敊,鍙兘鏄叆鍙傛暟鎹笉鍚堢悊,璇锋鏌�",
-                                                    hourRequest.Hour + 1 );
+                            return  string.Format("{0}鏈堢殑{1}鏃�,鍒嗘瀽鍑洪敊,鍙兘鏄叆鍙傛暟鎹笉鍚堢悊,璇锋鏌�",
+                                                  Month, hourRequest.Hour  );
                         }
                         else
                         {
-                            error_info = string.Format("{0}鏃�,鍒嗘瀽鍑洪敊,鍘熷洜鏄�:{1}",
-                                        hourRequest.Hour + 1,
-                                        error_info);
+                            return string.Format("{0}鏈堢殑{1}鏃�,鍒嗘瀽鍑洪敊,鍘熷洜鏄�:{2}",
+                                                   Month, hourRequest.Hour  ,
+                                                   error_info);
                         }
-        
-                        return null;
                     }
                     opt_anaScheme = result_anaSchemes.First();
                     _dict[cacheName] = opt_anaScheme;
@@ -117,15 +119,15 @@
 
 
                 //姹囨��
-                sum.Qt = sum.Qt + opt_anaScheme.TotalWrkQ;
-                sum.Dt = sum.Dt + opt_anaScheme.TotalWrkP;
+                daySumData.Qt = daySumData.Qt + opt_anaScheme.TotalWrkQ;
+                daySumData.Dt = daySumData.Dt + opt_anaScheme.TotalWrkP;
 
                 //
                 if(!string.IsNullOrEmpty(opt_anaScheme.ResultStatusInfo))
-                sum.Info = opt_anaScheme.ResultStatusInfo;
+                daySumData.Info = opt_anaScheme.ResultStatusInfo;
             }
-            sum.WP = CalculateWP(sum.Dt, sum.Qt);
-            return sum;
+            daySumData.WP = CalculateWP(daySumData.Dt, daySumData.Qt);
+            return null;
         }
 
         /// <summary>
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/KeepStatus.cs"
index 23965dd..12887a3 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/KeepStatus.cs"
@@ -131,7 +131,8 @@
                     water_level,true ,
                     pipe1_TargetPess,false ,
                     null, null,
-                    (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null,
+                    out error_info);
 
                 return calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
             }
@@ -142,7 +143,8 @@
                     water_level, true,
                     pipe2_TargetPess,false,
                     null, null,
-                    (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null,
+                    out error_info);
 
                 return calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
             }
@@ -155,7 +157,8 @@
                 water_level,true,
                 pipe1_TargetPess,false ,
                  null, null,
-                (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null,
+                out error_info);
             var pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
             if (pipe1_result == null)
             {
@@ -168,7 +171,8 @@
                 water_level, true,
                 pipe2_TargetPess, false,
                 null, null,
-                (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null,
+                out error_info);
 
             var pipe2_result = calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
             if (pipe2_result == null)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/OptAna.cs"
index 5ca2542..c7d8fd9 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\344\272\224\345\217\267\346\262\237\351\207\221\346\265\267\346\226\271\345\220\221/OptAna.cs"
@@ -152,7 +152,7 @@
                     pipe1_TargetPess,false ,
                     null, null,
                     (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                   machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                   machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 return calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             }
@@ -164,7 +164,7 @@
                     pipe2_TargetPess, false,
                     null, null,
                  (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                 machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                 machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 return calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             }
@@ -174,7 +174,7 @@
                 pipe1_TargetPess,false,
               null, null,
              (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
             var pipe1_result = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             if (pipe1_result == null)
             {
@@ -189,7 +189,7 @@
                 pipe2_TargetPess,false,
                 null, null,
                 (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
             var pipe2_result = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             if (pipe2_result == null)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/KeepStatus.cs"
index a7a4eed..e8cd8ac 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/KeepStatus.cs"
@@ -131,7 +131,7 @@
                 water_level, true,
                 (pipe1_TargetPess+ pipe2_TargetPess)/2,false ,
                  null, null,
-                 _allMachineList , null);
+                 _allMachineList , null, out error_info);
             var pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
             if (pipe1_result == null)
             {
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/OptAna.cs"
index 9e7afa2..2d6884f 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\345\215\227\346\261\207\345\214\227/OptAna.cs"
@@ -144,7 +144,7 @@
                 outlet_press, false,
                 null, null,
                 _allMachineList,
-                machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
             return calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
         }
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\235\276\346\265\246\345\244\247\346\241\245/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\235\276\346\265\246\345\244\247\346\241\245/OptAna.cs"
index 920ed96..a2bef87 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\235\276\346\265\246\345\244\247\346\241\245/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\235\276\346\265\246\345\244\247\346\241\245/OptAna.cs"
@@ -149,12 +149,12 @@
             {
                 Common.DispatchAnaGeneralHelper鍘嬪姏 calc_pipe1_helper = new Common.DispatchAnaGeneralHelper鍘嬪姏();
                 calc_pipe1_helper.InitialParas(
-    pipe1_TargetFlow,//鍋囪涓�杈硅緭鍑轰竴鍗�
-    (inlet_wl1 + inlet_wl2) / 2, true,
-    outlet_wl1, true,
-    null, null,
-    (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                    pipe1_TargetFlow,//鍋囪涓�杈硅緭鍑轰竴鍗�
+                    (inlet_wl1 + inlet_wl2) / 2, true,
+                    outlet_wl1, true,
+                    null, null,
+                    (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
+                    machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
                 var pipe1_results = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe1_results == null || pipe1_results.Count() == 0)
                 {
@@ -181,7 +181,7 @@
                     outlet_wl2, true,
                     null, null,
                  (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 calc_pipe2_helper.IsAllowOverTargetPress = true;//鏄惁鍏佽瓒呰繃鐩爣鍘嬪姏, 浣嗘渶灏忓彉棰戦鐜囬兘姣旇姹傚帇鍔涢珮鏃�, 鎸夋渶灏忛鐜囧紑娉�
                 var pipe2_results = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/KeepStatus.cs"
index d8e5097..7027345 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/KeepStatus.cs"
@@ -116,7 +116,7 @@
                     water_level,true ,
                     outlet_press,false ,
                     null, null,
-                    allMachineList, null);
+                    allMachineList, null, out error_info);
 
                 return calc_pipe_helper.CalcKeepStatus(_open_machine_IdList);
             }
@@ -143,7 +143,7 @@
                         water_level,true ,
                         pipe1_TargetPess,false ,
                         null, null,
-                        (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                        (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                     return calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
                 }
@@ -154,7 +154,7 @@
                         water_level, true,
                         pipe2_TargetPess, false,
                         null, null,
-                        (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                        (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                     return calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
                 }
@@ -167,7 +167,7 @@
                     water_level, true,
                     pipe1_TargetPess, false,
                      null, null,
-                    (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 var pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
 
 
@@ -176,7 +176,7 @@
                     water_level,true ,
                     pipe2_TargetPess,false ,
                     null, null,
-                    (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                 var pipe2_result = calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
 
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/OptAna.cs"
index 02f44b3..bf8a5ef 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\346\263\260\345\222\214\346\263\265\347\253\231/OptAna.cs"
@@ -154,7 +154,7 @@
                     outlet_press,false ,
                     null, null,
                     _allMachineList, 
-                    machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                    machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 return calc_pipe_helper.CalcOptList( complex_request_paras.SchemeSortType, 3);
                 #endregion
@@ -185,7 +185,7 @@
                         pipe1_TargetPess,false ,
                         null, null,
                         (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                       machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                       machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                     return calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 }
@@ -197,7 +197,7 @@
                         pipe2_TargetPess,false ,
                         null, null,
                      (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                     machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                     machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                     return calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 }
@@ -207,7 +207,7 @@
                     pipe1_TargetPess,false,
                   null, null,
                  (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
                 var pipe1_results = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe1_results == null || pipe1_results.Count() == 0)
                 {
@@ -222,7 +222,7 @@
                     pipe2_TargetPess,false  ,
                     null, null,
                  (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
                 calc_pipe2_helper.IsAllowOverTargetPress = true;//鏄惁鍏佽瓒呰繃鐩爣鍘嬪姏, 浣嗘渶灏忓彉棰戦鐜囬兘姣旇姹傚帇鍔涢珮鏃�, 鎸夋渶灏忛鐜囧紑娉�
                 var pipe2_results = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe2_results == null || pipe2_results.Count() == 0)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/KeepStatus.cs"
index 7368c2c..dac6091 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/KeepStatus.cs"
@@ -149,7 +149,7 @@
                  water_level,true ,
                  pipe1_TargetPess,false ,
                   null, null,
-                 (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                 (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
                 if (pipe1_result == null)
                 {
@@ -172,7 +172,7 @@
                  water_level,true ,
                  pipe2_TargetPess, false ,
                   null, null,
-                 (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                 (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 pipe2_result = calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
                 if (pipe2_result == null)
                 {
@@ -194,7 +194,7 @@
                  water_level, true,
                  pipe3_TargetPess, false,
                   null, null,
-                 (from x in _allMachineList where pipe3_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                 (from x in _allMachineList where pipe3_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 pipe3_result = calc_pipe3_helper.CalcKeepStatus(_open_machine_IdList);
                 if (pipe3_result == null)
                 {
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/OptAna.cs"
index ec4d5b0..816d8dd 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\207\221\346\265\267\346\263\265\347\253\231/OptAna.cs"
@@ -173,7 +173,8 @@
                         outlet_press_calc, false,
                         null, null,
                         (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                        machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                        machine_run_status == null ? null : machine_run_status.MachineRunFilter,
+                        out error_info);
                     pipe1_results = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                     if(pipe1_results != null && pipe1_results.Count > 0)
                     {
@@ -210,7 +211,8 @@
                         outlet_press_calc, false,
                         null, null,
                         (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                        machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                        machine_run_status == null ? null : machine_run_status.MachineRunFilter,
+                        out error_info);
                     pipe2_results = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                     if (pipe2_results != null && pipe2_results.Count > 0)
                     {
@@ -247,7 +249,7 @@
                         pipe3_TargetPess, false,
                         null, null,
                         (from x in _allMachineList where pipe3_machineIds.Contains(x.MachineID) select x).ToList(),
-                        machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                        machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
           
                     pipe3_results = calc_pipe3_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                     if (pipe3_results != null && pipe3_results.Count > 0)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/KeepStatus.cs"
index 6c941d1..8509d12 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/KeepStatus.cs"
@@ -115,7 +115,7 @@
                     water_level,true ,
                     press, false,
                     null, null,
-                    allMachineList, null);
+                    allMachineList, null, out error_info);
 
                 return calc_pipe_helper.CalcKeepStatus(_open_machine_IdList);
             }
@@ -134,7 +134,7 @@
                         water_level, true,
                         pipe1_TargetPess, false,
                         null, null,
-                        (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                        (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                     return calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
                 }
@@ -145,7 +145,7 @@
                         water_level, true,
                         pipe2_TargetPess, false,
                         null, null,
-                        (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                        (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                     return calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
                 }
@@ -158,7 +158,7 @@
                     water_level, true,
                     pipe1_TargetPess, false,
                      null, null,
-                    (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 var pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
 
 
@@ -167,7 +167,7 @@
                     water_level,true ,
                     pipe2_TargetPess,false ,
                     null, null,
-                    (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                 var pipe2_result = calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
 
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/OptAna.cs"
index f9a1fe5..77b219e 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\225\277\345\205\264\345\262\233/OptAna.cs"
@@ -181,7 +181,7 @@
                     water_level,true ,
                    (pipe1_TargetPess + pipe2_TargetPess) / 2,false   ,
                    null, null,
-                   _allMachineList, machine_run_status==null?null: machine_run_status.MachineRunFilter);
+                   _allMachineList, machine_run_status==null?null: machine_run_status.MachineRunFilter, out error_info);
 
                 return calc_pipe_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 #endregion
@@ -203,7 +203,7 @@
                         pipe1_TargetPess,false ,
                         null, null,
                         (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                       machine_run_status ==null?null: machine_run_status.MachineRunFilter);
+                       machine_run_status ==null?null: machine_run_status.MachineRunFilter, out error_info);
 
                     return calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 }
@@ -215,7 +215,7 @@
                         pipe2_TargetPess, false,
                         null, null,
                         (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                     machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                     machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                     return calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 }
@@ -225,7 +225,7 @@
                     pipe1_TargetPess, false,
                   null, null,
                  (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
                 var pipe1_result = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe1_result == null)
                 {
@@ -240,7 +240,7 @@
                   pipe2_TargetPess,false ,
                   null, null,
                  (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 var pipe2_result = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe2_result == null)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/KeepStatus.cs"
index 51ced21..163c30d 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/KeepStatus.cs"
@@ -151,7 +151,8 @@
                  water_level1,true ,
                  pipe1_TargetPess,false ,
                   null, null,
-                 (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                 (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null,
+                 out error_info);
                 pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
                 if (pipe1_result == null)
                 {
@@ -174,7 +175,7 @@
                  water_level2,true ,
                  pipe2_TargetPess,false ,
                   null, null,
-                 (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                 (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 pipe2_result = calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
                 if (pipe2_result == null)
                 {
@@ -196,7 +197,7 @@
                  water_level3, true,
                  pipe3_TargetPess,false,
                   null, null,
-                 (from x in _allMachineList where pipe3_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                 (from x in _allMachineList where pipe3_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
                 pipe3_result = calc_pipe3_helper.CalcKeepStatus(_open_machine_IdList);
                 if (pipe3_result == null)
                 {
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/OptAna.cs"
index 99d021a..b3c617d 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\270\200\350\276\223/OptAna.cs"
@@ -170,7 +170,7 @@
                 pipe1_TargetPess,false,
               null, null,
              (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
                 pipe1_results = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe1_results == null || pipe1_results.Count() == 0)
                 {
@@ -194,7 +194,7 @@
                 pipe2_TargetPess,false ,
               null, null,
              (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 pipe2_results = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe2_results == null || pipe2_results.Count() == 0)
@@ -220,7 +220,7 @@
                 pipe3_TargetPess,false ,
                 null, null,
              (from x in _allMachineList where pipe3_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 pipe3_results = calc_pipe3_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
                 if (pipe3_results == null || pipe3_results.Count() == 0)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/KeepStatus.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/KeepStatus.cs"
index d8dfbe7..0f25c46 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/KeepStatus.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/KeepStatus.cs"
@@ -122,7 +122,7 @@
                     water_level, true,
                     pipe1_TargetPess, false,
                     null, null,
-                    (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null,out error_info);
 
                 return calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
             }
@@ -133,7 +133,7 @@
                     water_level,true ,
                     pipe2_TargetPess,false ,
                     null, null,
-                    (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                    (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
                 return calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
             }
@@ -146,7 +146,7 @@
                 water_level, true,
                 pipe1_TargetPess, false,
                  null, null,
-                (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
             var pipe1_result = calc_pipe1_helper.CalcKeepStatus(_open_machine_IdList);
             if (pipe1_result == null)
             {
@@ -159,7 +159,7 @@
                 water_level, true,
                 pipe2_TargetPess, true,
                 null, null,
-                (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null);
+                (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(), null, out error_info);
 
             var pipe2_result = calc_pipe2_helper.CalcKeepStatus(_open_machine_IdList);
             if (pipe2_result == null)
diff --git "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/OptAna.cs" "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/OptAna.cs"
index 22a7112..c8aa656 100644
--- "a/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/OptAna.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/custom/shys/station/\351\231\210\350\241\214\344\272\214\350\276\223/OptAna.cs"
@@ -143,7 +143,7 @@
                     pipe1_TargetPess,false ,
                     null, null,
                     (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-                   machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                   machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 return calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             }
@@ -155,7 +155,7 @@
                     pipe2_TargetPess, false,
                     null, null,
                  (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-                 machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+                 machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
                 return calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             }
@@ -165,7 +165,7 @@
                 pipe1_TargetPess,false ,
               null, null,
              (from x in _allMachineList where pipe1_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
             var pipe1_result = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             if (pipe1_result == null)
             {
@@ -180,7 +180,7 @@
                 pipe2_TargetPess, false,
                 null, null,
              (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
-            machine_run_status == null ? null : machine_run_status.MachineRunFilter);
+            machine_run_status == null ? null : machine_run_status.MachineRunFilter, out error_info);
 
             var pipe2_result = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
             if (pipe2_result == null)
diff --git a/Calculation/IStation.Calculation.Dispatch/general/KeepStatus.cs b/Calculation/IStation.Calculation.Dispatch/general/KeepStatus.cs
index d55b94b..670d119 100644
--- a/Calculation/IStation.Calculation.Dispatch/general/KeepStatus.cs
+++ b/Calculation/IStation.Calculation.Dispatch/general/KeepStatus.cs
@@ -101,7 +101,7 @@
                 target_press,false,
                 _request_paras.OutletPipePara[0].TargetFlowRangeMin,
                 _request_paras.OutletPipePara[0].TargetFlowRangeMax,
-                allMachineList, null);
+                allMachineList, null, out error_info);
 
             return calc_pipe_helper.CalcKeepStatus(_open_machine_IdList);
         }
diff --git a/Calculation/IStation.Calculation.Dispatch/general/OptAna.cs b/Calculation/IStation.Calculation.Dispatch/general/OptAna.cs
index a75d59d..e92d2eb 100644
--- a/Calculation/IStation.Calculation.Dispatch/general/OptAna.cs
+++ b/Calculation/IStation.Calculation.Dispatch/general/OptAna.cs
@@ -112,14 +112,18 @@
 
             IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏 calc_pipe_helper =
                 new IStation.Calculation.DispatchAna.Common.DispatchAnaGeneralHelper鍘嬪姏();
-            calc_pipe_helper.InitialParas(
+            if( ! calc_pipe_helper.InitialParas(
                 target_flow,
                 inlet_para_value, inlet_isWaterLevel,
                 outlet_para_value, outlet_isWaterLevel,
                 complex_request_paras.OutletPipePara[0].TargetFlowRangeMin,
                 complex_request_paras.OutletPipePara[0].TargetFlowRangeMax,
                 allMachineList,
-                machine_run_status==null?null: machine_run_status.MachineRunFilter);
+                machine_run_status==null?null: machine_run_status.MachineRunFilter,
+                out error_info))
+            {
+                return null;
+            }
 
             return calc_pipe_helper.CalcOptList(complex_request_paras.SchemeSortType, complex_request_paras.SchemeNumber);
         }
diff --git "a/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper\345\216\213\345\212\233.cs" "b/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper\345\216\213\345\212\233.cs"
index 6f3deb5..ee08c21 100644
--- "a/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper\345\216\213\345\212\233.cs"
+++ "b/Calculation/IStation.Calculation.Dispatch/helper/DispatchAnaGeneralHelper\345\216\213\345\212\233.cs"
@@ -82,6 +82,7 @@
         /// <param name="MaxQ"></param>
         /// <param name="pipeMachineList"></param>
         /// <param name="MachineRunFilterList"></param>
+        /// <param name="error_info"></param>
         /// <returns></returns>
         public bool InitialParas(
             double targetQ, 
@@ -89,7 +90,8 @@
             double outlet_para,bool outlet_is_waterlevel,
             string MinQ, string MaxQ,
             List<IStation.Calculation.DispatchAna.Model.MachineDetail> pipeMachineList,
-            List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> MachineRunFilterList)
+            List<IStation.Calculation.DispatchAna.Model.MachineRunFilter> MachineRunFilterList,
+            out string error_info)
         { 
             if (inlet_is_waterlevel)
             {
@@ -110,6 +112,17 @@
             }
 
             this._targetQ = targetQ;
+            if (targetQ < 10)
+            {
+                error_info = "娴侀噺鍊艰繃浣庢棤娉曞垎鏋�";
+                return false;
+            }
+            if(this._targetOutletPress<= this._targetInletPress + 0.01)
+            {
+                error_info = "杩涘嚭鍙e帇鍔涘�艰缃笉鍚堢悊";
+                return false;
+            }
+
             this._allMachineList = pipeMachineList;
 
 
@@ -161,7 +174,7 @@
 
             InitialFilter(MachineRunFilterList);
 
-
+            error_info = null;
             return true;
         }
 

--
Gitblit v1.9.3