diff --git a/DATA/800COMPUTER.db b/DATA/800COMPUTER.db index 1d8e6c8..2d3986f 100644 Binary files a/DATA/800COMPUTER.db and b/DATA/800COMPUTER.db differ diff --git a/DyeingComputer.csproj b/DyeingComputer.csproj index 03bfc33..b0244c6 100644 --- a/DyeingComputer.csproj +++ b/DyeingComputer.csproj @@ -142,6 +142,7 @@ + diff --git a/UserClass/APILog.cs b/UserClass/APILog.cs new file mode 100644 index 0000000..4dc7826 --- /dev/null +++ b/UserClass/APILog.cs @@ -0,0 +1,42 @@ +using DyeingComputer.View; +using DyeingComputer.ViewModel; +using ScottPlot.Colormaps; +using System; +using System.Collections.Generic; +using System.Data; +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 +{ + public class APILog + { + private static SQLiteHelper SQLiteHelpers = null; //定义数据库 + private readonly static string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径 + + public async static void DBlog(string Name ,string ID ,string Api,string MESSAGE) + { + await Task.Run(() => + { + Dictionary API_LOG = new Dictionary();//缓存函数 + API_LOG.Add("NAME",Name); + API_LOG.Add("ID", ID); + API_LOG.Add("API", Api); + API_LOG.Add("MESSAGE", MESSAGE); + API_LOG.Add("TIME", MainWindowViewModel.SYSTime); + + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + SQLiteHelpers.InsertData("SERVER", API_LOG);//行插入 + SQLiteHelpers.Close(); //关闭连接 + API_LOG.Clear(); + }); + } + + + } +} diff --git a/UserClass/AsyncTcpServer.cs b/UserClass/AsyncTcpServer.cs index b5a9838..104fda7 100644 --- a/UserClass/AsyncTcpServer.cs +++ b/UserClass/AsyncTcpServer.cs @@ -99,6 +99,7 @@ namespace DyeingComputer.UserClass Chart_new.Add("TIME", MainWindowViewModel.SYSTime); client.SendAsync("SC800" + "[" + MainWindowViewModel.S01 + "]" + Chart_new.ToJsonString()); MainWindowViewModel.TX++; + APILog.DBlog(client.IP,SYSKEY,SYSAPI,SYSDAT);//记录指令 } else if (SYSAPI == "SC810") { @@ -125,6 +126,8 @@ namespace DyeingComputer.UserClass WorkOrder_dat.GetValue("WorkOrder").ToString()); } else { client.SendAsync("SC810" + "[" + MainWindowViewModel.S01 + "]" + WorkOrder_dat.GetValue("WorkOrder").ToString()); MainWindowViewModel.TX++; } + + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch(Exception ex) { @@ -142,10 +145,18 @@ namespace DyeingComputer.UserClass DataTable WorkOrder_dat; WorkOrder_dat = SerializeConvert.JsonDeserializeFromString(SYSDAT); bool dat_w = SQLDATA.WorkOderStep(WorkOrder_dat); - if (!dat_w) { client.SendAsync("SC911" + "[" + MainWindowViewModel.S01 + "]" + - WorkOrder_dat.Select().First().Field("WorkOrder")); } - else { client.SendAsync("SC811" + "[" + MainWindowViewModel.S01 + "]" + - WorkOrder_dat.Select().First().Field("WorkOrder")); MainWindowViewModel.TX++; } + if (!dat_w) + { + client.SendAsync("SC911" + "[" + MainWindowViewModel.S01 + "]" + + WorkOrder_dat.Select().First().Field("WorkOrder")); + } + else + { + client.SendAsync("SC811" + "[" + MainWindowViewModel.S01 + "]" + + WorkOrder_dat.Select().First().Field("WorkOrder")); + MainWindowViewModel.TX++; + } + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch(Exception ex) { @@ -154,6 +165,33 @@ namespace DyeingComputer.UserClass } else { client.SendAsync("SC999"); } }//WorkOrderstep表信息检查写入 + else if (SYSAPI == "SC813") + { + if (SYSKEY == MainWindowViewModel.SYSKEY) + { + try + { + DataTable Dyelot_dat; + Dyelot_dat = SerializeConvert.JsonDeserializeFromString(SYSDAT); + bool dat_w = SQLDATA.WorkOderStep(Dyelot_dat); + if (!dat_w) + { + client.SendAsync("SC913" + "[" + MainWindowViewModel.S01 + "]" + + Dyelot_dat.Select().First().Field("Dyelot")); + } + else + { + client.SendAsync("SC813" + "[" + MainWindowViewModel.S01 + "]" + + Dyelot_dat.Select().First().Field("Dyelot")); + MainWindowViewModel.TX++; + } + + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 + } + catch (Exception ex) { client.SendAsync("SC991" + "[" + MainWindowViewModel.S01 + "]" + ex); } + } + else { client.SendAsync("SC999"); } + }//写入领料单 else if (SYSAPI == "SC820") { if (SYSKEY == MainWindowViewModel.SYSKEY) @@ -169,6 +207,7 @@ namespace DyeingComputer.UserClass } client.SendAsync("SC820" + "[" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "]"); MainWindowViewModel.TX++; + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch (Exception ex) { client.SendAsync("SC920" + "[" + MainWindowViewModel.S01 + "]" + ex); } } @@ -350,6 +389,7 @@ namespace DyeingComputer.UserClass { client.SendAsync("SC821" + SYSKEY + SYSDAT); } + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch (Exception ex) { client.SendAsync("SC921" + "[" + MainWindowViewModel.S01 + "]" + ex); } } @@ -416,7 +456,13 @@ namespace DyeingComputer.UserClass { try { - client.SendAsync("SC832" + "[" + MainWindowViewModel.S01 + "]" + "sc833"); + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + string sql_script = "select * from Dyelot where WorkOrder = '" + MainWindowViewModel.WorkNumder + "'"; + DataTable dt = SQLiteHelpers.ExecuteDataSet(sql_script, null).Tables[0]; //转换 + SQLiteHelpers.Close(); //关闭连接 + + client.SendAsync("SC833" + "[" + MainWindowViewModel.S01 + "]" + dt.ToJsonString()); MainWindowViewModel.TX++; } catch (Exception ex) { client.SendAsync("SC933" + "[" + MainWindowViewModel.S01 + "]" + ex); } @@ -466,6 +512,8 @@ namespace DyeingComputer.UserClass try { client.SendAsync("SC854" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_ParameterSet.ToJsonString());//缓存信息 + + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch (Exception ex) { client.SendAsync("SC954" + "[" + MainWindowViewModel.S01 + "]" + ex); } } @@ -478,6 +526,7 @@ namespace DyeingComputer.UserClass try { client.SendAsync("SC855" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_SysSet.ToJsonString());//缓存信息 + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch (Exception ex) { client.SendAsync("SC955" + "[" + MainWindowViewModel.S01 + "]" + ex); } } @@ -502,6 +551,8 @@ namespace DyeingComputer.UserClass SQLiteHelpers.Close();//关闭数据库 client.SendAsync("SC854" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_ParameterSet.ToJsonString());//缓存信息 + + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } catch (Exception ex) { @@ -535,6 +586,8 @@ namespace DyeingComputer.UserClass SQLiteHelpers.Close();//关闭数据库 client.SendAsync("SC855" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_SysSet.ToJsonString());//缓存信息 + + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 } } catch (Exception ex) diff --git a/UserClass/SQLDATA.cs b/UserClass/SQLDATA.cs index a0a233e..69f92a2 100644 --- a/UserClass/SQLDATA.cs +++ b/UserClass/SQLDATA.cs @@ -112,5 +112,35 @@ namespace DyeingComputer.UserClass SQLiteHelpers.Close(); //关闭连接 } + public static bool Dyelot(DataTable Dyelot_)//领料单 + { + SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + SQLiteHelpers.Open(); //打开数据库 + DataTable data_t = Dyelot_.Clone(); + int a = Dyelot_.Rows.Count; + if (a < 1) + { + SQLiteHelpers.Close(); + return false; + } + string Dyelot = Dyelot_.Rows[0][0].ToString(); + object n = SQLiteHelpers.ExecuteScalar("select * from Dyelot where Dyelot = " + Dyelot, null); + if (n != null)//如id存在着返回错误状态 + { + SQLiteHelpers.Close(); + return false; + } + for (int i = 0; i < a; i++) + { + data_t.Clear();//清空 + DataRow dr = data_t.NewRow(); + dr.ItemArray = Dyelot_.Rows[i].ItemArray; + data_t.Rows.InsertAt(dr, 0); + SQLiteHelpers.InsertData("Dyelot", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + } + SQLiteHelpers.Close(); //关闭连接 + return true; + } + } } diff --git a/ViewModel/MainWindowViewModel.cs b/ViewModel/MainWindowViewModel.cs index 9219e89..55a3e53 100644 --- a/ViewModel/MainWindowViewModel.cs +++ b/ViewModel/MainWindowViewModel.cs @@ -320,6 +320,7 @@ namespace DyeingComputer.ViewModel STEP_RUN(); LOG_view(); IO_view(); + TechnologicalProcess_view(); if (!string.IsNullOrEmpty(Name_err.ToString())) { @@ -336,8 +337,6 @@ namespace DyeingComputer.ViewModel { if(WORK_RUN !=0) Chart();//写入记录 - TechnologicalProcess_view(); - if (string.IsNullOrEmpty(Name_err.ToString()) && ((Selet_dtm("1010") < 1) || (Selet_dtm("1010") > 160))) { Name_err = Resources.Temperature + Resources.Sensor + Resources.Malfunction; } //温度故障提示 } @@ -1727,14 +1726,20 @@ namespace DyeingComputer.ViewModel }); } } - public void TechnologicalProcess_view()//显示 + public async void TechnologicalProcess_view()//显示 { - try + if (ViewID == 1) { - if (ViewID == 1) TechnologicalProcess_View = ToObservableCollection(dt_TP); + await Task.Run(() => + { + try + { + TechnologicalProcess_View = ToObservableCollection(dt_TP); + } + catch (Exception) { } + }); } - catch (Exception) { } } public static double Selet_dtm(string key)//M寄存器 {