Sic.Framework/MECF.Framework.UI.Client/TrayThickness/HistoryData/HistoryDataViewModel.cs

212 lines
6.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 返回ViewModel绑定的视图对象。
/// </summary>
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> CoatingData { get; set; } = new List<CoatingData>();
//整个Tray对象数据集合内含4个环
public List<TrayCoatingThickness> TrayCoatingList { get; set; } = new List<TrayCoatingThickness>();
//PM对象数据集合内含大小周期
public List<PMCoatingThickness> PMCoatingList { get; set; } = new List<PMCoatingThickness>();
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();
}
}
/// <summary>
/// 检测厚度是否大于最大值
/// </summary>
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();
}
}
}