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);
}
}
}
}