using DevExpress.XtraEditors; using IStation.CalcModel; using IStation.WinFrmUI.ViewModel; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using static IStation.WinFrmUI.CalcErQu.AddManuPrjDlg; namespace IStation.WinFrmUI.CalcErQu { public partial class SetPrjSpanTimeDlg : XtraForm { public SetPrjSpanTimeDlg() { InitializeComponent(); } private DateTime _startTime, _endTime; public void SetDay(DateTime start, DateTime end) { _startTime = start; _endTime = end; } public class CurrentViewModel { public CurrentViewModel( int pumpNumber, DateTime start, DateTime end) { PumpNumber = pumpNumber; StartDay = start.Date; EndDay = end.Date; StartH = start.Hour; StartM = start.Minute; EndH = end.Hour; EndM = end.Minute; } public int PumpNumber { get; set; } public DateTime StartDay { get; set; } public DateTime EndDay { get; set; } public int StartH { get; set; } public int StartM { get; set; } public int EndH { get; set; } public int EndM { get; set; } } private BindingList _bindList; private List vm_list = null; IStation.CalcModel.AnaPrj _anaPrj = null; // internal void SetBindingData(AnaPrj anaPrj) { if (anaPrj == null) return; _bindList = new BindingList(); this._anaPrj = anaPrj; for (int i = 0; i < anaPrj.Items.Count(); i++) { _bindList.Add(new CurrentViewModel(anaPrj.Items[i].OpenPumpCount , anaPrj.Items[i].StartTime, anaPrj.Items[i].EndTime)); } textEditName.Text = anaPrj.Name; this.bindingSource1.DataSource = _bindList; } private string BuildPumpName(int pumpIndx) { var pumpName = " 泵"; if (pumpIndx == 0) { pumpName = "1号泵"; } if (pumpIndx == 1) { pumpName = "2号泵"; } if (pumpIndx == 2) { pumpName = "3号泵"; } if (pumpIndx == 3) { pumpName = "4号泵"; } if (pumpIndx == 4) { pumpName = "5号泵"; } return pumpName; } public Action> OnRefreshData = null; private void btnOk_Click(object sender, EventArgs e) { if (_bindList.Count == 0) { return; } vm_list = new List(); foreach (var m in _bindList) { if ( m.PumpNumber <= 0) continue; CalcModel.PumpRunRange v = new CalcModel.PumpRunRange(); v.PumpNumber = m.PumpNumber; v.StartTime = new DateTime(m.StartDay.Year, m.StartDay.Month, m.StartDay.Day, m.StartH, m.StartM, 0); v.EndTime = new DateTime(m.EndDay.Year, m.EndDay.Month, m.EndDay.Day, m.EndH, m.EndM, 0); if (v.StartTime >= v.EndTime) { continue; } vm_list.Add(v); } if (vm_list.Count == 0) { return; } if (OnRefreshData != null) { OnRefreshData.Invoke(textEditName.Text,vm_list); } this.DialogResult = DialogResult.OK; this.Close(); } private void SetPrjSpanTimeDlg_Load(object sender, EventArgs e) { } private void bbi保存为模板_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (string.IsNullOrEmpty(textEditName.Text)) { MessageBox.Show("请输入名称"); return; } if (_bindList.Count == 0) { MessageBox.Show("请输入方案"); return; } var templates = new List(); foreach (var m in _bindList) { if ( m.PumpNumber <= 0) continue; RunItemTemplate v = new RunItemTemplate(); v.PumpNumber = m.PumpNumber; v.StartH = _startTime.Hour; v.StartM = m.StartM; v.EndH = _endTime.Hour; v.EndM = m.EndM; if (v.EndH <= v.StartH) v.NextDayCount = 1; templates.Add(v); } if (templates.Count == 0) { return; } var fileContents = JsonHelper.Object2Json(templates); var fileName = System.IO.Path.Combine(IStation.DataFolderHelper.GetRootPath(), "AnaTemplate", textEditName.Text.Trim() + ".json"); if (System.IO.File.Exists(fileName)) { System.IO.File.Delete(fileName); } StreamWriter streamWriter = new StreamWriter(fileName, false, System.Text.Encoding.GetEncoding("gb2312")); streamWriter.Write(fileContents); streamWriter.Flush(); streamWriter.Close(); MessageBox.Show("保存成功"); } private void btnCancel_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.Cancel; this.Close(); } } }