Shuxia Ning
2024-07-17 fd681339c81201ed6fb3303647ecab89e3e6c0c1
Test/IStation.Win/View/ScheduleValidView.cs
@@ -13,8 +13,8 @@
            this.bandedGridView1.BandPanelRowHeight = 35;
            this.bandedGridView1.RegistCustomDrawRowIndicator();
            this.bandedGridView1.SetNormalView();
            this.cmbSelectStation.SelectedIndex = _sel_index - 1;
            this.cmbSelectStation.SelectedIndex = _sel_index - 1;
        }
@@ -209,7 +209,7 @@
        //调度
        private void barBtnSchedule_Click(object sender, EventArgs e)
        {
        {
            if (_schedule_valid_vm_list == null || !_schedule_valid_vm_list.Any())
            {
                XtraMessageBox.Show("无数据!");
@@ -218,61 +218,56 @@
            try
            {
                WaitHelper.ShowWaitForm();
                var station = new Service.Station().Get();
                List<Model.Pump> pumps;
                List<int> flags_part1, flags_part2;
                if (_sel_index == 1)
                {
                    pumps = station.S1;
                    flags_part1 = station.S1FlagsPart1;
                    flags_part2 = station.S1FlagsPart2;
                }
                else
                {
                    pumps = station.S2;
                    flags_part1 = station.S2FlagsPart1;
                    flags_part2 = station.S2FlagsPart2;
                }
                //WaitHelper.ShowWaitForm();
                //var station = new Service.Station().Get();
                //List<Model.Pump> pumps;
                //if (_sel_index == 1)
                //{
                //    pumps = station.Station1;
                //}
                //else
                //{
                //    pumps = station.Station2;
                //}
                var current_open_pump_list = new List<int>();
                var must_open_pump_list = new List<int>();
                var must_not_open_pump_list = new List<int>();
                var schedule_helper = new Algorithm.ScheduleHelper();
                //var current_open_pump_list = new List<int>();
                //var must_open_pump_list = new List<int>();
                //var must_not_open_pump_list = new List<int>();
                //var schedule_helper = new Algorithm.ScheduleHelper();
                foreach (var vm in _schedule_valid_vm_list)
                {
                    if (vm.FlagRpmDict == null || !vm.FlagRpmDict.Any())
                        continue;
                    current_open_pump_list = vm.FlagRpmDict.Select(x => x.Key).ToList();
                    if (current_open_pump_list == null || current_open_pump_list.Count < 1)
                        continue;
                    var target_flow = vm.TotalFlowSrc;
                    var target_head = vm.TotalHeadSrc;
                //foreach (var vm in _schedule_valid_vm_list)
                //{
                //    if (vm.FlagRpmDict == null || !vm.FlagRpmDict.Any())
                //        continue;
                //    current_open_pump_list = vm.FlagRpmDict.Select(x => x.Key).ToList();
                //    if (current_open_pump_list == null || current_open_pump_list.Count < 1)
                //        continue;
                //    var target_flow = vm.TotalFlowSrc;
                //    var target_head = vm.TotalHeadSrc;
                    var opt_schedule = schedule_helper.Calc(pumps, flags_part1, flags_part2, target_flow, target_head);
                    if (opt_schedule != null)
                    {
                        vm.TotalFlowSchedule = opt_schedule.Flow;
                        vm.TotalHeadSchedule = opt_schedule.Head;
                        vm.TotalPowerSchedule = opt_schedule.Power;
                        vm.RunFlagsSchedule = opt_schedule.Remark;
                //    var opt_schedule = schedule_helper.GetOptAnaCombine(pumps,  target_flow, target_head);
                //    if (opt_schedule != null)
                //    {
                //        vm.TotalFlowSchedule = opt_schedule.Flow;
                //        vm.TotalHeadSchedule = opt_schedule.Head;
                //        vm.TotalPowerSchedule = opt_schedule.Power;
                //        vm.RunFlagsSchedule = opt_schedule.Remark;
                        vm.TotalFlowScheduleSrcDiff = opt_schedule.Flow - target_flow;
                        vm.TotalPowerScheduleSrcDiff = opt_schedule.Power - vm.TotalPowerSrc;
                    }
                //        vm.TotalFlowScheduleSrcDiff = opt_schedule.Flow - target_flow;
                //        vm.TotalPowerScheduleSrcDiff = opt_schedule.Power - vm.TotalPowerSrc;
                //    }
                    var opt_src = schedule_helper.WorkingCalc(pumps, vm.FlagRpmDict, vm.FlagHeadDict, target_flow, target_head);
                    if (opt_src != null)
                    {
                        vm.TotalFlowCalc = opt_src.Flow;
                        vm.TotalPowerCalc = opt_src.Power;
                //    var opt_src = schedule_helper.GetOptAnaCombineByWorking(pumps, vm.FlagRpmDict, vm.FlagHeadDict, target_flow, target_head);
                //    if (opt_src != null)
                //    {
                //        vm.TotalFlowCalc = opt_src.Flow;
                //        vm.TotalPowerCalc = opt_src.Power;
                        vm.TotalFlowCalcSrcDiff = opt_src.Flow - target_flow;
                        vm.TotalPowerCalcSrcDiff = opt_src.Power - vm.TotalPowerSrc;
                    }
                    vm.Round();
                }
                //        vm.TotalFlowCalcSrcDiff = opt_src.Flow - target_flow;
                //        vm.TotalPowerCalcSrcDiff = opt_src.Power - vm.TotalPowerSrc;
                //    }
                //    vm.Round();
                //}
                this.scheduleValidViewModelBindingSource.DataSource = _schedule_valid_vm_list;
                this.scheduleValidViewModelBindingSource.ResetBindings(false);
@@ -296,6 +291,6 @@
            _sel_index = this.cmbSelectStation.SelectedIndex + 1;
        }
    }
}