tangxu
2022-10-31 8ea88fedd51e4961d0fd0aec6c2873a579fb6db8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace IStation.Calculation
{
    internal class shys大桥泵站 : PlanAnaBaseCalculator
    {
        public shys大桥泵站()
        {
            this._corpID = 4;
            this._dispatchAnaCalc = new IStation.Calculation.DispatchAna.Calculator_OptAna_General();
        }
 
        /// <summary>
        /// 测点字典(这个每个泵站都不一样)
        /// </summary>
        private Tuple<string, long> monitor出水总管东调压池 = new Tuple<string, long>("_0402010301080103002", 1049);
        private Tuple<string, long> monitor出水总管西调压池 = new Tuple<string, long>("_0402010301080103001", 1050);
        private Tuple<string, long> monitor出水总管瞬时流量 = new Tuple<string, long>("_0402010301090103004", 1051);
        private Tuple<string, long> monitor进水前液位1 = new Tuple<string, long>("_0402010301034103001", 1044);
        private Tuple<string, long> monitor进水前液位2 = new Tuple<string, long>("_0402010301034203001", 1045);
        private Tuple<string, long> monitor进水前液位3 = new Tuple<string, long>("_0402010301034303001", 1046);
        private Tuple<string, long> monitor进水前液位4 = new Tuple<string, long>("_0402010301034403001", 1047);
 
 
        /// <summary>
        /// 
        /// </summary>
        /// <param name="tagname"></param>
        /// <returns></returns>
        public override bool Is液位Monitor(string tagname)
        {
            if (monitor进水前液位1.Item1 == tagname)
                return true;
            if (monitor进水前液位2.Item1 == tagname)
                return true;
            if (monitor进水前液位3.Item1 == tagname)
                return true;
            if (monitor进水前液位4.Item1 == tagname)
                return true;
 
            return false;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="tagname"></param>
        /// <returns></returns>
        public override string GetMonitorNameByTag(string tagname)
        {
            if (monitor出水总管瞬时流量.Item1 == tagname)
                return "出水总管瞬时流量";
            if (monitor进水前液位1.Item1 == tagname)
                return "进水前液位1";
            if (monitor进水前液位2.Item1 == tagname)
                return "进水前液位2";
            if (monitor进水前液位3.Item1 == tagname)
                return "进水前液位3";
            if (monitor进水前液位4.Item1 == tagname)
                return "进水前液位4";
            if (monitor出水总管东调压池.Item1 == tagname)
                return "出水总管东调压池";
            if (monitor出水总管西调压池.Item1 == tagname)
                return "出水总管西调压池";
            return "未知测点";
        }
        /// <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出水总管瞬时流量.Item1);
            //if (pipe1_flow == null)
            //{
            //    error_info = "五号沟凌桥方向水管道1流量测点未找到";
            //    return null;
            //}
 
            //var pipe1_press = allRecords_hour.Find(x => x.MonitorTag == monitor出水总管压力.Item1);
            //if (pipe1_press == null)
            //{
            //    error_info = "五号沟凌桥方向水管道1压力测点未找到";
            //    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.InletPipePara = new List<DispatchAna.Model.InletPipePara>()
                        {
                            //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,
            });
 
 
 
 
 
            error_info = null;
            return complex_dispatch_request;
        }
 
 
    }
}