You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
554 lines
30 KiB
554 lines
30 KiB
using DyeingComputer.UserClass;
|
|
using DyeingComputer.ViewModel;
|
|
using DyeingComputer.Windows;
|
|
using SkiaSharp;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Data.Entity;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Data;
|
|
using System.Windows.Documents;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Navigation;
|
|
using System.Windows.Shapes;
|
|
using System.Windows.Threading;
|
|
using System.Xml.Linq;
|
|
using static DyeingComputer.UserClass.SqliteHelper;
|
|
using static DyeingComputer.Windows.ViewProgram;
|
|
using static System.Collections.Specialized.BitVector32;
|
|
using static System.Net.WebRequestMethods;
|
|
|
|
namespace DyeingComputer.View
|
|
{
|
|
/// <summary>
|
|
/// WorkOrder.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class WorkOrderView : UserControl
|
|
{
|
|
public WorkOrderView()
|
|
{
|
|
DataContext = new WorkOrderViewModel();
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void UserControl_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
//SQLiteHelpers.Open(); //打开数据库
|
|
string S09 = MainWindow.SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'S09'", null).ToString(); //读取
|
|
string S10 = MainWindow.SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'S10'", null).ToString();
|
|
string S11 = MainWindow.SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'S11'", null).ToString();
|
|
string S18 = MainWindow.SQLiteHelpers.ExecuteScalar("select value from system where ParameterID = 'S18'", null).ToString();
|
|
//SQLiteHelpers.Close();
|
|
if (S09 == "0") WorkOrderView_new.IsEnabled = false;//禁止用户新建
|
|
if (S10 == "0") WorkOrderView_del.IsEnabled = false;
|
|
if (S11 == "0") WorkOrderView_redy.IsEnabled = false;
|
|
if (S18 == "0") WorkOrderView_lock.IsEnabled = false;
|
|
|
|
TEMPTable.Columns.Add("Time", Type.GetType("System.String"));
|
|
TEMPTable.Columns.Add("MST", Type.GetType("System.Double"));
|
|
|
|
DispatcherTimer timer1s = new DispatcherTimer//初始化循环,每1秒调用一次Tick
|
|
{
|
|
Interval = TimeSpan.FromSeconds(1)//秒
|
|
};
|
|
timer1s.Tick += Tick_Event_1S;
|
|
timer1s.Start();
|
|
|
|
WorkOrder_Numder = null;
|
|
Process_Name = null;
|
|
Process_id = null;
|
|
_lock = null;
|
|
}
|
|
void Tick_Event_1S(object sender, EventArgs e)
|
|
{
|
|
if(!SQL_UPDATE) Workorder_sql();
|
|
}
|
|
|
|
//private SQLiteHelper SQLiteHelpers = null; //定义数据库
|
|
//private readonly string DBAddress = Environment.CurrentDirectory + "\\DataBase\\800COMPUTER.db"; //数据库路径
|
|
DataSet sql; //内存数据缓存
|
|
Dictionary<string, object> updata_temp = new Dictionary<string, object>();//缓存函数
|
|
DataTable dat = new DataTable();
|
|
DataTable TEMPTable = new DataTable();
|
|
|
|
string WorkOrder_Numder;
|
|
string Process_Name;
|
|
string Process_id;
|
|
string _lock;
|
|
string Dyelot;
|
|
bool SQL_UPDATE = false;
|
|
int inf_cont = 0;
|
|
|
|
public void Workorder_sql()
|
|
{
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
//SQLiteHelpers.Open(); //打开数据库
|
|
|
|
string sql_script = "select * from WorkOrder where EndTime > '" + DateTime.Now.AddHours(-8).ToString("yyyy/MM/dd HH:mm:ss") + "'";
|
|
|
|
if (sql != null) sql.Clear(); //清空缓存
|
|
sql = MainWindow.SQLiteHelpers.ExecuteDataSet(sql_script, null); //读取计划表写入缓存
|
|
if (sql != null) Grid.ItemsSource = sql.Tables[0].DefaultView; //转换显示计划表
|
|
|
|
//SQLiteHelpers.Close(); //关闭连接
|
|
|
|
// WorkOrder_Numder = null;
|
|
// Process_Name = null;
|
|
// Process_id = null;
|
|
// _lock = null;
|
|
}
|
|
|
|
private void WorkOrderView_lock_Click(object sender, RoutedEventArgs e)//锁定按钮
|
|
{
|
|
if (!MainWindowViewModel._Lock_bool)
|
|
{
|
|
if (WorkOrder_Numder == null) return;
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
// SQLiteHelpers.Open(); //打开数据库
|
|
updata_temp.Clear();//使用前清理缓存
|
|
if (_lock == "0") //改变lock的状态
|
|
{
|
|
updata_temp.Add("lock", 1);
|
|
MainWindow.SQLiteHelpers.Update("WorkOrder", updata_temp, "WorkOrder='" + WorkOrder_Numder + "'", null);
|
|
}
|
|
else
|
|
{
|
|
updata_temp.Add("lock", 0);
|
|
MainWindow.SQLiteHelpers.Update("WorkOrder", updata_temp, "WorkOrder='" + WorkOrder_Numder + "'", null);
|
|
}
|
|
//SQLiteHelpers.Close();
|
|
Workorder_sql();
|
|
}
|
|
else
|
|
{
|
|
MainWindowViewModel.USERinf(Properties.Resources.LockedState + "\n" +
|
|
Properties.Resources.TCOIR + "\n" + Properties.Resources.PCATRIL);
|
|
}
|
|
}
|
|
|
|
private void WorkOrderView_new_Click(object sender, RoutedEventArgs e)//新建按钮
|
|
{
|
|
if (!MainWindowViewModel._Lock_bool)
|
|
{
|
|
ViewProgram viewProgram = new ViewProgram();
|
|
viewProgram.AddressUpdated += new ViewProgram.AddressUpdateHandler(Address_ButtonClicked);
|
|
viewProgram.ShowDialog();
|
|
}
|
|
else
|
|
{
|
|
MainWindowViewModel.USERinf(Properties.Resources.LockedState + "\n" +
|
|
Properties.Resources.TCOIR + "\n" + Properties.Resources.PCATRIL);
|
|
}
|
|
}
|
|
private void Address_ButtonClicked(object sender, AddressUpdateEventArgs e)//新建返回结果
|
|
{
|
|
SQL_UPDATE = false;
|
|
|
|
WorkOrder_Numder = MainWindowViewModel.S01 + "_" + DateTime.Now.ToString("yyMMddHHmmss");
|
|
Process_id = e.ID;
|
|
Process_Name = e.NAME;
|
|
|
|
Dictionary<string, object> WorkOrder_new = new Dictionary<string, object>();//缓存函数
|
|
WorkOrder_new.Add("WorkOrder", WorkOrder_Numder);
|
|
WorkOrder_new.Add("Dyelot", WorkOrder_Numder);
|
|
WorkOrder_new.Add("ProgramName", Process_Name);
|
|
WorkOrder_new.Add("StartTime", DateTime.Now.AddMinutes(1).ToString("yyyy/MM/dd HH:mm:ss"));
|
|
WorkOrder_new.Add("EndTime", (DateTime.Now.AddMinutes(1) +
|
|
TimeSpan.Parse(e.TIME)).ToString("yyyy/MM/dd HH:mm:ss"));
|
|
WorkOrder_new.Add("Time", e.TIME);
|
|
WorkOrder_new.Add("State", "101");
|
|
WorkOrder_new.Add("ProgramID", Process_id);
|
|
WorkOrder_new.Add("Machines", MainWindowViewModel.S01);
|
|
WorkOrder_new.Add("lock", "0");
|
|
WorkOrder_new.Add("color", "#FFFFFFFF");
|
|
WorkOrder_new.Add("USER", MainWindowViewModel.S01);
|
|
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
//SQLiteHelpers.Open(); //打开数据库
|
|
/*插入表头信息*/
|
|
MainWindow.SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);//
|
|
/*获取转并插入步骤信息*/
|
|
DataTable step_dat = MainWindow.SQLiteHelpers.ExecuteDataSet(
|
|
"select * from ProgramSteps where ProgramID='" + Process_id + "'", null).Tables[0]; //读取表写入缓存
|
|
step_dat.Columns.Add("WorkOrder", System.Type.GetType("System.String"));
|
|
step_dat.Columns.Add("DYELOT", System.Type.GetType("System.String"));
|
|
int a = step_dat.Rows.Count;
|
|
for (int i = 0; i < a; i++)
|
|
{
|
|
DataRow dt = step_dat.Rows[i];//行转
|
|
dt.BeginEdit(); //添加订单号
|
|
dt["WorkOrder"] = WorkOrder_Numder;
|
|
dt["DYELOT"] = WorkOrder_Numder;
|
|
dt.EndEdit();
|
|
|
|
MainWindow.SQLiteHelpers.InsertData("WorkorderSteps", MainWindow.SQLiteHelpers.ToDictionary(dt));//行插入
|
|
}
|
|
//SQLiteHelpers.Close();
|
|
}
|
|
|
|
private void WorkOrderView_del_Click(object sender, RoutedEventArgs e)//删除按钮
|
|
{
|
|
if (!MainWindowViewModel._Lock_bool)
|
|
{
|
|
if (WorkOrder_Numder == null) return;
|
|
///弹窗提示确认删除
|
|
if (System.Windows.Forms.MessageBox.Show(Properties.Resources.Confirm +
|
|
Properties.Resources.Delete + WorkOrder_Numder, "Delete ",
|
|
System.Windows.Forms.MessageBoxButtons.OKCancel,
|
|
System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
///执行删除
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
// SQLiteHelpers.Open(); //打开数据库
|
|
MainWindow.SQLiteHelpers.Delete("WorkOrder", "WorkOrder='" + WorkOrder_Numder + "'", null);
|
|
//SQLiteHelpers.Close();
|
|
Workorder_sql();
|
|
}
|
|
SQL_UPDATE = false;
|
|
}
|
|
else
|
|
{
|
|
MainWindowViewModel.USERinf(Properties.Resources.LockedState + "\n" +
|
|
Properties.Resources.TCOIR + "\n" + Properties.Resources.PCATRIL);
|
|
}
|
|
}
|
|
|
|
private void WorkOrderView_redy_Click(object sender, RoutedEventArgs e)//重染按钮
|
|
{
|
|
if (!MainWindowViewModel._Lock_bool)
|
|
{
|
|
string WorkNum = MainWindowViewModel.WorkNumder.ToString();
|
|
if (WorkNum != null)
|
|
{
|
|
if (System.Windows.Forms.MessageBox.Show(Properties.Resources.Confirm +
|
|
Properties.Resources.Redye + WorkNum, "Redye ",
|
|
System.Windows.Forms.MessageBoxButtons.OKCancel,
|
|
System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
|
|
{
|
|
///执行重染
|
|
}
|
|
}
|
|
SQL_UPDATE = false;
|
|
}
|
|
else
|
|
{
|
|
MainWindowViewModel.USERinf(Properties.Resources.LockedState + "\n" +
|
|
Properties.Resources.TCOIR + "\n" + Properties.Resources.PCATRIL);
|
|
}
|
|
}
|
|
|
|
private void Grid_SelectionChanged(object sender, SelectionChangedEventArgs e)//表格选择事件
|
|
{
|
|
int rownum = Grid.SelectedIndex;//获取鼠标选中行并定义变量
|
|
if (rownum != -1)//判断鼠标定位是否有效
|
|
{
|
|
WorkOrder_Numder = (Grid.Columns[0].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第0列,
|
|
Process_Name = (Grid.Columns[1].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列,
|
|
Process_id = (Grid.Columns[2].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第0列,
|
|
_lock = (Grid.Columns[3].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列,
|
|
Dyelot = (Grid.Columns[4].GetCellContent(Grid.Items[rownum]) as TextBlock).Text;//定位第1列,
|
|
|
|
SQL_UPDATE = true;
|
|
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
//SQLiteHelpers.Open(); //打开数据库
|
|
dat = MainWindow.SQLiteHelpers.ExecuteDataSet(
|
|
"select * from WorkorderSteps where WorkOrder='" + WorkOrder_Numder + "'", null).Tables[0]; //读取表写入缓存
|
|
//SQLiteHelpers.Close(); //关闭连接
|
|
|
|
inf_cont = 0;
|
|
TEMP();
|
|
}
|
|
}
|
|
|
|
private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
|
|
{
|
|
((System.Windows.Controls.Image)sender).RenderTransform = new ScaleTransform(0.9, 0.9);
|
|
}
|
|
private void Image_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
|
|
{
|
|
SQL_UPDATE = false;
|
|
((System.Windows.Controls.Image)sender).RenderTransform = Transform.Identity;
|
|
if (string.IsNullOrEmpty(WorkOrder_Numder)) return;
|
|
inf_cont++;
|
|
if (inf_cont == 1)
|
|
{
|
|
DataGrid dataGrid = new DataGrid();
|
|
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Properties.Resources.Step, Width = 60, Binding = new Binding("Step") });
|
|
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Properties.Resources.Directives, Width = 300, Binding = new Binding("StepName") });
|
|
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Properties.Resources.ParameterSet, Width = 500, Binding = new Binding("ParameterName") });
|
|
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Properties.Resources.Subroutine +1, Width = 300, Binding = new Binding("StepName_S1") });
|
|
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Properties.Resources.Subroutine +2, Width = 300, Binding = new Binding("StepName_S2") });
|
|
dataGrid.Columns.Add(new DataGridTextColumn() { Header = Properties.Resources.Subroutine +3, Width = 300, Binding = new Binding("StepName_S3") });
|
|
dataGrid.AutoGenerateColumns = false;
|
|
dataGrid.CanUserReorderColumns = false;
|
|
dataGrid.CanUserSortColumns = false;
|
|
dataGrid.CanUserResizeRows = false;
|
|
dataGrid.CanUserResizeColumns = false;
|
|
dataGrid.ColumnHeaderHeight = 40;
|
|
dataGrid.FontSize = 25;
|
|
dataGrid.HorizontalGridLinesBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 201, 201, 201));
|
|
dataGrid.VerticalGridLinesBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 201, 201, 201));
|
|
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
//SQLiteHelpers.Open(); //打开数据库
|
|
string sql_script = "select * from WorkorderSteps where WorkOrder='" + WorkOrder_Numder + "'";
|
|
DataTable inf = MainWindow.SQLiteHelpers.ExecuteDataSet(sql_script, null).Tables[0]; //读取表写入缓存
|
|
//SQLiteHelpers.Close(); //关闭连接
|
|
dataGrid.ItemsSource = inf.DefaultView; //转换显示计划表
|
|
|
|
Picture.Content = dataGrid;
|
|
}//步骤细节
|
|
else if (inf_cont == 2)
|
|
{
|
|
DataGrid dataGrid_ = new DataGrid();
|
|
dataGrid_.Columns.Add(new DataGridTextColumn() { Header = "", Width = Picture.ActualWidth / 2 , Binding = new Binding("NAME") });
|
|
dataGrid_.Columns.Add(new DataGridTextColumn() { Header = "", Width = Picture.ActualWidth / 2 - 25, Binding = new Binding("Value") });
|
|
dataGrid_.AutoGenerateColumns = false;
|
|
dataGrid_.CanUserReorderColumns = false;
|
|
dataGrid_.CanUserSortColumns = false;
|
|
dataGrid_.CanUserResizeRows = false;
|
|
dataGrid_.CanUserResizeColumns = false;
|
|
dataGrid_.ColumnHeaderHeight = 40;
|
|
dataGrid_.FontSize = 25;
|
|
dataGrid_.HorizontalGridLinesBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 201, 201, 201));
|
|
dataGrid_.VerticalGridLinesBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(255, 201, 201, 201));
|
|
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
// SQLiteHelpers.Open(); //打开数据库
|
|
string sql_script = "select * from Workorder where WorkOrder='" + WorkOrder_Numder + "'";
|
|
DataRow inf = MainWindow.SQLiteHelpers.ExecuteDataSet(sql_script, null).Tables[0].Select().First(); //读取表写入缓存
|
|
// SQLiteHelpers.Close(); //关闭连接
|
|
|
|
DataTable dataTable = new DataTable();
|
|
dataTable.Columns.Add("NAME", Type.GetType("System.String"));
|
|
dataTable.Columns.Add("Value", Type.GetType("System.String"));
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.WorkOrder, inf.Field<string>("WorkOrder")});
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.Dyelot, inf.Field<string>("Dyelot") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.ProcessName, inf.Field<string>("ProgramName") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.Time, inf.Field<string>("Time") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.ColorNumber, inf.Field<string>("ColorNumber") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.ColorName, inf.Field<string>("ColorName") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.Client, inf.Field<string>("Client") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.ClothWeight, inf.Field<string>("ClothWeight") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.ClothSpecies, inf.Field<string>("ClothSpecies") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.BathRatio, inf.Field<string>("BathRatio") });
|
|
dataTable.Rows.Add(new object[] { Properties.Resources.Total, inf.Field<string>("Total") });
|
|
|
|
dataGrid_.ItemsSource = dataTable.DefaultView; //转换显示计划表
|
|
Picture.Content = dataGrid_;
|
|
}//工单信息
|
|
else if (inf_cont == 3)
|
|
{
|
|
inf_cont = 0;
|
|
TEMP();
|
|
}//显示曲线
|
|
}//信息
|
|
private void Image_MouseLeftButtonDown1(object sender, MouseButtonEventArgs e)
|
|
{
|
|
((System.Windows.Controls.Image)sender).RenderTransform = new ScaleTransform(0.9, 0.9);
|
|
}
|
|
private void Image_MouseLeftButtonUp1(object sender, MouseButtonEventArgs e)
|
|
{
|
|
if (!MainWindowViewModel._Lock_bool)
|
|
{
|
|
SQL_UPDATE = false;
|
|
((System.Windows.Controls.Image)sender).RenderTransform = Transform.Identity;
|
|
if (string.IsNullOrEmpty(WorkOrder_Numder)) return;
|
|
if (_lock == "1")
|
|
{
|
|
MessageBoxResult messageBox = System.Windows.MessageBox.Show(
|
|
Properties.Resources.Process_lock, "800", MessageBoxButton.OK);
|
|
return;
|
|
}
|
|
|
|
DataTable WorkorderSteps = new DataTable();
|
|
int a;
|
|
|
|
/*检查并写入run信息*/
|
|
//SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
// SQLiteHelpers.Open(); //打开数据库
|
|
|
|
int R_D = MainWindow.SQLiteHelpers.ExecuteDataSet("select * from RUN", null).Tables[0].Rows.Count; //读取表写入缓存
|
|
if (R_D > 0)//判断是否有运行中工艺
|
|
{
|
|
//SQLiteHelpers.Close(); //关闭连接
|
|
|
|
MessageBoxResult messageBoxResult = System.Windows.MessageBox.Show(
|
|
Properties.Resources.RunningProcess, "800", MessageBoxButton.YesNo);
|
|
if (messageBoxResult == MessageBoxResult.No) return;
|
|
if (messageBoxResult == MessageBoxResult.Yes)
|
|
{
|
|
if (MainWindowViewModel.S17 == 1) //拒绝操作
|
|
{
|
|
System.Windows.MessageBox.Show(Properties.Resources.refuse, "800", MessageBoxButton.OK);
|
|
return;
|
|
}
|
|
// SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径
|
|
// SQLiteHelpers.Open(); //打开数据库
|
|
}
|
|
}
|
|
|
|
updata_temp.Clear(); //使用前清缓存
|
|
updata_temp.Add("State", 205);
|
|
MainWindow.SQLiteHelpers.Update("WorkOrder", updata_temp, "WorkOrder='" + WorkOrder_Numder + "'", null);
|
|
MainWindowViewModel.Dyelot_dat = MainWindow.SQLiteHelpers.ExecuteDataSet("select * from Dyelot where WorkOrder = '" +
|
|
WorkOrder_Numder + "'", null).Tables[0];
|
|
var DT_Set = MainWindow.SQLiteHelpers.ExecuteDataSet("select * from WorkOrderSet where WorkOrder = '" +
|
|
WorkOrder_Numder + "'", null).Tables[0].Rows[0];
|
|
MainWindowViewModel.Updata_dtm("1020", DT_Set.Field<int>("PumpSpeed"));
|
|
MainWindowViewModel.Updata_dtm("1030", DT_Set.Field<int>("Swing"));
|
|
MainWindowViewModel.Updata_dtm("1021", DT_Set.Field<int>("Blower"));
|
|
MainWindowViewModel.Updata_dtm("1025", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1026", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1027", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1028", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1029", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1035", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1036", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1037", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1038", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1039", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1040", DT_Set.Field<int>("ClothWheel"));
|
|
MainWindowViewModel.Updata_dtm("1041", DT_Set.Field<int>("ClothWheel"));
|
|
WorkorderSteps = MainWindow.SQLiteHelpers.ExecuteDataSet(
|
|
"select * from WorkorderSteps where WorkOrder='" + WorkOrder_Numder + "'", null).Tables[0]; //读取表写入缓存
|
|
MainWindowViewModel.ProgramName = Process_Name;
|
|
MainWindowViewModel.Dyelot = Dyelot;
|
|
MainWindow.SQLiteHelpers.Delete("RUN", null, null); //删除run信息
|
|
a = WorkorderSteps.Rows.Count;
|
|
for (int i = 0; i < a; i++)
|
|
{
|
|
DataRow dr = WorkorderSteps.Rows[i];//行转
|
|
|
|
MainWindow.SQLiteHelpers.InsertData("RUN", MainWindow.SQLiteHelpers.ToDictionary(dr));//行插入
|
|
}
|
|
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<string>("StepID");//
|
|
double P1 = WorkorderSteps.Select("Step = 1").First().Field<double>("Parameter1");
|
|
double P2 = WorkorderSteps.Select("Step = 1").First().Field<double>("Parameter2");
|
|
double P3 = WorkorderSteps.Select("Step = 1").First().Field<double>("Parameter3");
|
|
double P4 = WorkorderSteps.Select("Step = 1").First().Field<double>("Parameter4");
|
|
double P5 = WorkorderSteps.Select("Step = 1").First().Field<double>("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(), "UserActions", "Jump", "STEP = " +
|
|
MainWindowViewModel.RUN_STEPID + ";StepID=" + Numder + ";P1=" + P1 + ";P2=" + P2 + ";P3=" + P3 + ";P4=" + P4 + ";P5=" + P5);
|
|
|
|
/*选定工艺有效跳转准备 */
|
|
if (Process_id != null) //选定工艺有效跳转准备
|
|
{
|
|
MainWindowViewModel.WorkNumder = WorkOrder_Numder;
|
|
TechnologicalProcessView.workName = Process_id;
|
|
MainWindowViewModel.SYS_REDYE = 0;
|
|
|
|
MainWindowViewModel.ViewID = 1;
|
|
var _mainWindow = Application.Current.Windows.Cast<Window>().FirstOrDefault(window => window is MainWindow) as MainWindow;//跨页面
|
|
_mainWindow.container.Content = new TechnologicalProcessView();//获取控件
|
|
}
|
|
}
|
|
else
|
|
{
|
|
MainWindowViewModel.USERinf(Properties.Resources.LockedState + "\n" +
|
|
Properties.Resources.TCOIR + "\n" + Properties.Resources.PCATRIL);
|
|
}
|
|
}//开始
|
|
|
|
private void TEMP()
|
|
{
|
|
//处理计划温度图表
|
|
TEMPTable.Clear();
|
|
string TIMET = "00:00:00";
|
|
Double MSTT = 30.0;
|
|
Double TT;
|
|
Double TC;
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
for (int i = 0; i < dat.Rows.Count; i++)
|
|
{
|
|
switch (dat.Rows[i].Field<string>("StepID"))//步骤用时计算
|
|
{
|
|
case "001":
|
|
TT = MSTT;
|
|
TC = dat.Rows[i].Field<double>("Parameter2");
|
|
if (TC > 9.9 || TC < 0.1) TC = 9.9;//计算限制
|
|
MSTT = dat.Rows[i].Field<double>("Parameter1");
|
|
TT = Math.Abs(MSTT - TT) / TC * 60;
|
|
TIMET = Convert.ToDateTime(TIMET).AddSeconds(TT).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter3")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "007":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(5).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "008":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(5).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "013":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter3") * dat.Rows[i].Field<double>("Parameter4")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "015":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter3")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "017":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter3")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "020":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(5).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "022":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(5).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "031":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter1")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "065":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter3")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "091":
|
|
TT = MSTT;
|
|
TC = (Double)dat.Rows[i][7];
|
|
if (TC > 9.9 || TC < 0.1) TC = 9.9;//计算限制
|
|
MSTT = (Double)dat.Rows[i][6];
|
|
TT = Math.Abs(MSTT - TT) / TC * 60;
|
|
TIMET = Convert.ToDateTime(TIMET).AddSeconds(TT).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
case "093":
|
|
TIMET = Convert.ToDateTime(TIMET).AddMinutes(dat.Rows[i].Field<double>("Parameter1")).ToString("HH:mm:ss");
|
|
TEMPTable.Rows.Add(new object[] { TIMET, MSTT });
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
Picture.Content = new View.CurveTemp(TEMPTable);
|
|
} //计划温度图表
|
|
|
|
}
|
|
}
|
|
|