void BindOrderHeadData(SoOrder order, OrderHead head, CBFnOnlinePayment payment, SoReceiveAddress srenity, string buyer_idcard, string District, string City, string Province, WhWarehouse warehouseMod, BsArea wareDistrictEntity, BsArea wareCityEntity, BsArea wareProvinceEntity) { head.cbeCode = config2.CIECode; head.cbeName = config2.CIEName; head.ecpCode = config2.CIECode; head.ecpName = config2.CIEName; head.orderNo = payment.BusinessOrderSysNo; head.charge = order.OrderAmount; head.goodsValue = order.ProductAmount; head.freight = order.FreightAmount; head.other = 0; head.tax = order.TaxFee; head.currency = "142"; head.customer = srenity.Name; head.shipper = warehouseMod.Contact; head.shipperAddress = wareProvinceEntity.AreaName + " " + wareCityEntity.AreaName + " " + wareDistrictEntity.AreaName + " " + warehouseMod.StreetAddress; head.shipperTelephone = warehouseMod.Phone; head.consignee = srenity.Name; head.consigneeAddress = Province + " " + City + " " + District + " " + srenity.StreetAddress; head.consigneeTelephone = srenity.MobilePhoneNumber; head.idType = "1"; head.customerId = srenity.IDCardNo; head.accessType = "1"; head.ieType = "I"; head.modifyMark = "1"; head.appTime = DateTime.Now.ToString("yyyyMMddHHmmss"); head.appStatus = "2"; }
/// <summary> /// 更新地区信息 /// </summary> /// <param name="model">地区信息实体,根据sysno</param> /// <returns>受影响的行数</returns> /// <remarks> /// 2013-08-02 郑荣华 创建 /// </remarks> public override int Update(BsArea model) { return(Context.Update("BsArea", model) .AutoMap(x => x.SysNo, x => x.CreatedBy, x => x.CreatedDate) .Where(x => x.SysNo) .Execute()); }
/// <summary> /// 根据地区编号,获取省市区信息 /// </summary> /// <param name="sysNo">地区编号</param> /// <param name="cityEntity">城市信息</param> /// <param name="areaEntity">地区信息</param> /// <returns>区域信息</returns> /// <remarks> /// 2013-06-14 朱成果 创建 /// </remarks> public BsArea GetProvinceEntity(int sysNo, out BsArea cityEntity, out BsArea areaEntity) { //优化 return IBsAreaDao.Instance.GetProvinceEntity(sysNo, out cityEntity, out areaEntity); cityEntity = null; areaEntity = null; BsArea provinceEntity = null; BsArea model = GetArea(sysNo); //地区信息不存在 while (model != null && model.AreaLevel >= 1) { switch (model.AreaLevel) { //省 case 1: provinceEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; //市 case 2: cityEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; //区 case 3: areaEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; } model = GetArea(model.ParentSysNo); } return(provinceEntity); }
/// <summary> /// 修改地区状态 /// </summary> /// <param name="area">地区实体</param> /// <returns>返回受影响行数</returns> /// <remarks>2013-08-16 周瑜 创建</remarks> public override int UpdateStatus(BsArea area) { return(Context.Sql("update bsarea set Status = @Status, LastUpdateBy = @LastUpdateBy, LastUpdateDate = @LastUpdateDate where SysNo = @SysNo") .Parameter("Status", area.Status) .Parameter("LastUpdateBy", area.LastUpdateBy) .Parameter("LastUpdateDate", area.LastUpdateDate) .Parameter("SysNo", area.SysNo) .Execute()); }
/// <summary> /// 创建地区信息 /// </summary> /// <param name="model">地区信息实体</param> /// <returns>创建的地区信息sysNo</returns> /// <remarks> /// 2013-08-02 郑荣华 创建 /// </remarks> public override int Create(BsArea model) { if (model.LastUpdateDate == DateTime.MinValue) { model.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; } return(Context.Insert("BsArea", model) .AutoMap(x => x.SysNo) .ExecuteReturnLastId <int>("SysNo")); }
/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> /// <returns></returns> /// <remarks> /// 2014-05-15 朱成果 创建 /// </remarks> public bool UpdateEntity(BsArea entity) { var r = IBsAreaDao.Instance.Update(entity) > 0; if (r) { //清缓存 MemoryProvider.Default.Remove(KeyConstant.AreaAll); } return(r); }
/// <summary> /// 创建地区信息 /// </summary> /// <param name="model">地区信息实体</param> /// <returns>创建的地区信息sysNo</returns> /// <remarks> /// 2013-08-02 郑荣华 创建 /// </remarks> public int Create(BsArea model) { model.DisplayOrder = 1; var lstAll = GetAll(); if (lstAll != null && lstAll.Count > 0) { model.DisplayOrder = lstAll.Select(m => m.DisplayOrder).Max() + 1; } var r = IBsAreaDao.Instance.Create(model); Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, "添加地区", LogStatus.系统日志目标类型.地区信息, r); //清缓存. MemoryProvider.Default.Remove(KeyConstant.AreaAll); return(r); }
/// <summary> /// 获取地址数据 /// </summary> /// <param name="token">令牌</param> /// <param name="SysNo">编号</param> /// <returns>返回地址json数据</returns> public object GetCustomerAddress(string token, int SysNo) { Result result = new Result(); try { CrCustomerMobileLogin Sylogin = CrCustomerMobileLoginBo.Instance.GetModByTokenAndDeviceCode(token, ""); if (Sylogin != null) { var mod = Hyt.BLL.CRM.CrReceiveAddressBo.Instance.GetCrReceiveAddress(SysNo); List <BsArea> areaList = BasicAreaBo.Instance.GetAll(); BsArea area = areaList.Find(p => p.SysNo == mod.AreaSysNo); BsArea city = areaList.Find(p => p.SysNo == area.ParentSysNo); BsArea pro = areaList.Find(p => p.SysNo == city.ParentSysNo); return(new { Status = true, Message = "完成", Data = new { SysNo = mod.SysNo, Name = mod.Name, Phone = mod.PhoneNumber, ProvinceCode = pro.SysNo, Province = pro.AreaName, CityCode = city.SysNo, City = city.AreaName, DistrictCode = area.SysNo, District = area.AreaName, IDCardNo = mod.IDCardNo } }); } else { result.Status = false; result.Message = "未登录,请登录后再操作"; } } catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
/// <summary> /// 修改地区状态 /// </summary> /// <param name="area">地区实体</param> /// <returns>返回受影响行数</returns> /// <remarks>2013-08-16 周瑜 创建</remarks> public int UpdateStatus(BsArea area) { if (area == null) { return(0); } var model = BasicAreaBo.Instance.GetArea(area.SysNo); if (model == null) { return(0); } model.Status = area.Status; model.LastUpdateBy = area.LastUpdateBy; model.LastUpdateDate = area.LastUpdateDate; return(BasicAreaBo.Instance.UpdateEntity(area)?1:0); }
/// <summary> /// 获取地区信息扩展 /// </summary> /// <param name="entity">地区信息</param> /// <returns>地区信息扩展</returns> /// <remarks> /// 2014-05-15 朱成果 创建 /// </remarks> private CBBsArea2 GetCBBsArea2(BsArea entity) { if (entity == null) { return(null); } CBBsArea2 arr2 = new CBBsArea2(); var baseType = typeof(BsArea); var allPropertie = baseType.GetProperties(); foreach (var propertie in allPropertie) { if (propertie.CanRead && propertie.CanWrite) { propertie.SetValue(arr2, propertie.GetValue(entity, null), null); } } return(arr2); }
/// <summary> /// 更新地区信息,只更新了,编码,区名称,父级sysno /// </summary> /// <param name="originalModel">地区信息实体,根据sysno</param> /// <returns>成功true,失败false</returns> /// <remarks> /// 2013-08-02 郑荣华 创建 /// </remarks> public bool Update(BsArea originalModel) { var model = GetArea(originalModel.SysNo); model.ParentSysNo = originalModel.ParentSysNo; var pmodel = GetArea(model.ParentSysNo); if (pmodel != null) { model.AreaLevel = pmodel.AreaLevel + 1; } model.AreaName = originalModel.AreaName; model.AreaCode = originalModel.AreaCode; model.LastUpdateBy = originalModel.LastUpdateBy; model.LastUpdateDate = DateTime.Now; var r = UpdateEntity(model); if (r) { Log.SysLog.Instance.Info(LogStatus.系统日志来源.后台, "修改地区", LogStatus.系统日志目标类型.地区信息, model.SysNo); } return(r); }
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderSysno"></param> /// <returns> /// 2016-04-09 陈海裕 创建 /// 2016-08-20 杨浩 重构 /// </returns> public override Result AddOrderTrade(int orderSysno) { LogisticsLogin(); var result = new Result <string>(); result.Status = false; result.StatusCode = 0; result.Message = "接口调用失败"; string url = RequestUrl + "Express/uploadOrders"; if (orderSysno <= 0) { return(result); } try { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); if (order == null) { result.Message = "该订单不存在"; return(result); } order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); var voucherFilter = new ParaVoucherFilter(); voucherFilter.SourceSysNo = order.SysNo; var recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault(); recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 CBWhWarehouse warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea shipperDistrict = BLL.Basic.BasicAreaBo.Instance.GetAreaList(warehouse.CitySysNo).FirstOrDefault(); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); BsArea shipperProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.ProvinceSysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); ParaOnlinePaymentFilter filter = new ParaOnlinePaymentFilter(); filter.OrderSysNo = orderSysno; var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault(); Regex regex = new Regex("\t|\n|\r"); OrderList newOrderList = new OrderList(); newOrderList.PrintType = "@1,@2"; newOrderList.list = new List <LGOrder>(); LGOrder newOrder = new LGOrder(); newOrder.Addr = "中国," + receiverProvince.AreaName + "," + receiverCity.AreaName + "," + receiverDistrict.AreaName + "," + order.ReceiveAddress.StreetAddress; newOrder.Addr = regex.Replace(newOrder.Addr, ""); newOrder.CardNo = order.ReceiveAddress.IDCardNo; newOrder.Create_Addr = "中国," + shipperProvince.AreaName + "," + shipperCity.AreaName + "," + shipperDistrict.AreaName + ","; newOrder.Create_Addr = regex.Replace(newOrder.Create_Addr, ""); newOrder.Create_CardNo = ""; newOrder.Create_Name = "澳门爱勤"; newOrder.Create_Phone = !string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.MobilePhoneNumber : dealer.PhoneNumber; newOrder.id = order.SysNo.ToString(); newOrder.Name = order.ReceiveAddress.Name; newOrder.OrderType = "A"; newOrder.PayCardNo = order.ReceiveAddress.IDCardNo; newOrder.PayCurrency = "CNY"; newOrder.PayName = order.ReceiveAddress.Name; newOrder.PayNo = recVoucher.VoucherItems[0].VoucherNo; newOrder.PayPhone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.PayRemark = ""; newOrder.PayTime = order.CreateDate.ToString(); newOrder.PayType = GetPayType(order.PayTypeSysNo);// "alipay"; newOrder.PayUser = order.CustomerSysNo.ToString(); newOrder.Phone = newOrder.PayPhone; newOrder.Price = order.OrderAmount; newOrder.Remark = order.DeliveryRemarks; newOrder.TaxFee = order.TaxFee; newOrder.TranFee = order.FreightAmount; newOrder.Content = ""; foreach (var item in order.OrderItemList) { var productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo); newOrder.Content += productStock.Barcode + "," + item.Quantity + "," + item.SalesUnitPrice + "|"; } if (!string.IsNullOrWhiteSpace(newOrder.Content)) { newOrder.Content = newOrder.Content.Substring(0, newOrder.Content.Length - 1); } newOrderList.list.Add(newOrder); Dictionary <string, string> paramsData = new Dictionary <string, string>(); paramsData.Add("token", IdentifyPass); paramsData.Add("postdata", Util.Serialization.JsonUtil.ToJson(newOrderList)); string postData = InitParams(paramsData); string responseStr = GetResponse(url, postData); var jObject = JObject.Parse(responseStr); var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderSysno; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = ""; soOrderSyncLogisticsLog.Packets = postData; soOrderSyncLogisticsLog.ReceiptContent = responseStr; string status = jObject["status"].ToString(); if (status == "-1") { result.Status = false; result.Message = "未登录,请重试!"; IdentifyPass = string.Empty;//清空身份凭证 } else if (status == "1") { for (int i = 0; i < jObject["data"].Count(); i++) { if (jObject["data"][i]["status"].ToString() == "1") { soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LogisticsOrderId = jObject["data"][i]["id"].ToString(); soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno); result.Status = true; result.Message = "推单成功"; } else { soOrderSyncLogisticsLog.CreateDate = DateTime.Now; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); result.Status = false; result.Message = jObject["data"][i]["message"].ToString(); } } } else { try { SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); } catch { } result.Status = false; result.Message = jObject["message"].ToString(); } } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } return(result); }
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderId">销售订单系统编号</param> /// <returns></returns> /// <remarks> /// 2016-3-21 杨浩 创建 /// 2016-4-19 陈海裕 重构 /// </remarks> public override Result AddOrderTrade(int orderId) { var result = new Result() { Status = false, StatusCode = 0, Message = "向" + this.Code + "物流推送订单失败" }; try { var order = Hyt.BLL.Order.SoOrderBo.Instance.GetEntity(orderId); if (order == null) { result.Status = false; result.Message = string.Format("订单号{0}不存在!", orderId); result.StatusCode = -100; } #region 旧参数 //var receiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); //if (receiveAddress == null) //{ // result.Status = false; // result.Message = string.Format("订单中的收货地址编号{0}不存在!", order.ReceiveAddressSysNo); // result.StatusCode = -101; //} //var area = BLL.Basic.BasicAreaBo.Instance.GetArea(receiveAddress.AreaSysNo); //if (area == null) //{ // result.Status = false; // result.Message = string.Format("地区({0})不存在!", receiveAddress.AreaSysNo); // result.StatusCode = -103; //} //var city = BLL.Basic.BasicAreaBo.Instance.GetArea(area.ParentSysNo); //if (city == null) //{ // result.Status = false; // result.Message = string.Format("城市({0})不存在!", area.ParentSysNo); // result.StatusCode = -104; //} //var province = BLL.Basic.BasicAreaBo.Instance.GetArea(city.ParentSysNo); //if (province == null) //{ // result.Status = false; // result.Message = string.Format("省份({0})不存在!", city.ParentSysNo); // result.StatusCode = -105; //} //if (!result.Status) // return result; //var param = "{\"orderId\":\"" + order.OrderNo + "\","; //param += "\"addr\":\"" + receiveAddress.StreetAddress + "\","; //param += "\"phone\":\"" + receiveAddress.MobilePhoneNumber + "\","; //param += "\"freight\":" + order.FreightAmount + ",";//运费 //param += "\"orderDate\":\"" + order.CreateDate.ToString("yyyy-MM-dd") + "\","; //param += "\"province\":\"" + JsonStrEscape(province.AreaName) + "\","; //param += "\"city\":\"" + JsonStrEscape(city.AreaName) + "\","; //param += "\"area\":\"" + JsonStrEscape(area.AreaName) + "\","; //param += "\"total\":" + order.ProductAmount + ",";//订单总金额 //param += "\"insuredFee\":0,"; //保价费用 //param += "\"cardType\":\"0\","; //证件类型 (默认身份证则填0) //param += "\"expressCode\":\"SF\","; //物流公司编码 //param += "\"busiMode\":\"BBC\","; //所属业务模式 (BBC/备货BC/直邮BC/个人物品) //param += "\"whCode\":\"FLC\","; //发货仓库代号 //param += "\"portCode\":\"5141\","; //口岸编码 //param += "\"platformCode\":\"IE150604146855\",";//海关企业备案号 //param += "\"cardNo\":\"" + receiveAddress.IDCardNo + "\",";//顾客身份证 //param += "\"name\":\"" + JsonStrEscape(receiveAddress.Name) + "\","; ////param += "\"senderContact\":\"测试公司\","; ////param += "\"senderPhone\":\"13500000000\","; ////param += "\"tax\":\"" + orderInfo.TaxFee + "\","; //param += "\"orderItemList\":{"; //param += "\"orderItems\":["; //var orderItemList = Hyt.BLL.Web.SoOrderBo.Instance.GetOrderItemListByOrderSysNo(orderId); //string orderItem = ""; //foreach (var item in orderItemList) //{ // if (orderItem != "") // orderItem += ","; // orderItem += "{"; // //8712400110037 // //orderItem += "\"qty\":" + item.Quantity + ",\"price\":" + item.SalesUnitPrice + ",\"total\":" + item.SalesAmount + ",\"productId\":\""+item.ErpCode+"\",\"productName\":\"" + JsonStrEscape(item.ProductName) + "\""; // orderItem += "\"qty\":" + item.Quantity + ",\"price\":" + item.SalesUnitPrice + ",\"total\":" + item.SalesAmount + ",\"productId\":\"8712400110136\",\"productName\":\"" + JsonStrEscape(item.ProductName) + "\""; // orderItem += "}"; //} //param += orderItem; //param += "]}}"; #endregion string method = "wtdex.trade.order.add"; order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); //ParaVoucherFilter voucherFilter = new ParaVoucherFilter(); //voucherFilter.SourceSysNo = order.SysNo; //CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault(); //recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo); var filter = new ParaOnlinePaymentFilter(); filter.OrderSysNo = orderId; var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault(); if (onlinePayment == null) { result.Message = "订单不存在在线支付记录"; return(result); } // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 CBWhWarehouse warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); var newOrder = new WTDOrder(); newOrder.addr = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim(); newOrder.area = TConvert.ToString(receiverDistrict.AreaName).Trim(); newOrder.busiMode = "BC"; newOrder.cardNo = TConvert.ToString(order.ReceiveAddress.IDCardNo); newOrder.cardType = "0"; newOrder.city = TConvert.ToString(receiverCity.AreaName).Trim(); newOrder.consumerAddr = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim(); newOrder.consumerArea = TConvert.ToString(receiverDistrict.AreaName).Trim(); newOrder.consumerCity = TConvert.ToString(receiverCity.AreaName).Trim(); newOrder.consumerName = TConvert.ToString(order.ReceiveAddress.Name); newOrder.consumerPhone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.consumerProvince = TConvert.ToString(receiverProvince.AreaName).Trim(); newOrder.destCity = null; newOrder.expressCode = "YT";// "SF"; newOrder.expressNo = null; newOrder.freight = (double)order.FreightAmount; newOrder.ieFlag = null; newOrder.insuredFee = 0d; newOrder.invoice = null; newOrder.invoiceHead = null; newOrder.invoiceType = null; newOrder.isgac = 1; newOrder.isactpay = "0"; newOrder.isactlogistics = "1"; newOrder.mobile = null; newOrder.name = TConvert.ToString(order.ReceiveAddress.Name); newOrder.notes = TConvert.ToString(order.Remarks).Trim(); newOrder.orderDate = order.CreateDate.ToString("yyyy-MM-dd"); newOrder.orderId = onlinePayment.BusinessOrderSysNo; newOrder.paymentCode = null; newOrder.phone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.pickMode = "0";//BC、PS情况下必填0:散货/包裹1:大货/备货,有货物在我们仓库 newOrder.platformCode = config.PlatformCode; newOrder.portCode = config.PortCode; newOrder.prodFlag = null; newOrder.province = TConvert.ToString(receiverProvince.AreaName).Trim(); newOrder.seller = null; newOrder.senderContact = TConvert.ToString(dealer.ErpName); newOrder.senderPhone = !string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.MobilePhoneNumber : dealer.PhoneNumber; newOrder.tax = (double)order.TaxFee; newOrder.total = (double)order.ProductAmount; //newOrder.total = 100d; newOrder.whCode = TConvert.ToString(warehouse.LogisWarehouseCode); newOrder.zipCode = null; newOrder.orderItemList = new WTDOrderItemList(); newOrder.orderItemList.orderItems = new List <WTDOrderItem>(); WTDOrderItem orderItem = new WTDOrderItem(); foreach (var item in order.OrderItemList) { var product = BLL.Product.PdProductBo.Instance.GetProductNoCache(item.ProductSysNo); orderItem.groupBarcode = null; orderItem.isGroup = null; orderItem.postTax = null; orderItem.price = (double)item.SalesUnitPrice; orderItem.productId = product.ErpCode; orderItem.productName = TConvert.ToString(item.ProductName); orderItem.qty = item.Quantity; orderItem.total = (double)item.SalesAmount; newOrder.orderItemList.orderItems.Add(orderItem); //orderItem.groupBarcode = null; //orderItem.isGroup = null; //orderItem.postTax = null; //orderItem.price = 50d; //orderItem.productId = "8712400110136"; //orderItem.productName = TConvert.ToString(item.ProductName); //orderItem.qty = 2; //orderItem.total = 100d; //newOrder.orderItemList.orderItems.Add(orderItem); //break; } string postData = Util.Serialization.JsonUtil.ToJson2(newOrder); postData = InitParams(method, postData); var _result = Hyt.Util.WebUtil.PostForm(apiUrl, postData); result = GetResponseResult(_result); if (result.Status == true) { var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderId; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = ""; soOrderSyncLogisticsLog.Packets = postData; soOrderSyncLogisticsLog.ReceiptContent = _result; soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LogisticsOrderId = ""; soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderId); } } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } return(result); }
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderId">销售订单系统编号</param> /// <returns></returns> /// <remarks></remarks> /// <remarks>2016-3-8 杨浩 创建</remarks> /// <remarks>2016-09-22 周 重构</remarks> public override Result AddOrderTrade(int orderId) { var result = new Result() { Status = false, StatusCode = 0, Message = "向" + this.Code + "物流推送订单失败" }; #region try { var order = Hyt.BLL.Order.SoOrderBo.Instance.GetEntity(orderId); if (order == null) { result.Status = false; result.Message = string.Format("订单号{0}不存在!", orderId); result.StatusCode = -100; } order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); var filter = new ParaOnlinePaymentFilter(); filter.OrderSysNo = orderId; var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault(); if (onlinePayment == null) { result.Message = "订单不存在在线支付记录"; return(result); } // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 CBWhWarehouse warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); var newOrder = new CreatedOrderApiRequest(); newOrder.OutOrderNo = order.SysNo.ToString(); newOrder.DeliveryCode = "3";//暂时默认1(后期此参数作废) newOrder.ReceiverName = TConvert.ToString(order.ReceiveAddress.Name); newOrder.ReceiverMobile = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.ReceiverProvince = TConvert.ToString(receiverProvince.AreaName).Trim(); newOrder.ReceiverCity = TConvert.ToString(receiverCity.AreaName).Trim(); newOrder.ReceiverDistrict = TConvert.ToString(receiverDistrict.AreaName).Trim(); newOrder.ReceiverAddress = TConvert.ToString(order.ReceiveAddress.StreetAddress).Trim(); newOrder.ReceiverIdCard = TConvert.ToString(order.ReceiveAddress.IDCardNo); newOrder.ReceiverFrontIdCardImageUrl = HttpContext.Current.Request.Url.Host + TConvert.ToString(order.ReceiveAddress.IDCardImgs); newOrder.ReceiverOppositeIdCardImageUrl = HttpContext.Current.Request.Url.Host + TConvert.ToString(order.ReceiveAddress.IDCardImgs); newOrder.UserRemark = order.Remarks; newOrder.ThirdPlatformPaymentName = Enum.GetName(typeof(Hyt.Model.CommonEnum.PayCode), order.PayTypeSysNo); var payment = Hyt.BLL.Finance.FinanceBo.Instance.GetOnlinePaymentBySourceSysNo(orderId); string PaymentNumber = ""; if (payment != null) { PaymentNumber = payment.VoucherNo; } newOrder.ThirdPlatformPaymentNumber = PaymentNumber; newOrder.Items = new List <CreatedOrderItemRequest>(); CreatedOrderItemRequest orderItem = new CreatedOrderItemRequest(); foreach (var item in order.OrderItemList) { var product = BLL.Product.PdProductBo.Instance.GetProductNoCache(item.ProductSysNo); orderItem.SkuId = product.ErpCode; orderItem.Quantity = item.Quantity; newOrder.Items.Add(orderItem); } var json = Newtonsoft.Json.JsonConvert.SerializeObject(newOrder); //推送订单 var _result = CreatedOrder(newOrder); if (_result.ResultCode == 200) { var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderId; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = ""; soOrderSyncLogisticsLog.Packets = json; soOrderSyncLogisticsLog.ReceiptContent = _result.Tag.ToString(); soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LogisticsOrderId = ""; soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderId); result.Message = "向" + this.Code + "物流推送订单成功:回执单号:" + _result.Tag.ToString(); } else { result.Message = _result.Message; } } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } #endregion return(result); }
public override Result AddOrderTrade(int orderSysno) { Result result = new Result(); try { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); var config = Hyt.BLL.Config.Config.Instance.GetAnnaConfig(); CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim().ToUpper(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo); payment.CusPaymentCode = config.PaymentCode; IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); order.OrderItemList = new List <SoOrderItem>(); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); order.OrderItemList.Add(item); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); foreach (var mod in productList) { var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo); if (tempitem != null) { tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name; } } OrderShip orderShip = new OrderShip(); orderShip.storeCode = config.WhNumber; orderShip.orderCode = payment.BusinessOrderSysNo;//order.OrderNo; orderShip.orderType = "TRANS"; orderShip.createTime = order.CreateDate.ToString("yyy-MM-dd hh:mm:ss"); orderShip.checker = order.AuditorSysNo.ToString(); orderShip.checkTime = order.AuditorDate.ToString("yyy-MM-dd hh:mm:ss"); orderShip.payTime = payment.CreatedDate.ToString("yyy-MM-dd hh:mm:ss"); orderShip.sourcePlatformCode = "ZY"; orderShip.sourceOrderCode = order.SysNo.ToString(); orderShip.receiver = new Receiver() { receiverAddress = srenity.StreetAddress.Replace("\n", "").Replace("\r", ""), receiverProvince = Province.Replace("\n", "").Replace("\r", ""), receiverCity = City.Replace("\n", "").Replace("\r", ""), receiverDistrict = District.Replace("\n", "").Replace("\r", ""), receiverCountry = "中国", receiverIdNumber = buyer_idcard, receiverName = srenity.Name, receiverMobile = srenity.MobilePhoneNumber, receiverPhone = srenity.PhoneNumber }; orderShip.invoiceFlag = "N"; orderShip.codFlag = "N"; orderShip.gotAmount = order.OrderAmount; orderShip.arAmount = order.OrderAmount; orderShip.insuranceFlag = "N"; orderShip.orderTotalAmount = order.ProductAmount + order.TaxFee + order.FreightAmount + order.ProductChangeAmount; orderShip.orderActualAmount = order.OrderAmount; orderShip.totalAmount = order.OrderAmount; orderShip.orderGoodsAmount = order.ProductAmount + order.ProductChangeAmount; orderShip.feeAmount = order.FreightAmount; orderShip.orderTaxAmount = order.TaxFee; orderShip.payEntNo = payment.CusPaymentCode; orderShip.payEnterpriseName = payment.PaymentName;//"支付宝(中国)网络技术有限公司"; orderShip.recipientProvincesCode = "440000"; var deliverTypeInfo = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); if (deliverTypeInfo != null && string.IsNullOrWhiteSpace(deliverTypeInfo.OverseaCarrier) || deliverTypeInfo == null) { orderShip.courierCode = config.CourierCode; } else { orderShip.courierCode = deliverTypeInfo.OverseaCarrier; } string importType = ""; if (warehouseMod.WarehouseType == 30) { importType = "BBC"; } else if (warehouseMod.WarehouseType == 40) { importType = "BC"; } orderShip.buyerId = customer.Account; orderShip.importType = importType; orderShip.portload = "142"; orderShip.items = new List <Items>(); int rowIndex = 0; foreach (var item in datao) { rowIndex++; item.SalesUnitPrice = ((item.SalesAmount + item.ChangeAmount) / item.Quantity); orderShip.items.Add(new Items() { actualPrice = item.SalesUnitPrice, barCode = item.BarCode, discountAmount = item.DiscountAmount, inventoryType = "ZP", itemCode = item.ErpCode, itemName = item.ProductName.Replace("+", ""), orderLineNo = rowIndex.ToString(), originCountry = item.OrginCountry, quantity = item.Quantity, retailPrice = item.OriginalPrice, subOrderCode = item.SysNo.ToString(), supplierCode = config.supplierCode, supplierName = config.supplierName, weight = Convert.ToInt32((item.NetWeight * 1000)) }); } orderShip.sender = new Sender() { senderAddress = warehouseMod.StreetAddress.Trim(), senderProvince = wareProvinceEntity.AreaName.Trim(), senderCity = wareCityEntity.AreaName.Trim(), senderDistrict = wareDistrictEntity.AreaName.Trim(), senderCountry = "中国", senderName = config.SenderUser.Trim(), senderMobile = warehouseMod.Phone, senderPhone = warehouseMod.Phone, senderIdNumbe = config.SenderIdNumber }; Dictionary <string, string> dicKeyList = new Dictionary <string, string>(); dicKeyList.Add("notifyId", DateTime.Now.ToString("yyMMddHHmmssffff")); dicKeyList.Add("notifyTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); dicKeyList.Add("format", "json"); dicKeyList.Add("signMethod", "md5"); dicKeyList.Add("busiType", "alog.ordership.notify"); dicKeyList.Add("partnerCode", config.OnNumber); dicKeyList.Add("ownerCode", config.OnNumber); dicKeyList.Add("content", JsonUtil.ToJson(orderShip));// dicKeyList["content"] = dicKeyList["content"].Replace("\"courierCode\":null,", ""); Dictionary <string, string> dic1Asc1 = (from d in dicKeyList orderby d.Key ascending select d).ToDictionary(k => k.Key, v => v.Value); string strParams = ""; foreach (string key in dic1Asc1.Keys) { if (!string.IsNullOrEmpty(strParams)) { strParams += "&"; } strParams += key + "=" + dic1Asc1[key]; } string sign = Hyt.Util.Security.UserMd5(config.secretKey + strParams.Replace("&", "").Replace("=", "") + config.secretKey).ToUpper(); strParams = "sign=" + sign + "&" + strParams; string testData = MyHttp.GetResponse(config.URLPath, strParams, "utf-8"); //{"success":true,"errCode":"","errMsg":"","courierCode":"SF","mailNo":"444746031132"} PosDataResult postResult = JsonUtil.ToObject <PosDataResult>(testData); if (postResult.success) { Hyt.BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity( new CrossBorderLogisticsOrder() { ExpressNo = postResult.courierCode + "_" + postResult.mailNo, LogisticsCode = 0, LogisticsOrderId = strParams, SoOrderSysNo = orderSysno, } ); string express = postResult.courierCode + "_" + postResult.mailNo; BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.成功, 3, order.SysNo); result.Status = postResult.success; } else { result.Status = postResult.success; result.Message = testData; } }catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
public abstract BsArea GetProvinceEntity(int sysNo, out BsArea cityEntity, out BsArea areaEntity);
/// <summary> /// 获取快递单号 /// </summary> /// <param name="orderId"></param> /// <returns></returns> /// <remarks>2016-9-3 杨浩 创建</remarks> private Result GetExpressno(string orderId) { var config = Hyt.BLL.Config.Config.Instance.GetGaoJieConfig(); var result = new Result <SoOrderSyncLogisticsLog>(); var orderInfo = BLL.Order.SoOrderBo.Instance.GetEntity(int.Parse(orderId)); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(orderInfo.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(orderInfo.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(orderInfo.SysNo); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(orderInfo.SysNo); string goods_Names = ""; int goods_Nums = 0; decimal goods_Weight = 0; foreach (var mod in datao) { if (!string.IsNullOrEmpty(goods_Names)) { goods_Names += ","; } goods_Names += mod.ProductName; goods_Nums += mod.Quantity; goods_Weight += mod.GrosWeight; } StringBuilder strorder = new StringBuilder();//"{\"orderSn\":\"" + orderInfo.OrderNo + "\"}"; strorder.Append("{"); strorder.Append(" \"order_sn\":\"" + orderInfo.OrderNo + "\","); strorder.Append(" \"send_name\":\"" + warehouseMod.Contact + "\","); strorder.Append(" \"send_telno\":\"" + warehouseMod.Phone + "\","); strorder.Append(" \"send_cardno\":\"\","); strorder.Append(" \"send_postcode\":\"\","); strorder.Append(" \"send_code\":\"1\","); strorder.Append(" \"receive_name\":\"" + srenity.Name + "\","); strorder.Append(" \"receive_telno\":\"" + srenity.MobilePhoneNumber + "\","); strorder.Append(" \"receive_cardno\":\"" + srenity.IDCardNo + "\","); strorder.Append(" \"receive_postcode\":\"\","); strorder.Append(" \"receive_province\":\"" + Province + "\","); strorder.Append(" \"receive_city\":\"" + City + "\","); strorder.Append(" \"receive_area\":\"" + District + "\","); strorder.Append(" \"receive_address\":\"" + Province + " " + City + " " + District + " " + srenity.StreetAddress + "\","); strorder.Append(" \"goods_name\":\"" + goods_Names + "\","); strorder.Append(" \"goods_sku\":\"\","); strorder.Append(" \"goods_num\":\"" + goods_Nums + "\","); strorder.Append(" \"notes\":\"\","); strorder.Append(" \"weight\":\"" + goods_Weight + "\""); strorder.Append("}"); string enStrorder = ""; enStrorder = EncodeBase64(EncodeBase64(strorder.ToString())); string strPost = "&seller=" + EncodeBase64(config.seller) + "&api_key=" + EncodeBase64(config.api_key) + "&express=" + EncodeBase64("3") + "&order_type=" + EncodeBase64("1") + "&order=" + enStrorder; var strResult = GetResponse(expressUrl, strPost); var json = JObject.Parse(strResult); string jsons = json.ToString(); result.Message = json.ToString(); /*{ * "orderSn": "So00003784", * "state": "success", * "expressNo": "50323423506251", * "expressCode": "3", * "destinationCode": "粤-肇庆", * "nodeCode": { * "pkgCode": "广州夏良转运中心", * "billProvideSiteName": "广州新花山站", * "billProvideSiteCode": "Z04" * } * }*/ //string destinationCode = ""; //string pkgCode = ""; ; //string billProvideSiteCode = ""; //string expressNo = ""; //if (json["state"].ToString().ToLower() == "success") //{ // destinationCode = json["destinationCode"].ToString(); // pkgCode = json["nodeCode"]["pkgCode"].ToString(); // billProvideSiteCode = json["nodeCode"]["billProvideSiteCode"].ToString(); // expressNo = json["expressNo"].ToString(); //} ///订单物流信息 SoOrderSyncLogisticsLog soLogisticsLogMod = new SoOrderSyncLogisticsLog(); soLogisticsLogMod.OrderSysNo = orderInfo.SysNo; soLogisticsLogMod.Code = (int)this.Code; try { soLogisticsLogMod.LogisticsOrderId = json["express_no"].ToString(); } catch { } soLogisticsLogMod.StatusCode = json["flag"].ToString(); try { soLogisticsLogMod.StatusMsg = json["express_notes"].ToString(); } catch { try { soLogisticsLogMod.StatusMsg = json["info"].ToString(); } catch { } } soLogisticsLogMod.Packets = strorder.ToString(); soLogisticsLogMod.ReceiptContent = strResult; soLogisticsLogMod.CreateDate = DateTime.Now; soLogisticsLogMod.LastUpdateDate = DateTime.Now; SoOrderSyncLogisticsLogBo.Instance.Insert(soLogisticsLogMod); if (json["flag"].ToString().ToUpper() == "OK") { result.Status = true; result.StatusCode = 100; result.Data = soLogisticsLogMod; } else { result.Status = false; result.StatusCode = 0; result.Data = soLogisticsLogMod; } return(result); }
public BsArea GetCountryEntity(int sysNo, out BsArea countryEntity, out BsArea provinceEntity, out BsArea cityEntity, out BsArea areaEntity) { provinceEntity = null; cityEntity = null; areaEntity = null; countryEntity = null; BsArea model = GetArea(sysNo); //地区信息不存在 while (model != null && model.AreaLevel >= 0) { switch (model.AreaLevel) { //国家 case 0: countryEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; //省 case 1: provinceEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; //市 case 2: cityEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; //区 case 3: areaEntity = new BsArea { AreaCode = model.AreaCode, NameAcronym = model.NameAcronym, DisplayOrder = model.DisplayOrder, ParentSysNo = model.ParentSysNo, AreaName = model.AreaName, AreaLevel = model.AreaLevel, SysNo = model.SysNo }; break; } model = GetArea(model.ParentSysNo); } return(countryEntity); }
public override Result AddOrderTrade(int orderSysno) { Result result = new Result(); try { SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); if (order == null) { result.Message = "该订单不存在"; return(result); } order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); ParaVoucherFilter voucherFilter = new ParaVoucherFilter(); voucherFilter.SourceSysNo = order.SysNo; CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault(); recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 CBWhWarehouse warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); EasycrossOrder newOrder = new EasycrossOrder(); newOrder.OrderHead = new OrderHead(); newOrder.OrderList = new List <OrderList>(); newOrder.OrderPaymentLogistics = new OrderPaymentLogistics(); newOrder.OrderHead.accessType = "1"; newOrder.OrderHead.agentCode = "4404580006"; newOrder.OrderHead.agentName = "珠海易跨境电子商务服务有限公司"; newOrder.OrderHead.appStatus = "2"; newOrder.OrderHead.appTime = DateTime.Now.ToString("yyyyMMddHHmmss"); newOrder.OrderHead.appUid = "1105910159"; newOrder.OrderHead.appUname = "东方口岸"; newOrder.OrderHead.batchNumbers = ""; newOrder.OrderHead.cbeCode = "D00236"; newOrder.OrderHead.cbeName = "珠海爱勤电子科技有限公司"; newOrder.OrderHead.charge = order.OrderAmount.ToString(); newOrder.OrderHead.consignee = order.ReceiveAddress.Name; newOrder.OrderHead.consigneeAddress = order.ReceiveAddress.StreetAddress; newOrder.OrderHead.consigneeCountry = ""; newOrder.OrderHead.consigneeTelephone = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.OrderHead.currency = "142"; newOrder.OrderHead.customer = order.ReceiveAddress.Name; newOrder.OrderHead.customerId = order.ReceiveAddress.IDCardNo; newOrder.OrderHead.ecpCode = "W0098"; newOrder.OrderHead.ecpName = "珠海爱勤电子科技有限公司"; newOrder.OrderHead.freight = order.FreightAmount.ToString(); newOrder.OrderHead.goodsValue = order.ProductAmount.ToString(); newOrder.OrderHead.idType = "1"; newOrder.OrderHead.ieType = "I"; newOrder.OrderHead.modifyMark = "1"; newOrder.OrderHead.note = ""; newOrder.OrderHead.orderNo = order.SysNo.ToString(); newOrder.OrderHead.other = ""; newOrder.OrderHead.shipper = BLL.Stores.StoresBo.Instance.GetStoreById(0).ErpName; newOrder.OrderHead.shipperAddress = ""; newOrder.OrderHead.shipperCountry = "142"; newOrder.OrderHead.shipperTelephone = ""; newOrder.OrderHead.tax = order.TaxFee.ToString(); newOrder.OrderHead.totalLogisticsNo = ""; newOrder.OrderHead.tradeCountry = ""; newOrder.OrderHead.wrapType = ""; foreach (SoOrderItem item in order.OrderItemList) { PdProduct product = BLL.Product.PdProductBo.Instance.GetProduct(item.SysNo); PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo); string brandName = "无"; PdBrand brand = BLL.Product.PdBrandBo.Instance.GetEntity(product.BrandSysNo); if (brand != null) { brandName = brand.Name; } OrderList orderList = new OrderList(); orderList.barCode = ""; orderList.brand = brandName; orderList.codeTs = ""; orderList.country = ""; orderList.currency = "142"; orderList.describe = ""; orderList.discount = ""; orderList.giftFlag = ""; orderList.goodsModel = ""; orderList.goodsName = item.ProductName; orderList.goodsNo = productStock.ProductSku; orderList.itemNo = ""; orderList.note = ""; orderList.packNum = ""; orderList.price = item.SalesUnitPrice.ToString(); orderList.priceTotal = item.SalesAmount.ToString(); orderList.purposeCode = ""; orderList.quantity = item.Quantity.ToString(); orderList.shelfGoodsName = item.ProductName; orderList.taxCode = ""; orderList.unit = "007"; orderList.wasteMaterials = "1"; orderList.wrapType = ""; newOrder.OrderList.Add(orderList); } //newOrder.OrderPaymentLogistics.logisticsCode = ""; newOrder.OrderPaymentLogistics.logisticsName = deliveryType.DeliveryTypeName; //newOrder.OrderPaymentLogistics.logisticsNo = ""; //newOrder.OrderPaymentLogistics.paymentCode = ""; //newOrder.OrderPaymentLogistics.paymentName = ""; //newOrder.OrderPaymentLogistics.paymentNo = ""; //newOrder.OrderPaymentLogistics.paymentType = ""; //newOrder.OrderPaymentLogistics.trackNo = ""; XmlSerializerNamespaces xmlNs = new XmlSerializerNamespaces(); xmlNs.Add("nousexmlns", "http://www.chinaport.gov.cn/ecss"); string xmlData = this.XmlSerialize <EasycrossOrder>(newOrder, xmlNs); xmlData = xmlData.Replace(":nousexmlns", ""); xmlData = xmlData.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""); // 上传文件 FtpUtil ftp = new FtpUtil(FTPUri, FTPName, FTPPassword); string ftpResponse = ""; ftp.UploadFile(FTPUri, "Testfilename.xml", Encoding.UTF8.GetBytes(xmlData), out ftpResponse); } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } return(result); }
private void AddBaseTaskObjectToList(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask bsDP = new BsDeliveryPayment(); BaseTask bsPT = new BsPaymentType(); BaseTask bsCode = new BsCode(); BaseTask bsOrganization = new BsOrganization(); BaseTask bsOrganizationWarehouse = new BsOrganizationWarehouse(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask dsMallType = new DsMallType(); BaseTask dsDealerLevel = new DsDealerLevel(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask feSearchKeyword = new FeSearchKeyword(); BaseTask feadvertgroup = new FeAdvertGroup(); BaseTask feadvertitem = new FeAdvertItem(); BaseTask feproductgroup = new FeProductGroup(); BaseTask feproductitem = new FeProductItem(); BaseTask fnIT = new FnInvoiceType(); BaseTask fninvoice = new FnInvoice(); BaseTask fnpv = new FnReceiptVoucher(); BaseTask fnReceiptVoucherItem = new FnReceiptVoucherItem(); BaseTask fnop = new FnOnlinePayment(); BaseTask fnPaymentVoucher = new FnPaymentVoucher(); BaseTask fnPaymentVoucherItem = new FnPaymentVoucherItem(); BaseTask lgDelivery = new LgDelivery(); BaseTask lgDI = new LgDeliveryItem(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDT = new LgDeliveryType(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask lgPT = new LgPickupType(); BaseTask lgsettlement = new LgSettlement(); BaseTask lgSI = new LgSettlementItem(); BaseTask lgDeliveryPrintTemplate = new LgDeliveryPrintTemplate(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask pdProductStatistics = new PdProductStatistics(); BaseTask soOrder = new SoOrder(); BaseTask soOrderItem = new SoOrderItem(); BaseTask soRA = new SoReceiveAddress(); BaseTask SyUG = new SyUserGroup(); BaseTask syGU = new SyGroupUser(); BaseTask syMenu = new SyMenu(); BaseTask syMenuPrivilege = new SyMenuPrivilege(); BaseTask syPrivilege = new SyPrivilege(); BaseTask syRole = new SyRole(); BaseTask syRoleMenu = new SyRoleMenu(); BaseTask syRolePrivilege = new SyRolePrivilege(); BaseTask syPermission = new SyPermission(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask syMyMenu = new SyMyMenu(); BaseTask spcombo = new SpCombo(); BaseTask spComboItem = new SpComboItem(); BaseTask spcopon = new spcoupon(); BaseTask sqpromotion = new SPpromotion(); BaseTask spromotiongift = new SPpromotiongift(); BaseTask sppromotionoverlay = new SPpromotionoverlay(); BaseTask sppromotionrule = new SPpromotionrule(); BaseTask sppromotionrulecondition = new SPpromotionrulecondition(); BaseTask sppromotionrulekeyvalue = new SPpromotionrulekeyvalue(); BaseTask syTaskConfig = new SyTaskConfig(); BaseTask whStockOut = new WhStockOut(); BaseTask whStockOutItem = new WhstockOutItem(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); BaseTask whwdy = new WHwarehouseDeliveryType(); BaseTask whWPT = new WhWarehousePickupType(); BaseTask whstockin = new WhStockIn(); BaseTask whstockinItem = new WHStockinItem(); BaseTask rcReturn = new RCReturn(); BaseTask rcReturnItem = new RcReturnItem(); listObject.Add(bsAT); listObject.Add(bsDP); listObject.Add(bsPT); listObject.Add(bsCode); listObject.Add(bsOrganization); listObject.Add(bsOrganizationWarehouse); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(dsMallType); listObject.Add(dsDealerLevel); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(fepc); listObject.Add(feSearchKeyword); listObject.Add(feadvertgroup); listObject.Add(feadvertitem); listObject.Add(feproductgroup); listObject.Add(feproductitem); listObject.Add(fnIT); listObject.Add(fnpv); listObject.Add(fnReceiptVoucherItem); listObject.Add(fnop); listObject.Add(fninvoice); listObject.Add(fnPaymentVoucher); listObject.Add(fnPaymentVoucherItem); listObject.Add(lgDelivery); listObject.Add(lgDI); listObject.Add(lgDS); listObject.Add(lgDT); listObject.Add(lgPT); listObject.Add(lgsettlement); listObject.Add(lgSI); listObject.Add(lgDeliveryPrintTemplate); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); listObject.Add(pdProductStatistics); listObject.Add(soOrder); listObject.Add(soOrderItem); listObject.Add(spcombo); listObject.Add(spComboItem); listObject.Add(spcopon); listObject.Add(sqpromotion); listObject.Add(spromotiongift); //listObject.Add(sppromotionoverlay); listObject.Add(sppromotionrule); listObject.Add(sppromotionrulecondition); listObject.Add(sppromotionrulekeyvalue); listObject.Add(syGU); listObject.Add(syUW); listObject.Add(SyUG); listObject.Add(syMenu); listObject.Add(syUser); listObject.Add(syPermission); listObject.Add(syMenuPrivilege); listObject.Add(syPrivilege); listObject.Add(syRole); listObject.Add(syRoleMenu); listObject.Add(syRolePrivilege); listObject.Add(syMyMenu); listObject.Add(syTaskConfig); listObject.Add(whStockOut); listObject.Add(whStockOutItem); listObject.Add(whwarehouse); listObject.Add(whwa); listObject.Add(whwdy); listObject.Add(whWPT); listObject.Add(whstockin); listObject.Add(whstockinItem); listObject.Add(rcReturn); listObject.Add(rcReturnItem); listObject.Add(lgDUC); listObject.Add(pdPI); listObject.Add(soRA); }
/// <summary> /// 更新地区信息 /// </summary> /// <param name="model">地区信息实体,根据sysno</param> /// <returns>受影响的行数</returns> /// <remarks> /// 2013-08-02 郑荣华 创建 /// </remarks> public abstract int Update(BsArea model);
/// <summary> /// 创建地区信息 /// </summary> /// <param name="model">地区信息实体</param> /// <returns>创建的地区信息sysNo</returns> /// <remarks> /// 2013-08-02 郑荣华 创建 /// </remarks> public abstract int Create(BsArea model);
/// <summary> /// 修改地区状态 /// </summary> /// <param name="area">地区实体</param> /// <returns>返回受影响行数</returns> /// <remarks>2013-08-16 周瑜 创建</remarks> public abstract int UpdateStatus(BsArea area);
public override Model.Result AddOrderTrade(int orderSysno) { Result result = new Result(); try { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); var config = Hyt.BLL.Config.Config.Instance.GetAnnaConfig(); CrCustomer customer = Hyt.BLL.CRM.CrCustomerBo.Instance.GetModel(order.CustomerSysNo); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); BsArea wareProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim().ToUpper(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo); payment.CusPaymentCode = config.PaymentCode; IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); LgDeliveryType deliveryType = Hyt.BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); order.OrderItemList = new List <SoOrderItem>(); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); order.OrderItemList.Add(item); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); foreach (var mod in productList) { var tempitem = datao.First(p => p.ProductSysNo == mod.SysNo); if (tempitem != null) { tempitem.OrginCountry = Hyt.BLL.Basic.OriginBo.Instance.GetEntity(mod.OriginSysNo).Origin_Name; } } Order pushOrder = new Order(); pushOrder.OrderHead = new OrderHead(); pushOrder.OrderPaymentLogistics = new OrderPaymentLogistics(); pushOrder.itemList = new List <OrderList>(); BindOrderHeadData(order, pushOrder.OrderHead, payment, srenity, buyer_idcard, District, City, Province, warehouseMod, wareDistrictEntity, wareCityEntity, wareProvinceEntity); BindOrderItemListData(datao, pushOrder.itemList); OrderPaymentLogistic(pushOrder.OrderPaymentLogistics, payment, deliveryType); string str = Hyt.Util.Serialization.SerializationUtil.XmlSerialize <Order>(pushOrder); str = str.Replace("encoding=\"utf-16\"", "encoding=\"utf-8\""); str = str.Replace("Root", "ROOT"); str = str.Replace("<itemList>", ""); str = str.Replace("</itemList>", ""); FtpUtil ftp = new FtpUtil(config2.RequestUrl, config2.Account, config2.Password); string msg = ""; string fileName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + ".xml"; try { ftp.UploadFile(config2.RequestUrl, fileName, Encoding.UTF8.GetBytes(str), out msg); } catch (Exception ex) { result.Status = false; result.Message = ex.Message; } result.Message = str; } catch (Exception e) { result.Status = false; result.Message = e.Message; } return(result); }
public override Result AddOrderTrade(int orderSysno) { //throw new NotImplementedException(); List <SoOrderSyncLogisticsLog> logList = SoOrderSyncLogisticsLogBo.Instance.GetModelList(orderSysno); List <SoOrderSyncLogisticsLog> haveLogisticsList = logList.Where(p => p.Code == (int)this.Code && p.StatusCode == "OK" && !string.IsNullOrEmpty(p.LogisticsOrderId)).ToList(); SoOrderSyncLogisticsLog nowLogistics = null; if (haveLogisticsList.Count == 0) { Result expressResult = GetExpressno(orderSysno.ToString()); nowLogistics = (expressResult as Result <SoOrderSyncLogisticsLog>).Data; if (!expressResult.Status) { return(expressResult); } } else { nowLogistics = haveLogisticsList[0]; } var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); var config = Hyt.BLL.Config.Config.Instance.GetGaoJieConfig(); var result = new Result <string>(); WhWarehouse warehouseMod = Hyt.BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea wareDistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(warehouseMod.AreaSysNo); BsArea wareCityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(wareDistrictEntity.ParentSysNo); SoReceiveAddress srenity = Hyt.BLL.Order.OutboundReturnBo.Instance.GetSoReceiveAddressBysoOrderSysNo(order.SysNo); string buyer_idcard = ""; if (!string.IsNullOrEmpty(srenity.IDCardNo)) { buyer_idcard = srenity.IDCardNo.Trim(); } BsArea DistrictEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(srenity.AreaSysNo); string District = DistrictEntity.AreaName.Trim(); BsArea CityEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(DistrictEntity.ParentSysNo); string City = CityEntity.AreaName.Trim(); BsArea ProvinceEntity = Hyt.BLL.Basic.BasicAreaBo.Instance.GetArea(CityEntity.ParentSysNo); string Province = ProvinceEntity.AreaName.Trim(); CBFnOnlinePayment payment = FinanceBo.Instance.GetOnPaymentBySourceSysNo(order.SysNo); IList <CBSoOrderItem> datao = SoOrderBo.Instance.GetCBOrderItemsByOrderId(order.SysNo); List <int> ProSysNo = new List <int>(); foreach (CBSoOrderItem item in datao) { ProSysNo.Add(item.ProductSysNo); } IList <CBPdProduct> productList = Hyt.BLL.Product.PdProductBo.Instance.GetProductInfoList(ProSysNo); decimal goodsGweight = 0; foreach (var mod in productList) { goodsGweight += mod.GrosWeight; } LgGaoJiePushInfo model = new LgGaoJiePushInfo(); string strorder = ""; strorder += "{\"order_sn\":\"" + order.OrderNo + "\",\"pfreight_no\":\"\",\"express_num\":\"" + nowLogistics.LogisticsOrderId + "\","; strorder += "\"sender_name\":\"" + warehouseMod.Contact + "\",\"sender_city\":\"" + wareCityEntity.AreaName + "\",\"sender_address\":\"" + warehouseMod.StreetAddress + "\","; strorder += "\"sender_phone\":\"" + warehouseMod.Phone + "\",\"sender_country_code\":\"" + wareCityEntity.AreaCode + "\","; strorder += "\"buyer_name\":\"" + srenity.Name + "\",\"buyer_idcard\":\"" + buyer_idcard + "\",\"buyer_phone\":\"" + srenity.MobilePhoneNumber + "\","; strorder += "\"province_code\":\"" + ProvinceEntity.AreaCode + "" + "\",\"buyer_address\":\"" + Province + "^^^" + City + "^^^" + District + "^^^" + srenity.StreetAddress + "\","; strorder += "\"curr\":\"502" + "\",\"pkg_gweight\":" + goodsGweight + ",\"p_name\":\"" + (payment == null ? "" : payment.PaymentName) + "\",\"p_no\":\"" + (payment == null ? "" : payment.VoucherNo) + "\","; strorder += "\"p_time\":\"" + (payment == null ? DateTime.Now.ToString("yyyy-mm-dd hh :MM") : payment.CreatedDate.ToString("yyyy-mm-dd hh :MM")) + "\",\"sh_fee\":\"" + order.FreightAmount.ToString() + "\","; strorder += "\"cus_tax\":\"" + order.TaxFee.ToString() + "\",\"pweb\":\"" + config.pweb + "\",\"web_name\":\"" + config.web_name + "\",\"re_no\":\"" + config.re_no + "\",\"re_name\":\"" + config.re_name + "\","; strorder += "\"order_goods\":"; strorder += "["; string str = ""; int i = 0; foreach (CBSoOrderItem item in datao) { //LgGaoJieGoodsInfo goodsInfo = LogisticsBo.Instance.GetLgGaoJieGoodsInfoEntityByPid(item.ProductSysNo); List <CBPdProduct> tempProductList = productList.Where(p => p.SysNo == item.ProductSysNo).ToList(); var originInfo = BLL.Basic.OriginBo.Instance.GetEntity(tempProductList[0].OriginSysNo); var brandInfo = BLL.Product.PdBrandBo.Instance.GetEntity(tempProductList[0].BrandSysNo); string ycg_code = originInfo != null ? originInfo.CusOriginNO : ""; if (i > 0) { str += ",{"; } else { str += "{"; } str += "\"goods_ptcode\":\"" + tempProductList[0].ProductDeclare; str += "\",\"goods_name\":\"" + tempProductList[0].ProductName; str += "\",\"brand\":\"" + brandInfo.Name; str += "\",\"goods_spec\":\"" + tempProductList[0].GrosWeight + "kg"; str += "\",\"goods_num\":\"" + item.Quantity.ToString(); str += "\",\"goods_price\":\"" + item.SalesUnitPrice.ToString(); str += "\",\"ycg_code\":\"" + originInfo.CusOriginNO; str += "\",\"goods_barcode\":\"" + tempProductList[0].Barcode.Trim() + "\""; str += "}"; i++; } strorder += str; strorder += "]}"; string orders = strorder; strorder = EncodeBase64(EncodeBase64(strorder)); var strPost = "&seller=" + EncodeBase64(config.seller) + "&api_key=" + EncodeBase64(config.api_key) + "&mark=" + EncodeBase64("order") + "&confirm=" + EncodeBase64("2") + "&order=" + strorder; var strResult = GetResponse(url, strPost); var json = JObject.Parse(strResult); string jsons = json.ToString(); result.Status = true; result.Data = json.ToString(); var soOrderSyncLogisticsLog = new SoOrderSyncLogisticsLog(); soOrderSyncLogisticsLog.OrderSysNo = orderSysno; soOrderSyncLogisticsLog.Code = (int)this.Code; soOrderSyncLogisticsLog.CreateDate = DateTime.Now; soOrderSyncLogisticsLog.CreatedBy = BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base.SysNo; soOrderSyncLogisticsLog.LastUpdateBy = 0; soOrderSyncLogisticsLog.LastUpdateDate = (DateTime)System.Data.SqlTypes.SqlDateTime.MinValue; soOrderSyncLogisticsLog.Packets = orders.ToString(); soOrderSyncLogisticsLog.ReceiptContent = json.ToString(); soOrderSyncLogisticsLog.LogisticsOrderId = ""; //var model = new LgGaoJiePushInfo(); //model.OrderSysNo = orderSysno; //model.OrderInfo = orders.ToString(); ////保存订单回执信息 //model.ReturnInfo = json.ToString(); ////保存推送回执信息 //LogisticsBo.Instance.InsertLgGaoJiePushInfoEntity(model, BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base); string state = json["flag"].ToString().ToLower(); //推送成功 if (state == "ok" || json["info"].ToString() == "重复下单") { result.Status = true; result.Message = json["info"].ToString(); soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = result.Message; //更新物流状态CBLogisticsSendStatus BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.已推送, 3, orderSysno); } else { result.Status = false; result.Message = json["info"].ToString(); soOrderSyncLogisticsLog.StatusCode = ""; soOrderSyncLogisticsLog.StatusMsg = result.Message; BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus((int)Hyt.Model.WorkflowStatus.OrderStatus.跨境物流推送状态.失败, 3, orderSysno); } SoOrderSyncLogisticsLogBo.Instance.Insert(soOrderSyncLogisticsLog); return(result); }
/// <summary> /// 添加交易订单 /// </summary> /// <param name="orderSysno"></param> /// <returns>2016-04-09 陈海裕 创建</returns> public override Result AddOrderTrade(int orderSysno) { // 订单id,用于日志记录 _orderSysNo = orderSysno; Result result = new Result(); result.Status = false; result.StatusCode = 0; result.Message = "接口调用失败"; if (orderSysno <= 0) { return(result); } lock (lockHelper) { try { SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysno); if (order == null) { result.Message = "该订单不存在"; return(result); } if (order.CBLogisticsSendStatus == 1) { result.Message = "该订单已推送,不能重复操作"; return(result); } order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); ParaVoucherFilter voucherFilter = new ParaVoucherFilter(); voucherFilter.SourceSysNo = order.SysNo; CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault(); recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); // 发货人 市 CBWhWarehouse warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo); BsArea shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); LgDeliveryType deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo); EDTOrder newOrder = new EDTOrder(); newOrder.Address1 = order.ReceiveAddress.StreetAddress; //newOrder.Base_ChannelInfoID = "1"; newOrder.Base_ChannelInfoID = "HKKJ"; newOrder.City = receiverCity.AreaName; newOrder.ConsigneeName = order.ReceiveAddress.Name; newOrder.Contact = !string.IsNullOrWhiteSpace(order.ReceiveAddress.MobilePhoneNumber) ? order.ReceiveAddress.MobilePhoneNumber : order.ReceiveAddress.PhoneNumber; newOrder.Country = "CN"; newOrder.CusRemark = order.Remarks; newOrder.GFF_CustomerID = CoustomerID; newOrder.OrderStatus = "3"; newOrder.State = receiverProvince.AreaName; newOrder.Style = "1"; //newOrder.ShippingService = "GZBC"; List <EDTOrderProduct> productList = new List <EDTOrderProduct>(); EDTOrderProduct product = null; foreach (var item in order.OrderItemList) { PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo); product = new EDTOrderProduct(); product.CnName = item.ProductName; product.EnName = ""; product.MaterialRefNo = TConvert.ToString(productStock.ProductSku); product.Price = item.SalesUnitPrice.ToString(); product.Quantity = item.Quantity.ToString(); product.Weight = ""; product.WarehouseID = warehouse.LogisWarehouseCode; productList.Add(product); } if (product == null) { result.Message = "订单明细不存在"; return(result); } StringBuilder strorderinfo = new StringBuilder(); strorderinfo.Append("Style:" + newOrder.Style + ";"); strorderinfo.Append("GFF_CustomerID:" + newOrder.GFF_CustomerID + ";"); strorderinfo.Append("GFF_ReceiveSendAddressID:;"); strorderinfo.Append("ConsigneeName:" + newOrder.ConsigneeName + ";"); strorderinfo.Append("Country:" + newOrder.Country + ";"); strorderinfo.Append("Base_ChannelInfoID:" + newOrder.Base_ChannelInfoID + ";"); strorderinfo.Append("State:" + newOrder.State + ";"); strorderinfo.Append("City:" + newOrder.City + ";"); strorderinfo.Append("OrderStatus:" + newOrder.OrderStatus + ";"); strorderinfo.Append("Address1:" + newOrder.Address1 + ";"); strorderinfo.Append("Address2:;"); strorderinfo.Append("CsRefNo:;"); strorderinfo.Append("Zipcode:;"); strorderinfo.Append("Contact:" + newOrder.Contact + ";"); strorderinfo.Append("CusRemark:" + newOrder.CusRemark + ";"); strorderinfo.Append("TrackingNo:;"); //strorderinfo.Append("ShippingService:" + newOrder.ShippingService + ";"); StringBuilder strorderproduct = new StringBuilder(); for (int i = 0; i < productList.Count; i++) { strorderproduct.Append("MaterialRefNo:" + productList[i].MaterialRefNo + ","); //strorderproduct.Append("MaterialRefNo:123456,"); strorderproduct.Append("Quantity:" + productList[i].Quantity + ","); strorderproduct.Append("Price:" + productList[i].Price + ","); strorderproduct.Append("Weight:" + productList[i].Weight + ","); strorderproduct.Append("EnName:" + productList[i].EnName + ","); strorderproduct.Append("WarehouseID:" + productList[i].WarehouseID + ","); strorderproduct.Append("ProducingArea:,"); productList[i].CnName = Regex.Replace(productList[i].CnName, @"[/\(\)(),]", ""); strorderproduct.Append("CnName:" + productList[i].CnName + ",;"); } ServiceRefEightDT.APIWebServiceSoapClient newService = new ServiceRefEightDT.APIWebServiceSoapClient(); string strResult = newService.InsertUpdateOrder(strorderinfo.ToString(), strorderproduct.ToString(), "", Secretkey); if (strResult.Contains("成功")) { try { CrossBorderLogisticsOrder cbOrder = BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.GetEntityByOrderSysNo(orderSysno); if (cbOrder == null) { Model.CrossBorderLogisticsOrder logisticsOrder = new Model.CrossBorderLogisticsOrder(); logisticsOrder.SoOrderSysNo = orderSysno; logisticsOrder.LogisticsOrderId = Regex.Match(strResult, "[a-zA-Z0-9]+").ToString(); logisticsOrder.LogisticsCode = (int)this.Code; BLL.CrossBorderLogistics.CrossBorderLogisticsOrderBo.Instance.InsertEntity(logisticsOrder); } // 更新订单状态 BLL.Order.SoOrderBo.Instance.UpdateOrderApiStatus(1, 3, orderSysno); } catch (Exception ex) { BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, "订单" + orderSysno + "保存跨境物流返回的单号失败。", ex); } result.Status = true; } result.Message = strResult; } catch (Exception ex) { result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace; return(result); } } return(result); }
public override Result <string> SendOrder(int orderSysNo) { var result = new Result <string>() { Status = false, StatusCode = 0, Message = "" }; var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo); if (order == null) { result.Message = "该订单不存在"; } else { try { order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); var provice = receiverProvince.AreaName.Replace("省", "").Replace("市", ""); var postData = new Dictionary <string, string>(); postData.Add("appKey", Config.Account); postData.Add("orderNo", order.SysNo.ToString()); //网店订单编号[必填] postData.Add("userName", order.CustomerSysNo.ToString()); //买家ID[可填] postData.Add("uName", order.ReceiveAddress.Name); //收件人姓名[必填] postData.Add("province", provice); //省份[必填] postData.Add("city", receiverCity.AreaName); //城市[必填] postData.Add("district", receiverDistrict.AreaName); //区域[必填] postData.Add("address", provice + " " + receiverCity.AreaName + " " + receiverDistrict.AreaName + " " + order.ReceiveAddress.StreetAddress); //地址[必填] postData.Add("postcode", "123456"); //邮编[必填] postData.Add("mobiTel", order.ReceiveAddress.MobilePhoneNumber); //手机号码[可填][注:手机号码和电话号码至少填一项] //postData.Add("phone", order.ReceiveAddress.PhoneNumber);//电话号码[可填][注:手机号码和电话号码至少填一项] postData.Add("cRemark", order.ReceiveAddress.IDCardNo); //身份信息 //postData.Add("oRemark", order.InternalRemarks);//卖家备注[可填] postData.Add("oSumPrice", order.OrderAmount.ToString()); //实付订单总金额[必填] //postData.Add("expFee", order.FreightAmount.ToString());//实付订单运费[可填][默认为0] postData.Add("expCod", "0"); //是否货到付款[必填][1:货到付款] //postData.Add("codFee", "0");//货到付款手续费[可填][默认为0] //postData.Add("expCodFee", "0");//货到付款代收运费[可填][默认为0] //postData.Add("payTime", "2015-04-20 09:44:44");//订单支付日期 //postData.Add("paymententerprise", "");//订单支付企业 //postData.Add("paymentno", "");//订单支付流水号 List <Api_OrderProInfo> postOrderItemList = new List <Api_OrderProInfo>(); foreach (var item in order.OrderItemList) { var scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code); if (scProduct != null) { var scObj = JObject.Parse(scProduct.Receipt); var model = new Api_OrderProInfo() { proNo = scObj["ProNo"].ToString(), proSku = scProduct.SKU, proTitle = scProduct.ProductName, proCount = item.Quantity.ToString(), proPrice = item.SalesUnitPrice.ToString() }; postOrderItemList.Add(model); } } postData.Add("OrderPro", JsonConvert.SerializeObject(postOrderItemList)); var responseStr = Post("IOpenAPI.AddOrder", postData); var back = JObject.Parse(responseStr); result = GetResult(back); if (result.Status) { try { using (var tran = new System.Transactions.TransactionScope()) { SendOrderReturn m = new SendOrderReturn(); m.OverseaCarrier = ""; m.OverseaTrackingNo = ""; m.soOrderSysNo = orderSysNo; m.Code = "1"; m.Msg = JsonConvert.SerializeObject(back); m.OrderNo = back["Result"].ToString(); Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, Hyt.BLL.Authentication.AdminAuthenticationBo.Instance.Current.Base); //更新订单推送状态 Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送); result.Message = "推送成功"; tran.Complete(); } } catch (Exception ex) { result.Status = false; result.Message = ex.Message; BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, this.Code + "订单推送:" + ex.Message, ex); } } } catch (Exception ex) { result.Message = ex.Message; BLL.Log.SysLog.Instance.Error(Model.WorkflowStatus.LogStatus.系统日志来源.后台, this.Code + "订单推送:" + ex.Message, ex); } } return(result); }
/// <summary> /// 二期基础数据 /// </summary> /// <param name="listObject"></param> private void AddBaseTaskObject2ToList1(List <BaseTask> listObject) { BaseTask bsAT = new BsArea(); BaseTask crCustomer = new CrCustomer(); BaseTask crCL = new CrCustomerLevel(); BaseTask crCQ = new CrCustomerQuestion(); BaseTask crRA = new CrReceiveAddress(); BaseTask feArticle = new FeArticle(); BaseTask feAC = new FeArticleCategory(); BaseTask feCS = new FeCommentSupport(); BaseTask fepc = new FeProductComment(); BaseTask fePCI = new FeProductCommentImage(); BaseTask fePCR = new FeProductCommentReply(); BaseTask lgDS = new LgDeliveryScope(); BaseTask lgDUC = new LgDeliveryUserCredit(); BaseTask pdAttribute = new PdAttribute(); BaseTask pdAG = new PdAttributeGroup(); BaseTask pdAGA = new PdAttributeGroupAssociation(); BaseTask pdAO = new PdAttributeOption(); BaseTask pdBrand = new PdBrand(); BaseTask pdCGA = new PdCatAttributeGroupAso(); BaseTask pdCategory = new PdCategory(); BaseTask pdCA = new PdCategoryAssociation(); BaseTask pdPrice = new PdPrice(); BaseTask pdProduct = new PdProduct(); BaseTask pdPA = new PdProductAssociation(); BaseTask pdProductAttribute = new PdProductAttribute(); //BaseTask pdPI = new PdProductImage(); BaseTask pdTemplate = new PdTemplate(); BaseTask soRA = new SoReceiveAddress(); BaseTask syUser = new SyUser(); BaseTask syUW = new SyUserWarehouse(); BaseTask whwarehouse = new WhWarehouse(); BaseTask whwa = new WHwarehousearea(); listObject.Add(bsAT); listObject.Add(crCustomer); listObject.Add(crCL); listObject.Add(crCQ); listObject.Add(crRA); listObject.Add(feArticle); listObject.Add(feAC); listObject.Add(feCS); listObject.Add(fepc); listObject.Add(fePCI); listObject.Add(fePCR); listObject.Add(lgDS); listObject.Add(lgDUC); listObject.Add(pdAttribute); listObject.Add(pdAG); listObject.Add(pdAGA); listObject.Add(pdAO); listObject.Add(pdBrand); listObject.Add(pdCGA); listObject.Add(pdCategory); listObject.Add(pdCA); listObject.Add(pdPrice); listObject.Add(pdProduct); listObject.Add(pdPA); listObject.Add(pdProductAttribute); listObject.Add(pdTemplate); //listObject.Add(pdPI); listObject.Add(soRA); listObject.Add(syUW); listObject.Add(syUser); listObject.Add(whwarehouse); listObject.Add(whwa); }
public override Result <string> SendOrder(int orderSysNo) { var result = new Result <string>() { Status = false, StatusCode = 0, Message = "" }; lock (lockHelper)//防止多人同时操作造成产品重复添加 { var order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo); if (order == null) { result.Message = "该订单不存在"; } else { try { order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); Dictionary <string, string> postData = new Dictionary <string, string>(); //下单商品 sku及购买数量,sku和购买数量用逗号隔开,多件商品时用分号隔开(如: test001,1;test002,1) //B0230115,2;B0230131,3 var skuinfo = ""; foreach (var item in order.OrderItemList) { ScProduct scProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(item.ProductSysNo, (int)Code); skuinfo += string.Format("{0},{1};", scProduct.SKU, item.Quantity); } skuinfo = skuinfo.TrimEnd(';'); postData.Add("skuinfo", skuinfo); postData.Add("consi_name", order.ReceiveAddress.Name); //收货人姓名 postData.Add("consi_phone", order.ReceiveAddress.MobilePhoneNumber); //收货人手机号码 postData.Add("consi_card", order.ReceiveAddress.IDCardNo); //收货人身份证 postData.Add("consi_provinc", receiverProvince.AreaName); //收货人所在省 postData.Add("consi_city", receiverCity.AreaName); //收货人所在城市 postData.Add("consi_county", receiverDistrict.NameAcronym); //收货人所在县 postData.Add("consi_address", order.ReceiveAddress.StreetAddress); //收货人所在地址 postData.Add("consi_freight", order.FreightAmount.ToString()); //运费 postData.Add("consi_price", order.OrderAmount.ToString()); //订单金额 //(非必填)torder 第三方订单号 //(非必填)paytype 支付方式(1:快付通,2:快钱,3:支付宝,4:微信,5:易极付,6:招商银行) //(非必填)pay_tradeno 支付流水号 postData.Add("remark", "平台推单");//订单备注信息 string responsestr = Post(Config.GatewayUrl + "?c=vendor&a=addOrder", postData); result.Data = responsestr; var back = JObject.Parse(responsestr); result = GetResult(result, back); if (result.Status) { //返回结果保存到SendOrderReturn表中 2016-4-26 王耀发 创建 SendOrderReturn m = new SendOrderReturn(); m.soOrderSysNo = orderSysNo; m.Code = "1"; m.Msg = responsestr; m.OrderNo = back["data"]["order_number"].ToString(); Hyt.BLL.Order.SoOrderBo.Instance.InsertSendOrderReturn(m, AdminAuthenticationBo.Instance.Current.Base); //更新订单的商检推送状态 Hyt.BLL.Order.SoOrderBo.UpdateOrderSendStatus(orderSysNo, (int)Hyt.Model.WorkflowStatus.OrderStatus.销售单推送状态.已推送); } } catch (Exception ex) { result.Status = false; result.StatusCode = -2; result.Message = ex.Message; } } return(result); } }
/// <summary> /// 推送供应链订单 /// </summary> /// <param name="orderSysNo"></param> /// <returns></returns> /// <remarks> /// 2016-4-15 陈海裕 创建 /// 2016-5-20 刘伟豪 修改 /// </remarks> public override Result <string> SendOrder(int orderSysNo) { //防止并发操作 lock (lockHelper) { // type: pushOrderDataInfo var result = new Result <string>() { Status = false, StatusCode = 0, Message = "向" + this.Code + "供应链推送订单失败" }; if (orderSysNo <= 0) { return(result); } // json格式的post数据 string jsonData = ""; try { SoOrder order = BLL.Order.SoOrderBo.Instance.GetEntity(orderSysNo); if (order == null) { result.Message = "该订单不存在"; return(result); } order.ReceiveAddress = BLL.Order.SoOrderBo.Instance.GetOrderReceiveAddress(order.ReceiveAddressSysNo); order.OrderItemList = DataAccess.Order.ISoOrderItemDao.Instance.GetOrderItemsByOrderSysNo(order.SysNo); ParaVoucherFilter voucherFilter = new ParaVoucherFilter(); voucherFilter.SourceSysNo = order.SysNo; CBFnReceiptVoucher recVoucher = BLL.Finance.FinanceBo.Instance.GetReceiptVouchers(voucherFilter).Rows.FirstOrDefault(); recVoucher.VoucherItems = BLL.Finance.FnReceiptVoucherBo.Instance.GetReceiptVoucherItem(recVoucher.SysNo); // 收货人 区 市 省 BsArea receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo); BsArea receiverCity = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo); BsArea receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo); DsDealer dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo); HaiTunOrder newOrder = new HaiTunOrder(); newOrder.address = TConvert.ToString(order.ReceiveAddress.StreetAddress); newOrder.city = TConvert.ToString(receiverCity.AreaName.Trim()); newOrder.consignee = TConvert.ToString(order.ReceiveAddress.Name); newOrder.consumerNote = TConvert.ToString(order.Remarks); newOrder.country = "中国"; newOrder.district = TConvert.ToString(receiverDistrict.AreaName.Trim()); newOrder.idCardNumber = TConvert.ToString(order.ReceiveAddress.IDCardNo); newOrder.isCheck = "no"; newOrder.mobile = TConvert.ToString(order.ReceiveAddress.MobilePhoneNumber); newOrder.moneyPaid = TConvert.ToString(order.OrderAmount); newOrder.orderAmount = TConvert.ToString(order.OrderAmount); newOrder.orderSn = TConvert.ToString(order.SysNo); newOrder.paymentAccount = "*****@*****.**"; // 固定值 newOrder.paymentInfoIdCardNumber = TConvert.ToString(order.ReceiveAddress.IDCardNo); newOrder.paymentInfoMethod = "支付宝"; newOrder.paymentInfoName = TConvert.ToString(order.ReceiveAddress.Name); newOrder.paymentInfoNumber = TConvert.ToString(recVoucher.VoucherItems[0].VoucherNo); newOrder.province = TConvert.ToString(receiverProvince.AreaName); newOrder.shippingFee = TConvert.ToString(order.FreightAmount); newOrder.siteName = TConvert.ToString(dealer.ErpName); newOrder.siteType = "商城"; newOrder.tel = TConvert.ToString(order.ReceiveAddress.PhoneNumber); newOrder.zipcode = TConvert.ToString(order.ReceiveAddress.ZipCode); newOrder.items = new List <HaiTunOrderItem>(); HaiTunOrderItem haitunItem = new HaiTunOrderItem(); foreach (var item in order.OrderItemList) { #if DEBUG haitunItem.goodsName = "【广州保税 全国包邮】澳大利亚Swisse 奶蓟草护肝片肝脏排毒120粒 【2件起发】"; haitunItem.goodsPrice = "100"; haitunItem.goodsSn = "AUSW003"; haitunItem.quantity = "1"; newOrder.items.Add(haitunItem); break; #else PdProductStock productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, item.ProductSysNo); var supplyProduct = BLL.Supply.ScProductBo.Instance.GetScProductInfo(productStock.ProductSku, (int)this.Code); if (supplyProduct != null) { haitunItem.goodsName = TConvert.ToString(supplyProduct.ProductName); haitunItem.goodsPrice = TConvert.ToString(item.SalesUnitPrice); haitunItem.goodsSn = TConvert.ToString(supplyProduct.SKU); haitunItem.quantity = TConvert.ToString(item.Quantity); newOrder.items.Add(haitunItem); } else { result.Message = "商品" + item.ProductSysNo + "对应的供应链商品不存在"; return(result); } #endif } jsonData = Util.Serialization.JsonUtil.ToJson2(new List <HaiTunOrder>() { newOrder }); var back = Post("pushOrderDataInfo", jsonData); result = GetResult(JObject.Parse(back)); if (result.Status) { } } catch (Exception ex) { result.Message = ex.Message; BLL.Log.SysLog.Instance.Error(LogStatus.系统日志来源.后台, this.Code + "供应链订单推送:" + ex.Message, ex); } return(result); } }