using CommonFunc; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Threading; 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 System.Timers; using XGL.Data; using XGL.Thrift; using System.Threading.Tasks; namespace XGL.FormItem { /// /// FormBoard.xaml 的交互逻辑 /// public partial class FormBlankingBoard : Window { /// /// 时间刷新计时器 /// private DispatcherTimer dispatcherTimer; private DispatcherTimer TimerReal; private int LoopIndex = 1; private int IsHouseMenuVisible = 0; private DispatcherTimer ShowTimer; List listOrders = new List(); List listOutCarLines = new List(); DispatcherTimer tm = new DispatcherTimer(); string content = string.Empty; int loop = 0;//从右向左逐渐进入的循环次数 int loop2 = 0;//左侧到头后,左侧字符逐渐消失的循环次数 bool isOver = false;//所有字符是否均已划过,若都划过,则从头开始 public FormBlankingBoard() { InitializeComponent(); } DataTable dtOrder; DataTable dtOutCarLine; private void FormBoard_Loaded(object sender, RoutedEventArgs e) { ShowTimer = new System.Windows.Threading.DispatcherTimer(); ShowTimer.Tick += new EventHandler(ShowCurTimer);//起个Timer一直获取当前时间 ShowTimer.Interval = new TimeSpan(0, 0, 0, 1, 0); ShowTimer.Start(); //创建一个名为"Table_New"的空表 dtOrder = new DataTable("Table_New"); //1.创建空列 //DataColumn dc = new DataColumn(); ////2.创建带列名和类型名的列(两种方式任选其一) dtOrder.Columns.Add("est", typeof(String)); dtOrder.Columns.Add("order_code", typeof(String)); dtOrder.Columns.Add("prod_code", typeof(String)); dtOrder.Columns.Add("prod_desc", typeof(String)); dtOrder.Columns.Add("quantity", typeof(String)); dtOrder.Columns.Add("upquantity", typeof(String)); dtOrder.Columns.Add("outwarehousequantity", typeof(String)); dtOrder.Columns.Add("downquantity", typeof(String)); dtOrder.Columns.Add("down_line", typeof(String)); dtOutCarLine = new DataTable("Table_New1"); ////2.创建带列名和类型名的列(两种方式任选其一) dtOutCarLine.Columns.Add("car_no", typeof(String)); dtOutCarLine.Columns.Add("downline", typeof(String)); dtOutCarLine.Columns.Add("order_id", typeof(String)); dtOutCarLine.Columns.Add("materiel_num", typeof(String)); dtOutCarLine.Columns.Add("create_time", typeof(String)); Thread ThriftThread = new Thread(new ParameterizedThreadStart(ThriftServer)); ThriftThread.IsBackground = true; ThriftThread.Start(Common.FormBoardThriftPort); } private void dgData_LoadingRow(object sender, DataGridRowEventArgs e) { e.Row.Header = e.Row.GetIndex() + 1; } public void ShowCurTimer(object sender, EventArgs e) { LabDate.Content = DateTime.Now.ToString("yyyy年MM月dd日"); LabTime.Content = DateTime.Now.ToString("HH:mm:ss"); } private void btnExit_Click(object sender, RoutedEventArgs e) { if (MessageBox.Show("是否确认关闭程序", "提示信息", MessageBoxButton.YesNo, MessageBoxImage.Information) == MessageBoxResult.No) { } else { System.Environment.Exit(System.Environment.ExitCode); } } private void btnHouseMenuVisible_Click(object sender, RoutedEventArgs e) { } DataRow drOrder; public string CheckOrderList(List orderlist) { Application.Current.Dispatcher.Invoke(new Action( delegate { if (orderlist == null || orderlist.Count == 0) { DgLoadOrder.ItemsSource = null; } else { orderlist = orderlist.Where(t => t.Down_line == Common.LineId).ToList(); dtOrder.Clear(); for (int i = 0; i < orderlist.Count; i++) { drOrder = dtOrder.NewRow(); drOrder["est"] = DateTime.Parse(orderlist[i].Est.ToString()).ToString().Substring(0, 10); drOrder["order_code"] = orderlist[i].Order_code; drOrder["prod_code"] = orderlist[i].Prod_code; drOrder["prod_desc"] = orderlist[i].Prod_desc; drOrder["quantity"] = orderlist[i].Quantity; drOrder["upquantity"] = orderlist[i].Upquantity; drOrder["outwarehousequantity"] = orderlist[i].Outwarehousequantity; drOrder["downquantity"] = orderlist[i].Downquantity; drOrder["down_line"] = orderlist[i].Down_line; dtOrder.Rows.Add(drOrder); } DgLoadOrder.ItemsSource = dtOrder.DefaultView; } })); return ""; } DataRow drOutCarLine; public string CheckOutCarLineList(List outcarlinelist) { Application.Current.Dispatcher.Invoke(new Action( delegate { if (outcarlinelist == null || outcarlinelist.Count == 0) { DgLoadDoor.ItemsSource = null; } else { outcarlinelist = outcarlinelist.Where(t => t.Downline == Common.LineId).ToList(); dtOutCarLine.Clear(); for (int i = 0; i < outcarlinelist.Count; i++) { drOutCarLine = dtOutCarLine.NewRow(); drOutCarLine["car_no"] = outcarlinelist[i].Car_no; drOutCarLine["downline"] = outcarlinelist[i].Downline; drOutCarLine["order_id"] = outcarlinelist[i].Order_id; drOutCarLine["materiel_num"] = outcarlinelist[i].Materiel_num; drOutCarLine["create_time"] = outcarlinelist[i].Create_time; dtOutCarLine.Rows.Add(drOutCarLine); } DgLoadDoor.ItemsSource = dtOutCarLine.DefaultView; } })); return ""; } /// /// 接收订单和出库队列信息 /// private void ThriftServer(object thriftpoint) { try { int point = Convert.ToInt32(thriftpoint); XGL.Thrift.ThriftServiceImp business = new XGL.Thrift.ThriftServiceImp(); business.GetOrderListEvent += CheckOrderList; business.GetOutCarLineListEvent += CheckOutCarLineList; XGL.Thrift.ThriftCommon thriftCommon = new XGL.Thrift.ThriftCommon(); thriftCommon.Start(business, point); } catch (Exception ex) { Common.Log.Error(ex.Message); } } } }