diff --git a/View/ProductionPlanningEdit.xaml.cs b/View/ProductionPlanningEdit.xaml.cs index 49a99fa..c23c43b 100644 --- a/View/ProductionPlanningEdit.xaml.cs +++ b/View/ProductionPlanningEdit.xaml.cs @@ -1,4 +1,5 @@ using Newtonsoft.Json.Linq; +using nGantt.GanttChart; using SunlightCentralizedControlManagement_SCCM_.UserClass; using SunlightCentralizedControlManagement_SCCM_.ViewModel; using SunlightCentralizedControlManagement_SCCM_.WindowsView; @@ -76,7 +77,19 @@ namespace SunlightCentralizedControlManagement_SCCM_.View private void Button_Click(object sender, RoutedEventArgs e) { + if (string.IsNullOrEmpty(comboBoxMachine.Text)) + { + MessageBox.Show("Not Machine"); + return; + } + if (string.IsNullOrEmpty(comboBoxProgram.Text)) + { + MessageBox.Show("Not Program"); + return; + } string[] sArray = Regex.Split(comboBoxMachine.Text, @"\+", RegexOptions.IgnoreCase); + string[] pArray = Regex.Split(comboBoxProgram.Text, @"\+", RegexOptions.IgnoreCase); + if (sArray.Length <= 1) { //单机器信息写入 @@ -84,8 +97,20 @@ namespace SunlightCentralizedControlManagement_SCCM_.View string StartTime_; string WorkOrder_ = comboBoxMachine.Text + "_" + DateTime.Now.ToString("yyMMddHHmmss"); string ProgramName_ = comboBoxProgram.Text; - string ProgramID_ = ProgramName.Select("ProgramName='" + ProgramName_ + "'"). - First().Field("ProgramID").ToString(); + string ProgramID_ =null; + for (int j = 0; j < pArray.Length; j++) + { + if (j == 0) + { + ProgramID_ = ProgramName.Select("ProgramName='" + pArray[j] + "'"). + First().Field("ProgramID").ToString(); + } + else + { + ProgramID_ = ProgramID_ + "+" + ProgramName.Select("ProgramName='" + pArray[j] + "'"). + First().Field("ProgramID").ToString(); + } + } string Machines_ = comboBoxMachine.Text; string State_ = "100"; string Dyelot_ = comboBoxDyelot.Text; @@ -110,10 +135,14 @@ namespace SunlightCentralizedControlManagement_SCCM_.View { StartTime_= DateTime.Now.AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); } - SQLiteHelpers.Close(); //关闭连接 - - string Time_ = DateTime.Parse(ProgramName.Select("ProgramName='" + ProgramName_ + "'"). - First().Field("Time").ToString()).ToString("HH:mm:ss"); + // SQLiteHelpers.Close(); //关闭连接 + string Time_ ="0:00"; + for (int k = 0; k < pArray.Length; k++) + { + string t = ProgramName.Select("ProgramName='" + pArray[k] + "'"). + 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"); //插入数据信息 @@ -129,10 +158,23 @@ namespace SunlightCentralizedControlManagement_SCCM_.View WorkOrder_new.Add("Dyelot", Dyelot_); WorkOrder_new.Add("Remark", null); WorkOrder_new.Add("lock", 0); - WorkOrder_new.Add("color", color_); - SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 - SQLiteHelpers.Open(); //打开数据库 + WorkOrder_new.Add("color", color_); + //SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + //SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入 + DataTable data_t = dat.Clone(); + data_t.Columns.Add(new DataColumn() { ColumnName = "WorkOrder", DataType = typeof(String), DefaultValue = WorkOrder_ }); + data_t.Columns.Add(new DataColumn() { ColumnName = "Dyelot", DataType = typeof(String), DefaultValue = Dyelot_ }); + int a = dat.Rows.Count; + for (int x = 0; x < a; x++) + { + data_t.Clear(); + DataRow dt = dat.Rows[x];//行转换 + DataRow dr = data_t.NewRow(); + dr.ItemArray = dt.ItemArray; + data_t.Rows.InsertAt(dr, 0); + SQLiteHelpers.InsertData("WorkorderSteps", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + } SQLiteHelpers.Close(); //关闭连接 } else @@ -143,8 +185,20 @@ namespace SunlightCentralizedControlManagement_SCCM_.View string StartTime_; string WorkOrder_ = sArray[i] + "_" + DateTime.Now.ToString("yyMMddHHmmss")+i; string ProgramName_ = comboBoxProgram.Text; - string ProgramID_ = ProgramName.Select("ProgramName='" + ProgramName_ + "'"). - First().Field("ProgramID").ToString(); + string ProgramID_ = null; + for (int j = 0; j < pArray.Length; j++) + { + if (j == 0) + { + ProgramID_ = ProgramName.Select("ProgramName='" + pArray[j] + "'"). + First().Field("ProgramID").ToString(); + } + else + { + ProgramID_ = ProgramID_ + "+" + ProgramName.Select("ProgramName='" + pArray[j] + "'"). + First().Field("ProgramID").ToString(); + } + } string Machines_ = sArray[i]; string State_ = "100"; string Dyelot_ = comboBoxDyelot.Text; @@ -169,10 +223,14 @@ namespace SunlightCentralizedControlManagement_SCCM_.View { StartTime_ = DateTime.Now.AddMinutes(1).ToString("yyyy/M/d HH:mm:ss"); } - SQLiteHelpers.Close(); //关闭连接 - - string Time_ = DateTime.Parse(ProgramName.Select("ProgramName='" + ProgramName_ + "'"). - First().Field("Time").ToString()).ToString("HH:mm:ss"); + // SQLiteHelpers.Close(); //关闭连接 + string Time_ = "0:00"; + for (int k = 0; k < pArray.Length; k++) + { + string t = ProgramName.Select("ProgramName='" + pArray[k] + "'"). + 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(); //插入数据信息 @@ -189,9 +247,22 @@ namespace SunlightCentralizedControlManagement_SCCM_.View WorkOrder_new.Add("Remark", null); WorkOrder_new.Add("lock", 0); WorkOrder_new.Add("color", color_); - SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 - SQLiteHelpers.Open(); //打开数据库 + //SQLiteHelpers = new SQLiteHelper(DBAddress); //数据库连接路径 + //SQLiteHelpers.Open(); //打开数据库 SQLiteHelpers.InsertData("WorkOrder", WorkOrder_new);// 执行插入 + DataTable data_t = dat.Clone(); + data_t.Columns.Add(new DataColumn() { ColumnName = "WorkOrder", DataType = typeof(String), DefaultValue = WorkOrder_ }); + data_t.Columns.Add(new DataColumn() { ColumnName = "Dyelot", DataType = typeof(String), DefaultValue = Dyelot_ }); + int a = dat.Rows.Count; + for (int x = 0; x < a ; x++) + { + data_t.Clear(); + DataRow dt = dat.Rows[x];//行转换 + DataRow dr = data_t.NewRow(); + dr.ItemArray = dt.ItemArray; + data_t.Rows.InsertAt(dr, 0); + SQLiteHelpers.InsertData("WorkorderSteps", SQLiteHelpers.DataTableToDictionary(data_t));//行插入 + } SQLiteHelpers.Close(); //关闭连接 } } @@ -260,7 +331,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View } - private void color_color_MouseDoubleClick(object sender, MouseButtonEventArgs e) + private void color_color_MouseDoubleClick(object sender, MouseButtonEventArgs e)//颜色 { System.Windows.Forms.ColorDialog colorDialog = new System.Windows.Forms.ColorDialog();//使用调色盘控件ColorDialog if (colorDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)//打开调色盘 diff --git a/View/ProductionPlanningView.xaml.cs b/View/ProductionPlanningView.xaml.cs index 168f27a..762c3b1 100644 --- a/View/ProductionPlanningView.xaml.cs +++ b/View/ProductionPlanningView.xaml.cs @@ -110,6 +110,8 @@ namespace SunlightCentralizedControlManagement_SCCM_.View for (int j = 0; j < dataRows.Count(); j++) //列表排程 { System.Windows.Media.Color colorBackground = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#FF336FA8"); + System.Windows.Media.Color colorStatus = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("#FF336FA8"); + if (dataRows[j].Field("State") == 100) colorStatus = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString("red"); try { colorBackground = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(dataRows[j].Field("color")); @@ -122,6 +124,7 @@ namespace SunlightCentralizedControlManagement_SCCM_.View End = DateTime.Parse(dataRows[j].Field("EndTime")), Name = Properties.Resources.ProcessName + ";" + dataRows[j].Field("ProgramName"), Background = colorBackground, + Status = colorStatus, ID = dataRows[j].Field("WorkOrder"), TaskProgressVisibility = System.Windows.Visibility.Hidden });