using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.Layout; using DevComponents.DotNetBar.SuperGrid; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WCS.Data.Models; using WCS_Client; using WCS_Client.UC; using WCS_Client.Utility; namespace WCS_Client.Frm { public partial class FrmWCS_Task : Form { int wcs_task_no = 0; public FrmWCS_Task() { InitializeComponent(); InitFrm(); InitFrmmx(); } private void InitFrm() { List GCList = new List() { SuperGridUtil.Get_GridColumn("TASK_NO", "WCS任务号", 80), SuperGridUtil.Get_GridColumn("TASK_WMSNO", "WMS任务号", 80), SuperGridUtil.Get_GridColumn("task_comtypech", "任务类型", 80), SuperGridUtil.Get_GridColumn("task_wkstatusch", "任务状态", 100), SuperGridUtil.Get_GridColumn("TASK_SYSTYPE", "下发系统", 80), SuperGridUtil.Get_GridColumn("TASK_BOXBARCODE", "条码", 160), SuperGridUtil.Get_GridColumn("TASK_POSIDFROM", "起始地址", 100), SuperGridUtil.Get_GridColumn("TASK_POSIDCUR", "当前地址", 80), SuperGridUtil.Get_GridColumn("TASK_POSIDNEXT", "下个地址", 80), SuperGridUtil.Get_GridColumn("TASK_POSIDTO", "目的地址", 100), SuperGridUtil.Get_GridColumn("TASK_PRIORITY", "优先级", 60), SuperGridUtil.Get_GridColumn("TASK_WHID", "仓库", 100), SuperGridUtil.Get_GridColumn("TASK_SRMNO", "堆垛机编号", 80), SuperGridUtil.Get_GridColumn("TASK_FromTunnelNum", "起始巷道", 70), SuperGridUtil.Get_GridColumn("TASK_EndTunnelNum", "目的巷道", 70), SuperGridUtil.Get_GridColumn("TASK_ITEM7", "预分配巷道", 80), SuperGridUtil.Get_GridColumn("TASK_RGVNO", "RGV编号", 70), SuperGridUtil.Get_GridColumn("TASK_ITEM4", "RGV搬运起点", 80), SuperGridUtil.Get_GridColumn("TASK_ITEM8", "AGV任务Id", 100), SuperGridUtil.Get_GridColumn("TASK_ADDUSERNO", "创建用户", 100), SuperGridUtil.Get_Datetime_GridColumn("TASK_ADDDATETIME", "创建时间", 130), SuperGridUtil.Get_GridColumn("TASK_EDITUSERNO", "修改用户", 100), SuperGridUtil.Get_Datetime_GridColumn("TASK_EDITDATETIME", "修改时间", 130), SuperGridUtil.Get_GridColumn("PalletizingSonTraySize", "子托盘尺寸", 100), SuperGridUtil.Get_GridColumn("PalletizingBoxSize", "箱子尺寸", 100), SuperGridUtil.Get_GridColumn("SonTrayColorNo", "子托盘颜色", 100), SuperGridUtil.Get_GridColumn("TASK_WEIGHT", "箱子重量", 100), SuperGridUtil.Get_GridColumn("TASK_STACKINGTYPE", "垛型", 100) //SuperGridUtil.Get_CheckBoxX_GridColumn("Task_IsInventory", "是否盘点任务", 80), //SuperGridUtil.Get_CheckBoxX_GridColumn("Task_IsEmptyBox", "是否空箱", 80), }; List LCIList = new List(); LCIList.Add(LCItemUtil.Add_TextboxX("TASK_NO", "WCS任务号:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_NO like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_WMSNO", "WMS任务号:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_WMSNO like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_BOXBARCODE", "条码:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_BOXBARCODE like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_POSIDFROM", "起始地址:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_POSIDFROM like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_POSIDCUR", "当前地址:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_POSIDCUR like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_POSIDNEXT", "下个地址:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_POSIDNEXT like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_POSIDTO", "目的地址:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_POSIDTO like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_TextboxX("TASK_SRMNO", "堆垛机编号:", 20, SubmitMethods, null)); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_SRMNO like '%{0}%'" }; LCIList.Add(LCItemUtil.Add_ComboBoxEx("Task_ComType", "任务类型:", 20, null, SubmitMethods)); TryCachHelper.TryExecute((db) => { var dtsex = db.Queryable().Where(v=>v.DIC_PARENT_CODE== "TaskType").ToList(); DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add("DIC_SORT"); dt.Columns.Add("DIC_NAME"); for (int i = 0; i < dtsex.Count; i++) { dr = dt.NewRow(); dr["DIC_SORT"] = dtsex[i].DIC_SORT; dr["DIC_NAME"] = dtsex[i].DIC_NAME; dt.Rows.Add(dr); } LCItemUtil.Refresh_LCItem(LCIList[LCIList.Count - 1], dt, "DIC_SORT", "DIC_NAME"); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_COMTYPE like '%{0}%'" }; }); LCIList.Add(LCItemUtil.Add_ComboBoxEx("task_wkstatusch", "任务状态:", 20, null, SubmitMethods)); TryCachHelper.TryExecute((db) => { var dtsex = db.Queryable().Where(v => v.DIC_PARENT_CODE == "TaskStatus").ToList(); DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add("DIC_SORT"); dt.Columns.Add("DIC_NAME"); for (int i = 0; i < dtsex.Count; i++) { dr = dt.NewRow(); dr["DIC_SORT"] = dtsex[i].DIC_SORT; dr["DIC_NAME"] = dtsex[i].DIC_NAME; dt.Rows.Add(dr); } LCItemUtil.Refresh_LCItem(LCIList[LCIList.Count - 1], dt, "DIC_SORT", "DIC_NAME"); LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "TASK_WKSTATUS like '%{0}%'" }; }); //LCIList.Add(LCItemUtil.Add_ComboBoxEx("ChooseCommand", "选择修改指令", 25, null, SubmitMethods)); //var manualTaskSet = WcfClientHelper.Proxy.CommonQuery(string.Format("SELECT * FROM [dbo].[Sys_Mappingentry] where Mep_MappingType='ManualTaskType'")); //LCItemUtil.Refresh_LCItem(LCIList[LCIList.Count - 1], manualTaskSet, "Mep_MappingNo", "Mep_MappingChName"); //LCIList[LCIList.Count - 1].Tag = new LCWhereInfo() { QWhereText = "Task_Wkstatus like '%{0}%'" }; //LCIList.Add(LCItemUtil.Add_ButtonX("btn_Execute", "执行指令", 80, 30, SubmitMethods)); //LCIList.Add(LCItemUtil.Add_SpacerItem("btn_SpacerItem", 99, 30)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_QDB", "查询", 100, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_QClear", "重置", 100, 30, SubmitMethods)); if (CurrentHelper.User.Use_RoleId == 1) { LCIList.Add(LCItemUtil.Add_ButtonX("btn_RestartTask", "重下任务", 100, 30, SubmitMethods)); //LCIList.Add(LCItemUtil.Add_ButtonX("btn_OnUpMatRestart", "上下料重下RGV", 100, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_OnMatRestart", "上料重下RGV", 100, 30, SubmitMethods)); //LCIList.Add(LCItemUtil.Add_ButtonX("btn_UpMatRestart", "下料重下RGV", 100, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_FinishAGVTask", "手动完成RGV任务", 150, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_FinishTask", "手动完成任务", 100, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_ClearTask", "取消任务", 100, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_UpdatePriority", "修改优先级", 100, 30, SubmitMethods)); LCIList.Add(LCItemUtil.Add_ButtonX("btn_UpdateEndAddress", "修改目标地址", 100, 30, SubmitMethods)); } uC_QueryPage1.Init_QueryPage(86, true, true, "", GCList, LCIList, QueryPageDataMethods, RefreshRoleMethods, null, null, ClikMethod); uC_QueryPage1.ClearLCItemValue(); CommonShow.ShowProcessing("正在处理中,请稍候...", this, (obj) => { uC_QueryPage1.RefreshData(1, 0); }, null); } //获取数据集 private PageData QueryPageDataMethods(int PageIndex, int PageSize) { string _SQLText = @"select t.*,m.DIC_NAME task_comtypech,me.DIC_NAME task_wkstatusch from dbo.WCS_TASK t left join WCS_DICTIONARY m on t.task_comtype = m.DIC_SORT and m.DIC_PARENT_CODE = 'TaskType' left join WCS_DICTIONARY me on t.task_wkstatus = me.DIC_SORT and me.DIC_PARENT_CODE = 'TaskStatus' where 1=1 and TASK_WHID in('PVC原膜立库','PVC普通立库')"; string _Orderby = "TASK_NO desc "; PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage1.GetQueryWhere(), PageIndex, PageSize); return pd; } private void SubmitMethods(string LCName) { if (LCName == "btn_QDB") { uC_QueryPage1.RefreshData(); } else if (LCName == "btn_RestartTask") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要重下吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.RestartTask(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_OnUpMatRestart") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要[上下料重下单工位RGV]吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.OnUpMatRestart(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_OnMatRestart") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要[上料重下RGV]吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.OnMatRestart(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_UpMatRestart") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要[下料重下RGV]吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.UpMatRestart(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_FinishAGVTask") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要[手动完成RGV任务]吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.FinishAGVTask(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_FinishTask") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要[手动完成任务]吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.FinishTask(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_ClearTask") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } int task_no = Convert.ToInt32(dt.Rows[0]["TASK_NO"].ToString()); var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要[取消任务]吗(请谨慎操作)?", task_no)); if (result == DialogResult.Yes) { string msg = BaseWorkflow.ClearTask(task_no); MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_Execute") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择编辑项!!!"); return; } int taskid = Convert.ToInt32(dt.Rows[0]["Task_WCSTaskId"].ToString()); object chooseCommValue = ((ComboBoxEx)uC_QueryPage1.GetLCItem("ChooseCommand").Control).SelectedValue; if (chooseCommValue == null) { MessageUtil.ShowTips("请选择要执行的状态指令。"); return; } object chooseCommText = ((ComboBoxEx)uC_QueryPage1.GetLCItem("ChooseCommand").Control).Text; var result = MessageUtil.ShowYesNoAndWarning(string.Format("任务[{0}]确定要执行[{1}]吗(请谨慎操作)?", taskid, chooseCommText)); if (result == DialogResult.Yes) { //string msg = WcfClientHelper.Proxy.TaskUpdateWkstatus(taskid, Convert.ToInt32(chooseCommValue)); //MessageUtil.ShowTips(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_QClear") { uC_QueryPage1.ShowOpaqueLayer(); uC_QueryPage1.ClearLCItemValue(); uC_QueryPage1.RefreshData(1, 0); uC_QueryPage1.HideOpaqueLayer(); } else if (LCName == "btn_CreateEmptyInTask1") { var result = MessageUtil.ShowYesNoAndWarning(string.Format("要创建1.4空料架入库任务吗(请谨慎操作,并且只能从1014入库)?")); if (result == DialogResult.Yes) { //string msg = WcfClientHelper.Proxy.CreateEmptyPalletInTask("1014", "1"); //MessageBox.Show(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_CreateEmptyInTask2") { var result = MessageUtil.ShowYesNoAndWarning(string.Format("要创建1.2空料架入库任务吗(请谨慎操作,并且只能从1014入库)?")); if (result == DialogResult.Yes) { //string msg = WcfClientHelper.Proxy.CreateEmptyPalletInTask("1014", "2"); //MessageBox.Show(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_CreateEmptyInTask3") { var result = MessageUtil.ShowYesNoAndWarning(string.Format("要创建空组合料架入库任务吗(请谨慎操作,并且只能从1014入库)?")); if (result == DialogResult.Yes) { //string msg = WcfClientHelper.Proxy.CreateEmptyPalletInTask("1014", "3"); //MessageBox.Show(msg); uC_QueryPage1.RefreshData(1, 0); } } else if (LCName == "btn_CreateProInTask") { //FrmCreateTask frm = new FrmCreateTask(); //frm.ShowDialog(); uC_QueryPage1.RefreshData(1, 0); } else if (LCName == "btn_UpdateEndAddress") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } DataRow dr = dt.Rows[0]; string comtypech = dt.Rows[0]["task_comtypech"].ToString(); if (comtypech.Contains("出库")) { var frmUpdateEndAddress = new FrmUpdateEndAddress(dr); frmUpdateEndAddress.ShowDialog(); uC_QueryPage1.RefreshData(1, 0); } else { MessageUtil.ShowTips("只有出库任务能变更目标地址。"); } } else if (LCName == "btn_UpdatePriority") { DataTable dt = this.uC_QueryPage1.SCGrid_GetChkRows(); if (dt == null || dt.Rows.Count == 0) { MessageUtil.ShowTips("请选择任务。"); return; } DataRow dr = dt.Rows[0]; var frmUpdatePriority = new FrmUpdatePriority(dr); frmUpdatePriority.ShowDialog(); uC_QueryPage1.RefreshData(1, 0); } } private void RefreshRoleMethods(bool ChkValue) { //if (AppConst.CheckExtentByName("查询任务")) // this.uC_QueryPage1.GetLCItem("btn_QDB").Visible = true; //else // this.uC_QueryPage1.GetLCItem("btn_QDB").Visible = false; //if (AppConst.CheckExtentByName("执行指令")) // this.uC_QueryPage1.GetLCItem("btn_Execute").Visible = true; //else // this.uC_QueryPage1.GetLCItem("btn_Execute").Visible = false; //if (AppConst.CheckExtentByName("生成1.4空料架入库任务")) // this.uC_QueryPage1.GetLCItem("btn_CreateEmptyInTask1").Visible = true; //else // this.uC_QueryPage1.GetLCItem("btn_CreateEmptyInTask1").Visible = false; //if (AppConst.CheckExtentByName("生成1.2空料架入库任务")) // this.uC_QueryPage1.GetLCItem("btn_CreateEmptyInTask2").Visible = true; //else // this.uC_QueryPage1.GetLCItem("btn_CreateEmptyInTask2").Visible = false; //if (AppConst.CheckExtentByName("生成空组合料架入库任务")) // this.uC_QueryPage1.GetLCItem("btn_CreateEmptyInTask3").Visible = true; //else // this.uC_QueryPage1.GetLCItem("btn_CreateEmptyInTask3").Visible = false; } private void ClikMethod(DataRow dr) { wcs_task_no = Convert.ToInt32(dr["TASK_NO"].ToString()); uC_QueryPage2.RefreshData(1, 0); } private void InitFrmmx() { List GCList = new List() { SuperGridUtil.Get_GridColumn("ID", "ID", 80,false), SuperGridUtil.Get_GridColumn("PARENTID", "父ID", 100,false), SuperGridUtil.Get_GridColumn("TASKNO", "WCS任务号", 100), SuperGridUtil.Get_GridColumn("POSIDCUR", "当前地址", 100), SuperGridUtil.Get_GridColumn("POSIDNEXT", "下一个地址", 100), SuperGridUtil.Get_GridColumn("DESCRIPTION", "流程描述", 500), SuperGridUtil.Get_GridColumn("NOTES", "备注", 80), SuperGridUtil.Get_Datetime_GridColumn("EXECUTEDATE", "执行时间", 130) }; List LCIList = new List(); uC_QueryPage2.Init_QueryPage(1, true, true, "", GCList, LCIList, QueryPageDataMethodsms, RefreshRoleMethodsms, DoubleClikMethod, null, null); CommonShow.ShowProcessing("正在处理中,请稍候...", this, (obj) => { //uC_QueryPage2.RefreshData(1, 0); }, null); } private PageData QueryPageDataMethodsms(int PageIndex, int PageSize) { string _SQLText = string.Format(@"SELECT [ID],[PARENTID],[TASKNO],[POSIDCUR],[POSIDNEXT],[DESCRIPTION],[NOTES],[EXECUTEDATE] FROM [dbo].[WCS_TASK_DTL] where TASKNO={0} ", wcs_task_no); string _Orderby = "EXECUTEDATE asc"; PageData pd = BaseWorkflow.QueryPageData(_SQLText, _Orderby, uC_QueryPage2.GetQueryWhere(), PageIndex, PageSize); return pd; } private void RefreshRoleMethodsms(bool ChkValue) { } private void DoubleClikMethod(DataRow dr) { //string _od_id = dr["OD_ID"].ToString(); //if (string.IsNullOrWhiteSpace(_order_No) == false) //{ // var orderdtlbom = new FrmOrderDtlBom(Convert.ToInt32(_od_id)); // orderdtlbom.ShowDialog(); //} } } }