diff --git a/UserClass/AsyncTcpClient.cs b/UserClass/AsyncTcpClient.cs index 8699a82..b5eb11a 100644 --- a/UserClass/AsyncTcpClient.cs +++ b/UserClass/AsyncTcpClient.cs @@ -36,6 +36,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass public class AsyncTcpClient { private static SQLiteHelper SQLiteHelpers = null; //定义数据库 + private static readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\SCCM.db"; //数据库路径 private static readonly string ChartAdress = Environment.CurrentDirectory + "\\DataBase\\Chart.db"; //数据库路径 public static async Task TcpClient(TcpClient tcpClient, string ip, string port) { @@ -112,9 +113,27 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass drEmployee.AcceptChanges(); drEmployee.ClearErrors(); } + else if (SYSAPI == "SC810") + { + DAT = DAT.Substring(DAT.IndexOf("]") + 1); + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + SQLiteHelpers.Update("WorkOrder", new Dictionary { { "State", 111 } }, + "WorkOrder ='" + DAT + "'", null); + SQLiteHelpers.Close(); + } + else if (SYSAPI == "SC811") + { + DAT = DAT.Substring(DAT.IndexOf("]") + 1); + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + SQLiteHelpers.Update("WorkOrder", new Dictionary { { "State", 101 } }, + "WorkOrder ='" + DAT + "'", null); + SQLiteHelpers.Close(); + } else if (SYSAPI == "SC830") { - DAT = DAT.Substring(DAT.IndexOf("]") + 1); + DAT = DAT.Substring(DAT.IndexOf("]") + 1); Dictionary _new = new Dictionary();//缓存函数 _new = JsonConvert.DeserializeObject>(DAT);//反序列化 DataRow drEmployee = MainWindowViewModel.Machines.Select("IP='" + client.IP + "' AND port='" + client.Port + "'").First(); @@ -155,13 +174,13 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass } else if (SYSAPI == "SC831") { - DAT = DAT.Substring(DAT.IndexOf("]") + 1); + DAT = DAT.Substring(DAT.IndexOf("]") + 1); MainWindowViewModel.dt_TP = JsonConvert.DeserializeObject(DAT);//反序列化 } else if (SYSAPI == "SC832") { MainWindowViewModel.MachineLOG = DAT.Substring(DAT.IndexOf("]") + 1); - + }//当前细节信息 else if (SYSAPI == "SC833") { @@ -171,7 +190,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass else if (SYSAPI == "SC851") { DAT = DAT.Substring(DAT.IndexOf("]") + 1); - MainWindowViewModel.dt_d = JsonConvert.DeserializeObject(DAT);//反序列化 + MainWindowViewModel.dt_d = JsonConvert.DeserializeObject(DAT);//反序列化 }//数字开关表 else if (SYSAPI == "SC852") { @@ -193,7 +212,22 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass DAT = DAT.Substring(DAT.IndexOf("]") + 1); MainWindowViewModel.dt_SysSet = JsonConvert.DeserializeObject(DAT);//反序列化 }//系统设置表 - + else if (SYSAPI == "SC910") + { + DAT = DAT.Substring(DAT.IndexOf("]") + 1); + SQLiteHelpers.Open(); //打开数据库 + SQLiteHelpers.Update("WorkOrder", new Dictionary { { "State", 109 } }, + "WorkOrder ='" + DAT + "'", null); + SQLiteHelpers.Close(); + }//发布失败 + else if (SYSAPI == "SC911") + { + DAT = DAT.Substring(DAT.IndexOf("]") + 1); + SQLiteHelpers.Open(); //打开数据库 + SQLiteHelpers.Update("WorkOrder", new Dictionary { { "State", 119 } }, + "WorkOrder ='" + DAT + "'", null); + SQLiteHelpers.Close(); + }//细节错误 return EasyTask.CompletedTask; }; diff --git a/View/ProductionPlanningEdit.xaml.cs b/View/ProductionPlanningEdit.xaml.cs index 0e667bd..431eb25 100644 --- a/View/ProductionPlanningEdit.xaml.cs +++ b/View/ProductionPlanningEdit.xaml.cs @@ -151,16 +151,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.View Tables[0].Select().First().Field("EndTime").ToString(); //读取计划表写入缓存 if (DateTime.Now < DateTime.Parse(sTime)) { - StartTime_=DateTime.Parse(sTime).AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); + StartTime_=DateTime.Parse(sTime).AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"); } else { - StartTime_= DateTime.Now.AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); + StartTime_= DateTime.Now.AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"); } } catch (Exception) { - StartTime_= DateTime.Now.AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); + StartTime_= DateTime.Now.AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"); } // SQLiteHelpers.Close(); //关闭连接 string Time_ ="0:00"; @@ -170,7 +170,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View First().Field("Time").ToString(); Time_ = (DateTime.Parse(Time_) + DateTime.Parse(t).TimeOfDay).ToString("HH:mm:ss"); } - string EndTime_ = (DateTime.Parse(StartTime_)+ DateTime.Parse(Time_).TimeOfDay).ToString("yyyy/M/d HH:mm:ss"); + string EndTime_ = (DateTime.Parse(StartTime_)+ DateTime.Parse(Time_).TimeOfDay).ToString("yyyy/MM/dd HH:mm:ss"); //插入数据信息 Dictionary WorkOrder_new = new Dictionary();//缓存函数 @@ -243,16 +243,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.View Tables[0].Select().First().Field("EndTime").ToString(); //读取计划表写入缓存 if (DateTime.Now < DateTime.Parse(sTime)) { - StartTime_ = DateTime.Parse(sTime).AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); + StartTime_ = DateTime.Parse(sTime).AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"); } else { - StartTime_ = DateTime.Now.AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); + StartTime_ = DateTime.Now.AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"); } } catch (Exception) { - StartTime_ = DateTime.Now.AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); + StartTime_ = DateTime.Now.AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"); } // SQLiteHelpers.Close(); //关闭连接 string Time_ = "0:00"; diff --git a/View/ProductionPlanningView.xaml.cs b/View/ProductionPlanningView.xaml.cs index 7942b50..05f2008 100644 --- a/View/ProductionPlanningView.xaml.cs +++ b/View/ProductionPlanningView.xaml.cs @@ -67,7 +67,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View private DateTime maxDate; private void UserControl_Loaded(object sender, RoutedEventArgs e)//打开页面时的操作 { - Sdatepicker.Text = DateTime.Now.ToString("yyyy/M/d HH:mm:ss"); + Sdatepicker.Text = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); minDate = DateTime.Now.Date; maxDate = minDate.AddDays(1); //添加表右键功能 @@ -84,11 +84,13 @@ namespace SunlightCentralizedControlManagement_SCCM_.View private ObservableCollection ganttTaskContextMenuItems = new ObservableCollection(); public void GanttChartNEW() { + string iiii = "select * from WorkOrder where StartTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + + "'or EndTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'Order by StartTime"; SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 SQLiteHelpers.Open(); //打开数据库 WorkOrder = SQLiteHelpers.ExecuteDataSet( - "select * from WorkOrder where StartTime>'" + Sdatepicker.Text - + "'or EndTime>'" + Sdatepicker.Text + "'Order by StartTime", null).Tables[0]; //读取表写入缓存 + "select * from WorkOrder where StartTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + + "'or EndTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'Order by StartTime", null).Tables[0]; //读取表写入缓存 SQLiteHelpers.Close(); //生成表 @@ -197,17 +199,17 @@ namespace SunlightCentralizedControlManagement_SCCM_.View private void ListViewItem_Before(object sender, MouseButtonEventArgs e)//前一天 { Picture.Width = 0; - Sdatepicker.Text = DateTime.Parse(Sdatepicker.Text).AddDays(-1).ToString("yyyy/M/d HH:mm:ss"); + Sdatepicker.Text = DateTime.Parse(Sdatepicker.Text).AddDays(-1).ToString("yyyy/MM/dd HH:mm:ss"); } private void ListViewItem_Today(object sender, MouseButtonEventArgs e)//今天 { Picture.Width = 0; - Sdatepicker.Text = DateTime.Now.ToString("yyyy/M/d HH:mm:ss"); + Sdatepicker.Text = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); } private void ListViewItem_DayAfter(object sender, MouseButtonEventArgs e)//后一天 { Picture.Width = 0; - Sdatepicker.Text = DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/M/d HH:mm:ss"); + Sdatepicker.Text = DateTime.Parse(Sdatepicker.Text).AddDays(1).ToString("yyyy/MM/dd HH:mm:ss"); } private void Sdatepicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)//时间控件 { diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 157a24e..ff853f6 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -122,21 +122,28 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS { DATA_view(); - } - void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS - { - if (stringQueue.Count > 0) //信息发送队列 + //下传工单信息 + SQLiteHelper WorkOrderSQL = new SQLiteHelper(DBAddress); //数据库连接路径 + WorkOrderSQL.Open(); //打开数据库 + DataTable WorkOrderstepdata = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where State='111'", null).Tables[0]; //读取表写入缓存 + for (int k = 0; k < WorkOrderstepdata.Rows.Count; k++) { - QueueString t = stringQueue.Dequeue(); - MachiensTcpClient[t.ID].SendAsync(t.DAT); + string WorkOrderdata_m = WorkOrderstepdata.Select()[k].Field("Machines").ToString(); + DataTable dataTable = WorkOrderSQL.ExecuteDataSet("select * from WorkorderSteps where WorkOrder='" + + WorkOrderstepdata.Select()[k].Field("WorkOrder").ToString() + "'", null).Tables[0]; + int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field("ID")); + stringQueue.Enqueue(new QueueString + { + ID = index, + DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", index) + dataTable.ToJsonString() + }); + WorkOrderSQL.Update("WorkOrder", new Dictionary { { "State", 112 } }, + "WorkOrder ='" + WorkOrderstepdata.Select()[k].Field("WorkOrder").ToString() + "'", null); + } - } - void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S - { - SQLiteHelper WorkOrderSQL = new SQLiteHelper(DBAddress); //数据库连接路径 - WorkOrderSQL.Open(); //打开数据库 + //下传工单总览 DataTable WorkOrderdata = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where State='100'", null).Tables[0]; //读取表写入缓存 - for(int k=0;k("Machines").ToString(); string State = Machines.Select("Name='" + WorkOrderdata_m + "'"). @@ -144,27 +151,39 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel if ((State == "101") || (State == "201") || (State == "202") || (State == "309")) { DataTable dataTable = WorkOrderdata.Clone(); - // WorkOrderdata.Columns.Remove("Machines"); + // WorkOrderdata.Columns.Remove("Machines"); DataRow dt_temp = WorkOrderdata.Select()[k]; dt_temp.BeginEdit(); dt_temp["State"] = "101"; dt_temp.EndEdit(); dataTable.Rows.Add(dt_temp.ItemArray); - int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field("ID")); + int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field("ID")); stringQueue.Enqueue(new QueueString { ID = index, DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", index) + DataTableToDictionary(dataTable).ToJsonString() }); - WorkOrderSQL.Update("WorkOrder", new Dictionary{{ "State", 110 }}, + WorkOrderSQL.Update("WorkOrder", new Dictionary { { "State", 110 } }, "WorkOrder ='" + WorkOrderdata.Select()[k].Field("WorkOrder").ToString() + "'", null); } } WorkOrderSQL.Close(); + } + void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS + { + if (stringQueue.Count > 0) //信息发送队列 + { + QueueString t = stringQueue.Dequeue(); + MachiensTcpClient[t.ID].SendAsync(t.DAT); + } + } + void Tick_Event_1S(object sender, EventArgs e)//Tick_Event周期执行事件1S + { + //系统时间 Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"); - + //更新机台状态与发送指令 for (int i = 0; i < Machinesdata_Count; i++) { if (Selet_Machines(Machines, "State", i).ToString() == "802")