diff --git a/UserClass/AsyncTcpServer.cs b/UserClass/AsyncTcpServer.cs index 5cfc7eb..1ece0bb 100644 --- a/UserClass/AsyncTcpServer.cs +++ b/UserClass/AsyncTcpServer.cs @@ -21,6 +21,7 @@ using static System.Windows.Forms.VisualStyles.VisualStyleElement.TaskbarClock; using static System.Windows.Forms.VisualStyles.VisualStyleElement; using Newtonsoft.Json; using static DyeingComputer.UserClass.SqliteHelper; +using DyeingComputer.View; namespace DyeingComputer.UserClass {/// @@ -97,8 +98,9 @@ namespace DyeingComputer.UserClass { Dictionary WorkOrder_dat; WorkOrder_dat = SerializeConvert.JsonDeserializeFromString>(SYSDAT); - WorkOrder_dat.GetValue("WorkOrder"); - bool dat_w= SQLDATA.WorkOrder(WorkOrder_dat.GetValue("WorkOrder").ToString(), + //WorkOrder_dat.GetValue("WorkOrder"); + bool dat_w= SQLDATA.WorkOrder( + WorkOrder_dat.GetValue("WorkOrder").ToString(), WorkOrder_dat.GetValue("ProcessName").ToString(), WorkOrder_dat.GetValue("StartTime").ToString(), WorkOrder_dat.GetValue("EndTime").ToString(), @@ -161,12 +163,22 @@ namespace DyeingComputer.UserClass { try { - + Dictionary dat_821; + dat_821 = SerializeConvert.JsonDeserializeFromString>(SYSDAT); + if (dat_821.GetValue("INSTRUCTION").ToString() == "START") + { + SQLDATA.TechnologicalProcess_START(dat_821.GetValue("ProgramID").ToString()); + } + else if (dat_821.GetValue("INSTRUCTION").ToString() == "STOP") { } + else if (dat_821.GetValue("INSTRUCTION").ToString() == "PAUSE") { } + else if (dat_821.GetValue("INSTRUCTION").ToString() == "CONTINUE") { } + + client.SendAsync("SC821" + SYSKEY + SYSDAT); } catch { client.SendAsync("SC921"); } } else { client.SendAsync("SC999"); } - }//指令 + }//启停指令 else if (SYSAPI == "SC830") { if (SYSKEY == MainWindowViewModel.SYSKEY) diff --git a/UserClass/SQLDATA.cs b/UserClass/SQLDATA.cs index a983d95..06edd9f 100644 --- a/UserClass/SQLDATA.cs +++ b/UserClass/SQLDATA.cs @@ -1,4 +1,5 @@ -using DyeingComputer.ViewModel; +using DyeingComputer.View; +using DyeingComputer.ViewModel; using ScottPlot.Colormaps; using System; using System.Collections.Generic; @@ -7,6 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Documents; +using System.Xml.Linq; using static DyeingComputer.UserClass.SqliteHelper; namespace DyeingComputer.UserClass @@ -70,5 +72,43 @@ namespace DyeingComputer.UserClass SQLiteHelpers.Close(); //关闭连接 return true; } + + public static void TechnologicalProcess_START(string workName) + { + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + int r = 0; + string sql_script = "select * from WorkorderSteps where ProgramID = '" + workName + "'"; + if (TechnologicalProcessView.sql != null) TechnologicalProcessView.sql.Clear(); //清空缓存 + TechnologicalProcessView.sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取表写入缓存 + TechnologicalProcessView.Program_Name = SQLiteHelpers.ExecuteScalar("select ProgramName from Workorder where ProgramID = '" + workName + "'", null).ToString(); + + SQLiteHelpers.Delete("RUN", null, null); //删除run信息 + DataTable data_t = new DataTable(); + data_t = TechnologicalProcessView.sql.Tables[0].Clone(); + data_t.Columns.Add("DYELOT", typeof(string)); //添加列 + int a = TechnologicalProcessView.sql.Tables[0].Rows.Count; + for (int i = 0; i < a; i++) + { + data_t.Clear();//清空 + DataRow dt = TechnologicalProcessView.sql.Tables[0].Rows[i];//行转 + DataRow dr = data_t.NewRow(); + dr.ItemArray = dt.ItemArray; + dr.BeginEdit(); //添加订单号 + dr["DYELOT"] = MainWindowViewModel.WorkNumder; + dr.EndEdit(); + data_t.Rows.InsertAt(dr, 0); //行转换 + + r = SQLiteHelpers.InsertData("RUN", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + } + //数据插入 + MainWindowViewModel.WorkNumder = SQLiteHelpers.ExecuteDataSet("select WorkOrder from Workorder where ProgramID = '" + workName + "'", null);; + TechnologicalProcessView.workName = workName; + MainWindowViewModel.SYS_REDYE = 0; + MainWindowViewModel.ViewID = 1; + + SQLiteHelpers.Close(); //关闭连接 + } + } } diff --git a/View/TechnologicalProcessView.xaml.cs b/View/TechnologicalProcessView.xaml.cs index d6bec9c..e914f42 100644 --- a/View/TechnologicalProcessView.xaml.cs +++ b/View/TechnologicalProcessView.xaml.cs @@ -45,19 +45,20 @@ namespace DyeingComputer.View } public static object workName; + public static string Program_Name; private SQLiteHelper SQLiteHelpers = null; //定义数据库 private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径 - DataSet sql; //内存数据缓存 + public static DataSet sql; //内存数据缓存 private void TechnologicalProcess_Import() { SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 int r = 0; - string sql_script = "select * from ProgramSteps where ProgramID = '" + workName + "'"; + string sql_script = "select * from WorkorderSteps where ProgramID = '" + workName + "'"; if (sql != null) sql.Clear(); //清空缓存 sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取表写入缓存 - name.Text = SQLiteHelpers.ExecuteScalar("select ProgramName from ProgramName where ProgramID = '" + workName + "'", null).ToString(); + Program_Name = SQLiteHelpers.ExecuteScalar("select ProgramName from WorkOrder where ProgramID = '" + workName + "'", null).ToString(); if (sql != null) Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表 SQLiteHelpers.Delete("RUN", null, null); //删除run信息 @@ -88,7 +89,7 @@ namespace DyeingComputer.View string sql_script = "select * from RUN"; if (sql != null) sql.Clear(); //清空缓存 sql = SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取表写入缓存 - name.Text = SQLiteHelpers.ExecuteScalar("select Program from RUN where Step = '1'", null).ToString(); + Program_Name = SQLiteHelpers.ExecuteScalar("select Program from RUN where Step = '1'", null).ToString(); MainWindowViewModel.WorkNumder = SQLiteHelpers.ExecuteScalar("select DYELOT from RUN where Step = '1'", null).ToString(); SQLiteHelpers.Close(); //关闭连接 @@ -189,7 +190,7 @@ namespace DyeingComputer.View dr.EndEdit(); } } - private void ProgramgroupView_del_Click(object sender, RoutedEventArgs e) + private void ProgramgroupView_del_Click(object sender, RoutedEventArgs e)//删除 { int d = 0; int a = sql.Tables[0].Rows.Count; @@ -204,7 +205,7 @@ namespace DyeingComputer.View } } - private void ProgramgroupView_Insert_Click(object sender, RoutedEventArgs e) + private void ProgramgroupView_Insert_Click(object sender, RoutedEventArgs e)//插入 { int d = 0; SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 @@ -258,6 +259,11 @@ namespace DyeingComputer.View void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S { if (MainWindowViewModel.WORK_RUN == 2) Grid.SelectedIndex = MainWindowViewModel.RUN_STEPID - 1;//设定图表显示 + if (sql != null) + { + Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表 + name.Text = Program_Name; + } } } } diff --git a/View/WorkOrderView.xaml b/View/WorkOrderView.xaml index 7f6c6a7..c1998d8 100644 --- a/View/WorkOrderView.xaml +++ b/View/WorkOrderView.xaml @@ -68,7 +68,7 @@ - +