From c4c7b110178d02ad732eddf9a67c4a6ebb150da5 Mon Sep 17 00:00:00 2001
From: tangxu <76880903@qq.com>
Date: 星期六, 08 十月 2022 15:10:59 +0800
Subject: [PATCH] 文件遗漏

---
 Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaCalculatorFactory.cs |   33 +++++
 Application/IStation.Application.OpenApi/shys/plan/dto/input/MonitorRecord.cs         |   24 ++++
 Application/IStation.Application.OpenApi/shys/plan/helper/IPlanAnaCalculator.cs       |   84 ++++++++++++++
 Application/IStation.Application.OpenApi/shys/plan/dto/input/MonthSumRecord.cs        |   26 ++++
 Application/IStation.Application.OpenApi/shys/plan/dto/input/HourSumRecord.cs         |   24 ++++
 Application/IStation.Application.OpenApi/shys/plan/shys/shys长兴泵站.cs                   |  124 ++++++++++++++++++++
 Application/IStation.Application.OpenApi/shys/plan/dto/output/MonthCalcuResult.cs     |   36 ++++++
 7 files changed, 351 insertions(+), 0 deletions(-)

diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/input/HourSumRecord.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/input/HourSumRecord.cs
new file mode 100644
index 0000000..aa544c4
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/shys/plan/dto/input/HourSumRecord.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IStation.Dto
+{
+    /// <summary>
+    /// 鏃舵眹鎬昏褰�
+    /// </summary>
+    public class HourSumRecord 
+    {
+        /// <summary>
+        /// 0-23
+        /// </summary>
+        public int Hour { get; set; }
+
+        /// <summary>
+        /// 璁板綍
+        /// </summary>
+        public List<MonitorRecord4SG> Records { get; set; }
+    }
+}
diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/input/MonitorRecord.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/input/MonitorRecord.cs
new file mode 100644
index 0000000..d3abb71
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/shys/plan/dto/input/MonitorRecord.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IStation.Dto
+{
+    /// <summary>
+    /// 鐩戞祴鍊�
+    /// </summary>
+    public class MonitorRecord4SG
+    {
+        /// <summary>
+        /// 鐩戞祴id
+        /// </summary>
+        public string  MonitorTag { get; set; }
+
+        /// <summary>
+        /// 璁板綍鍊�
+        /// </summary>
+        public double RecordValue { get; set; }
+    }
+}
diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/input/MonthSumRecord.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/input/MonthSumRecord.cs
new file mode 100644
index 0000000..df0eeb5
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/shys/plan/dto/input/MonthSumRecord.cs
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IStation.Dto
+{
+    /// <summary>
+    /// 鏈堟眹鎬昏褰�
+    /// </summary>
+    public class MonthSumRecord
+    {
+        /// <summary>
+        /// 鏈堜唤 1-12
+        /// </summary>
+        public int Month { get; set; }
+
+        /// <summary>
+        /// 璁板綍鍒楄〃
+        /// </summary>
+        public List<HourSumRecord> HourRecords { get; set; }
+
+
+    }
+}
diff --git a/Application/IStation.Application.OpenApi/shys/plan/dto/output/MonthCalcuResult.cs b/Application/IStation.Application.OpenApi/shys/plan/dto/output/MonthCalcuResult.cs
new file mode 100644
index 0000000..fca1b3d
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/shys/plan/dto/output/MonthCalcuResult.cs
@@ -0,0 +1,36 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace IStation.Dto
+{
+    /// <summary>
+    /// 鏈堣绠楃粨鏋�
+    /// </summary>
+    public class MonthCalcuResult
+    {
+        /// <summary>
+        /// 鏈堜唤 1-12
+        /// </summary>
+        public int Month { get; set; }
+
+        /// <summary>
+        /// 渚涙按閲� m鲁
+        /// </summary>
+        public double Qt { get; set; }
+
+        /// <summary>
+        /// 鑰楃數閲� kw
+        /// </summary>
+        public double Dt { get; set; }
+
+        /// <summary>
+        /// 鍗冨惃鑳借��
+        /// </summary>
+        public double WP { get; set; }
+
+
+    }
+}
diff --git a/Application/IStation.Application.OpenApi/shys/plan/helper/IPlanAnaCalculator.cs b/Application/IStation.Application.OpenApi/shys/plan/helper/IPlanAnaCalculator.cs
new file mode 100644
index 0000000..3c5dd7c
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/shys/plan/helper/IPlanAnaCalculator.cs
@@ -0,0 +1,84 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using IStation.Application; 
+using IStation.Dto;
+
+namespace IStation.Calculation
+{
+    /// <summary>
+    /// 璁″垝鍒嗘瀽璁$畻鍣ㄦ帴鍙�
+    /// </summary>
+    public class  PlanAnaCalculator
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        protected IStation.Calculation.DispatchAna.IOptAnaCalc _dispatchAnaCalc = null;
+        /// <summary>
+        /// 
+        /// </summary>
+        public virtual List<Dto.MonthCalcuResult> Calc (
+            Model.Station station,int factoryId, 
+            List<Dto.MonthSumRecord> sumRecordList,
+            out string error_info)
+        {
+            if(_dispatchAnaCalc == null)
+            {
+                error_info = "鏈瀯寤篋ispatchAna.IOptAnaCalc";
+                return null;
+            }
+            int year = DateTime.Now.Year;
+
+            List<Dto.MonthCalcuResult> monthRecordList = new List<Dto.MonthCalcuResult>();
+
+
+            foreach (var monthRecord in sumRecordList)
+            {
+                //
+                List<IStation.Calculation.DispatchAna.Model.HourRequest> HourRequests = 
+                    BuildHourRequest(monthRecord.HourRecords,out error_info);
+                if(HourRequests == null || HourRequests.Count() == 0)
+                {
+                    error_info = "闈掕崏娌� 鏋勫缓DHourRequests 澶辫触,鍘熷洜:" + error_info;
+                    return null;
+                }
+
+                var dayNumber = DateTime.DaysInMonth(year, monthRecord.Month);
+
+                var daySum = this._dispatchAnaCalc.CalcSumData(HourRequests, out error_info);
+                if (daySum == null || daySum.Qt<=0)
+                {
+                    error_info = "闈掕崏娌�,璋冨害鍒嗘瀽澶辫触,鍘熷洜:" + error_info;
+                    return null;
+                }
+                Dto.MonthCalcuResult monthSum = new Dto.MonthCalcuResult();
+                monthSum.Month = monthRecord.Month;
+                monthSum.Qt = daySum.Qt * dayNumber;
+                monthSum.Dt = daySum.Dt * dayNumber;
+                monthSum.WP = daySum.WP;
+                monthRecordList.Add(monthSum);
+            }
+            error_info = null;
+            return monthRecordList;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="HourSumRecords"></param>
+        /// <param name="error_info"></param>
+        /// <returns></returns>
+        protected virtual List<IStation.Calculation.DispatchAna.Model.HourRequest> BuildHourRequest(
+            List<IStation.Dto.HourSumRecord> HourSumRecords,
+            out string error_info)
+        {
+            error_info = "鏈疄渚嬪寲";
+            return null;
+        }
+
+
+    }
+}
diff --git a/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaCalculatorFactory.cs b/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaCalculatorFactory.cs
new file mode 100644
index 0000000..4535a6d
--- /dev/null
+++ b/Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaCalculatorFactory.cs
@@ -0,0 +1,33 @@
+锘縰sing IStation.Dto;
+ 
+
+namespace IStation.Calculation
+{
+    internal class PlanAnaCalculatorFactory 
+    {
+        /// <summary>
+        /// 鍒涘缓璁$畻鍣�
+        /// </summary>
+        public static  PlanAnaCalculator CreateCalculator(long corpId, string objectType, long objectId)
+        {
+             PlanAnaCalculator calculator = null;
+            if (objectType == ObjectType.Station)
+            {
+                switch (objectId)
+                {
+                    case 2:
+                        calculator = new IStation.Calculation.shys闀垮叴娉电珯();
+                        break;
+
+                    default: break;
+                }
+            }
+
+            return calculator;
+        }
+
+
+
+
+    }
+}
\ No newline at end of file
diff --git "a/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\225\277\345\205\264\346\263\265\347\253\231.cs" "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\225\277\345\205\264\346\263\265\347\253\231.cs"
new file mode 100644
index 0000000..2fef580
--- /dev/null
+++ "b/Application/IStation.Application.OpenApi/shys/plan/shys/shys\351\225\277\345\205\264\346\263\265\347\253\231.cs"
@@ -0,0 +1,124 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;  
+
+namespace IStation.Calculation
+{
+    internal class shys闀垮叴娉电珯: PlanAnaCalculator
+    { 
+        public shys闀垮叴娉电珯( )
+        {
+            this._dispatchAnaCalc = new IStation.Calculation.DispatchAna.Calculator_OptAna_SHYS_闀垮叴宀�();
+        }
+
+        protected override List<IStation.Calculation.DispatchAna.Model.HourRequest> BuildHourRequest(
+            List<IStation.Dto.HourSumRecord> HourSumRecords,
+            out string error_info)
+        {
+
+            List<IStation.Calculation.DispatchAna.Model.HourRequest> HourRequests = new List<DispatchAna.Model.HourRequest>();
+
+
+            for (int i = 0; i <= 23; i++)
+            {
+                var hourSumRecord = new IStation.Calculation.DispatchAna.Model.HourRequest();
+                hourSumRecord.Hour = i;
+                hourSumRecord.Request = new DispatchAna.Model.RequestParasComplex();
+                var Records = HourSumRecords[i].Records;
+                var water_level = Records.Find(x => x.MonitorTag == monitor娉电珯鍓嶆睜娑蹭綅.Item1);
+                if(water_level  == null)
+                {
+                    water_level = Records.Find(x => x.MonitorTag == monitor闈掕崏娌欐按搴撴恫浣�.Item1);
+                    if (water_level == null)
+                    {
+                        error_info = "闈掕崏娌欐按搴撴恫浣嶆祴鐐规湭鎵惧埌";
+                        return HourRequests;
+                    }
+                }
+                var pipe1_flow = Records.Find(x => x.MonitorTag == monitor姘寸閬�1娴侀噺.Item1);
+                if (pipe1_flow == null)
+                {
+                    error_info = "闈掕崏娌欐按绠¢亾1娴侀噺娴嬬偣鏈壘鍒�";
+                    return HourRequests;
+                }
+
+                var pipe1_press = Records.Find(x => x.MonitorTag == monitor姘寸閬�1鍘嬪姏.Item1);
+                if (pipe1_press == null)
+                {
+                    error_info = "闈掕崏娌欐按绠¢亾1鍘嬪姏娴嬬偣鏈壘鍒�";
+                    return HourRequests;
+                }
+
+
+                var pipe2_flow = Records.Find(x => x.MonitorTag == monitor姘寸閬�2娴侀噺.Item1);
+                if (pipe2_flow == null)
+                {
+                    error_info = "闈掕崏娌欐按绠¢亾2娴侀噺娴嬬偣鏈壘鍒�";
+                    return HourRequests;
+                }
+                var pipe2_press = Records.Find(x => x.MonitorTag == monitor姘寸閬�2鍘嬪姏.Item1);
+                if (pipe2_press == null)
+                {
+                    error_info = "闈掕崏娌欐按绠¢亾2鍘嬪姏娴嬬偣鏈壘鍒�";
+                    return HourRequests;
+                }
+                hourSumRecord.Request.CorpID = 4;
+                hourSumRecord.Request.StationID = 2;
+                hourSumRecord.Request.SchemeNumber = 1;
+                hourSumRecord.Request.PressValueType = DispatchAna.Model.RequestParasComplex.ePressValueType.鍘嬪姏;
+                hourSumRecord.Request.WaterLevelPara = new List<DispatchAna.Model.WaterLevelPara>()
+                        {
+                            new DispatchAna.Model.WaterLevelPara(){ Name="姘存睜", Value = water_level.RecordValue}
+                        };
+                hourSumRecord.Request.OutletPipePara = new List<DispatchAna.Model.OutletPipePara>();
+                hourSumRecord.Request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
+                {
+                    Name = "涓�鍙风璺�",
+                    TargetFlow = pipe1_flow.RecordValue,
+                    TargetPress = pipe1_press.RecordValue,
+                });
+                hourSumRecord.Request.OutletPipePara.Add(new DispatchAna.Model.OutletPipePara()
+                {
+                    Name = "浜屽彿绠¤矾",
+                    TargetFlow = pipe2_flow.RecordValue,
+                    TargetPress = pipe2_press.RecordValue,
+                });
+
+                hourSumRecord.Request.ValvePara = new List<DispatchAna.Model.ValvePara>();
+                hourSumRecord.Request.ValvePara.Add(new DispatchAna.Model.ValvePara() { Name = "涓棿闃�闂�", OpenStatus = 0 });
+                //if (factoryData.result != null && factoryData.result.Count > 0)
+                //{
+                //    foreach (var resultItem in factoryData.result)
+                //    {
+                //        var resultRecord = new Calculation.PlanAna.MonitorRecord();
+                //        resultRecord.MonitorId = PlanAnaConstant.MonitorDict[resultItem.tagname];
+                //        resultRecord.RecordValue = resultItem.values.Find(t => t.datetime.Trim() == PlanAnaConstant.HourDict[i]).value;
+                //        hourSumRecord.Records.Add(resultRecord);
+                //    }
+                HourRequests.Add(hourSumRecord);
+            }
+
+            error_info = null;
+            return HourRequests;
+        }
+
+        /// <summary>
+        /// 娴嬬偣瀛楀吀
+        /// </summary>
+        private Tuple<string, long> monitor闈掕崏娌欐按搴撴恫浣� = new Tuple<string, long>("_0402010403030103001", 69);
+        private Tuple<string, long> monitor娉电珯鍓嶆睜娑蹭綅 = new Tuple<string, long>("_0402010404030103001", 70);
+        private Tuple<string, long> monitor姘寸閬�1娴侀噺 = new Tuple<string, long>("_0402010403030002001", 73);
+        private Tuple<string, long> monitor姘寸閬�1鍘嬪姏 = new Tuple<string, long>("_0402010403030002005", 72);
+        private Tuple<string, long> monitor姘寸閬�2娴侀噺 = new Tuple<string, long>("_0402010403030002002", 77);
+        private Tuple<string, long> monitor姘寸閬�2鍘嬪姏 = new Tuple<string, long>("_0402010403030002006", 76);
+        //{"_0402010403030103001",69},//闈掕崏娌欐按搴撴恫浣�
+        //    {"_0402010404030103001",70},//闈掕崏娌欐按搴撳惛姘翠簳娑蹭綅-闀垮叴娉电珯鍓嶆睜娑蹭綅
+        //    {"_0402010403030002001",73},//闀垮叴娉电珯杈撴按娉靛嚭姘寸閬�1娴侀噺
+        //    {"_0402010403030002005",72},//闀垮叴娉电珯杈撴按绠¢亾1#鍘嬪姏
+        //    {"_0402010403030002002",77},//闀垮叴娉电珯杈撴按娉靛嚭姘寸閬�2娴侀噺
+        //    {"_0402010403030002006",76},//闀垮叴娉电珯杈撴按绠¢亾2#鍘嬪姏
+        //};
+    }
+}

--
Gitblit v1.9.3