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<CurrentViewModel> _bindList;
|
|
|
private List<CalcModel.PumpRunRange> vm_list = null;
|
IStation.CalcModel.AnaPrj _anaPrj = null;
|
//
|
internal void SetBindingData(AnaPrj anaPrj)
|
{
|
if (anaPrj == null)
|
return;
|
|
_bindList = new BindingList<CurrentViewModel>();
|
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<string,List<CalcModel.PumpRunRange>> OnRefreshData = null;
|
|
private void btnOk_Click(object sender, EventArgs e)
|
{
|
if (_bindList.Count == 0)
|
{
|
return;
|
}
|
vm_list = new List<CalcModel.PumpRunRange>();
|
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<RunItemTemplate>();
|
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();
|
}
|
|
|
}
|
}
|