using Aitex.Core.RT.OperationCenter; using MECF.Framework.UI.Client.ClientBase; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Media; namespace MECF.Framework.UI.Client.TrayThickness.HistoryData { public class HistoryDataViewModel : UiViewModelBase, ISupportMultipleSystem { /// /// 返回ViewModel绑定的视图对象。 /// public UserControl View { get; private set; } public DateTime StartDateTime { get => ((HistoryDataView)View).wfTimeFrom.Value; set { ((HistoryDataView)View).wfTimeFrom.Value = value; NotifyOfPropertyChange(nameof(StartDateTime)); } } public DateTime EndDateTime { get => ((HistoryDataView)View).wfTimeTo.Value; set { ((HistoryDataView)View).wfTimeTo.Value = value; NotifyOfPropertyChange(nameof(EndDateTime)); } } private bool isQueryTray = true; //勾选查询Tray public bool IsQueryTray { get => isQueryTray; set { isQueryTray = value; Refresh(); } } private bool isQueryPM; //勾选查询PM public bool IsQueryPM { get => isQueryPM; set { isQueryPM = value; Refresh(); } } public bool TimeChecked { get; set; } public bool Unit { get; set; } = false; public bool IsNotUnit => !Unit; public bool Entirety { get; set; } = true; //数据库查询对象实例 private HistoryCoatingSqlHelp HistoryCoatingSqlHelp = new HistoryCoatingSqlHelp(); //表示单行数据集合,Tray专用 public List CoatingData { get; set; } = new List(); //整个Tray对象数据集合,内含4个环 public List TrayCoatingList { get; set; } = new List(); //PM对象数据集合,内含大小周期 public List PMCoatingList { get; set; } = new List(); protected override void OnViewLoaded(object _view) { base.OnViewLoaded(_view); View = (UserControl)_view; StartDateTime = DateTime.Now.Date; EndDateTime = DateTime.Now.Date.AddDays(1).AddTicks(-1); } public void QueryTime() { if (StartDateTime > EndDateTime) { MessageBox.Show("time range invalid, start time should be early than end time.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } if (IsQueryTray) TrayCoatingList = HistoryCoatingSqlHelp.QueryUpdateTime_Tray(StartDateTime.ToString(), EndDateTime.ToString()); if (IsQueryPM) PMCoatingList = HistoryCoatingSqlHelp.QueryUpdateTime_PM(StartDateTime.ToString(), EndDateTime.ToString()); Refresh(); } public void QueryAll() { if (IsQueryTray) TrayCoatingList = HistoryCoatingSqlHelp.QueryUpdateAll_Tray(); if (IsQueryPM) PMCoatingList = HistoryCoatingSqlHelp.QueryUpdateAll_PM(); Refresh(); } public void QueryName(string name) { if (name == null || name.Length == 0) { MessageBox.Show("输入名称为空"); return; } if (TimeChecked) { if (StartDateTime > EndDateTime) { MessageBox.Show("time range invalid, start time should be early than end time.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } } if (IsQueryTray) { if (Unit) CoatingData = HistoryCoatingSqlHelp.QueryUnitName_Tray(name, StartDateTime.ToString(), EndDateTime.ToString()); else if (Entirety) TrayCoatingList = HistoryCoatingSqlHelp.QueryEntiretyTray(name, StartDateTime.ToString(), EndDateTime.ToString()); else CoatingData = HistoryCoatingSqlHelp.QueryUnitName_Tray(name, StartDateTime.ToString(), EndDateTime.ToString()); } if (IsQueryPM) PMCoatingList = HistoryCoatingSqlHelp.QueryUnitName_PM(name, StartDateTime.ToString(), EndDateTime.ToString()); Refresh(); } } /// /// 检测厚度是否大于最大值 /// class ColorConverter : IMultiValueConverter { public object Convert(object[] value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { try { if (value[0] == null || value[1] == null) { return new SolidColorBrush(Colors.Black); } double _current; if (!double.TryParse(value[0].ToString(), out _current)) return new SolidColorBrush(Colors.Red); double _max; if (!double.TryParse(value[1].ToString(), out _max)) return new SolidColorBrush(Colors.Black); if (_current > _max) { return new SolidColorBrush(Colors.Red); } else { return new SolidColorBrush(Colors.Black); } } catch (Exception) { return new SolidColorBrush(Colors.Red); } } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { return null; } } class BoolToVisibilityConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if ((bool)value) return Visibility.Visible; return Visibility.Collapsed; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }