using CommonFunc; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Windows.Threading; using XGL.Data; using XGL.Models; using XGL.UControl; using Thrift.Protocol; using Thrift.Server; using Thrift.Transport; using CentralControl.BaseData; using CentralControl.DBDAO; using XGL.Thrift; using System.Threading; namespace XGL.FormItem { /// /// FormHandUp.xaml 的交互逻辑 /// public partial class FormUpLineBoard : Window { List listCatchAreas = new List(); List listCarreals = new List(); /// /// 时间刷新 /// private DispatcherTimer dispatcherTimer; /// /// UI数据刷新 /// private DispatcherTimer RefreshUITimer; /// /// 上件区小车列表 /// ObservableCollection Cars = new ObservableCollection(); public FormUpLineBoard() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { try { dispatcherTimer = new DispatcherTimer(); dispatcherTimer.Interval = TimeSpan.FromMilliseconds(1000); dispatcherTimer.Tick += DispatcherTimer_Tick; dispatcherTimer.IsEnabled = true; dispatcherTimer.Start(); RefreshUITimer = new DispatcherTimer(); RefreshUITimer.Interval = TimeSpan.FromSeconds(6); RefreshUITimer.Tick += RefreshUITimer_Tick; RefreshUITimer.IsEnabled = true; RefreshUITimer.Start(); txtTime.Content = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(); BindLocatorViewList(); } catch (Exception ex) { MethodInfo method = (MethodInfo)MethodBase.GetCurrentMethod(); Common.Log.Error(method.DeclaringType.FullName + "-" + method.Name + "\r\n" + ex.Message + "\r\n" + ex.StackTrace); } } /// /// 绑定左侧库位图形列表 /// private void BindLocatorViewList() { Application.Current.Dispatcher.Invoke(new Action( delegate { DataTable dt = DBService.GetUpLIneMaterialView(FormHandUp.WeekNo); List list = new List(); foreach (DataRow dr in dt.Rows) { UpLineBoardModel car = new UpLineBoardModel(); car.materialno = dr["MaterialBarNo"].ToString(); car.maxnumber = Convert.ToInt32(dr["MaxNumber"]); car.currnumber = Convert.ToInt32(dr["HadNumber"]); car.caninnumber = (Convert.ToInt32(dr["MaxNumber"]) - Convert.ToInt32(dr["HadNumber"])); car.dayneednumber = Convert.ToInt32(dr["total"]); list.Add(car); } gridMaterial.ItemsSource = list; gridMaterial.Items.Refresh(); })); } private void RefreshUITimer_Tick(object sender, EventArgs e) { try { BindLocatorViewList(); } catch (Exception ex) { CommonFunc.Logger logger = new CommonFunc.Logger(); logger.Error("系统刷新数据上件点异常:" + ex.Message + ex.StackTrace); } } private void DispatcherTimer_Tick(object sender, EventArgs e) { txtTime.Content = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString(); } private void btnExit_Click(object sender, RoutedEventArgs e) { try { if (MessageBox.Show("是否确认关闭当前窗口", "提示信息", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.No) { return; } else { Environment.Exit(System.Environment.ExitCode); } } catch (Exception ex) { MethodInfo method = (MethodInfo)MethodBase.GetCurrentMethod(); Common.Log.Error(method.DeclaringType.FullName + "-" + method.Name + "\r\n" + ex.Message + "\r\n" + ex.StackTrace); } } private void GridMaterial_LoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Header = e.Row.GetIndex() + 1; var drv = e.Row.Item as UpLineBoardModel; if (drv.caninnumber == 0 ) { e.Row.Background = new SolidColorBrush(Colors.Red); } //else if (drv.caninnumber <5) //{ // e.Row.Background = new SolidColorBrush(Colors.Yellow); //} else { e.Row.Background = new SolidColorBrush(Colors.Green); } } } public class UpLineBoardModel { /// /// 物料型号 /// public string materialno { get; set; } /// /// 库存最大数量 /// public int maxnumber { get; set; } /// /// 当前库存量 /// public int currnumber { get; set; } /// /// 可入库存数 /// public int caninnumber { get; set; } /// /// 当日需求数量 /// public int dayneednumber { get; set; } } [ValueConversion(typeof(int), typeof(Brushes))] public class BGConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { int surplus = (int)value; if (surplus <=0) { return Brushes.Red; } else if (surplus <10) { return Brushes.Yellow; } else { return Brushes.White; } } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } } }