ningshuxia
2025-03-20 d1807075581920a8c94a409b11a9c88dd869be1e
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
namespace Yw.WinFrmUI
{
    /// <summary>
    /// 水泵分析并联视图
    /// </summary>
    public class HydroPumpAnalyParallelViewModel
    {
        /// <summary>
        /// 
        /// </summary>
        public HydroPumpAnalyParallelViewModel() { }
 
        /// <summary>
        /// 
        /// </summary>
        public HydroPumpAnalyParallelViewModel(List<HydroPumpAnalyItemViewModel> allItemList)
        {
            if (allItemList == null || allItemList.Count < 1)
            {
                return;
            }
            this.Items = new List<HydroPumpAnalyParallelItemViewModel>();
            var groupList = allItemList.GroupBy(x => x.BeginGroup).ToList();
            foreach (var group in groupList)
            {
                var curveQhList = new List<Yw.Pump.CurveQH>();
                var curveQpList = new List<Yw.Pump.CurveQP>();
                foreach (var item in group)
                {
                    if (item.LinkStatus == Yw.Hydro.PumpStatus.Open)
                    {
                        var curveQh = new Yw.Pump.CurveQH(Ahart.eFeatType.Cubic, item.CurrentCurveQH);
                        curveQhList.Add(curveQh);
                        var curveQp = new Yw.Pump.CurveQP(Ahart.eFeatType.Cubic, item.CurrentCurveQP);
                        curveQpList.Add(curveQp);
                    }
                }
                var curveGroup = Yw.Pump.PerformParallelHelper.CalcuParallelPointList(curveQhList, curveQpList);
                if (curveGroup.PointListQH == null || curveGroup.PointListQH.Count < 1)
                {
                    continue;
                }
                var vmItem = new HydroPumpAnalyParallelItemViewModel();
                vmItem.BeginGroup = group.Key;
                vmItem.CurveQH = curveGroup.PointListQH;
                vmItem.CurveQP = curveGroup.PointListQP;
                vmItem.CurveQE = curveGroup.PointListQE;
                vmItem.Items = group.ToList();
                this.Items.Add(vmItem);
            }
 
        }
 
        /// <summary>
        /// 子集集合
        /// </summary>
        public List<HydroPumpAnalyParallelItemViewModel> Items { get; set; }
    }
}