/// <summary> /// 运管平台订单同步 正式环境 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _bw_DoWork_Logink(object sender, DoWorkEventArgs e) { DateTime dtNow = DateTime.Now; string msg = dtNow.ToString() + ":【同步TMS运单】 "; MyEventReceiver evevnt = null; ExchangeTransport exchangeTransport = null; int handelCount = 0; try { List <string> senderCodeList = TMSOrderServer.GetAllLoginkSenderCode(); if (senderCodeList.Count == 0) { msg += "没有配置通过运管平台交换数据的上游发货单位"; return; } MyReceiveResponses response = LoginkHelp.Receive(Utility._SecurityURL, Utility._TransportURL, Utility._MyCode, Utility._MyPwd, ref exchangeTransport); if (response == null || response.getEventReceiverList() == null || (response != null && response.getEventReceiverList() != null && response.getEventReceiverList().Count == 0)) { msg += "没有数据接收"; return; } evevnt = response.getEventReceiverList()[0]; string sendCode = evevnt.getEventsender(); if (evevnt.getXmlcontent() != null) { if (!senderCodeList.Contains(sendCode)) { handelCount = 1; msg += "[Code:" + sendCode + "]没有加入系统,不保存此订单数据"; string filePath = Utility.SaveXMLFile(evevnt.getXmlcontent(), dtNow, sendCode); msg += " 已保存XML数据到[" + filePath + "]"; Utility.SaveErrLog(msg, "Order"); return; } try { List <M_TMSOrder> orders = Utility.ParseXMLToObjec <List <M_TMSOrder> >(evevnt.getXmlcontent()); TMSOrderServer.AddTMSOrders_Logink(orders, sendCode); handelCount = 1; Utility.SaveXMLRequestAndRespond(evevnt.getXmlcontent(), string.Empty, "Order", orders.Count.ToString()); msg += "成功同步" + orders.Count + "条数据 Sender[" + sendCode + "]"; } catch (Exception ex) { string filePath = Utility.SaveXMLFile(evevnt.getXmlcontent(), dtNow, sendCode); msg += ex.Message + " ,已保存XML数据到[" + filePath + "]"; SendEmail(new Exception(msg), filePath); } } } catch (Exception ex) { msg += ex.Message + " "; if (ex.Message.Contains("订单解析失败")) { handelCount = 1; } SendEmail(new Exception(msg)); Utility.SaveErrLog(ex.Message, "Order"); } finally { if (evevnt != null && handelCount > 0) { try { if (LoginkHelp.Confirm(exchangeTransport, evevnt.getEventid())) { msg += " 接收确认成功"; } else { msg += " 接收确认失败"; } } catch (Exception ex) { msg += " " + ex.Message; } } Console.WriteLine(msg.Replace("\n", "")); } }
/// <summary> /// 运管平台订单同步 测试环境 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void _bw_DoWork_Logink_Test(object sender, DoWorkEventArgs e) { DateTime dtNow = DateTime.Now; string msg = dtNow.ToString() + ":【同步TMS运单】 "; UReceiveResponse response = null; UUserToken _token = null; int handelCount = 0; try { List <string> senderCodeList = TMSOrderServer.GetAllLoginkSenderCode(); if (senderCodeList.Count == 0) { msg += "没有配置通过运管平台交换数据的上游发货单位"; return; } response = LoginkHelp.Receive_Test(Utility._SecurityURL, Utility._TransportURL, Utility._MyCode, Utility._MyPwd, ref _token); if (response == null || response.getEventReceiverList() == null || (response != null && response.getEventReceiverList() != null && response.getEventReceiverList().Count == 0)) { msg += "没有数据接收"; return; } UEventReceiver evevnt = response.getEventReceiverList()[0]; string sendCode = evevnt.getEventsender(); //如果返回内容中有键值对,则保存到错误日志中 if (evevnt.getSimpledata() != null) { StringBuilder dicStr = new StringBuilder(); foreach (KeyValuePair <string, string> item in evevnt.getSimpledata()) { dicStr.AppendLine(string.Format("key={0},value={1}", item.Key, item.Value)); } handelCount = 1; Utility.SaveErrLog(dicStr.ToString(), "Order"); msg += "接收到的数据存在字典,已保存到ErrLog目录中"; } //接收到的是附件 if (evevnt.getAttachmentData() != null) { handelCount = 1; //保存附件到c盘 FileUtil.writeFile(evevnt.getAttachmentData(), "ErrLog/" + dtNow.ToString("yyyyMMdd_HH:mm:ss") + "_" + sendCode + evevnt.getFilename()); msg += "接收到的数据存在附件,已保存到ErrLog目录中"; } if (evevnt.getXmlcontent() != null) { if (!senderCodeList.Contains(sendCode)) { handelCount = 1; msg += "[Code:" + sendCode + "]没有加入系统,不保存此订单数据"; string filePath = Utility.SaveXMLFile(evevnt.getXmlcontent(), dtNow, sendCode); msg += " 已保存XML数据到[" + filePath + "]"; Utility.SaveErrLog(msg, "Order"); return; } try { List <M_TMSOrder> orders = Utility.ParseXMLToObjec <List <M_TMSOrder> >(evevnt.getXmlcontent()); TMSOrderServer.AddTMSOrders_Logink(orders, sendCode); handelCount = 1; Utility.SaveXMLRequestAndRespond(evevnt.getXmlcontent(), string.Empty, "Order", orders.Count.ToString()); msg += "成功同步" + orders.Count + "条数据 Sender[" + sendCode + "]"; } catch (Exception ex) { string filePath = Utility.SaveXMLFile(evevnt.getXmlcontent(), dtNow, sendCode); msg += ex.Message + " ,已保存XML数据到[" + filePath + "]"; SendEmail(new Exception(msg), filePath); } } } catch (Exception ex) { msg += ex.Message + " "; Utility.SaveErrLog(ex.Message, "Order"); } finally { if (response != null && response.getEventReceiverList() != null && response.getEventReceiverList().Count > 0 && handelCount > 0) { try { if (LoginkHelp.Confirm_Test(response, Utility._TransportURL, _token)) { msg += " 接收确认成功"; } else { msg += " 接收确认失败"; } } catch (Exception ex) { msg += " " + ex.Message; } } Console.WriteLine(msg.Replace("\n", "")); } }