Browse Source

工单下传与时间格式("yyyy/MM/dd HH:mm:ss")

master
sc 10 months ago
parent
commit
8b64370bb3
  1. 44
      UserClass/AsyncTcpClient.cs
  2. 14
      View/ProductionPlanningEdit.xaml.cs
  3. 14
      View/ProductionPlanningView.xaml.cs
  4. 51
      ViewModel/MainWindowViewModel.cs

44
UserClass/AsyncTcpClient.cs

@ -36,6 +36,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
public class AsyncTcpClient public class AsyncTcpClient
{ {
private static SQLiteHelper SQLiteHelpers = null; //定义数据库 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"; //数据库路径 private static readonly string ChartAdress = Environment.CurrentDirectory + "\\DataBase\\Chart.db"; //数据库路径
public static async Task TcpClient(TcpClient tcpClient, string ip, string port) public static async Task TcpClient(TcpClient tcpClient, string ip, string port)
{ {
@ -112,9 +113,27 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
drEmployee.AcceptChanges(); drEmployee.AcceptChanges();
drEmployee.ClearErrors(); drEmployee.ClearErrors();
} }
else if (SYSAPI == "SC810")
{
DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "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<string, object> { { "State", 101 } },
"WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
}
else if (SYSAPI == "SC830") else if (SYSAPI == "SC830")
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
Dictionary<string, object> _new = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> _new = new Dictionary<string, object>();//缓存函数
_new = JsonConvert.DeserializeObject<Dictionary<string, object>>(DAT);//反序列化 _new = JsonConvert.DeserializeObject<Dictionary<string, object>>(DAT);//反序列化
DataRow drEmployee = MainWindowViewModel.Machines.Select("IP='" + client.IP + "' AND port='" + client.Port + "'").First(); 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") else if (SYSAPI == "SC831")
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
MainWindowViewModel.dt_TP = JsonConvert.DeserializeObject<DataTable>(DAT);//反序列化 MainWindowViewModel.dt_TP = JsonConvert.DeserializeObject<DataTable>(DAT);//反序列化
} }
else if (SYSAPI == "SC832") else if (SYSAPI == "SC832")
{ {
MainWindowViewModel.MachineLOG = DAT.Substring(DAT.IndexOf("]") + 1); MainWindowViewModel.MachineLOG = DAT.Substring(DAT.IndexOf("]") + 1);
}//当前细节信息 }//当前细节信息
else if (SYSAPI == "SC833") else if (SYSAPI == "SC833")
{ {
@ -171,7 +190,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
else if (SYSAPI == "SC851") else if (SYSAPI == "SC851")
{ {
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
MainWindowViewModel.dt_d = JsonConvert.DeserializeObject<DataTable>(DAT);//反序列化 MainWindowViewModel.dt_d = JsonConvert.DeserializeObject<DataTable>(DAT);//反序列化
}//数字开关表 }//数字开关表
else if (SYSAPI == "SC852") else if (SYSAPI == "SC852")
{ {
@ -193,7 +212,22 @@ namespace SunlightCentralizedControlManagement_SCCM_.UserClass
DAT = DAT.Substring(DAT.IndexOf("]") + 1); DAT = DAT.Substring(DAT.IndexOf("]") + 1);
MainWindowViewModel.dt_SysSet = JsonConvert.DeserializeObject<DataTable>(DAT);//反序列化 MainWindowViewModel.dt_SysSet = JsonConvert.DeserializeObject<DataTable>(DAT);//反序列化
}//系统设置表 }//系统设置表
else if (SYSAPI == "SC910")
{
DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 109 } },
"WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
}//发布失败
else if (SYSAPI == "SC911")
{
DAT = DAT.Substring(DAT.IndexOf("]") + 1);
SQLiteHelpers.Open(); //打开数据库
SQLiteHelpers.Update("WorkOrder", new Dictionary<string, object> { { "State", 119 } },
"WorkOrder ='" + DAT + "'", null);
SQLiteHelpers.Close();
}//细节错误
return EasyTask.CompletedTask; return EasyTask.CompletedTask;
}; };

14
View/ProductionPlanningEdit.xaml.cs

@ -151,16 +151,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存 Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存
if (DateTime.Now < DateTime.Parse(sTime)) 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 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) 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(); //关闭连接 // SQLiteHelpers.Close(); //关闭连接
string Time_ ="0:00"; string Time_ ="0:00";
@ -170,7 +170,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
First().Field<object>("Time").ToString(); First().Field<object>("Time").ToString();
Time_ = (DateTime.Parse(Time_) + DateTime.Parse(t).TimeOfDay).ToString("HH:mm:ss"); 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<string, object> WorkOrder_new = new Dictionary<string, object>();//缓存函数 Dictionary<string, object> WorkOrder_new = new Dictionary<string, object>();//缓存函数
@ -243,16 +243,16 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存 Tables[0].Select().First().Field<object>("EndTime").ToString(); //读取计划表写入缓存
if (DateTime.Now < DateTime.Parse(sTime)) 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 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) 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(); //关闭连接 // SQLiteHelpers.Close(); //关闭连接
string Time_ = "0:00"; string Time_ = "0:00";

14
View/ProductionPlanningView.xaml.cs

@ -67,7 +67,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private DateTime maxDate; private DateTime maxDate;
private void UserControl_Loaded(object sender, RoutedEventArgs e)//打开页面时的操作 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; minDate = DateTime.Now.Date;
maxDate = minDate.AddDays(1); maxDate = minDate.AddDays(1);
//添加表右键功能 //添加表右键功能
@ -84,11 +84,13 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private ObservableCollection<ContextMenuItem> ganttTaskContextMenuItems = new ObservableCollection<ContextMenuItem>(); private ObservableCollection<ContextMenuItem> ganttTaskContextMenuItems = new ObservableCollection<ContextMenuItem>();
public void GanttChartNEW() 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 = new SQLiteHelper(DBAddress); //数据库连接路径
SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.Open(); //打开数据库
WorkOrder = SQLiteHelpers.ExecuteDataSet( WorkOrder = SQLiteHelpers.ExecuteDataSet(
"select * from WorkOrder where StartTime>'" + Sdatepicker.Text "select * from WorkOrder where StartTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss")
+ "'or EndTime>'" + Sdatepicker.Text + "'Order by StartTime", null).Tables[0]; //读取表写入缓存 + "'or EndTime>'" + DateTime.Parse(Sdatepicker.Text).ToString("yyyy/MM/dd HH:mm:ss") + "'Order by StartTime", null).Tables[0]; //读取表写入缓存
SQLiteHelpers.Close(); SQLiteHelpers.Close();
//生成表 //生成表
@ -197,17 +199,17 @@ namespace SunlightCentralizedControlManagement_SCCM_.View
private void ListViewItem_Before(object sender, MouseButtonEventArgs e)//前一天 private void ListViewItem_Before(object sender, MouseButtonEventArgs e)//前一天
{ {
Picture.Width = 0; 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)//今天 private void ListViewItem_Today(object sender, MouseButtonEventArgs e)//今天
{ {
Picture.Width = 0; 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)//后一天 private void ListViewItem_DayAfter(object sender, MouseButtonEventArgs e)//后一天
{ {
Picture.Width = 0; 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)//时间控件 private void Sdatepicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e)//时间控件
{ {

51
ViewModel/MainWindowViewModel.cs

@ -122,21 +122,28 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS void DisTimer_500MS(object sender, EventArgs e)//Tick_Event周期执行事件500MS
{ {
DATA_view(); DATA_view();
} //下传工单信息
void DisTimer_50MS(object sender, EventArgs e)//Tick_Event周期执行事件50MS SQLiteHelper WorkOrderSQL = new SQLiteHelper(DBAddress); //数据库连接路径
{ WorkOrderSQL.Open(); //打开数据库
if (stringQueue.Count > 0) //信息发送队列 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(); string WorkOrderdata_m = WorkOrderstepdata.Select()[k].Field<object>("Machines").ToString();
MachiensTcpClient[t.ID].SendAsync(t.DAT); DataTable dataTable = WorkOrderSQL.ExecuteDataSet("select * from WorkorderSteps where WorkOrder='" +
WorkOrderstepdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null).Tables[0];
int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field<object>("ID"));
stringQueue.Enqueue(new QueueString
{
ID = index,
DAT = "SC811" + Selet_Machines(Machines, "SYSKEY", index) + dataTable.ToJsonString()
});
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 112 } },
"WorkOrder ='" + WorkOrderstepdata.Select()[k].Field<object>("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]; //读取表写入缓存 DataTable WorkOrderdata = WorkOrderSQL.ExecuteDataSet("select * from WorkOrder where State='100'", null).Tables[0]; //读取表写入缓存
for(int k=0;k<WorkOrderdata.Rows.Count;k++) for (int k = 0; k < WorkOrderdata.Rows.Count; k++)
{ {
string WorkOrderdata_m = WorkOrderdata.Select()[k].Field<object>("Machines").ToString(); string WorkOrderdata_m = WorkOrderdata.Select()[k].Field<object>("Machines").ToString();
string State = Machines.Select("Name='" + WorkOrderdata_m + "'"). string State = Machines.Select("Name='" + WorkOrderdata_m + "'").
@ -144,27 +151,39 @@ namespace SunlightCentralizedControlManagement_SCCM_.ViewModel
if ((State == "101") || (State == "201") || (State == "202") || (State == "309")) if ((State == "101") || (State == "201") || (State == "202") || (State == "309"))
{ {
DataTable dataTable = WorkOrderdata.Clone(); DataTable dataTable = WorkOrderdata.Clone();
// WorkOrderdata.Columns.Remove("Machines"); // WorkOrderdata.Columns.Remove("Machines");
DataRow dt_temp = WorkOrderdata.Select()[k]; DataRow dt_temp = WorkOrderdata.Select()[k];
dt_temp.BeginEdit(); dt_temp.BeginEdit();
dt_temp["State"] = "101"; dt_temp["State"] = "101";
dt_temp.EndEdit(); dt_temp.EndEdit();
dataTable.Rows.Add(dt_temp.ItemArray); dataTable.Rows.Add(dt_temp.ItemArray);
int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field<object>("ID")); int index = Convert.ToInt16(Machines.Select("NAME='" + WorkOrderdata_m + "'").First().Field<object>("ID"));
stringQueue.Enqueue(new QueueString stringQueue.Enqueue(new QueueString
{ {
ID = index, ID = index,
DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", index) + DataTableToDictionary(dataTable).ToJsonString() DAT = "SC810" + Selet_Machines(Machines, "SYSKEY", index) + DataTableToDictionary(dataTable).ToJsonString()
}); });
WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object>{{ "State", 110 }}, WorkOrderSQL.Update("WorkOrder", new Dictionary<string, object> { { "State", 110 } },
"WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null); "WorkOrder ='" + WorkOrderdata.Select()[k].Field<object>("WorkOrder").ToString() + "'", null);
} }
} }
WorkOrderSQL.Close(); 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"); Sys_Time = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
//更新机台状态与发送指令
for (int i = 0; i < Machinesdata_Count; i++) for (int i = 0; i < Machinesdata_Count; i++)
{ {
if (Selet_Machines(Machines, "State", i).ToString() == "802") if (Selet_Machines(Machines, "State", i).ToString() == "802")

Loading…
Cancel
Save