public void QueryData301(string orderNo, ref OrderHead orderHead, ref List<OrderList> orderLists, ref string logisticsNo, ref string logisticsCode) { OrderList orderList = null; SqlDataReader dr = null; try { dr = a_sqlServer.ExePROC("MessageCenterQuery", ConvertToSqlParameters(301, orderNo, "")); if (dr.HasRows) { int i = 1; while (dr.Read()) { if (i == 1) { orderHead = GetOrderHead(dr); logisticsNo = Convert.ToString(dr["logisticsNo"]); logisticsCode = Convert.ToString(dr["logisticsCode"]); } orderList = GetOrderList(dr, i++); OrderList exist = orderLists.Find(o => o.gno.Equals(orderList.gno)); if (exist == null) { orderLists.Add(orderList); } else { exist.qty += orderList.qty; exist.total += orderList.total; } } } } catch (Exception ex) { Logs.Error("Query301DataByOrderNo Exception:" + ex.ToString()); } finally { dr.Close(); } }
public bool CreateMessage301(string orderNo) { bool success = true; OrderHead orderHead = null; List<OrderList> orderLists = null; XElement xele = null; XNamespace ns = null; MessageSql mssql = null; string logisticsNo = null; string logisticsCode = null; MessageService msService = null; try { orderHead = new OrderHead(); orderLists = new List<OrderList>(); mssql = new MessageSql(); mssql.QueryData301(orderNo, ref orderHead, ref orderLists, ref logisticsNo, ref logisticsCode); if (orderHead.guid != new Guid()) { ns = "http://www.chinaport.gov.cn/ceb"; xele = new XElement(ns + "CEB301Message"); xele.SetAttributeValue(XNamespace.Xmlns + "ceb", ns); xele = orderHead.ToXElememt(xele, ns); foreach (var a in orderLists) { xele = a.ToXElememt(xele, ns); } FileUtilities.CreateFolder(ConfigurationInfo.PathSend); string destPath = FileUtilities.GetNewFolderName(true, ConfigurationInfo.PathBackUp, "301") + "\\" + FileUtilities.GetNewFileName(orderNo) + ".xml"; msService = new MessageService(); success = msService.DealMessage301(orderNo, orderHead.orderNo, logisticsNo, false, true, orderHead.guid.ToString(), destPath, logisticsCode); if (!success) { destPath = FileUtilities.GetNewFolderName(true, ConfigurationInfo.PathBackUpError, "301") + "\\" + FileUtilities.GetNewFileName(orderNo) + ".xml"; } xele.Save(ConfigurationInfo.PathSend + "\\" + FileUtilities.GetNewFileName(orderNo) + ".xml"); xele.Save(destPath); if (CheckNeedSendLogistics(logisticsCode)) { MessageCache.AddMessageCache("501_" + orderHead.orderNo, CacheInfo.SetCacheInfo("501", Utilities.SetArrayList(orderHead.orderNo, logisticsCode))); CacheInfo cache503R = CacheInfo.SetCacheInfo("503R", Utilities.SetArrayList(logisticsNo, logisticsCode)); cache503R.createTime = DateTime.Now.AddMinutes(1); MessageCache.AddMessageCache("503R_" + logisticsNo, cache503R); CacheInfo cache601 = CacheInfo.SetCacheInfo("601", Utilities.SetArrayList(logisticsNo, logisticsCode)); cache601.createTime = DateTime.Now.AddMinutes(2); MessageCache.AddMessageCache("601_" + logisticsNo, cache601); } } else { Logs.Info("Does not exist in database: " + orderNo); success = false; } } catch (Exception ex) { Logs.Error("Create301Message Exception:" + ex.ToString()); success = false; } return success; }
private OrderHead GetOrderHead(SqlDataReader dr) { OrderHead result = null; try { result = new OrderHead(); result.guid = Guid.NewGuid(); result.appType = Convert.ToInt32(AppType.Add); result.appTime = DateTime.UtcNow; result.appStatus = Convert.ToInt32(AppStatus.Declare); result.appUid = Convert.ToString(dr["appUid"]); //"8910000308599"; result.appUname = Convert.ToString(dr["appUname"]); //"张钟芮"; result.orderType = OrderType.E; result.orderNo = Convert.ToString(dr["customs_OrderNo"]); result.ebpCode = Convert.ToString(dr["ebpCode"]); //"2117960080"; result.ebpName = Convert.ToString(dr["ebpName"]); //"兴城市天浪电子商务信息有限公司"; result.ebcCode = result.ebpCode; result.ebcName = result.ebpName; result.agentCode = result.ebpCode; //"2114980005"; result.agentName = result.ebpName; //"葫芦岛誉悦国际货运代理有限责任公司"; result.goodsValue = Convert.ToSingle(dr["orderAmount"]); result.freight = Convert.ToSingle(dr["orderFreight"]); result.currency = Convert.ToString(dr["orderFreightCurrency"]); result.consignee = Convert.ToString(dr["consignee"]); result.consigneeAddress = Convert.ToString(dr["consigneeAddress"]); result.consigneeTelephone = Convert.ToString(dr["consigneeTelephone"]); result.consigneeCountry = Convert.ToString(dr["consigneeCountry_Code"]); result.note = null; } catch (Exception ex) { throw new Exception("GetOrderHead Exception:" + ex.ToString()); } return result; }