diff --git a/UserClass/AsyncTcpServer.cs b/UserClass/AsyncTcpServer.cs index a1855de..3e594bf 100644 --- a/UserClass/AsyncTcpServer.cs +++ b/UserClass/AsyncTcpServer.cs @@ -243,7 +243,7 @@ namespace DyeingComputer.UserClass dat_821 = SerializeConvert.JsonDeserializeFromString>(SYSDAT); if (dat_821.GetValue("INSTRUCTION").ToString() == "START") { - MainWindowViewModel.Dyelot_dat = MainWindow.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where WorkOrder = '" + + MainWindowViewModel.Dyelot_dat = MainWindow.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where ReDye=0 AND WorkOrder = '" + dat_821.GetValue("WorkOrder").ToString() + "'", null).Tables[0]; var DT_Set = MainWindow.SQLiteHelpers.ExecuteDataSet("select * from WorkOrderSet where WorkOrder = '" + dat_821.GetValue("WorkOrder").ToString() + "'", null).Tables[0].Rows[0]; @@ -262,29 +262,61 @@ namespace DyeingComputer.UserClass MainWindowViewModel.Updata_dtm("1039", DT_Set.Field("ClothWheel")); MainWindowViewModel.Updata_dtm("1040", DT_Set.Field("ClothWheel")); MainWindowViewModel.Updata_dtm("1041", DT_Set.Field("ClothWheel")); + DataTable WorkorderSteps = MainWindow.SQLiteHelpers.ExecuteDataSet( + "select * from WorkorderSteps where ReDye=0 AND WorkOrder='" + dat_821.GetValue("WorkOrder").ToString() + "'", null).Tables[0]; //读取表写入缓存 + DataTable Workorder = MainWindow.SQLiteHelpers.ExecuteDataSet( + "select * from Workorder where ReDye=0 AND WorkOrder='" + dat_821.GetValue("WorkOrder").ToString() + "'", null).Tables[0]; //读取表写入缓存 + MainWindowViewModel.ProgramName = Workorder.Rows[0].Field("ProgramName"); + MainWindowViewModel.Dyelot = MainWindowViewModel.Dyelot_dat.Rows[0].Field("Dyelot"); + MainWindow.SQLiteHelpers.Delete("RUN", null, null); //删除run信息 + for (int i = 0; i < WorkorderSteps.Rows.Count; i++) + { + DataRow dr = WorkorderSteps.Rows[i];//行转 + + MainWindow.SQLiteHelpers.InsertData("RUN", MainWindow.SQLiteHelpers.ToDictionary(dr));//行插入 + } + Dictionary updata_temp = new Dictionary();//缓存函数 + updata_temp.Add("State", 205); + MainWindow.SQLiteHelpers.Update("WorkOrder", updata_temp, "WorkOrder='" + dat_821.GetValue("WorkOrder").ToString() + "'", null); + updata_temp.Clear(); //使用前清缓存 + updata_temp.Add("RUN", 1); + MainWindow.SQLiteHelpers.Update("RUN", updata_temp, "Step=1", null); + //SQLiteHelpers.Close(); //关闭连接 + /*触发启动*/ + string Numder = WorkorderSteps.Select("Step = 1").First().Field("StepID");// + double P1 = WorkorderSteps.Select("Step = 1").First().Field("Parameter1"); + double P2 = WorkorderSteps.Select("Step = 1").First().Field("Parameter2"); + double P3 = WorkorderSteps.Select("Step = 1").First().Field("Parameter3"); + double P4 = WorkorderSteps.Select("Step = 1").First().Field("Parameter4"); + double P5 = WorkorderSteps.Select("Step = 1").First().Field("Parameter5"); + MainWindowViewModel.RUN_STEPID = Convert.ToInt16(1);//插入步骤号 + MainWindowViewModel.STEP_START(Numder, Convert.ToDouble(P1), Convert.ToDouble(P2), Convert.ToDouble(P3), + Convert.ToDouble(P4), Convert.ToDouble(P5)); + MainWindowViewModel.WORK_RUN = 2; + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "START", "STEP = " + + MainWindowViewModel.RUN_STEPID + ";StepID=" + Numder + ";P1=" + P1 + ";P2=" + P2 + ";P3=" + P3 + ";P4=" + P4 + ";P5=" + P5); client.SendAsync("SC821" + SYSKEY + SYSDAT); } else if (dat_821.GetValue("INSTRUCTION").ToString() == "STOP") { MainWindowViewModel.WORK_RUN = 0;//停止 MainWindowViewModel.DIDETime = 0; - + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "STOP", MainWindowViewModel.WorkNumder.ToString()); client.SendAsync("SC821" + SYSKEY + SYSDAT); - } + }//停止 else if (dat_821.GetValue("INSTRUCTION").ToString() == "PAUSE") { MainWindowViewModel.WORK_RUN = 1;//暂停 MainWindowViewModel.errTabler.Clear(); - + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "PAUSE", MainWindowViewModel.WorkNumder.ToString()); client.SendAsync("SC821" + SYSKEY + SYSDAT); - } + }//暂停 else if (dat_821.GetValue("INSTRUCTION").ToString() == "CONTINUE") { - MainWindowViewModel.errTabler.Clear(); - MainWindowViewModel.WORK_RUN = 2;// - // + MainWindowViewModel.WORK_RUN = 2;//PAUSE + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "CONTINUE", MainWindowViewModel.WorkNumder.ToString()); client.SendAsync("SC821" + SYSKEY + SYSDAT); }//运行 else if (dat_821.GetValue("INSTRUCTION").ToString() == "JUMP") @@ -293,6 +325,11 @@ namespace DyeingComputer.UserClass MainWindowViewModel.STEP_START(dat_821.GetValue("Numder").ToString(), Convert.ToDouble(dat_821.GetValue("P1")), Convert.ToDouble(dat_821.GetValue("P2")), Convert.ToDouble(dat_821.GetValue("P3")), Convert.ToDouble(dat_821.GetValue("P4")), Convert.ToDouble(dat_821.GetValue("P5"))); + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "JUMP", "STEP = " + + MainWindowViewModel.RUN_STEPID + ";"+dat_821.GetValue("Numder").ToString()+";P1="+ + Convert.ToDouble(dat_821.GetValue("P1")) + ";P2=" + Convert.ToDouble(dat_821.GetValue("P2")) + ";P3=" + + Convert.ToDouble(dat_821.GetValue("P3")) + ";P4=" + Convert.ToDouble(dat_821.GetValue("P4")) + ";P5=" + + Convert.ToDouble(dat_821.GetValue("P5"))); }//跳步 else if (dat_821.GetValue("INSTRUCTION").ToString() == "INSERT") { @@ -363,7 +400,7 @@ namespace DyeingComputer.UserClass MainWindow.SQLiteHelpers.InsertData("RUN", MainWindow.SQLiteHelpers.ToDictionary(dt));//行插入 } //SQLiteHelpers.Close(); //关闭连接 - + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "INSERT", drtt.ToJsonString()); client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString()); MainWindowViewModel.TX++; }//插入 @@ -421,7 +458,7 @@ namespace DyeingComputer.UserClass MainWindow.SQLiteHelpers.InsertData("RUN", MainWindow.SQLiteHelpers.ToDictionary(dt));//行插入 } //SQLiteHelpers.Close(); //关闭连接 - + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "EDIT", dr.ToJsonString()); client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString()); MainWindowViewModel.TX++; }//编辑 @@ -444,8 +481,8 @@ namespace DyeingComputer.UserClass MainWindow.SQLiteHelpers.InsertData("RUN", MainWindow.SQLiteHelpers.ToDictionary(dt));//行插入 } - //SQLiteHelpers.Close(); //关闭连接 - + //SQLiteHelpers.Close(); //关闭连接 + APILog.LOGlog(MainWindowViewModel.WorkNumder.ToString(), "CentralControl", "DELETE","ID="+ dat_821.GetValue("ID").ToString()); client.SendAsync("SC831" + "[" + MainWindowViewModel.S01 + "]" + MainWindowViewModel.dt_TP.ToJsonString()); MainWindowViewModel.TX++; }//删除 @@ -458,7 +495,24 @@ namespace DyeingComputer.UserClass catch (Exception ex) { client.SendAsync("SC921" + "[" + MainWindowViewModel.S01 + "]" + ex); } } else { client.SendAsync("SC999"); } - }//启停跳步指令 + }//启停跳步指令 + else if (SYSAPI == "SC822") + { + if (SYSKEY == MainWindowViewModel.SYSKEY) + { + try + { + DataTable Workorder = MainWindow.SQLiteHelpers.ExecuteDataSet( + "select * from Workorder where ReDye=0 AND State='101'AND StartTime >'"+ + DateTime.Now.AddHours(-1).ToString()+"'", null).Tables[0]; //读取表写入缓存 + + client.SendAsync("SC822" + "[" + MainWindowViewModel.S01 + "]" + Workorder.ToJsonString()); + APILog.DBlog(client.IP, SYSKEY, SYSAPI, SYSDAT);//记录指令 + } + catch (Exception ex) { client.SendAsync("SC922" + "[" + MainWindowViewModel.S01 + "]" + ex); } + } + else { client.SendAsync("SC999"); } + }//最近可用工艺 else if (SYSAPI == "SC827") { if (SYSKEY == MainWindowViewModel.SYSKEY)