/// <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; } } }
/// <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()); } } }
public PrintPackge(packgeInfoViewModel pack) { packge = pack; }