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