lixiaojun
2025-01-24 7b65f86343ca014b12894f09b7d62e8b5ac1f95d
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
138
139
140
141
142
143
144
145
146
147
148
149
150
namespace Yw.WinFrmUI
{
    /// <summary>
    /// 
    /// </summary>
    public static class HydroWorkingExtensions
    {
 
        /// <summary>
        /// 更新工况信息
        /// </summary>
        public static void UpdateWorkingInfo(this Yw.Model.HydroModelInfo hydroInfo, string workingInfo)
        {
            hydroInfo.UpdateWorkingInfo(JsonHelper.Json2Object<HydroWorkingInfoViewModel>(workingInfo));
        }
 
        /// <summary>
        /// 更新工况信息
        /// </summary>
        public static void UpdateWorkingInfo(this Yw.Model.HydroModelInfo hydroInfo, HydroWorkingInfoViewModel workingInfo)
        {
            if (hydroInfo == null)
            {
                return;
            }
            if (workingInfo == null)
            {
                return;
            }
 
            #region 水库
 
            if (hydroInfo.Reservoirs != null && hydroInfo.Reservoirs.Count > 0)
            {
                foreach (var visual in hydroInfo.Reservoirs)
                {
                    var visualWorkingInfo = workingInfo.Reservoirs?.Find(x => x.Code == visual.Code);
                    if (visualWorkingInfo != null)
                    {
                        visual.Head = visualWorkingInfo.Head;
                    }
                }
            }
 
            #endregion
 
            #region 水池
 
            var tanks = hydroInfo.GetAllTanks();
            if (tanks != null && tanks.Count > 0)
            {
                foreach (var visual in tanks)
                {
                    var visualWorkingInfo = workingInfo.Tanks?.Find(x => x.Code == visual.Code);
                    if (visualWorkingInfo != null)
                    {
                        visual.InitLevel = visualWorkingInfo.InitLevel;
                    }
                }
            }
 
            #endregion
 
            #region 水泵
 
            if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0)
            {
                foreach (var visual in hydroInfo.Pumps)
                {
                    var visualWorkingInfo = workingInfo.Pumps?.Find(x => x.Code == visual.Code);
                    if (visualWorkingInfo != null)
                    {
                        visual.LinkStatus = visualWorkingInfo.LinkStatus;
                        visual.SpeedRatio = visualWorkingInfo.CurrentHz / visual.RatedHz;
                    }
                }
            }
 
            #endregion
 
            #region 阀门
 
            if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0)
            {
                foreach (var visual in hydroInfo.Valves)
                {
                    var visualWorkingInfo = workingInfo.Valves?.Find(x => x.Code == visual.Code);
                    if (visualWorkingInfo != null)
                    {
                        visual.LinkStatus = visualWorkingInfo.LinkStatus;
                        visual.OpeningDegree = visualWorkingInfo.OpeningDegree;
                    }
                }
            }
 
            #endregion
 
            #region 阻件
 
            var resistances = hydroInfo.GetAllResistances();
            if (resistances != null && resistances.Count > 0)
            {
                foreach (var visual in resistances)
                {
                    var visualWorkingInfo = workingInfo.Resistances?.Find(x => x.Code == visual.Code);
                    if (visualWorkingInfo != null)
                    {
                        visual.LinkStatus = visualWorkingInfo.LinkStatus;
                    }
                }
            }
 
            #endregion
 
 
        }
 
        /// <summary>
        /// 更新工况信息
        /// </summary>
        public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, HydroWorkingPumpViewModel pumpWorkingInfo)
        {
            if (pumpInfo == null)
            {
                return;
            }
            if (pumpWorkingInfo == null)
            {
                return;
            }
            pumpInfo.LinkStatus = pumpWorkingInfo.LinkStatus;
            pumpInfo.SpeedRatio = pumpWorkingInfo.CurrentHz / pumpInfo.RatedHz;
        }
 
        /// <summary>
        /// 更新工况信息
        /// </summary>
        public static void UpdateWorkingInfo(this Yw.Model.HydroPumpInfo pumpInfo, List<HydroWorkingPumpViewModel> allWorkingList)
        {
            if (pumpInfo == null)
            {
                return;
            }
            var workingInfo = allWorkingList?.Find(x => x.Code == pumpInfo.Code);
            pumpInfo.UpdateWorkingInfo(workingInfo);
        }
 
 
    }
}