public static Myamato GetPrintyamato(busi_printwork packge) { using (var db = SugarDao.GetInstance(Getconnstring.Getmyconnstring())) { try { yamatoShopname aa = db.Queryable<busi_sendorder>().JoinTable<busi_custorder>((s1, s2) => s1.custorder_id == s2.order_id) .JoinTable<busi_custorder,base_shop>((s1,s2, s3) => s2.shop_id == s3.shop_id) .JoinTable<base_shop,base_platform>((s1,s3, s4) => s3.platform_id == s4.platform_id) .Where<busi_sendorder>(s1=> s1.order_code == packge.data_10) .Select<base_shop, base_platform, yamatoShopname>((s1,s3, s4) => new yamatoShopname() { shopname=s3.shop_name, platfromname=s4.platform_name, Shopaddress=s3.shop_address, Shopphone=s3.shop_telephone, Shopzip=s3.shop_zipcode, Companyname = "" }).FirstOrDefault(); if(null==aa) { throw new Exception("无法得到发货定订单信息"); } Myamato pyamato = new Myamato(); pyamato.Shopname = aa.shopname; pyamato.Platform = aa.platfromname; pyamato.Shopzip = aa.Shopzip; pyamato.Shopphone = aa.Shopphone; pyamato.Shopaddress = aa.Shopaddress; pyamato.Companyname = "株式会社ジャパンドレス"; //-------------------------------------------------- pyamato.data_1 = packge.data_1; pyamato.data_2 = packge.data_2; pyamato.data_3 = packge.data_3; pyamato.data_4 = packge.data_4; pyamato.data_5 = packge.data_5; pyamato.data_6 = packge.data_6; pyamato.data_7 = packge.data_7; pyamato.data_8 = packge.data_8; pyamato.data_9 = packge.data_9; pyamato.data_10 = packge.data_10; pyamato.create_DateTime = packge.create_DateTime; pyamato.create_UserID = packge.create_UserID; pyamato.edit_DateTime = packge.edit_DateTime; pyamato.p_idPoint = packge.p_idPoint; pyamato.p_Status = packge.p_Status; pyamato.p_Workid = packge.p_Workid; pyamato.p_WorkRemarks = packge.p_WorkRemarks; pyamato.p_WorkType = packge.p_WorkType; pyamato.Print_DateTime = packge.Print_DateTime; return pyamato; } catch (Exception ex) { throw ex; } } }
/// <summary> /// yamato打印, /// </summary> /// <param name="Sender"></param> /// <param name="e"></param> private void Timeryamato_Tick(object Sender, EventArgs e) { int worktype = 50; int p_id = GetprintID(); //得到打印插件ID //1.得到需要打印的包裹号 List <busi_printwork> list = CommPrint.GetprintInfo(p_id, worktype); //worktype =50 if (list.Count > 0) //有数据要打印 { foreach (var item in list) { if (!Queueyamato.Contains(item.p_Workid)) //data_10存的是包裹号 { Queueyamato.Enqueue(item.p_Workid); PrintListYamato.Add(item.p_Workid, item); } } } if (PrintListYamato.Count > 0)//字典中有数据 { try { long workid = Queueyamato.Peek(); busi_printwork mypackge = PrintListYamato[workid]; //取出队列中对象 //打印yamato Myamato pyamato = CommPrint.GetPrintyamato(mypackge); if (null == pyamato) { throw new Exception("系统中不存在此店铺名或者此包裹" + mypackge.data_10); } PrintYamato printer = new PrintYamato(pyamato); printer.Print(true); bool isok = CommPrint.FinshPrint(p_id, mypackge); //设置已打印的状态 if (!isok) { Log(mypackge.data_1 + "打印失败!"); } else { //打印完成清除出队列 Queueyamato.Dequeue(); PrintListYamato.Remove(workid); Hasprintcount++; label7.Text = Hasprintcount.ToString(); Log(mypackge.data_1 + "包裹号已打印。Yamato" + DateTime.Now.ToString()); } } catch (Exception ex) { Log(ex.ToString()); } } }
/// <summary> /// 直接打印,是否显示打印对话框 /// </summary> /// <param name="p_ShowPrintDialog"></param> public void Print(bool p_ShowPrintDialog) { try { //1.获取打印机插件是否设置了打印拣选单的面单 NewXmlControl xmlfile = new NewXmlControl(Comm.StartupPath + "//config//config.xml", false, "Passport"); bool isexit = xmlfile.IsExitinnertextOfNode("Yamato", "page"); if (isexit) { //设置打印机的名称 //pd.PrinterSettings.PrinterName = xmlfile.GetinnertextOfPrintName("Umail", "page"); } else { throw new Exception("没有配置Yamato面单!请先配置!"); } DataTable dt = new DataTable("table1"); dt.Columns.Add(new DataColumn("ZIPCode", typeof(string))); dt.Columns.Add(new DataColumn("address1", typeof(string))); dt.Columns.Add(new DataColumn("address2", typeof(string))); dt.Columns.Add(new DataColumn("address3", typeof(string))); dt.Columns.Add(new DataColumn("SKU", typeof(string))); dt.Columns.Add(new DataColumn("YamtoCompany1", typeof(string))); dt.Columns.Add(new DataColumn("YamtoCompany2", typeof(string))); dt.Columns.Add(new DataColumn("YamtoCompany3", typeof(string))); dt.Columns.Add(new DataColumn("YamtoCompany4", typeof(string))); dt.Columns.Add(new DataColumn("Phone", typeof(string))); dt.Columns.Add(new DataColumn("CustumerName", typeof(string))); dt.Columns.Add(new DataColumn("ExpressCode", typeof(string))); dt.Columns.Add(new DataColumn("MessageForBuyer", typeof(string))); dt.Columns.Add(new DataColumn("SendShopname", typeof(string))); dt.Columns.Add(new DataColumn("packgecode", typeof(string))); //OurZipCode dt.Columns.Add(new DataColumn("OurZipCode", typeof(string))); //OurZipCode dt.Columns.Add(new DataColumn("Ourtelephone", typeof(string))); //OurZipCode dt.Columns.Add(new DataColumn("OurCompannyAddress", typeof(string))); //OurZipCode DataRow row = dt.NewRow(); //判断是否存在 - 符号 if (string.IsNullOrEmpty(pwork.data_4)) { new main().Log(pwork.data_4 + "包裹号不存在邮编,请确认!"); //Log(DateTime.Now.ToString()); return; //"〒 160-0023"; } if (pwork.data_4.Contains("-")) { row["ZIPCode"] = "〒 " + pwork.data_1; //"〒 160-0023"; } else { row["ZIPCode"] = "〒 " + pwork.data_1.Insert(3, "-"); } if (string.IsNullOrEmpty(pwork.data_5)) { new main().Log(pwork.data_5 + "包裹号不存在地址,请确认!"); //Log(DateTime.Now.ToString()); return; //"〒 160-0023"; } if (pwork.data_5.Length > 30) { row["address1"] = pwork.data_5.Substring(0, 9); //"金华金帆街172金字火腿"; row["address2"] = pwork.data_5.Substring(9, 21); //"乐诚网络"; row["address3"] = pwork.data_5.Substring(30); } else if (pwork.data_5.Length <= 30 || pwork.data_5.Length >= 9) { row["address1"] = pwork.data_5.Substring(0, 9); //"金华金帆街172金字火腿"; row["address2"] = pwork.data_5.Substring(9); //"乐诚网络"; row["address3"] = ""; } else if (pwork.data_5.Length < 9) { row["address1"] = pwork.data_5; //"金华金帆街172金字火腿"; row["address2"] = ""; //"乐诚网络"; row["address3"] = ""; } row["SKU"] = pwork.data_7; row["YamtoCompany1"] = "ヤマト運輸株式会社"; row["YamtoCompany2"] = "北東京物流システム支店"; //,西新宿3丁目センター row["YamtoCompany3"] = "この荷物が郵便物ではありません 030-600"; //036-292 row["YamtoCompany4"] = "お問い合せ先 フリーダイヤル 0120-11-8010"; //判断是否存在 - 符号 if (pwork.data_3.Contains("-")) { row["Phone"] = pwork.data_3; //"〒 160-0023"; MessageForBuyer } else { row["Phone"] = pwork.data_3.Insert(3, "-").Insert(8, "-"); } row["CustumerName"] = pwork.data_2; row["ExpressCode"] = pwork.data_9; row["MessageForBuyer"] = null;//pwork.data_9; row["SendShopname"] = "Shop: " + pwork.Platform + " + " + pwork.Shopname; row["packgecode"] = pwork.data_10; row["OurZipCode"] = pwork.Shopzip; row["Ourtelephone"] = pwork.Shopphone; row["OurCompannyAddress"] = pwork.Shopaddress; dt.Rows.Add(row); PrintCenter printer = new PrintCenter(); printer.ZPLPrintYamato(dt, true, 1); dt.Clear(); pwork = null; } catch (Exception ex) { throw ex; } }
private Myamato pwork; //打印信息存储类 //通过构造函数传递进来 public PrintYamato(Myamato p) { pwork = p; }