private void TaskList_Load(object sender, EventArgs e) { DataGridViewTranslation.LoadMainColHeader(dgviewnone); DataGridViewTranslation.LoadDetailColHeader(dgviewnonedetail); dgviewnonedetail.DataSource = null; SortingLineTaskList sortingLineTaskList1 = SortingLineTaskList.GetFinSortingLineTaskList(new QueryCondition("3", true, AppUtil._SortingLineId, "desc")); dgviewnone.DataSource = sortingLineTaskList1; }
private void btnSearch_Click(object sender, EventArgs e) { SearchArgs searchArgs = new SearchArgs(); searchArgs.OrderDate = dateTimeInput1.Value.ToString("yyyy-MM-dd"); searchArgs.Batch = cobbatch.SelectedValue as string; searchArgs.LineCode = cobSortingLine.SelectedValue as string; searchArgs.Customer = txtCustomer.Text.Trim(); searchArgs.OutPort = comboBoxEx1.SelectedValue.ToString(); m_nonSortingLineTaskList = SortingLineTaskList.GetSortingLineTaskHistoryList(searchArgs); dgviewnone.DataSource = m_nonSortingLineTaskList; footSumLabel1.Sumdata(); }
private void btnDownload_Click(object sender, EventArgs e) { if (FJMainForm.Instance.cSortingTask.taskStatus != TaskStatus.Stop) { MessageBox.Show("下达任务未停止无法下载新的任务!"); return; } btnDownload.Enabled = false; btnExport.Enabled = false; thread = new Thread(new ParameterizedThreadStart(DownloadData.Start)); if (thread != null && IsSelectSortingLine()) { if (SortingLineTaskList.IsSortingFinish()) { StartDownloads(); } else { if (SortingLineTaskList.IsSortingStart()) { if (MessageBox.Show("分拣已开始,重新下载新清除数据是否继续?", "警告", MessageBoxButtons.YesNo) == DialogResult.Yes) { StartDownloads(); } } else { if (MessageBox.Show("当前订单还未开始分拣,重新下载新清除数据是否继续?", "警告", MessageBoxButtons.YesNo) == DialogResult.Yes) { StartDownloads(); } } } } else { MessageBox.Show("任务条件未选择"); btnDownload.Enabled = true; btnExport.Enabled = true; } }
public void LoadOrder() { if (chkisall.Checked) { dgviewnonedetail.DataSource = null; dgvIssueddetail.DataSource = null; dgviewfindetail.DataSource = null; dgviewnone.DataSource = m_nonSortingLineTaskList = SortingLineTaskList.GetNonSortingLineTaskList(true); dgviewfin.DataSource = m_finSortingLineTaskList = SortingLineTaskList.GetFinSortingLineTaskList(new QueryCondition("2", true, AppUtil._SortingLineId, "desc")); dgvIssued.DataSource = m_issuedSortingLineTaskList = SortingLineTaskList.GetFinSortingLineTaskList(new QueryCondition("1", true, AppUtil._SortingLineId, "desc")); } else { dgviewnonedetail.DataSource = null; dgvIssueddetail.DataSource = null; dgviewfindetail.DataSource = null; dgviewnone.DataSource = m_nonSortingLineTaskList = SortingLineTaskList.GetNonSortingLineTaskList(false); dgviewfin.DataSource = m_finSortingLineTaskList = SortingLineTaskList.GetFinSortingLineTaskList(new QueryCondition("2", false, AppUtil._SortingLineId, "desc")); dgvIssued.DataSource = m_issuedSortingLineTaskList = SortingLineTaskList.GetFinSortingLineTaskList(new QueryCondition("1", false, AppUtil._SortingLineId, "desc")); } footSumLabel1.Sumdata(); footSumLabel2.Sumdata(); footSumLabel3.Sumdata(); }
/// <summary> /// 分拣任务下达流程 /// </summary> private void ScanTask() { SortingLineTask sortingLineTask = null; while (taskStatus == TaskStatus.Run) { try { //是否有未完成的订单 if (!SortingLineTaskList.IsSortingFinish()) { //判断标识是否可以下达任务,表示上一次任务是否已经完成 SortingTaskIssued sortingTaskIssued = SortingTaskIssued.GetSortingTaskIssued("0"); if (sortingTaskIssued.PLCFLAG == 0) { //PLC信息小车是否走到位,或者已扫描到分户盒 //分拣工可能先放分户盒,但程序必须判断上次任务是否完成 //if (operateOpcAndSoft.GetCubeReady()) //{ // if(operateOpcAndSoft.GetCubeIndexno > FJMainForm.Instance.CSortingMain.c_Cubes.Last().labindexno) // int a = operateOpcAndSoft.GetCubeReady() - // FJMainForm.Instance.CSortingMain.c_Cubes.Last().labindexno; //} if (operateOpcAndSoft.GetCubeReady()) { SortingLineTaskQueue.GetInstance().Move(); //重新加载一次任务队列 SortingLineTaskQueue.GetInstance().LoadSortingLineTasks(); //获取最小排序号的订单 sortingLineTask = SortingLineTask.GetMinSortingLineTask(); //将最小订单放入队列中进行分拣 SortingLineTaskQueue.GetInstance().Enqueue(sortingLineTask); SortingLineTaskQueue.GetInstance().CreateCubesModel(); //发送卷烟数量到数码管 ATOPTagSdk.instance.SetOrderNixielight(SortingLineTaskQueue.GetInstance().SortingLineTasks); //通知前台界面显示数码管数量 if (OnUpdateCSortingMainNumEvent != null) { OnUpdateCSortingMainNumEvent.Invoke(null, new UpdateCSortingMainNumEventArgs(ATOPTagSdk.Tags)); } //如果不是用用来补足的空任务 if (sortingLineTask.INDEXNO > 0) { //保存任务状态为已下达 sortingLineTask.Status = 1; sortingLineTask.SaveSortingTaskProcess(sortingLineTask.ID); } //将下达任务标志位设置成已下达 sortingTaskIssued.PLCFLAG = 1; sortingTaskIssued.PLCTASKNO = sortingLineTask.INDEXNO.ToString(); sortingTaskIssued.ORDERNUMBER = sortingLineTask.SumOrderNumber(); sortingTaskIssued.Save(); //写日志 monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "任务下达"; monitorLog.LOGINFO = " 任务号:" + sortingLineTask.INDEXNO.ToString().PadRight(10); monitorLog.LOGLOCATION = "数据库"; monitorLog.LOGTYPE = 0; monitorLog.Save(); this.BeginInvoke(new MethodInvoker(LoadOrder)); //FJMainForm.Instance.CSortingMain.UpdateLineboxCapacity(); } } } else { //写日志 MonitorLog monitorLog = MonitorLog.NewMonitorLog(); monitorLog.LOGNAME = "任务下达"; monitorLog.LOGINFO = "分拣任务全部完成"; monitorLog.LOGLOCATION = "数据库"; monitorLog.LOGTYPE = 0; monitorLog.Save(); //发送分拣完成到上位机 //FJMainForm.Instance.SortingFinish(); SortingLineTaskQueue.GetInstance().CubesModel.Clear(); Array.Clear(SortingLineTaskQueue.GetInstance().SortingLineTasks, 0, SortingLineTaskQueue.GetInstance().QueueMaxCount); SortingLineTaskQueue.GetInstance().InvokeOnUpdateCubeEvent(); SoundPlayer player = new SoundPlayer(); player.SoundLocation = Application.StartupPath + "\\Sound\\分拣结束.wav"; player.Load(); player.Play(); break;//跳出下达循环 } Thread.Sleep(500); } catch (Exception e) { //写日志 monitorLog = MonitorLog.NewMonitorLog(); if (sortingLineTask != null) { monitorLog.LOGNAME = "任务号" + sortingLineTask.INDEXNO + " 分拣任务下达异常"; } else { monitorLog.LOGNAME = "任务号未知" + " 分拣任务下达异常"; } monitorLog.LOGINFO = e.Message; monitorLog.LOGLOCATION = "数据库"; monitorLog.LOGTYPE = 0; monitorLog.Save(); } } }
private void SetFinDynamicBox() { try { if (this.InvokeRequired) { this.Invoke(new Action(SetFinDynamicBox)); } int indexno = 0; int rowindexno = 0; //获取混合仓中已分拣完成的卷烟列表 SortingLineTaskList sortingLineTaskList = SortingLineTaskList.GetFinSortingLineTaskList(new QueryCondition("2", true, AppUtility.AppUtil._SortingLineId, "desc")); //得到最新完成的流水号 if (sortingLineTaskList.Count > 0) { indexno = sortingLineTaskList[0].INDEXNO; } //重置列表 foreach (DataGridViewRow row in dgvybDynamicBox.Rows) { row.DefaultCellStyle.BackColor = Color.White; row.Cells["outputnum"].Value = ""; } //将混仓显示列表中的已完成卷烟背景色显示为灰色 for (int i = dgvybDynamicBox.Rows.Count - 1; i >= 0; i--) { if (Convert.ToInt16(dgvybDynamicBox.Rows[i].Cells[0].Value) <= indexno) { dgvybDynamicBox.Rows[i].DefaultCellStyle.BackColor = Color.DarkGray; //row.Cells["outputnum"].Value = ""; } else { //控制滚动条的显示位置 if (dgvybDynamicBox.Rows[i].Index - 10 >= 0) { dgvybDynamicBox.FirstDisplayedScrollingRowIndex = dgvybDynamicBox.Rows[i].Index - 10; } else { dgvybDynamicBox.FirstDisplayedScrollingRowIndex = 0; } //获取表格中已分拣完成混仓烟位置 rowindexno = dgvybDynamicBox.Rows[i].Index; break; } } //将混仓显示列表中的已完成卷烟背景色显示为灰色 //foreach (DataGridViewRow row in dgvybDynamicBox.Rows) //{ // if (Convert.ToInt16(row.Cells[0].Value) <= indexno) // { // row.DefaultCellStyle.BackColor = Color.DarkGray; // //row.Cells["outputnum"].Value = ""; // } // else // { // //控制滚动条的显示位置 // if (row.Index >= 6) // { // dgvybDynamicBox.FirstDisplayedScrollingRowIndex = row.Index - 6 ; // } // else // { // dgvybDynamicBox.FirstDisplayedScrollingRowIndex = row.Index - row.Index; // } // //获取表格中已分拣完成混仓烟位置 // rowindexno = row.Index; // break; // } //} //在皮带上的混仓卷烟数量 sortingtaskarrive = SortingTaskArrive.GetSortingTaskArrive("0"); int outputnum = Convert.ToInt32(sortingtaskarrive.Value); //数量大于0表示皮带上有混仓烟 if (outputnum > 0) { if (rowindexno - 1 > 0) { //对列表上的卷烟进行已分拣出的标记 for (int i = rowindexno; i > 0; i--) { if (outputnum > 0) { //当前行的数量小于皮带上的数量,在已打出显示当前数量 if (Convert.ToInt32(dgvybDynamicBox.Rows[i].Cells["InQty"].Value) <= outputnum) { //将已打出的混仓烟标记为蓝色背景 dgvybDynamicBox.Rows[i].DefaultCellStyle.BackColor = Color.Blue; dgvybDynamicBox.Rows[i].Cells["outputnum"].Value = dgvybDynamicBox.Rows[i].Cells["InQty"].Value; } else { //将已打出的混仓烟标记为蓝色背景 dgvybDynamicBox.Rows[i].DefaultCellStyle.BackColor = Color.Blue; //当前行的数量大于皮带上的剩余数量,显示剩余数量 dgvybDynamicBox.Rows[i].Cells["outputnum"].Value = outputnum; break; } //减去当前行的数量,得到剩余数量进行下一次循环 outputnum = outputnum - Convert.ToInt32(dgvybDynamicBox.Rows[i].Cells["InQty"].Value); } else { break; } } } } } catch (Exception ex) { } }