using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using MainForm.DbHelper; using MainForm.FaForm; using MainForm.Models; using Newtonsoft.Json; using SqlSugar; using SqlSugar.Extensions; using StandardLibrary; namespace MainForm { public delegate void OrderMessageHandler(LogType logType, string message); public partial class Form_Order : Form { #region 变量 // 记录日志的委托方法 public event OrderMessageHandler MessageEvent; /// /// 当前查询类型 /// string orderStatus = "所有订单"; // 页面dv控件样式 bool isViewFirstColumn = true; // 不展示首列 int ColumnWidth0 = 120, ColumnWidth1 = 120, ColumnWidth2 = 120, // 列宽 ColumnWidth3 = 120, ColumnWidth4 = 120, ColumnWidth5 = 120, ColumnWidth6 = 120, ColumnWidth7 = 120, ColumnWidth8 = 120, ColumnWidth9 = 120, ColumnWidth10 = 120, ColumnWidth11 = 120, ColumnWidth12 = 120, ColumnWidth13 = 120; /// /// 配置文件路径 /// public string FilePath = AppDomain.CurrentDomain.BaseDirectory + "Config.ini"; SqlHelper _sqlHelper = new SqlHelper(); #endregion 变量 public Form_Order() { InitializeComponent(); } private void Form_Order_Load(object sender, EventArgs e) { try { OrderQuery("所有订单"); Task.Run(() => { Thread.Sleep(1000); // 行颜色 if (dataGridView.Rows.Count > 0) { for (int i = 0; i < dataGridView.Rows.Count; i++) { var curStatus = dataGridView.Rows[i].Cells[1].Value.ToString(); switch (curStatus) { case "未处理订单": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.FromArgb(255, 184, 0) }; break; case "正在处理订单": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.Blue }; // Blue break; case "正在清料中": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.FromArgb(8, 139, 137) }; break; case "已完成订单": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.LawnGreen }; // LawnGreen break; default: break; } } } }); } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "订单页初始化出错!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("订单页初始化出错!异常信息:" + ex.Message.ToString()); } } #region 查询控件 /// /// 所有订单 /// private async void Lbl_AllOrder_Click(object sender, EventArgs e) { orderStatus = "所有订单"; await OrderQuery(orderStatus); } /// /// 未处理订单 /// private async void Lbl_UnProcessedOrders_Click(object sender, EventArgs e) { orderStatus = "未处理订单"; await OrderQuery(orderStatus); } /// /// 正在处理订单 /// private async void Lbl_ProcessingOrder_Click(object sender, EventArgs e) { orderStatus = "正在处理订单"; await OrderQuery(orderStatus); } /// /// 正在清料中 /// private async void Lbl_MaterialClearOrder_Click(object sender, EventArgs e) { orderStatus = "正在清料中"; await OrderQuery(orderStatus); } /// /// 已完成订单 /// private async void Lbl_CompletedOrder_Click(object sender, EventArgs e) { orderStatus = "已完成订单"; await OrderQuery(orderStatus); } #endregion 查询控件 #region 订单维护 // 订单-新增 private void Tlml_AddWorkOrder_Click(object sender, EventArgs e) { Form_OrderAdd form_OrderAdd = new Form_OrderAdd(this); form_OrderAdd.ShowDialog(); OrderQuery(orderStatus); } // 订单-修改 private void Tlml_UpdateWorkOrder_Click(object sender, EventArgs e) { try { if (dataGridView.SelectedRows.Count > 0) { string workOrderStatus = dataGridView.SelectedRows[0].Cells[1].Value.ToString(); switch (workOrderStatus) { case "未处理订单": case "正在处理订单": string workOrderNum = dataGridView.SelectedRows[0].Cells[0].Value.ToString(); Form_OrderUpd form_OrderUpd = new Form_OrderUpd(this, workOrderNum); form_OrderUpd.ShowDialog(); OrderQuery(orderStatus); break; case "正在清料中": case "已完成订单": MessageBox.Show("不可修改‘正在清料中’或‘已完成订单’的订单!"); break; default: break; } } else { MessageBox.Show("请选中订单后再修改!"); } } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "订单修改失败!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("订单修改失败!异常信息:" + ex.Message.ToString()); } } // 订单-删除 private void Tlml_DeleteWorkOrder_Click(object sender, EventArgs e) { try { if (dataGridView.SelectedRows.Count > 0) { string workOrderNum = dataGridView.SelectedRows[0].Cells[0].Value.ToString(); _sqlHelper.Deleteable(a => a.WorkOrderNum == workOrderNum); List productSetVlaue = new List(); productSetVlaue.Add("车间订单号:" + dataGridView.SelectedRows[0].Cells[0].Value.ToString()); productSetVlaue.Add("订单状态:" + dataGridView.SelectedRows[0].Cells[1].Value.ToString()); productSetVlaue.Add("批次号:" + dataGridView.SelectedRows[0].Cells[2].Value.ToString()); productSetVlaue.Add("产品型号:" + dataGridView.SelectedRows[0].Cells[3].Value.ToString()); productSetVlaue.Add("产品代号:" + dataGridView.SelectedRows[0].Cells[4].Value.ToString()); productSetVlaue.Add("产品名称:" + dataGridView.SelectedRows[0].Cells[5].Value.ToString()); productSetVlaue.Add("供应商代码:" + dataGridView.SelectedRows[0].Cells[6].Value.ToString()); productSetVlaue.Add("计划数量:" + dataGridView.SelectedRows[0].Cells[7].Value.ToString()); productSetVlaue.Add("完工下线数量:" + dataGridView.SelectedRows[0].Cells[8].Value.ToString()); productSetVlaue.Add("计划标记:" + dataGridView.SelectedRows[0].Cells[9].Value.ToString()); productSetVlaue.Add("需求日期:" + dataGridView.SelectedRows[0].Cells[10].Value.ToString()); productSetVlaue.Add("所属流程:" + dataGridView.SelectedRows[0].Cells[11].Value.ToString()); productSetVlaue.Add("开始生产时间:" + dataGridView.SelectedRows[0].Cells[12].Value.ToString()); productSetVlaue.Add("订单创建时间:" + dataGridView.SelectedRows[0].Cells[13].Value.ToString()); String.Join(";", productSetVlaue); AddMessage(LogType.Info, currentRole + "订单删除成功!订单信息为[" + String.Join(";", productSetVlaue) + "]"); MessageBox.Show("订单删除成功!"); OrderQuery(orderStatus); } else { MessageBox.Show("请选中订单后再操作!"); } } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "订单删除失败!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("订单删除失败!异常信息:" + ex.Message.ToString()); } } // 订单-刷新 private async void Tlml_RefreshWorkOrder_Click(object sender, EventArgs e) { await OrderQuery(orderStatus); } // 订单-开始(不停机下发工单) private void Tlml_StartWorkOrder_Click(object sender, EventArgs e) { try { if (dataGridView.SelectedRows.Count > 0) { string workOrderStatus = dataGridView.SelectedRows[0].Cells[1].Value.ToString(); switch (workOrderStatus) { case "未处理订单": int result = Form_Main.formHome.GetDeviceStatus(1); if (result != 4) // 5000是4为待机状态 { MessageBox.Show($"下发失败!设备当前状态为‘{((0 <= result && result <= 5) ? ((DeviceStatus)result).ToString() : "未知状态")}’,请将设备状态切换到‘待机状态’后,再次下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", (dataGridView.SelectedRows[0].Cells[0].Value.ToString())); IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", (dataGridView.SelectedRows[0].Cells[2].Value.ToString())); IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", (dataGridView.SelectedRows[0].Cells[3].Value.ToString())); GlobalContext.UpdateData(); // 修改状态 string workOrderNum = dataGridView.SelectedRows[0].Cells[0].Value.ToString(); OrderTable orderTable = new OrderTable() { WorkOrderNum = workOrderNum, WorkOrderStatus = "正在处理订单" }; _sqlHelper.Update(orderTable, it => new { it.WorkOrderStatus }); // 记录修改日志 List productSetVlaue = new List(); productSetVlaue.Add("车间订单号:" + dataGridView.SelectedRows[0].Cells[0].Value.ToString()); productSetVlaue.Add("订单状态:" + dataGridView.SelectedRows[0].Cells[1].Value.ToString()); productSetVlaue.Add("批次号:" + dataGridView.SelectedRows[0].Cells[2].Value.ToString()); productSetVlaue.Add("产品型号:" + dataGridView.SelectedRows[0].Cells[3].Value.ToString()); productSetVlaue.Add("产品代号:" + dataGridView.SelectedRows[0].Cells[4].Value.ToString()); productSetVlaue.Add("产品名称:" + dataGridView.SelectedRows[0].Cells[5].Value.ToString()); productSetVlaue.Add("供应商代码:" + dataGridView.SelectedRows[0].Cells[6].Value.ToString()); productSetVlaue.Add("计划数量:" + dataGridView.SelectedRows[0].Cells[7].Value.ToString()); productSetVlaue.Add("完工下线数量:" + dataGridView.SelectedRows[0].Cells[8].Value.ToString()); productSetVlaue.Add("计划标记:" + dataGridView.SelectedRows[0].Cells[9].Value.ToString()); productSetVlaue.Add("需求日期:" + dataGridView.SelectedRows[0].Cells[10].Value.ToString()); productSetVlaue.Add("所属流程:" + dataGridView.SelectedRows[0].Cells[11].Value.ToString()); productSetVlaue.Add("开始生产时间:" + dataGridView.SelectedRows[0].Cells[12].Value.ToString()); productSetVlaue.Add("订单创建时间:" + dataGridView.SelectedRows[0].Cells[13].Value.ToString()); String.Join(";", productSetVlaue); AddMessage(LogType.Info, currentRole + "订单开始成功!订单信息为[" + String.Join(";", productSetVlaue) + "]"); MessageBox.Show("订单开始成功!"); OrderQuery(orderStatus); break; case "正在处理订单": case "正在清料中": case "已完成订单": MessageBox.Show("订单正在[生产]或者[清料]中,不可以重复生产!"); break; default: break; } } else { MessageBox.Show("请选中订单后再操作!"); } } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "订单开始失败!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("订单开始失败!异常信息:" + ex.Message.ToString()); } } /// /// 重新下发工单 /// private void Tlml_ReissueWorkOrder_Click(object sender, EventArgs e) { try { if (dataGridView.SelectedRows.Count > 0) { string workOrderStatus = dataGridView.SelectedRows[0].Cells[1].Value.ToString(); switch (workOrderStatus) { case "正在处理订单": IniFile.INIWriteValue(FilePath, "Product", "WorkOrderCode", (dataGridView.SelectedRows[0].Cells[0].Value.ToString())); IniFile.INIWriteValue(FilePath, "Product", "BatchNumber", (dataGridView.SelectedRows[0].Cells[2].Value.ToString())); IniFile.INIWriteValue(FilePath, "Product", "Mtltmrk", (dataGridView.SelectedRows[0].Cells[3].Value.ToString())); GlobalContext.UpdateData(); // 记录修改日志 List productSetVlaue = new List(); productSetVlaue.Add("车间订单号:" + dataGridView.SelectedRows[0].Cells[0].Value.ToString()); productSetVlaue.Add("订单状态:" + dataGridView.SelectedRows[0].Cells[1].Value.ToString()); productSetVlaue.Add("批次号:" + dataGridView.SelectedRows[0].Cells[2].Value.ToString()); productSetVlaue.Add("产品型号:" + dataGridView.SelectedRows[0].Cells[3].Value.ToString()); productSetVlaue.Add("产品代号:" + dataGridView.SelectedRows[0].Cells[4].Value.ToString()); productSetVlaue.Add("产品名称:" + dataGridView.SelectedRows[0].Cells[5].Value.ToString()); productSetVlaue.Add("供应商代码:" + dataGridView.SelectedRows[0].Cells[6].Value.ToString()); productSetVlaue.Add("计划数量:" + dataGridView.SelectedRows[0].Cells[7].Value.ToString()); productSetVlaue.Add("完工下线数量:" + dataGridView.SelectedRows[0].Cells[8].Value.ToString()); productSetVlaue.Add("计划标记:" + dataGridView.SelectedRows[0].Cells[9].Value.ToString()); productSetVlaue.Add("需求日期:" + dataGridView.SelectedRows[0].Cells[10].Value.ToString()); productSetVlaue.Add("所属流程:" + dataGridView.SelectedRows[0].Cells[11].Value.ToString()); productSetVlaue.Add("开始生产时间:" + dataGridView.SelectedRows[0].Cells[12].Value.ToString()); productSetVlaue.Add("订单创建时间:" + dataGridView.SelectedRows[0].Cells[13].Value.ToString()); String.Join(";", productSetVlaue); AddMessage(LogType.Info, currentRole + "订单重复下发成功!订单信息为[" + String.Join(";", productSetVlaue) + "]"); MessageBox.Show("订单重复下发成功!"); break; case "未处理订单": case "正在清料中": case "已完成订单": MessageBox.Show("订单不在[生产]中,不可重复下发!"); break; default: break; } } else { MessageBox.Show("请选中订单后再操作!"); } } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "重新下发工单失败!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("重新下发工单失败!异常信息:" + ex.Message.ToString()); } } // 订单-清料 private void Tlml_ClearLine_Click(object sender, EventArgs e) { try { if (dataGridView.SelectedRows.Count > 0) { string workOrderStatus = dataGridView.SelectedRows[0].Cells[1].Value.ToString(); switch (workOrderStatus) { case "正在处理订单": // 清料信号 if (!Form_Main.formHome.ClearProducts(1)) { MessageBox.Show("下发清料信号给PLC失败!请多试几次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } // 修改状态 string workOrderNum = dataGridView.SelectedRows[0].Cells[0].Value.ToString(); OrderTable orderTable = new OrderTable() { WorkOrderNum = workOrderNum, WorkOrderStatus = "正在清料中" }; _sqlHelper.Update(orderTable, it => new { it.WorkOrderStatus }); List productSetVlaue = new List(); productSetVlaue.Add("车间订单号:" + dataGridView.SelectedRows[0].Cells[0].Value.ToString()); productSetVlaue.Add("订单状态:" + dataGridView.SelectedRows[0].Cells[1].Value.ToString()); productSetVlaue.Add("批次号:" + dataGridView.SelectedRows[0].Cells[2].Value.ToString()); productSetVlaue.Add("产品型号:" + dataGridView.SelectedRows[0].Cells[3].Value.ToString()); productSetVlaue.Add("产品代号:" + dataGridView.SelectedRows[0].Cells[4].Value.ToString()); productSetVlaue.Add("产品名称:" + dataGridView.SelectedRows[0].Cells[5].Value.ToString()); productSetVlaue.Add("供应商代码:" + dataGridView.SelectedRows[0].Cells[6].Value.ToString()); productSetVlaue.Add("计划数量:" + dataGridView.SelectedRows[0].Cells[7].Value.ToString()); productSetVlaue.Add("完工下线数量:" + dataGridView.SelectedRows[0].Cells[8].Value.ToString()); productSetVlaue.Add("计划标记:" + dataGridView.SelectedRows[0].Cells[9].Value.ToString()); productSetVlaue.Add("需求日期:" + dataGridView.SelectedRows[0].Cells[10].Value.ToString()); productSetVlaue.Add("所属流程:" + dataGridView.SelectedRows[0].Cells[11].Value.ToString()); productSetVlaue.Add("开始生产时间:" + dataGridView.SelectedRows[0].Cells[12].Value.ToString()); productSetVlaue.Add("订单创建时间:" + dataGridView.SelectedRows[0].Cells[13].Value.ToString()); String.Join(";", productSetVlaue); AddMessage(LogType.Info, currentRole + "订单开始清料!订单信息为[" + String.Join(";", productSetVlaue) + "]"); MessageBox.Show("订单开始清料!"); OrderQuery(orderStatus); break; case "未处理订单": case "正在清料中": case "已完成订单": MessageBox.Show("当前订单不在生产状态,不可清料!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand); break; default: break; } } else { MessageBox.Show("请选中订单后再操作!"); } } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "订单清料失败!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("订单清料失败!异常信息:" + ex.Message.ToString()); } } // 订单-完成 private void Tlml_CompletedWorkOrder_Click(object sender, EventArgs e) { try { if (dataGridView.SelectedRows.Count > 0) { string workOrderStatus = dataGridView.SelectedRows[0].Cells[1].Value.ToString(); switch (workOrderStatus) { case "正在处理订单": case "正在清料中": #region 检测2h前是否有漏传的数据,有就报警 // 检测2h前是否有漏传的数据,有就报警 ProcessData processData0 = new ProcessData(); string QuerySQL0 = processData0.ToStringQueryCount(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), "未上传"); DataSet ds1 = SQLHelper_New.Query(QuerySQL0, null); if (ds1 != null && ds1.Tables.Count > 0 && ds1.Tables[0].Rows.Count > 0) { int count = ds1.Tables[0].Rows[0][0].ObjToInt(); if (count < 1) { Form_Main.IsNormal_MESServer = 1; } else { Form_Main.IsNormal_MESServer = 2; MessageBox.Show("存在未上传的加工数据,请检查并上传成功后再进行完工操作!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand); return; } } #endregion 检测2h前是否有漏传的数据,有就报警 // 修改状态 string workOrderNum = dataGridView.SelectedRows[0].Cells[0].Value.ToString(); OrderTable orderTable = new OrderTable() { WorkOrderNum = workOrderNum, WorkOrderStatus = "已完成订单" }; _sqlHelper.Update(orderTable, it => new { it.WorkOrderStatus }); List productSetVlaue = new List(); productSetVlaue.Add("车间订单号:" + dataGridView.SelectedRows[0].Cells[0].Value.ToString()); productSetVlaue.Add("订单状态:" + dataGridView.SelectedRows[0].Cells[1].Value.ToString()); productSetVlaue.Add("批次号:" + dataGridView.SelectedRows[0].Cells[2].Value.ToString()); productSetVlaue.Add("产品型号:" + dataGridView.SelectedRows[0].Cells[3].Value.ToString()); productSetVlaue.Add("产品代号:" + dataGridView.SelectedRows[0].Cells[4].Value.ToString()); productSetVlaue.Add("产品名称:" + dataGridView.SelectedRows[0].Cells[5].Value.ToString()); productSetVlaue.Add("供应商代码:" + dataGridView.SelectedRows[0].Cells[6].Value.ToString()); productSetVlaue.Add("计划数量:" + dataGridView.SelectedRows[0].Cells[7].Value.ToString()); productSetVlaue.Add("完工下线数量:" + dataGridView.SelectedRows[0].Cells[8].Value.ToString()); productSetVlaue.Add("计划标记:" + dataGridView.SelectedRows[0].Cells[9].Value.ToString()); productSetVlaue.Add("需求日期:" + dataGridView.SelectedRows[0].Cells[10].Value.ToString()); productSetVlaue.Add("所属流程:" + dataGridView.SelectedRows[0].Cells[11].Value.ToString()); productSetVlaue.Add("开始生产时间:" + dataGridView.SelectedRows[0].Cells[12].Value.ToString()); productSetVlaue.Add("订单创建时间:" + dataGridView.SelectedRows[0].Cells[13].Value.ToString()); String.Join(";", productSetVlaue); AddMessage(LogType.Info, currentRole + "订单状态修改为‘已完成’成功!订单信息为[" + String.Join(";", productSetVlaue) + "]"); MessageBox.Show("订单状态修改为‘已完成’成功!"); OrderQuery(orderStatus); break; case "未处理订单": MessageBox.Show("当前订单[未启用],不可执行完工操作!"); break; case "已完成订单": MessageBox.Show("当前订单[已完成],不可执行完工操作!"); break; default: break; } } else { MessageBox.Show("请选中订单后再操作!"); } } catch (Exception ex) { string str = ex.StackTrace; AddMessage(LogType.Error, "修改订单状态为'完成'失败!异常位置:" + str.Substring(str.LastIndexOf("\\") + 1, str.Length - str.LastIndexOf("\\") - 1) + ";异常信息:" + ex.Message.ToString()); MessageBox.Show("修改订单状态为'完成'失败!异常信息:" + ex.Message.ToString()); } } #endregion 订单维护 #region 方法 /// /// 查询订单的方法 /// /// 订单状态 private Task OrderQuery(string orderStates) { // 查询订单个数 int count_AllOrder = _sqlHelper.Db.Queryable().Count(); // 查询订单数量-总订单数量 int count_UnProcessedOrders = _sqlHelper.Db.Queryable().Where(a => a.WorkOrderStatus == "未处理订单").Count(); // 查询订单数量-未处理订单 int count_ProcessingOrder = _sqlHelper.Db.Queryable().Where(a => a.WorkOrderStatus == "正在处理订单").Count(); // 查询订单数量-正在处理订单 int count_MaterialClearOrder = _sqlHelper.Db.Queryable().Where(a => a.WorkOrderStatus == "正在清料中").Count(); // 查询订单数量-正在清料中 int count_CompletedOrder = _sqlHelper.Db.Queryable().Where(a => a.WorkOrderStatus == "已完成订单").Count(); // 查询订单数量-已完成订单 string sql = @"SELECT [WorkOrderNum] AS 车间订单号,[WorkOrderStatus] AS 订单状态,[BatchNumber] AS 批次号 ,[ProductMtltmrk] AS 产品型号,[ProductNo] AS 产品代号,[ProductName] AS 产品名称 ,[SupplierCode] AS 供应商代码,[PlannedQuantity] AS 计划数量,[CompletedQuantity] AS 完工下线数量 ,[Plnsign] AS 计划标记,[Soreqdat] AS 需求日期,[Process] AS 所属流程 ,[CreatedTime] AS 订单创建时间 FROM [OrderTable]"; if (!string.IsNullOrEmpty(orderStates) && orderStates != "所有订单") { sql += " Where WorkOrderStatus = '{0}'"; } sql += " ORDER BY [CreatedTime] desc"; sql = string.Format(sql, orderStates); DataTable dt_data = _sqlHelper.Db.SqlQueryable(sql).ToDataTable(); // 查询订单数据 // 展示 Lbl_AllOrderNum.Text = count_AllOrder.ToString(); Lbl_UnProcessedOrdersNum.Text = count_UnProcessedOrders.ToString(); Lbl_ProcessingOrderNum.Text = count_ProcessingOrder.ToString(); Lbl_MaterialClearOrderNum.Text = count_MaterialClearOrder.ToString(); Lbl_CompletedOrderNum.Text = count_CompletedOrder.ToString(); // 表格展示 if (dt_data != null) { dataGridView.DataSource = dt_data.DefaultView; //dataGridView.Invalidate(); // 列宽 if (dataGridView.Columns.Count >= 14) { dataGridView.Columns[0].Visible = isViewFirstColumn; dataGridView.Columns[0].Width = ColumnWidth0; dataGridView.Columns[1].Width = ColumnWidth1; dataGridView.Columns[2].Width = ColumnWidth2; dataGridView.Columns[3].Width = ColumnWidth3; dataGridView.Columns[4].Width = ColumnWidth4; dataGridView.Columns[5].Width = ColumnWidth5; dataGridView.Columns[6].Width = ColumnWidth6; dataGridView.Columns[7].Width = ColumnWidth7; dataGridView.Columns[8].Width = ColumnWidth8; dataGridView.Columns[9].Width = ColumnWidth9; dataGridView.Columns[10].Width = ColumnWidth10; dataGridView.Columns[11].MinimumWidth = ColumnWidth11; dataGridView.Columns[11].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; // 所属流程 列宽为all dataGridView.Columns[12].Width = ColumnWidth12; dataGridView.Columns[13].Width = ColumnWidth13; } // 行颜色 if (dt_data.Rows.Count > 0) { for (int i = 0; i < dataGridView.Rows.Count; i++) { var curStatus = dataGridView.Rows[i].Cells[1].Value.ToString(); switch (curStatus) { case "未处理订单": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.FromArgb(255, 184, 0) }; break; case "正在处理订单": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.Blue }; // Blue break; case "正在清料中": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.FromArgb(8, 139, 137) }; break; case "已完成订单": dataGridView.Rows[i].DefaultCellStyle = new DataGridViewCellStyle() { BackColor = System.Drawing.Color.LawnGreen }; // LawnGreen break; default: break; } } } } return Task.CompletedTask; } #endregion 方法 #region 其他 /// /// 查看列内的详细信息 /// private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { textBox1.Text = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); } } /// /// 记录日志 /// /// 日志类型 /// 日志内容 public void AddMessage(LogType logType, string msg) { MessageEvent?.Invoke(logType, msg); } /// /// 当前用户的角色 /// public string currentRole = ""; /// /// 改变用户时更新页面 /// /// 用户信息 public void ForUserChangeToUpdate(User user) { currentRole = user.ToString(); } #endregion 其他 } /// /// 设备状态 /// public enum DeviceStatus { 未连接到PLC, // 0 运行状态, // 1 故障状态, // 2 缺料状态, // 3 待机状态, // 4 维修状态 // 5 } }