Application/IStation.Application.OpenApi/shys/plan/dto/input/HourSumRecord.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Application/IStation.Application.OpenApi/shys/plan/dto/input/MonitorRecord.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Application/IStation.Application.OpenApi/shys/plan/dto/input/MonthSumRecord.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Application/IStation.Application.OpenApi/shys/plan/dto/output/MonthCalcuResult.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Application/IStation.Application.OpenApi/shys/plan/helper/IPlanAnaCalculator.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaCalculatorFactory.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Application/IStation.Application.OpenApi/shys/plan/shys/shys长兴泵站.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Application/IStation.Application.OpenApi/shys/plan/dto/input/HourSumRecord.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ using 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; } } } Application/IStation.Application.OpenApi/shys/plan/dto/input/MonitorRecord.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,24 @@ using 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; } } } Application/IStation.Application.OpenApi/shys/plan/dto/input/MonthSumRecord.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ using 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; } } } Application/IStation.Application.OpenApi/shys/plan/dto/output/MonthCalcuResult.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ using 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; } } } Application/IStation.Application.OpenApi/shys/plan/helper/IPlanAnaCalculator.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ using 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 = "æªæå»ºDispatchAna.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; } } } Application/IStation.Application.OpenApi/shys/plan/helper/PlanAnaCalculatorFactory.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ using 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; } } } Application/IStation.Application.OpenApi/shys/plan/shys/shys³¤Ð˱ÃÕ¾.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,124 @@ using 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#åå //}; } }