Shuxia Ning
2024-07-10 7f37f008a60b4797cee17ed9b1c0189590baae8d
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
 
using Yw.Untity;
 
IStation.ConfigHelper.InitHydraulicDB();
 
 
var station1 = "Pump11,Pump12,Pump13,Pump14,Pump15,Pump16,Pump17,Pump18,R3,R2,R1,SFJD1,SFJD2,SFJD3";
var pattern_id_list1 = StringListHelper.ToList(station1);
 
var station2 = "RPump21,SFPump21,Pump21,RPump22,SFPump22,Pump22,RPump23,SFPump23,Pump23,RPump24,SFPump24,Pump24,RPump25,SFPump25,Pump25,RPump26,SFPump26,Pump26,RPump27,SFPump27,Pump27,SFDN2400,SFDN2700";
var pattern_id_list2 = StringListHelper.ToList(station2);
 
var pattern_id_list = new List<string>();
pattern_id_list.AddRange(pattern_id_list1);
pattern_id_list.AddRange(pattern_id_list2);
 
var pressure_tag_list1 = new List<string>() { "SPJD1", "SPJD2", "SPJD3", "SPPump11", "SPPump12", "SPPump13", "SPPump14", "SPPump15", "SPPump16", "SPPump17", "SPPump18" };
var pressure_tag_list2 = new List<string>() { "SPDN2400", "SPDN2700", "SPPump21", "SPPump22", "SPPump23", "SPPump24", "SPPump25", "SPPump26", "SPPump27" };
 
var pressure_tag_list = new List<string>();
pressure_tag_list.AddRange(pressure_tag_list1);
pressure_tag_list.AddRange(pressure_tag_list2);
 
 
var flow_tag_list1 = new List<string>() { "SFJD1", "SFJD2", "SFJD3" };
var flow_tag_list2 = new List<string>() { "SFDN2400", "SFDN2700", "SFPump21", "SFPump22", "SFPump23", "SFPump24", "SFPump25", "SFPump26", "SFPump27" };
 
var flow_tag_list = new List<string>();
flow_tag_list.AddRange(flow_tag_list1);
flow_tag_list.AddRange(flow_tag_list2);
 
 
var pressure_id_mapping_dict1 = new Dictionary<string, string>()
{
    {"Jjd1","SPJD1"},
    {"Jjd2","SPJD2"},
    {"Jjd3","SPJD3"},
    {"Jpump11","SPPump11" },
    {"Jpump12","SPPump12" },
    {"Jpump13","SPPump13" },
    {"Jpump14","SPPump14" },
    {"Jpump15","SPPump15" },
    {"Jpump16","SPPump16" },
    {"Jpump17","SPPump17" },
    {"Jpump18","SPPump18" }
};
 
 
var pressure_id_mapping_dict2 = new Dictionary<string, string>()
{
    {"Jdn2400","SPDN2400"},
    {"Jdn2700","SPDN2700"},
    {"Jpump21","SPPump21"},
    {"Jpump22","SPPump22"},
    {"Jpump23","SPPump23"},
    {"Jpump24","SPPump24"},
    {"Jpump25","SPPump25"},
    {"Jpump26","SPPump26"},
    {"Jpump27","SPPump27"}
};
 
var flow_id_mapping_dict1 = new Dictionary<string, string>()
{
    {"Pjd1","SFJD1"},
    {"Pjd2","SFJD2"},
    {"Pjd3","SFJD3"}
};
 
var flow_id_mapping_dict2 = new Dictionary<string, string>()
{
    {"Pdn2400","SFDN2400"},
    {"Pdn2700","SFDN2700"},
    {"Ppump21","SFPump21"},
    {"Ppump22","SFPump22"},
    {"Ppump23","SFPump23"},
    {"Ppump24","SFPump24"},
    {"Ppump25","SFPump25"},
    {"Ppump26","SFPump26"},
    {"Ppump27","SFPump27"}
};
 
 
var pressure_id_mapping_dict = new Dictionary<string, string>();
foreach (var item in pressure_id_mapping_dict1)
{
    pressure_id_mapping_dict.Add(item.Key, item.Value);
}
foreach (var item in pressure_id_mapping_dict2)
{
    pressure_id_mapping_dict.Add(item.Key, item.Value);
}
 
var flow_id_mapping_dict = new Dictionary<string, string>();
foreach (var item in flow_id_mapping_dict1)
{
    flow_id_mapping_dict.Add(item.Key, item.Value);
}
foreach (var item in flow_id_mapping_dict2)
{
    flow_id_mapping_dict.Add(item.Key, item.Value);
}
 
//var config=new IStation.Model.HydraulicModelValidationConfig();
//config.FlowIdMappingDict = flow_id_mapping_dict; 
//config.PressureIdMappingDict = pressure_id_mapping_dict;
//config.PatternIdMappingDict = new Dictionary<string, string>();
//foreach (var item in pattern_id_list)
//{
//    config.PatternIdMappingDict[item] = item;
//}
 
//var bol1 = new IStation.Service.HydraulicModelValidationConfig().Save(config); 
//return;
 
 
 
var verify_id = Yw.YitIdHelper.NextId();
var file_path = $"{AppDomain.CurrentDomain.BaseDirectory}Data\\HydraulicModel.inp";
 
//var hydraulic_model_scada_list = new List<IStation.Model.HydraulicModelScada>(); 
var dayValueList = IStation.Test.DayValueHelper.GetDayValues();
foreach (var dayValue in dayValueList)
{
    var patternList = new List<IStation.Hydraulic.Pattern>();
    foreach (var pattern_id in pattern_id_list)
    {
        var pattern = new IStation.Hydraulic.Pattern
        {
            Id = pattern_id,
            FactorList = new List<float>()
        };
        patternList.Add(pattern);
    }
 
    var timeValueList = dayValue.TimeValueList.OrderBy(x => x.Time).ToList();
    foreach (var timeValue in timeValueList)
    {
        var time = timeValue.Time;
        var value_dict = timeValue.Value;
        foreach (var item in value_dict)
        {
            var scada_id = item.Key;
            var scada_value = item.Value;
            var pattern = patternList.Find(x => x.Id == scada_id);
            if (pattern != null)
            {
                pattern.FactorList.Add((float)scada_value);
            }
 
            //foreach (var flow_id_mapping in flow_id_mapping_dict)
            //{
            //    if (flow_id_mapping.Value != scada_id)
            //        continue;
            //    var hydraulic_model_scada = new IStation.Model.HydraulicModelScada();
            //    hydraulic_model_scada.VerificationID = verify_id;
            //    hydraulic_model_scada.Time = time;
            //    hydraulic_model_scada.Tag = scada_id;
            //    hydraulic_model_scada.Value = Math.Abs(scada_value);
            //    hydraulic_model_scada_list.Add(hydraulic_model_scada);
            //}
 
            //foreach (var pressure_id_mapping in pressure_id_mapping_dict)
            //{
            //    if (pressure_id_mapping.Value != scada_id)
            //        continue;
            //    var hydraulic_model_scada = new IStation.Model.HydraulicModelScada();
            //    hydraulic_model_scada.VerificationID = verify_id;
            //    hydraulic_model_scada.Time = time;
            //    hydraulic_model_scada.Tag = scada_id;
            //    hydraulic_model_scada.Value = scada_value;
            //    hydraulic_model_scada_list.Add(hydraulic_model_scada);
            //}
 
        }
    }
 
    dayValue.PatternList = patternList;
}
 
 
//var bol = new IStation.Service.HydraulicModelScada().BulkInserts(hydraulic_model_scada_list); 
var hydraulic_model_record_list = IStation.Hydraulic.ModeVerifyHelper.Verify(verify_id, file_path, flow_id_mapping_dict, pressure_id_mapping_dict, dayValueList);
var bol = new IStation.Service.HydraulicModelRecord().BulkInserts(hydraulic_model_record_list);
 
Console.WriteLine($"插入完成,状态:{bol}");