| | |
| | | |
| | | namespace IStation.Calculation |
| | | { |
| | | internal class shysé¿å
´æ³µç«: PlanAnaCalculator |
| | | internal class shysé¿å
´æ³µç«: PlanAnaBaseCalculator |
| | | { |
| | | 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>("_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#åå |
| | | //}; |
| | | |
| | | /// <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 pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor水管é1åå.Item1); |
| | | if (pipe1_press == 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 pipe2_press = allRecords_hour.Find(x => x.MonitorTag == monitor水管é2åå.Item1); |
| | | if (pipe2_press == null) |
| | | { |
| | | error_info = "éèæ²æ°´ç®¡é2ååæµç¹æªæ¾å°"; |
| | | 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.WaterLevelPara = new List<DispatchAna.Model.WaterLevelPara>() |
| | | { |
| | | new DispatchAna.Model.WaterLevelPara(){ 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 = 0 }); |
| | | |
| | | |
| | | error_info = null; |
| | | return complex_dispatch_request; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |