123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689 |
- 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;
- /// <summary>
- /// 当前查询类型
- /// </summary>
- 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;
- /// <summary>
- /// 配置文件路径
- /// </summary>
- 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 查询控件
- /// <summary>
- /// 所有订单
- /// </summary>
- private async void Lbl_AllOrder_Click(object sender, EventArgs e)
- {
- orderStatus = "所有订单";
- await OrderQuery(orderStatus);
- }
- /// <summary>
- /// 未处理订单
- /// </summary>
- private async void Lbl_UnProcessedOrders_Click(object sender, EventArgs e)
- {
- orderStatus = "未处理订单";
- await OrderQuery(orderStatus);
- }
- /// <summary>
- /// 正在处理订单
- /// </summary>
- private async void Lbl_ProcessingOrder_Click(object sender, EventArgs e)
- {
- orderStatus = "正在处理订单";
- await OrderQuery(orderStatus);
- }
- /// <summary>
- /// 正在清料中
- /// </summary>
- private async void Lbl_MaterialClearOrder_Click(object sender, EventArgs e)
- {
- orderStatus = "正在清料中";
- await OrderQuery(orderStatus);
- }
- /// <summary>
- /// 已完成订单
- /// </summary>
- 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<OrderTable>(a => a.WorkOrderNum == workOrderNum);
- List<string> productSetVlaue = new List<string>();
- 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>(orderTable, it => new { it.WorkOrderStatus });
- // 记录修改日志
- List<string> productSetVlaue = new List<string>();
- 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());
- }
- }
- /// <summary>
- /// 重新下发工单
- /// </summary>
- 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<string> productSetVlaue = new List<string>();
- 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>(orderTable, it => new { it.WorkOrderStatus });
- List<string> productSetVlaue = new List<string>();
- 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>(orderTable, it => new { it.WorkOrderStatus });
- List<string> productSetVlaue = new List<string>();
- 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 方法
- /// <summary>
- /// 查询订单的方法
- /// </summary>
- /// <param name="orderStates">订单状态</param>
- private Task OrderQuery(string orderStates)
- {
- // 查询订单个数
- int count_AllOrder = _sqlHelper.Db.Queryable<OrderTable>().Count(); // 查询订单数量-总订单数量
- int count_UnProcessedOrders = _sqlHelper.Db.Queryable<OrderTable>().Where(a => a.WorkOrderStatus == "未处理订单").Count(); // 查询订单数量-未处理订单
- int count_ProcessingOrder = _sqlHelper.Db.Queryable<OrderTable>().Where(a => a.WorkOrderStatus == "正在处理订单").Count(); // 查询订单数量-正在处理订单
- int count_MaterialClearOrder = _sqlHelper.Db.Queryable<OrderTable>().Where(a => a.WorkOrderStatus == "正在清料中").Count(); // 查询订单数量-正在清料中
- int count_CompletedOrder = _sqlHelper.Db.Queryable<OrderTable>().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<OrderTable>(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 其他
- /// <summary>
- /// 查看列内的详细信息
- /// </summary>
- private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
- {
- if (e.RowIndex >= 0)
- {
- textBox1.Text = dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
- }
- }
- /// <summary>
- /// 记录日志
- /// </summary>
- /// <param name="logType">日志类型</param>
- /// <param name="msg">日志内容</param>
- public void AddMessage(LogType logType, string msg)
- {
- MessageEvent?.Invoke(logType, msg);
- }
- /// <summary>
- /// 当前用户的角色
- /// </summary>
- public string currentRole = "";
- /// <summary>
- /// 改变用户时更新页面
- /// </summary>
- /// <param name="user">用户信息</param>
- public void ForUserChangeToUpdate(User user)
- {
- currentRole = user.ToString();
- }
- #endregion 其他
- }
- /// <summary>
- /// 设备状态
- /// </summary>
- public enum DeviceStatus
- {
- 未连接到PLC, // 0
- 运行状态, // 1
- 故障状态, // 2
- 缺料状态, // 3
- 待机状态, // 4
- 维修状态 // 5
- }
- }
|