Esempio n. 1
0
        //
        // POST: /SortingLine/Create/
        public ActionResult Create(SortingLine sortLine)
        {
            bool   bResult = SortingLineService.Add(sortLine);
            string msg     = bResult ? "新增成功" : "新增失败";

            return(Json(JsonMessageHelper.getJsonMessage(bResult, msg, null), "text", JsonRequestBehavior.AllowGet));
        }
Esempio n. 2
0
        void GetProcess()
        {
            soDictionary = SortingProgress.GetSortingProcessInfo(taskdate, taskno, SortingLine.GetNonSortingLineCode());
            foreach (Control control in panelEx3.Controls)
            {
                if (control is PanelEx)
                {
                    var panelex = (PanelEx)control as PanelEx;
                    if (panelex.Tag != null)
                    {
                        try
                        {
                            panelex.Text = soDictionary[panelex.Tag.ToString()];
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }

            panelEx4.Text = "目标分拣效率15000条/小时,今日平均分拣效率" + soDictionary["EFFICIENCY"];

            panelEx10.Text = "分拣效率  " + soDictionary["EFFICIENCY"];

            progressBarX1.Text    = soDictionary["QTY_PRODUCT"] + "/" + soDictionary["QTY_PRODCUT_TOT"] + "条 - " + soDictionary["Progress"] + "%";
            progressBarX1.Maximum = Convert.ToInt32(soDictionary["QTY_PRODCUT_TOT"]);
            progressBarX1.Value   = Convert.ToInt32(soDictionary["QTY_PRODUCT"]);
        }
Esempio n. 3
0
        //
        // POST: /SortingLine/Edit/
        public ActionResult Edit(SortingLine sortLine)
        {
            bool   bResult = SortingLineService.Save(sortLine);
            string msg     = bResult ? "修改成功" : "修改失败";

            return(Json(JsonMessageHelper.getJsonMessage(bResult, msg, null), "text", JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public void SaveSortingTaskProcess(string plctaskid)
        {
            SortingTaskProgress sortingTaskProgress = null;

            sortingTaskProgress = SortingTaskProgress.GetSortingTaskProgress(ID);

            if (Status == 0)
            {
                sortingTaskProgress.STATUS      = Status;
                sortingTaskProgress.SORTINGTIME = null;
                sortingTaskProgress.FINISHTIME  = null;
                sortingTaskProgress.PLCAddress  = PLCADDRESS;
                sortingTaskProgress.ISLOCK      = ISLOCK;
                if (sortingTaskProgress != null)
                {
                    sortingTaskProgress.Save();
                }
            }
            if (Status == 1)
            {
                sortingTaskProgress.STATUS      = 1;
                sortingTaskProgress.SORTINGTIME = DateTime.Now;
                sortingTaskProgress.FINISHTIME  = null;
                sortingTaskProgress.PLCAddress  = PLCADDRESS;
                sortingTaskProgress.ISLOCK      = ISLOCK;
                if (sortingTaskProgress != null)
                {
                    sortingTaskProgress.Save();
                }
            }
            if (Status == 2)

            {
                sortingTaskProgress.STATUS = Status;
                if (sortingTaskProgress.SORTINGTIME == null)
                {
                    sortingTaskProgress.SORTINGTIME = DateTime.Now;
                }
                sortingTaskProgress.FINISHTIME = DateTime.Now;
                sortingTaskProgress.PLCAddress = PLCADDRESS;
                sortingTaskProgress.ISLOCK     = ISLOCK;
                if (sortingTaskProgress != null)
                {
                    sortingTaskProgress.Save();
                }
            }

            //重汇分拣进度
            try
            {
                Thread thread1 = new Thread(new ParameterizedThreadStart(SortingProcessList.GetSortingProcessList));
                //Thread thread2 = new Thread(SortingProcessList.UpdateEfficincy);
                thread1.Start(SortingLine.GetNonSortingLineCode());
                //thread2.Start();
            }
            catch (Exception)
            {
            }
        }
Esempio n. 5
0
 public void LoadCigBox()
 {
     if (chkisall.Checked)
     {
         CigBoxInfoList cigBoxInfoList =
             CigBoxInfoList.GetNonCigBoxList(new QueryCondition("0", true, SortingLine.GetAbNonSortingLineCode(), ""));
         dgviewnone.DataSource = cigBoxInfoList;
         dgviewfin.DataSource  = CigBoxInfoList.GetFinCigBoxList(new QueryCondition("2", true, SortingLine.GetAbNonSortingLineCode(), ""));
     }
     else
     {
         dgviewnone.DataSource = CigBoxInfoList.GetNonCigBoxList(new QueryCondition("0", false, SortingLine.GetAbNonSortingLineCode(), ""));
         dgviewfin.DataSource  = CigBoxInfoList.GetFinCigBoxList(new QueryCondition("2", false, SortingLine.GetAbNonSortingLineCode(), ""));
     }
 }
Esempio n. 6
0
        public void SaveAbnSortingTaskProcess(int status)
        {
            AbnSortingTaskProgress abnSortingTaskProgress;

            abnSortingTaskProgress        = AbnSortingTaskProgress.GetAbnSortingTaskProgress(ID);
            abnSortingTaskProgress.STATUS = status;
            if (status == 0)
            {
                abnSortingTaskProgress.SORTINGTIME = null;
                abnSortingTaskProgress.FINISHTIME  = null;
            }
            if (status == 1)
            {
                abnSortingTaskProgress.SORTINGTIME = DateTime.Now;
                abnSortingTaskProgress.FINISHTIME  = null;
            }
            if (status == 2)
            {
                abnSortingTaskProgress.SORTINGTIME = DateTime.Now;
                abnSortingTaskProgress.FINISHTIME  = DateTime.Now;
            }
            abnSortingTaskProgress.Save();

            //重汇分拣进度
            try
            {
                Thread thread = new Thread(new ParameterizedThreadStart(SortingProcessList.GetSortingProcessList));
                thread.Start(SortingLine.GetAbNonSortingLineCode());
            }
            catch (Exception)
            {
            }
            //else
            //{
            //    abnSortingTaskProgress = AbnSortingTaskProgress.GetAbnSortingTaskProgress(ID);
            //    abnSortingTaskProgress.SORTINGTIME = DateTime.Now;
            //    abnSortingTaskProgress.FINISHTIME = DateTime.Now;
            //    abnSortingTaskProgress.STATUS = Status;
            //}
        }
Esempio n. 7
0
        public CSortingTask()
        {
            InitializeComponent();

            this.SetStyle(
                ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.OptimizedDoubleBuffer, true);
            Dock           = DockStyle.Fill;
            taskStatus     = TaskStatus.Stop;
            dataGridViewXs = new Dictionary <string, DataGridViewX>();
            dataGridViewXs.Add("superTabItem1", dgviewnone);
            dataGridViewXs.Add("superTabItem3", dgvIssued);
            dataGridViewXs.Add("superTabItem2", dgviewfin);

            //合计使用
            //1.构造中绑定需要合计的列
            //2.绑定数据后调用合计方法
            //3.滚动条事件中重绘合计
            footSumLabel3.Init(dgviewnonedetail, new Dictionary <string, int>()
            {
                { "qTYDataGridViewTextBoxColumn", 0 }
            });
            footSumLabel1.Init(dgvIssueddetail, new Dictionary <string, int>()
            {
                { "qTYDataGridViewTextBoxColumn2", 0 }
            });
            footSumLabel2.Init(dgviewfindetail, new Dictionary <string, int>()
            {
                { "qTYDataGridViewTextBoxColumn4", 0 }
            });



            //SocketCommunication.SocketManager.Instance.EV_SendBoxSuccessed += new EventHandler<SocketCommunication.SortingTaskEventArgs>(Instance_EV_SendBoxSuccessed);

            Thread thread = new Thread(new ParameterizedThreadStart(SortingProcessList.GetSortingProcessList));

            thread.Start(SortingLine.GetNonSortingLineCode());
        }
Esempio n. 8
0
        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
            {
            }
        }
Esempio n. 9
0
        private ISortingLine CreateSortingLine(int id, IEnumerable<char> destinations)
        {
            var sortingLine = new SortingLine(id, Configuration);
            foreach (var destination in destinations.Reverse())
            {
                var car = CreateCar(destination);
                if (car != null)
                {
                    sortingLine.AddCar(car);
                }
            }

            return sortingLine;
        }
Esempio n. 10
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
            { }
        }
Esempio n. 11
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();
                AbnSortingLineTask sortingLineTask = AbnSortingLineTask.GetAbnSortingLineByIndex(indexcolvalue);
                sortingLineTask.Status = status;
                sortingLineTask.SaveAbnSortingTaskProcess(status);



                //改变烟包状态
                List <CigBoxInfo> cigBoxInfoList = CigBoxInfoList.GetBoxInfoByCustiomNo(custvalue, indexcolvalue, SortingLine.GetAbNonSortingLineCode());
                foreach (CigBoxInfo cigBoxInfo in cigBoxInfoList)
                {
                    if (status != 2)
                    {
                        CigBoxInfo.SaveProcess(cigBoxInfo.ID, 0);
                    }
                    else
                    {
                        CigBoxInfo.SaveProcess(cigBoxInfo.ID, status);
                    }
                }
            }
        }
Esempio n. 12
0
        private void btnFinish_Click(object sender, EventArgs e)
        {
            foreach (AbnSortingLineTask abnsortingLineTask in m_nonSortingLineTaskList)
            {
                if (abnsortingLineTask.ID == labSortingtaskno.Tag.ToString())
                {
                    abnsortingLineTask.SaveAbnSortingTaskProcess(2);

                    //成功后保存发送的烟包信息
                    List <CigBoxInfo> cigBoxInfoList = CigBoxInfoList.GetBoxInfoByCustiomNo(abnsortingLineTask.CUSTCODE, abnsortingLineTask.INDEXNO.ToString(), SortingLine.GetAbNonSortingLineCode());
                    foreach (CigBoxInfo cigBoxInfo in cigBoxInfoList)
                    {
                        CigBoxInfo.SaveProcess(cigBoxInfo.ID, 2);
                    }
                }
            }
            LoadOrder();
            FJMainForm.Instance.CAbnBox.LoadCigBox();
        }