Ejemplo n.º 1
0
 /// <summary>
 /// 得到打印包裹信息(面单上)
 /// </summary>
 /// <param name="packge"></param>
 /// <returns></returns>
 public static packgeInfoViewModel GetPrintpackge(busi_printwork packge)
 {
     using (var db = SugarDao.GetInstance(Getconnstring.Getmyconnstring()))
     {
         try
         {
             packgeInfoViewModel aa=db.Queryable<busi_custorder>().JoinTable<busi_sendorder>((s1, s2) => s1.order_id == s2.custorder_id)
                 .JoinTable<base_shop>((s1, s3) => s1.shop_id == s3.shop_id)
                 .JoinTable<busi_printwork>((s2, s4) => s2.order_code == s4.data_1)
                 .Where<busi_sendorder>((s1, s2) => s2.order_code == packge.data_1)
                 .Select<busi_sendorder, base_shop, busi_printwork,packgeInfoViewModel>((s1, s2, s3,s4) =>
                 new packgeInfoViewModel()
                 {
                     LastTime=s1.latest_date.ObjToString(),
                     Number=s2.prod_num.ObjToString(),
                     Packgecode=s2.order_code,
                     ShopName=s3.shop_name,
                     workID=s4.p_Workid.ObjToInt()
                 }).FirstOrDefault();
             return aa;
         }
         catch (Exception ex)
         {
             throw ex;
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 包裹打印
        /// </summary>
        /// <param name="Sender"></param>
        /// <param name="e"></param>
        private void Timerpackge_Tick(object Sender, EventArgs e)
        {
            int worktype = 30;
            int p_id     = GetprintID(); //得到打印插件ID
            //1.得到需要打印的包裹号
            List <busi_printwork> list = CommPrint.GetprintInfo(p_id, worktype);

            if (list.Count > 0)//有数据要打印
            {
                foreach (var item in list)
                {
                    if (!Queuepackge.Contains(item.p_Workid))
                    {
                        Queuepackge.Enqueue(item.p_Workid);
                        PrintListpackge.Add(item.p_Workid, item);
                    }
                }
            }
            if (PrintListpackge.Count > 0)//队列中有数据
            {
                try
                {
                    long           workid   = Queuepackge.Peek();
                    busi_printwork mypackge = PrintListpackge[workid]; //取出队列中对象
                    //打印包裹
                    packgeInfoViewModel mymodel = CommPrint.GetPrintpackge(mypackge);
                    if (null == mymodel)
                    {
                        throw new Exception("系统中不存在此店铺名或者此包裹" + mypackge.data_1);
                    }
                    PrintPackge printer = new PrintPackge(mymodel);
                    printer.Print(true);
                    bool isok = CommPrint.FinshPrint(p_id, mypackge);
                    if (!isok)
                    {
                        Log(mypackge.data_1 + "打印失败!");
                    }
                    else
                    {
                        //打印完成清除出队列
                        Queuepackge.Dequeue();
                        PrintListpackge.Remove(workid);
                        Hasprintcount++;
                        label7.Text = Hasprintcount.ToString();
                        Log(mypackge.data_1 + "包裹号已打印。" + DateTime.Now.ToString());
                    }
                }
                catch (Exception ex)
                {
                    Log(ex.ToString());
                }
            }
        }
Ejemplo n.º 3
0
 public PrintPackge(packgeInfoViewModel pack)
 {
     packge = pack;
 }