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
}
}