From 8f6d2b48f22b695574bd4a6c4ac91b1ac9f780b1 Mon Sep 17 00:00:00 2001 From: ningshuxia <ningshuxia0927@outlook.com> Date: 星期一, 06 五月 2024 17:28:35 +0800 Subject: [PATCH] 调度算法 大致完成 --- Schedule/IStation.Client/Form1.cs | 111 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 86 insertions(+), 25 deletions(-) diff --git a/Schedule/IStation.Client/Form1.cs b/Schedule/IStation.Client/Form1.cs index ddd2388..c3aea03 100644 --- a/Schedule/IStation.Client/Form1.cs +++ b/Schedule/IStation.Client/Form1.cs @@ -10,13 +10,33 @@ { System.Diagnostics.Process.GetCurrentProcess().Kill(); }; + this.cmbStation.SelectedIndex = 0; } + int _stationIndex = 0; string _floder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Data"); + + private void cmbStation_SelectedIndexChanged(object sender, EventArgs e) + { + _stationIndex = cmbStation.SelectedIndex; + if (_stationIndex == 0) + { + this.txtFlow.Text = "16406"; + this.txtHead.Text = "15.92"; + this.txtCurrentOpen.Text = "11,12,13,17"; + } + else + { + this.txtFlow.Text = "39,460"; + this.txtHead.Text = "19.65"; + this.txtCurrentOpen.Text = "22,23,25,26"; + } + + } private void btnAnaCombine_Click(object sender, EventArgs e) { - this.richTextBox1.Text += "\r\n正在分析泵组合"; + this.txtInfo.Text += "\r\n正在分析泵组合"; var ch1 = _floder + "\\" + "陈行一输.json"; var ch1_json = File.ReadAllText(ch1); var ch1Pumps = JsonHelper.Json2Object<List<Model.Pump>>(ch1_json); @@ -31,31 +51,27 @@ helper.AnaCombine(ch1Pumps); this.Invoke(() => { - this.richTextBox1.Text += "\r\n分析泵组合完毕"; + this.txtInfo.Text += "\r\n分析泵组合完毕"; }); }); } - - - private void btnAnaCh1Combine_Click(object sender, EventArgs e) { var ch1 = _floder + "\\" + "陈行一输.json"; var ch1_json = File.ReadAllText(ch1); var ch1Pumps = JsonHelper.Json2Object<List<Model.Pump>>(ch1_json); - this.richTextBox1.Text += "\r\n正在分析1输水泵组合"; + this.txtInfo.Text += "\r\n正在分析1输水泵组合"; Task.Run(() => { var helper = new Algorithm.SchedulingAnaHelper(); helper.AnaCombine(ch1Pumps); this.Invoke(() => { - this.richTextBox1.Text += "\r\n分析1输水泵组合完毕"; + this.txtInfo.Text += "\r\n分析1输水泵组合完毕"; }); }); } - private void btnAnaCh2Combine_Click(object sender, EventArgs e) { @@ -63,35 +79,35 @@ var ch2_json = File.ReadAllText(ch2); var ch2Pumps = JsonHelper.Json2Object<List<Model.Pump>>(ch2_json); - this.richTextBox1.Text += "\r\n正在分析2输水泵组合"; + this.txtInfo.Text += "\r\n正在分析2输水泵组合"; Task.Run(() => { var helper = new Algorithm.SchedulingAnaHelper(); helper.AnaCombine(ch2Pumps); this.Invoke(() => { - this.richTextBox1.Text += "\r\n分析2输水泵组合完毕"; + this.txtInfo.Text += "\r\n分析2输水泵组合完毕"; }); }); } - private void btnAnaChConclusion_Click(object sender, EventArgs e) { - this.richTextBox1.Text += "\r\n正在分析全部泵组合结论"; + this.txtInfo.Text += "\r\n正在分析全部泵组合结论"; Task.Run(() => { var helper = new Algorithm.SchedulingAnaHelper(); helper.AnaConclusion(); this.Invoke(() => { - this.richTextBox1.Text += "\r\n全部泵组合分析完毕"; + this.txtInfo.Text += "\r\n全部泵组合分析完毕"; }); }); } private void btnAna_Click(object sender, EventArgs e) { + this.txtInfo.Text = string.Empty; if (!double.TryParse(this.txtFlow.Text, out double targetFlow)) { MessageBox.Show("请输入流量!"); @@ -102,24 +118,69 @@ MessageBox.Show("请输入压力!"); return; } - var combine = this.txtOpenCombineList.Text.Trim(); - if (string.IsNullOrEmpty(combine)) + List<int> current_open_pump_list = new List<int>(); + List<int> must_open_pump_list = new List<int>(); + List<int> must_not_open_pump_list = new List<int>(); + + var current_open_pump_list_txt = this.txtCurrentOpen.Text.Trim(); + if (!string.IsNullOrEmpty(current_open_pump_list_txt)) { - MessageBox.Show("请输入泵组合!"); - return; + current_open_pump_list = IntListHelper.ToList(current_open_pump_list_txt); + if (current_open_pump_list == null || current_open_pump_list.Count < 1) + { + MessageBox.Show("请输入有效泵组合!\r\n','号间隔!"); + return; + } } - var combineList = IntListHelper.ToList(combine); - if (combineList == null || combineList.Count < 1) + + var must_open_pump_list_txt = this.txtMustOpen.Text.Trim(); + if (!string.IsNullOrEmpty(must_open_pump_list_txt)) { - MessageBox.Show("请输入有效泵组合!\r\n','号间隔!"); - return; + must_open_pump_list = IntListHelper.ToList(must_open_pump_list_txt); + if (must_open_pump_list == null || must_open_pump_list.Count < 1) + { + MessageBox.Show("请输入有效泵组合!\r\n','号间隔!"); + return; + } } - var ch1 = _floder + "\\" + "陈行一输.json"; - var ch1_json = File.ReadAllText(ch1); - var ch1Pumps = JsonHelper.Json2Object<List<Model.Pump>>(ch1_json); + + var must_not_open_pump_list_txt = this.txtMustNotOpen.Text.Trim(); + if (!string.IsNullOrEmpty(must_not_open_pump_list_txt)) + { + must_not_open_pump_list = IntListHelper.ToList(must_not_open_pump_list_txt); + if (must_not_open_pump_list == null || must_not_open_pump_list.Count < 1) + { + MessageBox.Show("请输入有效泵组合!\r\n','号间隔!"); + return; + } + } + + List<Model.Pump> pumps; + List<int> flags_part1, flags_part2; + if (_stationIndex == 0) + { + var filePath = _floder + "\\" + "陈行一输.json"; + var jsonInfo = File.ReadAllText(filePath); + pumps = JsonHelper.Json2Object<List<Model.Pump>>(jsonInfo); + + flags_part1 = new List<int>() { 11, 12, 13, 14, 16, 17, 18 }; + flags_part2 = new List<int>() { 15 }; + } + else + { + var filePath = _floder + "\\" + "陈行二输.json"; + var jsonInfo = File.ReadAllText(filePath); + pumps = JsonHelper.Json2Object<List<Model.Pump>>(jsonInfo); + + flags_part1 = new List<int>() { 22, 23, 24, 25, 26 }; + flags_part2 = new List<int>() { 21, 27 }; + } var helper = new Algorithm.SchedulingHelper(); - helper.Ana(ch1Pumps, targetFlow, targetHead); + var info = helper.Ana(pumps, flags_part1, flags_part2, targetFlow, targetHead, current_open_pump_list, must_open_pump_list, must_not_open_pump_list); + + this.txtInfo.Text = info; } + } } \ No newline at end of file -- Gitblit v1.9.3