예제 #1
0
        private void SetSortingLock(int islock)
        {
            string indexcolname = "";
            string custcolname  = "";

            foreach (DataGridViewColumn column in dataGridViewXs[superTabControl1.SelectedTab.Name].Columns)
            {
                if (column.DataPropertyName.ToUpper() == "INDEXNO")
                {
                    indexcolname = column.Name;
                }
                if (column.DataPropertyName.ToUpper() == "CUSTCODE")
                {
                    custcolname = column.Name;
                }
            }


            foreach (DataGridViewRow selectedRow in dataGridViewXs[superTabControl1.SelectedTab.Name].SelectedRows)
            {
                //改变任务状态
                string          indexcolvalue   = selectedRow.Cells[indexcolname].Value.ToString();
                string          custvalue       = selectedRow.Cells[custcolname].Value.ToString();
                SortingLineTask sortingLineTask = SortingLineTask.GetSortingLineByIndex(indexcolvalue);
                sortingLineTask.ISLOCK = islock;
                sortingLineTask.SaveSortingTaskProcess(sortingLineTask.ID);
            }
            LoadOrder();
        }
예제 #2
0
        private bool IsVerifyPass()
        {
            SortingLineTask.IsCurrentOrder();

            SortingLineTask.IsIndexRepetition();

            return(true);
        }
예제 #3
0
        private void GetPrintCust(int indexno)
        {
            flowLayoutPanel1.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(flowLayoutPanel1, true, null);
            flowLayoutPanel4.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic).SetValue(flowLayoutPanel4, true, null);
            flowLayoutPanel4.Controls.Clear();
            flowLayoutPanel1.Controls.Clear();
            SortingLineTask sortingLineTask = SortingLineTask.GetSortingLineByIndex(indexno.ToString());

            Label button = new Label();

            button.Width  = 120;
            button.Height = 20;
            button.Text   = "当前客户";

            flowLayoutPanel4.Controls.Add(button);

            button        = new Label();
            button.Width  = 120;
            button.Height = 20;
            button.Text   = "序号:" + sortingLineTask.INDEXNO;
            flowLayoutPanel4.Controls.Add(button);

            button        = new Label();
            button.Width  = 120;
            button.Height = 20;
            button.Text   = "客户名:" + sortingLineTask.ShortName;
            flowLayoutPanel4.Controls.Add(button);

            button        = new Label();
            button.Width  = 300;
            button.Height = 20;
            button.Text   = sortingLineTask.CUSTCODE;
            flowLayoutPanel4.Controls.Add(button);


            SortingLineTaskDetails sortingLineTaskDetails = SortingLineTaskDetails.GetSortingLineTaskDetailsByIndex(indexno);

            foreach (SortingLineTaskDetail sortingLineTaskDetail in sortingLineTaskDetails)
            {
                button        = new Label();
                button.Width  = 20;
                button.Height = 120;
                if (sortingLineTaskDetail.CIGNAME.Count() > 7)
                {
                    sortingLineTaskDetail.CIGNAME = sortingLineTaskDetail.CIGNAME.Substring(0, 7);
                }

                button.Text = sortingLineTaskDetail.LINEBOXCODE + Environment.NewLine + sortingLineTaskDetail.CIGNAME.Replace("(", " ").Replace(")", " ") + Environment.NewLine + sortingLineTaskDetail.QTY;
                flowLayoutPanel1.Controls.Add(button);
            }
            ButtonX buttonx = new ButtonX();

            buttonx.Width  = 50;
            buttonx.Height = 50;
            buttonx.Text   = "显示更多客户列表";
            buttonx.Click += new EventHandler(buttonx_Click);
            flowLayoutPanel4.Controls.Add(buttonx);
        }
예제 #4
0
        private void SetSortingStatus(int status)
        {
            string indexcolname = "";
            string custcolname  = "";

            foreach (DataGridViewColumn column in dataGridViewXs[superTabControl1.SelectedTab.Name].Columns)
            {
                if (column.DataPropertyName.ToUpper() == "INDEXNO")
                {
                    indexcolname = column.Name;
                }
                if (column.DataPropertyName.ToUpper() == "CUSTCODE")
                {
                    custcolname = column.Name;
                }
            }


            foreach (DataGridViewRow selectedRow in dataGridViewXs[superTabControl1.SelectedTab.Name].SelectedRows)
            {
                //改变任务状态
                string          indexcolvalue   = selectedRow.Cells[indexcolname].Value.ToString();
                string          custvalue       = selectedRow.Cells[custcolname].Value.ToString();
                SortingLineTask sortingLineTask = SortingLineTask.GetSortingLineByIndex(indexcolvalue);
                sortingLineTask.Status = status;
                if (status == 2)
                {
                    sortingLineTask.PLCADDRESS = 9;
                }
                if (status == 0)
                {
                    sortingLineTask.PLCADDRESS = 0;
                    SortingLineTaskDetail.SaveStatus(sortingLineTask.ID, "", 0);
                }

                sortingLineTask.SaveSortingTaskProcess(sortingLineTask.ID);



                //改变烟包状态
                //List<CigBoxInfo> cigBoxInfoList = CigBoxInfoList.GetBoxInfoByCustiomNo(custvalue, indexcolvalue,
                //    SortingLine.GetNonSortingLineCode());
                //foreach (CigBoxInfo cigBoxInfo in cigBoxInfoList)
                //{
                //    if (status != 2)
                //    {
                //        CigBoxInfo.SaveProcess(cigBoxInfo.ID, 0);
                //    }
                //    else
                //    {
                //        CigBoxInfo.SaveProcess(cigBoxInfo.ID, status);
                //    }
                //}
            }
        }
예제 #5
0
파일: COutPort.cs 프로젝트: wg3281/JZFJ
        private string GetNCustCigInfo()
        {
            SortingLineTask sortingLineTask;

            if (indexno > 0)
            {
                sortingLineTask = SortingLineTask.GetSortingLineByIndex(nindexno.ToString());
                return(sortingLineTask.CUSTCODE);
                //SortingLineTaskDetails sortingLineTaskDetails = SortingLineTaskDetails.GetSortingLineTaskDetailsByIndex(indexno);
            }
            return("0");
        }
예제 #6
0
        public void SetVision()
        {
            try
            {
                if (this.InvokeRequired)
                {
                    this.Invoke(new Action(SetVision));
                }

                labnonvision.Text = SortingLineTask.GetSortingLineTaskDateByNo();
                lababnvision.Text = AbnSortingLineTask.GetSortingLineTaskDate();


                labsernonvision.Text = SortingLineTask.GetServerSortingLineTaskDate();
                labserabnvision.Text = AbnSortingLineTask.GetServerSortingLineTaskDate();
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains("selectForConnectTimeout"))
                {
                    MessageBox.Show("无法连接到分拣信息服务器数据库");
                }
                else
                {
                    throw;
                }
            }
            if (labnonvision.Text.Trim() != labsernonvision.Text.Trim())
            {
                labnonvision.ForeColor    = Color.Red;
                labsernonvision.ForeColor = Color.Red;
            }
            else
            {
                labnonvision.ForeColor    = Color.Black;
                labsernonvision.ForeColor = Color.Black;
            }

            if (lababnvision.Text.Trim() != labserabnvision.Text.Trim())
            {
                lababnvision.ForeColor    = Color.Red;
                labserabnvision.ForeColor = Color.Red;
            }
            else
            {
                lababnvision.ForeColor    = Color.Black;
                labserabnvision.ForeColor = Color.Black;
            }
        }
예제 #7
0
        protected override void DataPortal_Create()
        {
            m_sortingLineTask = SortingLineTask.GetSortingLineTask();
            using (BypassPropertyChecks)
            {
                LoadProperty(IdProperty, m_sortingLineTask.INDEXNO);
                LoadProperty(PLCFLAGProperty, 1);
                LoadProperty(PLCTASKNOProperty, SortingTaskIssuedList.GetSortingTaskIssuedList().LoadLastPLCTaskID());
                LoadProperty(SLOCATIONProperty, "DB0");
                LoadProperty(ORDERNUMBERProperty, m_sortingLineTask.SumOrderNumber());

                // create child objects
                LoadProperty(SortingTaskIssuedDetailsProperty,
                             SortingTaskIssuedDetails.NewSortingTaskIssuedDetails(m_sortingLineTask.SortingLineTaskDetails));
            }
        }
예제 #8
0
파일: COutPort.cs 프로젝트: wg3281/JZFJ
        private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            try
            {
                //获取当前,上一个,下一个客户的基本信息
                GetOutPortInfo();
                GetPOutPortInfo();
                GetNOutPortInfo();

                //获取平均效率的列表(当天所有打完码的客户)
                List <PrintInfo> printinfos = PrintBarCodes.GetAVGPrintEffice();
                //获取当前效率的列表(现在系统所有打完码的客户)
                List <PrintInfo> cutprintinfos = PrintBarCodes.GetCUTPrintEffice();

                //计算当前效率
                double tzeff = SetEff(cutprintinfos);

                labavgeffice.Text = tzeff.ToString() + "条/小时";

                if (labavgeffice.Text.Contains("非数字"))
                {
                    labavgeffice.Text = "0" + "条/小时";
                }

                using (var cn = new MySqlConnection(AppUtility.AppUtil._LocalConnectionString))
                {
                    cn.Open();
                    using (var cm = cn.CreateCommand())
                    {
                        cm.CommandText = "select MaxcutEFFICIENCY from t_sortline_process WHERE ORDERDATE = '" + SortingLineTask.GetSortingLineTaskDate() + "' AND PICKLINECODE = '" + SortingLine.GetSortingLineCode() + "' AND SORTINGTASKNO = '" + SortingLineTask.GetMinSortingLineTask().SORTINGTASKNO + "'";
                        using (var dr = new SafeDataReader(cm.ExecuteReader()))
                        {
                            while (dr.Read())
                            {
                                labcuteffice.Text = dr.GetDouble("MaxcutEFFICIENCY").ToString() + "条/小时";
                            }
                        }
                    }
                }

                //计算平均效率
                //tzeff = SetEff(printinfos);

                //labavgeffice.Text = tzeff.ToString() + "条/小时";;

                //if (labavgeffice.Text.Contains("非数字"))
                //    labavgeffice.Text = "0" + "条/小时";

                //计算分拣进度
                SortingProgress sortingprogress = SortingProgress.GetSortingTaskProgress();
                prosorting.Maximum = sortingprogress.TotQty;
                prosorting.Value   = sortingprogress.Qty;
                prosorting.Text    = (sortingprogress.Qty + "/" + sortingprogress.TotQty).PadRight(15, ' ') +
                                     Math.Round(
                    Convert.ToDouble(sortingprogress.Qty) / Convert.ToDouble(sortingprogress.TotQty), 3) *
                                     100 + "%";
            }
            catch
            {
            }
        }
예제 #9
0
 private void OutPortForm_Load(object sender, EventArgs e)
 {
     taskdate = SortingLineTask.GetSortingLineTaskDate();
     taskno   = SortingLineTask.GetSortingLineTaskNo();
     GetProcess();
 }
예제 #10
0
        public SortingLineTask TaskFinish()
        {
            bool                   isRun                  = false;
            SortingArrive          sortingArrive          = new SortingArrive();
            SorgingPackingFinished sorgingPackingFinished = new SorgingPackingFinished();
            SortingLineTask        sortingLineTask        = null;

            try
            {
                //扫描烟条到达信号地址区是否有已到达的任务(DB10:DBW50)
                MonitorLog monitorLog;
                for (int i = 1; i <= sortingArrive.Count; i++)
                {
                    int arrivevalue = 0;
                    //获取地址内的值
                    string a = sortingArrive[i];
                    arrivevalue = Convert.ToInt32(plc.GetPlcValue(sortingArrive[i]).Value);
                    //非0表示已有完成的客户订单
                    if (arrivevalue != 0)
                    {
                        //获取DB15中对应的分拣任务号
                        DB15Model mdl    = DB15List.dicArr.FirstOrDefault(o => o.Key == i).Value;
                        string    taskno = plc.GetPlcValue(mdl.taskNo).Value.ToString();

                        //通过任务号关联订单中的序号获取分拣订单保存
                        if (Convert.ToInt32(taskno) > 0)
                        {
                            sortingLineTask        = SortingLineTask.GetSortingLineByIndex(taskno);
                            sortingLineTask.Status = 2;
                            sortingLineTask.SaveSortingTaskProcess(sortingLineTask.ID);
                            sortingLineTask.SaveStatus();


                            //写日志
                            monitorLog             = MonitorLog.NewMonitorLog();
                            monitorLog.LOGNAME     = "INDEXNO:" + sortingLineTask.INDEXNO + " CUSTNO:" + sortingLineTask.CUSTCODE + " 分拣任务到达数据库保存";
                            monitorLog.LOGINFO     = "";
                            monitorLog.LOGLOCATION = "PLC";
                            monitorLog.LOGTYPE     = 0;
                            monitorLog.Save();
                        }
                        //成功后保存发送的烟包信息
                        //List<CigBoxInfo> cigBoxInfoList = CigBoxInfoList.GetBoxInfoByCustiomNo(sortingLineTask.CUSTCODE,
                        //    sortingLineTask.INDEXNO.ToString(), SortingLine.GetNonSortingLineCode());
                        //foreach (CigBoxInfo cigBoxInfo in cigBoxInfoList)
                        //{
                        //    CigBoxInfo.SaveProcess(cigBoxInfo.ID, 2);
                        //}

                        //写日志
                        //monitorLog = MonitorLog.NewMonitorLog();
                        //monitorLog.LOGNAME = "INDEXNO:" + cigBoxInfoList[0].IndexNO + "  分拣烟包到达保存";
                        //monitorLog.LOGINFO = "";
                        //monitorLog.LOGLOCATION = "PLC";
                        //monitorLog.LOGTYPE = 0;
                        //monitorLog.Save();


                        //查看装箱数据块中是否已修改
                        //==0表示未修改可以写数据
                        if (Convert.ToInt32(plc.GetPlcValue(sorgingPackingFinished[i]).Value) == 0)
                        {
                            //将装箱完成信号地址区中对应的出口置1(DB10:DBW0)
                            PlcValue writeVlaue = new PlcValue();
                            writeVlaue.Value = arrivevalue;
                            isRun            = plc.SetPlcValue(sorgingPackingFinished[i], writeVlaue);
                            //写值不成功返回空对象
                            if (!isRun)
                            {
                                sortingLineTask = null;
                            }
                            else
                            {
                                //写日志
                                monitorLog             = MonitorLog.NewMonitorLog();
                                monitorLog.LOGNAME     = "INDEXNO:" + sortingLineTask.INDEXNO + "  地址位" + sorgingPackingFinished[i] + ":装箱修改为1";
                                monitorLog.LOGINFO     = "";
                                monitorLog.LOGLOCATION = "PLC";
                                monitorLog.LOGTYPE     = 0;
                                monitorLog.Save();
                            }
                            break;
                        }
                        //==1表示已修改过继续下一个地址位
                        else
                        {
                            sortingLineTask = null;
                            //写日志
                            monitorLog             = MonitorLog.NewMonitorLog();
                            monitorLog.LOGNAME     = "装箱已经修改过为1";
                            monitorLog.LOGINFO     = "";
                            monitorLog.LOGLOCATION = "PLC";
                            monitorLog.LOGTYPE     = 0;
                            monitorLog.Save();
                        }
                    }
                    Thread.Sleep(50);
                }
                //break后执行
                //写日志
                //monitorLog = MonitorLog.NewMonitorLog();
                //monitorLog.LOGNAME = "分拣任务到达循环结束";
                //monitorLog.LOGINFO = "";
                //monitorLog.LOGLOCATION = "PLC";
                //monitorLog.LOGTYPE = 0;
                //monitorLog.Save();
            }
            catch (Exception ex)
            {
                //写日志
                MonitorLog monitorLog = MonitorLog.NewMonitorLog();
                monitorLog.LOGNAME     = "PLC分拣任务到达异常";
                monitorLog.LOGINFO     = ex.Message;
                monitorLog.LOGLOCATION = "PLC";
                monitorLog.LOGTYPE     = 0;
                monitorLog.Save();
                return(null);
            }

            return(sortingLineTask);
        }
예제 #11
0
        public static void UpdateEfficincy()
        {
            DateTime?starttime = null;
            double   second    = 0;
            double   passt     = 0;

            double pnum     = 0;
            double totolnum = 0;
            int    ordernum = 0;

            try
            {
                List <PrintInfo> printinfos    = PrintBarCodes.GetAVGPrintEffice();
                List <PrintInfo> cutprintinfos = PrintBarCodes.GetCUTPrintEffice();

                //Dictionary<string, double> effice = new Dictionary<string, double>();
                foreach (PrintInfo printinfo in printinfos)
                {
                    if (starttime == null)
                    {
                        pnum      = printinfo.allnum;
                        starttime = printinfo.starttime;
                    }
                    else
                    {
                        second = Convert.ToDouble(ExecDateDiff(Convert.ToDateTime(starttime), printinfo.starttime));
                        if (second < AppUtility.AppUtil._IgnoreSecond)
                        {
                            totolnum += pnum;
                            passt    += second;
                            ordernum++;
                        }
                        pnum      = printinfo.allnum;
                        starttime = printinfo.starttime;
                    }
                }

                double efficincy = Math.Round((Math.Round((totolnum / passt), 9) * 3600), 0);

                using (var cn = new MySqlConnection(AppUtility.AppUtil._LocalConnectionString))
                {
                    cn.Open();
                    using (var cm = cn.CreateCommand())
                    {
                        cm.CommandText = "UPDATE t_sortline_process set EFFICIENCY = " + efficincy + " WHERE ORDERDATE = '" + SortingLineTask.GetSortingLineTaskDate() + "' AND PICKLINECODE = '" + SortingLine.GetSortingLineCode() + "' AND SORTINGTASKNO = '" + SortingLineTask.GetMinSortingLineTask().SORTINGTASKNO + "'";
                        cm.ExecuteNonQuery();
                    }
                }



                double maxavgeffic = 0;
                double maxcuteffic = 0;
                using (var cn = new MySqlConnection(AppUtility.AppUtil._LocalConnectionString))
                {
                    cn.Open();
                    using (var cm = cn.CreateCommand())
                    {
                        cm.CommandText = "select MaxavgEFFICIENCY from t_sortline_process WHERE ORDERDATE = '" + SortingLineTask.GetSortingLineTaskDate() + "' AND PICKLINECODE = '" + SortingLine.GetSortingLineCode() + "' AND SORTINGTASKNO = '" + SortingLineTask.GetMinSortingLineTask().SORTINGTASKNO + "'";
                        using (var dr = new SafeDataReader(cm.ExecuteReader()))
                        {
                            while (dr.Read())
                            {
                                maxavgeffic = dr.GetDouble("MaxavgEFFICIENCY");
                            }
                        }
                    }
                }

                if (efficincy > maxavgeffic)
                {
                    using (var cn = new MySqlConnection(AppUtility.AppUtil._LocalConnectionString))
                    {
                        cn.Open();
                        using (var cm = cn.CreateCommand())
                        {
                            cm.CommandText = "UPDATE t_sortline_process set MaxavgEFFICIENCY = " + efficincy + ",MaxavgEFFICIENCYTime = '" + DateTime.Now + "'  WHERE ORDERDATE = '" + SortingLineTask.GetSortingLineTaskDate() + "' AND PICKLINECODE = '" + SortingLine.GetSortingLineCode() + "' AND SORTINGTASKNO = '" + SortingLineTask.GetMinSortingLineTask().SORTINGTASKNO + "'";
                            cm.ExecuteNonQuery();
                        }
                    }
                }



                starttime = null;
                second    = 0;
                passt     = 0;

                pnum     = 0;
                totolnum = 0;
                ordernum = 0;
                foreach (PrintInfo printinfo in cutprintinfos)
                {
                    if (starttime == null)
                    {
                        pnum      = printinfo.allnum;
                        starttime = printinfo.starttime;
                    }
                    else
                    {
                        second = Convert.ToDouble(ExecDateDiff(Convert.ToDateTime(starttime), printinfo.starttime));
                        if (second < AppUtility.AppUtil._IgnoreSecond)
                        {
                            totolnum += pnum;
                            passt    += second;
                            ordernum++;
                        }
                        pnum      = printinfo.allnum;
                        starttime = printinfo.starttime;
                    }
                }

                efficincy = Math.Round((Math.Round((totolnum / passt), 9) * 3600), 0);


                using (var cn = new MySqlConnection(AppUtility.AppUtil._LocalConnectionString))
                {
                    cn.Open();
                    using (var cm = cn.CreateCommand())
                    {
                        cm.CommandText = "select MaxcutEFFICIENCY from t_sortline_process WHERE ORDERDATE = '" + SortingLineTask.GetSortingLineTaskDate() + "' AND PICKLINECODE = '" + SortingLine.GetSortingLineCode() + "' AND SORTINGTASKNO = '" + SortingLineTask.GetMinSortingLineTask().SORTINGTASKNO + "'";
                        using (var dr = new SafeDataReader(cm.ExecuteReader()))
                        {
                            while (dr.Read())
                            {
                                maxcuteffic = dr.GetDouble("MaxcutEFFICIENCY");
                            }
                        }
                    }
                }

                if (efficincy > maxcuteffic)
                {
                    using (var cn = new MySqlConnection(AppUtility.AppUtil._LocalConnectionString))
                    {
                        cn.Open();
                        using (var cm = cn.CreateCommand())
                        {
                            cm.CommandText = "UPDATE t_sortline_process set MaxcutEFFICIENCY = " + efficincy + ",MaxcutEFFICIENCYTime = '" + DateTime.Now + "'  WHERE ORDERDATE = '" + SortingLineTask.GetSortingLineTaskDate() + "' AND PICKLINECODE = '" + SortingLine.GetSortingLineCode() + "' AND SORTINGTASKNO = '" + SortingLineTask.GetMinSortingLineTask().SORTINGTASKNO + "'";
                            cm.ExecuteNonQuery();
                        }
                    }
                }
            }
            catch
            { }
        }
예제 #12
0
        /// <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();
                }
            }
        }
예제 #13
0
        private LPTPrintSetup printset = new LPTPrintSetup(); //打印类
        private void PirintSet(object type)
        {
            try
            {
                string indexcolname = "";
                string custcolname  = "";
                foreach (DataGridViewColumn column in dgviewnone.Columns)
                {
                    if (column.DataPropertyName.ToUpper() == "INDEXNO")
                    {
                        indexcolname = column.Name;
                    }
                    if (column.DataPropertyName.ToUpper() == "CUSTCODE")
                    {
                        custcolname = column.Name;
                    }
                }

                IEnumerable <DataGridViewRow> rows =
                    dgviewnone.SelectedRows.Cast <DataGridViewRow>();
                DataGridViewRow[] Rows = rows.ToArray();
                Array.Reverse(Rows); //对颠倒的行再次颠倒


                foreach (DataGridViewRow selectedRow in Rows)
                {
                    string          indexcolvalue   = selectedRow.Cells[indexcolname].Value.ToString();
                    string          custvalue       = selectedRow.Cells[custcolname].Value.ToString();
                    SortingLineTask sortingLineTask = SortingLineTask.GetSortingLineByIndex(indexcolvalue);

                    //获取常规烟包
                    List <CigBoxInfo> cigBoxInfoList = CigBoxInfoList.GetBoxInfoByCustiomNo(sortingLineTask.CUSTCODE,
                                                                                            sortingLineTask.INDEXNO.ToString(), AppUtil._SortingLineId);

                    //获取异型烟包
                    int abnoboxcount = CigBoxInfoList.GetAbnoCigBoxNum(sortingLineTask.ORDERDATE,
                                                                       sortingLineTask.SORTINGTASKNO.ToString(), AppUtil._AbnoSortingLineId, sortingLineTask.CUSTCODE);


                    OutPort outPort = new OutPort(Convert.ToInt32(indexcolvalue));
                    outPort.GetCustSeq();

                    foreach (CigBoxInfo cigBoxInfo in cigBoxInfoList)
                    {
                        BusinessLogic.Print.PrintInfo PSInfo = new BusinessLogic.Print.PrintInfo();
                        PSInfo.CustomerName = sortingLineTask.ShortName;
                        PSInfo.CustomerCode = sortingLineTask.CUSTCODE;
                        PSInfo.IndexNo      = sortingLineTask.INDEXNO.ToString();
                        PSInfo.SortingDate  = "(" + sortingLineTask.ORDERDATE + ")";
                        PSInfo.BoxNo        = cigBoxInfo.BOXSEQ.ToString() + "/";
                        PSInfo.BoxCount     = cigBoxInfo.BOXCOUNT.ToString();
                        PSInfo.CurrentNum   = cigBoxInfo.BOXQTY.ToString() + "/" +
                                              sortingLineTask.SortingLineTaskDetails.GetTotQty().ToString();
                        //PSInfo.TaskNumber = sortingLineTask.SortingLineTaskDetails.GetTotQty().ToString();
                        PSInfo.DelivyLine  = sortingLineTask.LINENAME;
                        PSInfo.CustomerSqe = "(" + outPort["COUNTLINE"] + "/" + outPort["MAXCOUNTLINE"] + ")户";
                        //PSInfo.CustomerTotSeq = outPort["MAXCOUNTLINE"];
                        PSInfo.AbnoBoxCount = "异" + abnoboxcount;
                        PSInfo.Address      = cigBoxInfo.Address;
                        PSInfo.BoxIndex     = CigBoxInfoList.GetBoxIndex(PSInfo.IndexNo, cigBoxInfo.BOXSEQ.ToString(), AppUtil._SortingLineId);
                        printset.SetupThePrinting(MyPrintDocument, new SYSPrintsettings(), PSInfo);

                        if (Convert.ToInt32(type) == 1)
                        {
                            printPreviewDialog1.PrintPreviewControl.Zoom = 1.0;
                            this.printPreviewDialog1.ShowDialog();
                        }
                        else
                        {
                            MyPrintDocument.Print();
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }