From 16236a00f212a96e79e17298713faff756cee9c0 Mon Sep 17 00:00:00 2001
From: tangxu <76880903@qq.com>
Date: 星期三, 09 十一月 2022 12:40:20 +0800
Subject: [PATCH] 增加 大桥泵站

---
 Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs |    2 
 Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs        |   19 ++++-----
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/松浦大桥/OptAna.cs |   62 +++++++++++++++++++++++--------
 Calculation/IStation.Calculation.Dispatch/custom/shys/station/金海泵站/OptAna.cs |    9 ++--
 Application/IStation.Application.OpenApi/shys/plan/shys/shys大桥泵站.cs          |   22 +++++-----
 Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs                |    2 
 6 files changed, 72 insertions(+), 44 deletions(-)

diff --git a/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs b/Application/IStation.Application.OpenApi/shys/plan/PlanAna_ShysController.cs
index a94a73b..00cdcfb 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_20221103.json";
+            var path = @"D:\WorkData\IStation\result_20221109.json";
             if (!System.IO.File.Exists(path))
                 return null;
 
diff --git a/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs b/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs
index 8587a9d..de4cd76 100644
--- a/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs
+++ b/Application/IStation.Application.OpenApi/shys/plan/shys/ShysHelper.cs
@@ -33,19 +33,16 @@
         {
             _dict = new Dictionary<int, StationInfo>();
 
-
-            //_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鏃�, 鍑哄彛鍘嬪姏浣庝簬姘存睜姘翠綅
+            //_dict.Add(6, new StationInfo(4, new IStation.Calculation.shys涓ユˉ娉电珯()));//NG 涓嶅紑娉� 涓嶈�冭檻
+ 
 #if (DEBUG)
-            //_dict.Add(20, new StationInfo(18, new IStation.Calculation.shys閲戞辰鍙栨按()));
-            //_0402010701011204001 搴旇鏄按浣嶆槸鍚︽悶閿�,  鏇茬嚎涓嶅叏
-            _dict.Add(7, new StationInfo(6, new IStation.Calculation.shys涓存睙1鍙锋车鎴�()));
+  
+            //_dict.Add(19, new StationInfo(14, new IStation.Calculation.shys闄堣浜屽彇()));//NG 1鏈�5鏃�, 鍑哄彛鍘嬪姏浣庝簬姘存睜姘翠綅 ,鍙兘杩樻槸杩涘彛娑蹭綅闂
+
 #else
+            _dict.Add(12, new StationInfo(15, new IStation.Calculation.shys闄堣涓�杈�()));//OK 绗�4鎵�
+            _dict.Add(17, new StationInfo(21, new IStation.Calculation.shys澶фˉ娉电珯()));//OK 绗�4鎵�,鎵▼鍙湁涓�绫冲, 涓旈渶瑕佸鍔犲嚭鍙e帇鍔涙墠鑳借绠�
+
             _dict.Add(18, new StationInfo(1 , new IStation.Calculation.shys闈掕崏娌欏彇姘�()));//鍏ㄦ槸0 鏄惁姝g‘?
             _dict.Add(20, new StationInfo(18, new IStation.Calculation.shys閲戞辰鍙栨按()));
             _dict.Add(7, new StationInfo(6, new IStation.Calculation.shys涓存睙1鍙锋车鎴�()));
diff --git "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\345\244\247\346\241\245\346\263\265\347\253\231.cs" "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\345\244\247\346\241\245\346\263\265\347\253\231.cs"
index dd5c610..9b069e8 100644
--- "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\345\244\247\346\241\245\346\263\265\347\253\231.cs"
+++ "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\345\244\247\346\241\245\346\263\265\347\253\231.cs"
@@ -118,10 +118,10 @@
                 return null;
             }
 
-            var pipe1_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤鐬椂娴侀噺.Item1);
-            if (pipe1_flow == null)
+            var pipe_flow = allRecords_hour.Find(x => x.MonitorTag == monitor鍑烘按鎬荤鐬椂娴侀噺.Item1);
+            if (pipe_flow == null)
             {
-                error_info = "澶фˉ娉电珯姘寸閬�1娴侀噺娴嬬偣鏈壘鍒�";
+                error_info = "澶фˉ娉电珯姘寸閬� 娴侀噺娴嬬偣鏈壘鍒�";
                 return null;
             }
 
@@ -150,17 +150,17 @@
                              new DispatchAna.Model.InletPipePara(){ Name="姘存睜4",  IsWaterLevel= true,Value = water_level4.RecordValue}
                         };
             complex_dispatch_request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
-            //complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
-            //{
-            //    Name = "涓滆皟鍘嬫睜",
-            //    TargetFlow = pipe1_flow.RecordValue / 2,
-            //    IsWaterLevel = true,
-            //    TargetPress = oulet_wl1.RecordValue,
-            //});
+            complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
+            {
+                Name = "涓滆皟鍘嬫睜",
+                TargetFlow = pipe_flow.RecordValue / 2,
+                IsWaterLevel = true,
+                TargetPress = oulet_wl2.RecordValue,
+            });
             complex_dispatch_request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
             {
                 Name = "瑗胯皟鍘嬫睜",
-                TargetFlow = pipe1_flow.RecordValue / 2,
+                TargetFlow = pipe_flow.RecordValue / 2,
                 IsWaterLevel = true,
                 TargetPress = oulet_wl2.RecordValue,
             });
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 a2bef87..03f1500 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"
@@ -143,19 +143,34 @@
             double totalQ = 0, totalH = 0, totalP = 0;
             int pipe_count = 0;
 
+            int ResultStatus = 1;
+            string ResultStatusInfo = null;
 
+            List<IStation.Calculation.DispatchAna.Model.AnaScheme> pipe1_results = null;
             AnaScheme pipe1_result = null;
             if (pipe1_TargetFlow > 100)
             {
                 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, out error_info);
-                var pipe1_results = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
+                double outlet_wl_calc = outlet_wl1;
+                for (int i = 0; i < 5; i++)
+                {//鎵▼杩囦綆,绠椾笉鍑烘潵灏卞鍔犲嚭鍙e帇鍔� 
+              
+                    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, out error_info);
+                    pipe1_results = calc_pipe1_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
+                    if (pipe1_results != null && pipe1_results.Count > 0)
+                    {
+                        break;
+                    }
+                    outlet_wl_calc = outlet_wl_calc * 1.05;
+                    ResultStatus = 2;
+                    ResultStatusInfo = "鎻愰珮浜嗕竴鍙峰嚭鍙g娑蹭綅鍙傛暟";
+                }
                 if (pipe1_results == null || pipe1_results.Count() == 0)
                 {
                     error_info = String.Format("绠¤矾涓�璋冨害鏂规鏃犳硶璁$畻,璇风‘璁ゆ暟鎹槸鍚﹀悎鐞�,杩涘彛娑蹭綅:{0}m {1}m,鍑哄彛娑蹭綅:{2}m,娴侀噺瑕佹眰:{3}",
@@ -170,27 +185,41 @@
                 pipe_count++;
             }
 
-
-            AnaScheme pipe2_result = null;
+            IStation.Calculation.DispatchAna.Model.AnaScheme pipe2_result = null;
+            List<IStation.Calculation.DispatchAna.Model.AnaScheme> pipe2_results = null;
+  
             if (pipe2_TargetFlow > 100)
             {
                 Common.DispatchAnaGeneralHelper鍘嬪姏 calc_pipe2_helper = new Common.DispatchAnaGeneralHelper鍘嬪姏();
-                calc_pipe2_helper.InitialParas(
+                double outlet_wl_calc = outlet_wl2;
+                int i = 0;
+                for (i = 0; i < 5; i++)
+                {//鎵▼杩囦綆,绠椾笉鍑烘潵灏卞鍔犲嚭鍙e帇鍔� 
+                    calc_pipe2_helper.InitialParas(
                     pipe2_TargetFlow,//鍋囪涓�杈硅緭鍑轰竴鍗�
                     (inlet_wl3 + inlet_wl4) / 2, true,
-                    outlet_wl2, true,
+                    outlet_wl_calc, true,
                     null, null,
-                 (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
+                    (from x in _allMachineList where pipe2_machineIds.Contains(x.MachineID) select x).ToList(),
                 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);
+                    calc_pipe2_helper.IsAllowOverTargetPress = true;//鏄惁鍏佽瓒呰繃鐩爣鍘嬪姏, 浣嗘渶灏忓彉棰戦鐜囬兘姣旇姹傚帇鍔涢珮鏃�, 鎸夋渶灏忛鐜囧紑娉�
+                    pipe2_results = calc_pipe2_helper.CalcOptList(complex_request_paras.SchemeSortType, 3);
+                    if (pipe2_results != null && pipe2_results.Count > 0)
+                    {
+                        break;
+                    }
+                    ResultStatus = 2;
+                    outlet_wl_calc = outlet_wl_calc * 1.05;
+                    ResultStatusInfo = "鎻愰珮浜嗕簩鍙峰嚭鍙g娑蹭綅鍙傛暟";
+                }
                 if (pipe2_results == null || pipe2_results.Count() == 0)
                 {
                     error_info = String.Format("绠¤矾涓�璋冨害鏂规鏃犳硶璁$畻,璇风‘璁ゆ暟鎹槸鍚﹀悎鐞�,杩涘彛娑蹭綅:{0}m {1}m,鍑哄彛娑蹭綅:{2}m,娴侀噺瑕佹眰:{3}",
                  inlet_wl3, inlet_wl4, outlet_wl2, pipe2_TargetFlow);
                     return null;
                 }
+
                 pipe2_result = pipe2_results.First();
  
                 totalQ += pipe2_result.TotalWrkQ;
@@ -218,9 +247,10 @@
                 plan.Items.AddRange(pipe2_result.Items);
 
 
+            plan.ResultStatus = ResultStatus;
+            plan.ResultStatusInfo = ResultStatusInfo;
             return new List<Model.AnaScheme>() { plan };
             #endregion
-
         }
 
 
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 816d8dd..c66330d 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"
@@ -196,14 +196,15 @@
                 totalH += pipe1_result.TotalWrkH;
                 pipe_count++;
             }
+
+
             IStation.Calculation.DispatchAna.Model.AnaScheme pipe2_result = null;
-            List<IStation.Calculation.DispatchAna.Model.AnaScheme> pipe2_results = null;
-         
+            List<IStation.Calculation.DispatchAna.Model.AnaScheme> pipe2_results = null;     
             if (pipe2_TargetFlow > 50)
             {
-                double outlet_press_calc = pipe2_TargetPess; 
+                double outlet_press_calc = pipe2_TargetPess;
                 int i = 0;
-                for (  i = 0; i < 5; i++)
+                for (i = 0; i < 5; i++)
                 {//鎵▼杩囦綆,绠椾笉鍑烘潵灏卞鍔犲嚭鍙e帇鍔� 
                     calc_pipe2_helper.InitialParas(
                         pipe2_TargetFlow,
diff --git a/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs b/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs
index 637abe4..c07f8e2 100644
--- a/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs
+++ b/Model/IStation.Model.Eta/eta_real/basic/EtaBasicRealRecord.cs
@@ -514,7 +514,7 @@
         public bool CalcUnitPower()
         {
             Calcu_WP();
-            return  Calcu_UWP();
+            return Calcu_UWP();
         }
         /// <summary>
         /// 

--
Gitblit v1.9.3