/// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="filter">查询参数</param>
        /// <returns>分页</returns>
        /// <remarks>2013-07-19 朱家宏 创建</remarks>
        /// <remarks>2013-07-24 黄志勇 修改</remarks>
        public override Pager <CBPaymentVoucher> GetAll(ParaVoucherFilter filter)
        {
            const string sql =
                @"(select a.*
                            from FnPaymentVoucher a
                    where   
                            (@0 is null or a.Source=@0) and                       --单据来源
                            (@1 is null or a.Status=@1) and                       --状态
                            (@2 is null or a.CreatedDate>=@2) and           --创建日期(起)
                            (@3 is null or a.CreatedDate<@3) and                --创建日期(止) 
                            (@4 is null or a.SourceSysNo=@4)            --单据来源编号 
                    ) tb";

            //查询日期上限+1
            filter.EndDate = filter.EndDate == null ? (DateTime?)null : filter.EndDate.Value.AddDays(1);

            var paras = new object[]
            {
                filter.Source,       //   filter.Source,
                filter.Status,       //  filter.Status,
                filter.BeginDate,    // filter.BeginDate,
                filter.EndDate,      // filter.EndDate,
                filter.SourceSysNo   //, filter.SourceSysNo
            };

            var dataList  = Context.Select <CBPaymentVoucher>("tb.*").From(sql);
            var dataCount = Context.Select <int>("count(0)").From(sql);

            dataList.Parameters(paras);
            dataCount.Parameters(paras);

            var pager = new Pager <CBPaymentVoucher>
            {
                PageSize    = filter.PageSize,
                CurrentPage = filter.Id
            };

            pager.TotalRows = dataCount.QuerySingle();
            pager.Rows      = dataList.OrderBy("tb.SysNo desc").Paging(pager.CurrentPage, filter.PageSize).QueryMany();

            return(pager);
        }
Example #2
0
        /// <summary>
        /// 付款单查询
        /// </summary>
        /// <param name="filter">查询条件</param>
        /// <returns>分页查询</returns>
        /// <remarks>2013-07-19 朱家宏 创建</remarks>
        public Pager <CBPaymentVoucher> GetPaymentVouchers(ParaVoucherFilter filter)
        {
            var pager = IFnPaymentVoucherDao.Instance.GetAll(filter);

            return(pager);
        }
Example #3
0
        /// <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);
            }
        }
Example #4
0
        /// <summary>
        /// 收款单查询
        /// </summary>
        /// <param name="filter">查询条件</param>
        /// <returns>分页查询</returns>
        /// <remarks>2013-07-19 朱家宏 创建</remarks>
        public Pager <CBFnReceiptVoucher> GetReceiptVouchers(ParaVoucherFilter filter)
        {
            var pager = IFnReceiptVoucherDao.Instance.GetAll(filter);

            return(pager);
        }
Example #5
0
        /// <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);
        }
Example #6
0
        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);
        }
Example #7
0
 /// <summary>
 /// 分页查询
 /// </summary>
 /// <param name="filter">查询参数</param>
 /// <returns></returns>
 /// <remarks>2013-07-19 朱家宏 创建</remarks>
 public abstract Pager <CBFnReceiptVoucher> GetAll(ParaVoucherFilter filter);
Example #8
0
        /// <summary>
        /// 分页查询
        /// </summary>
        /// <param name="filter">查询参数</param>
        /// <returns>查询收款单列表</returns>
        /// <remarks>2013-07-19 朱家宏 创建</remarks>
        /// <remarks>2013-07-24 黄志勇 修改</remarks>
        public override Pager <CBFnReceiptVoucher> GetAll(ParaVoucherFilter filter)
        {
            string where = " 1=1 ";
            var paras = new ArrayList();
            int i     = 0;

            if (filter.IncomeType.HasValue)//--收入类型
            {
                where += " and a.IncomeType=@p0p" + i.ToString();
                paras.Add(filter.IncomeType.Value);
                i++;
            }
            if (filter.Status.HasValue)//--状态
            {
                where += " and a.Status=@p0p" + i.ToString();
                paras.Add(filter.Status.Value);
                i++;
            }
            if (filter.BeginDate.HasValue)//--创建日期(起)
            {
                where += " and a.CreatedDate>=@p0p" + i.ToString();
                paras.Add(filter.BeginDate.Value);
                i++;
            }
            if (filter.EndDate.HasValue)//--创建日期(止)
            {
                where += " and a.CreatedDate<@p0p" + i.ToString();
                paras.Add(filter.EndDate.Value.AddDays(1));
                i++;
            }
            if (filter.SourceSysNo.HasValue)//--单据来源编号
            {
                where += " and a.SourceSysNo=@p0p" + i.ToString();
                paras.Add(filter.SourceSysNo.Value);
                i++;
            }
            if (filter.PaymentType.HasValue)//支付类型
            {
                where += " and exists (select 1 from FnReceiptVoucherItem tmp where tmp.ReceiptVoucherSysNo=a.sysno and tmp.PaymentTypeSysNo=@p0p" + i.ToString() + ")";
                paras.Add(filter.PaymentType.Value);
                i++;
            }
            var pager = new Pager <CBFnReceiptVoucher>
            {
                PageSize    = filter.PageSize,
                CurrentPage = filter.Id
            };
            string queryfrom = "fnreceiptvoucher a left join SyUser b on a.confirmedby=b.sysno"; //查询Table

            pager.TotalRows = Context.Select <int>("count(0)")                                   //查询数量
                              .From(queryfrom)
                              .Where(where)
                              .Parameters(paras)
                              .QuerySingle();
            pager.Rows = Context
                         .Select <CBFnReceiptVoucher>("a.*,b.username as confirmer")//返回数据列
                         .From(queryfrom)
                         .Where(where)
                         .Parameters(paras)
                         .OrderBy("a.SysNo desc")
                         .Paging(pager.CurrentPage, filter.PageSize).QueryMany();
            return(pager);

            #region 截断方式
            //            const string sql =
            //                   @"(select a.*,b.username as confirmer
            //                            from fnreceiptvoucher a
            //                            left join SyUser b on a.confirmedby=b.sysno
            //                    where
            //                            (:IncomeType is null or a.IncomeType=:IncomeType) and           --收入类型
            //                            (:Status is null or a.Status=:Status) and                       --状态
            //                            (:BeginDate is null or a.CreatedDate>=:BeginDate) and           --创建日期(起)
            //                            (:EndDate is null or a.CreatedDate<:EndDate) and                --创建日期(止)
            //                            (:SourceSysNo is null or a.SourceSysNo=:SourceSysNo) and        --单据来源编号
            //                            (:PaymentType is null or exists (select 1 from FnReceiptVoucherItem tmp where tmp.ReceiptVoucherSysNo=a.sysno and tmp.PaymentTypeSysNo=:PaymentType))
            //                    ) tb";

            //            //查询日期上限+1
            //            filter.EndDate = filter.EndDate == null ? (DateTime?)null : filter.EndDate.Value.AddDays(1);

            //            var paras = new object[]
            //                {
            //                    filter.IncomeType,  filter.IncomeType,
            //                    filter.Status,      filter.Status,
            //                    filter.BeginDate,   filter.BeginDate,
            //                    filter.EndDate,     filter.EndDate,
            //                    filter.SourceSysNo, filter.SourceSysNo,
            //                    filter.PaymentType, filter.PaymentType
            //                };

            //            var dataList = Context.Select<CBFnReceiptVoucher>("tb.*").From(sql);
            //            var dataCount = Context.Select<int>("count(0)").From(sql);

            //            dataList.Parameters(paras);
            //            dataCount.Parameters(paras);

            //            var pager = new Pager<CBFnReceiptVoucher>
            //            {
            //                PageSize = filter.PageSize,
            //                CurrentPage = filter.Id
            //            };

            //            pager.TotalRows = dataCount.QuerySingle();
            //            pager.Rows = dataList.OrderBy("tb.SysNo desc").Paging(pager.CurrentPage, filter.PageSize).QueryMany();

            //            return pager;
            #endregion
        }
Example #9
0
 /// <summary>
 /// 分页查询
 /// </summary>
 /// <param name="filter">查询参数</param>
 /// <returns></returns>
 /// <remarks>2013-07-19 朱家宏 创建</remarks>
 public abstract Pager <CBPaymentVoucher> GetAll(ParaVoucherFilter filter);
Example #10
0
        /// <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);
        }
Example #11
0
        /// <summary>
        /// 添加交易订单
        /// </summary>
        /// <param name="orderSysno"></param>
        /// <returns>2016-04-09 陈海裕 创建</returns>
        public override Result AddOrderTrade(int orderSysno)
        {
            // 订单id,用于日志记录
            _orderSysNo = orderSysno;

            var result = new Result <string>();

            result.Status     = false;
            result.StatusCode = 0;
            result.Message    = "接口调用失败";
            string url = RequestUrl + "order/create";

            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);
                // 收货人 区 市 省
                var receiverDistrict = BLL.Basic.BasicAreaBo.Instance.GetArea(order.ReceiveAddress.AreaSysNo);
                var receiverCity     = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverDistrict.ParentSysNo);
                var receiverProvince = BLL.Basic.BasicAreaBo.Instance.GetArea(receiverCity.ParentSysNo);
                // 发货人 市
                var warehouse = BLL.Warehouse.WhWarehouseBo.Instance.GetWarehouse(order.DefaultWarehouseSysNo);

                var shipperCity = BLL.Basic.BasicAreaBo.Instance.GetArea(warehouse.CitySysNo);

                if (string.IsNullOrEmpty(warehouse.LogisWarehouseCode))
                {
                    Result <string> whResult = GetWarehouseId();
                    if (!whResult.Status)
                    {
                        return(whResult);
                    }
                    else
                    {
                        warehouse.LogisWarehouseCode = whResult.Data.Split(':')[0].Replace("{", "").Replace("}", "").Replace("\"", "").Trim();
                        BLL.Warehouse.WhWarehouseBo.Instance.Update(warehouse);
                    }
                }

                if (string.IsNullOrEmpty(receiverDistrict.AreaCode) || string.IsNullOrEmpty(receiverCity.AreaCode) ||
                    string.IsNullOrEmpty(receiverProvince.AreaCode) || string.IsNullOrEmpty(shipperCity.AreaCode))
                {
                    Result <List <YSArea> > areaResult = new Result <List <YSArea> >();
                    areaResult.Data = new List <YSArea>();
                    for (int i = 0; i < 8; i++)
                    {
                        areaResult.Data.AddRange(GetYSAreaData(i + 1).Data);
                    }
                    if (string.IsNullOrEmpty(receiverProvince.AreaCode))
                    {
                        YSArea ysArea = areaResult.Data.Find((p => p.area_name == receiverProvince.AreaName.Trim() || p.old_name == receiverProvince.AreaName.Trim()));
                        if (ysArea != null)
                        {
                            receiverProvince.AreaCode = ysArea.id.ToString();
                            BLL.Basic.BasicAreaBo.Instance.Update(receiverProvince);
                        }
                    }

                    if (string.IsNullOrEmpty(receiverCity.AreaCode))
                    {
                        YSArea ysArea = areaResult.Data.Find(p => (p.area_name == receiverCity.AreaName.Trim() || p.old_name == receiverCity.AreaName.Trim()) && p.pid.ToString() == receiverProvince.AreaCode);
                        if (ysArea != null)
                        {
                            receiverCity.AreaCode = ysArea.id.ToString();
                            BLL.Basic.BasicAreaBo.Instance.Update(receiverCity);
                        }
                    }
                    if (string.IsNullOrEmpty(receiverDistrict.AreaCode))
                    {
                        YSArea ysArea = areaResult.Data.Find(p => (p.area_name == receiverDistrict.AreaName.Trim() || p.old_name == receiverDistrict.AreaName.Trim()) && p.pid.ToString() == receiverCity.AreaCode);
                        if (ysArea != null)
                        {
                            receiverDistrict.AreaCode = ysArea.id.ToString();
                            BLL.Basic.BasicAreaBo.Instance.Update(receiverDistrict);
                        }
                    }


                    if (string.IsNullOrEmpty(shipperCity.AreaCode))
                    {
                        if (string.IsNullOrEmpty(shipperCity.AreaCode))
                        {
                            shipperCity.AreaCode = shipperCity.SysNo.ToString();
                        }

                        //YSArea ysArea = areaResult.Data.Find(p => p.area_name == receiverProvince.AreaName.Trim() || p.old_name == receiverDistrict.AreaName.Trim());
                        //if (ysArea != null)
                        //{
                        //    shipperCity.AreaCode = ysArea.id.ToString();
                        //    BLL.Basic.BasicAreaBo.Instance.Update(shipperCity);
                        //}
                    }
                }



                var dealer = BLL.Distribution.DsDealerBo.Instance.GetDsDealer(order.DealerSysNo);

                var deliveryType = BLL.Logistics.DeliveryTypeBo.Instance.GetDeliveryType(order.DeliveryTypeSysNo);

                var filter = new ParaOnlinePaymentFilter();
                filter.OrderSysNo = orderSysno;
                var onlinePayment = BLL.Finance.FinanceBo.Instance.GetOnlinePayments(filter).Rows.Where(o => o.Status == 1).FirstOrDefault();

                if (onlinePayment == null)
                {
                    result.Message = "订单不存在在线支付记录";
                    return(result);
                }

                string _deliveryType = "";
                if (deliveryType.DeliveryTypeName.Contains("顺丰"))
                {
                    _deliveryType = "SF";
                    //CustomerCode = SFCustomerCode;
                    //Key = SFKey;
                    Token = SFToken;
                }
                else if (deliveryType.DeliveryTypeName.Contains("中通"))
                {
                    _deliveryType = "ZTO";
                }
                if (_deliveryType == "")
                {
                    result.Message = "友信达物流目前只有支持顺丰和中通两种快递方式";
                    return(result);
                }

                // 易宝支付有限公司 PTE51001409230000001
                var paramsData = new Dictionary <string, string>();

                decimal grossWeight  = 0m;
                decimal netWeight    = 0m;
                var     error        = "";
                string  productSku   = "";
                string  supplierCode = "";
                string  productName  = "";
                string  qty          = "";
                string  price        = "";
                for (int i = 0; i < order.OrderItemList.Count; i++)
                {
                    var product = BLL.Product.PdProductBo.Instance.GetProduct(order.OrderItemList[i].ProductSysNo);
                    grossWeight += (product.GrosWeight) * order.OrderItemList[i].Quantity;
                    netWeight   += (product.NetWeight) * order.OrderItemList[i].Quantity;
                    var productStock = BLL.Warehouse.PdProductStockBo.Instance.GetEntityByWP(order.DefaultWarehouseSysNo, order.OrderItemList[i].ProductSysNo);

                    if (productStock == null)
                    {
                        error += order.OrderItemList[i].ProductSysNo + ",";
                        continue;
                    }

                    #region 条形码商品
                    var RefProductName     = order.OrderItemList[i].ProductName;
                    var RefProductSysNo    = order.OrderItemList[i].ProductSysNo;
                    var RefProductQuantity = order.OrderItemList[i].Quantity;
                    BLL.Product.PdProductBo.Instance.RefProductQuantity(ref RefProductSysNo, ref RefProductQuantity, ref RefProductName, order.SysNo);
                    #endregion

                    //// 订单商品
                    //paramsData.Add("products[" + i + "][product_sku]", product.ErpCode);
                    //paramsData.Add("products[" + i + "][supplier_code]", "");
                    ////paramsData.Add("products[" + i + "][product_name]", order.OrderItemList[i].ProductName);
                    ////paramsData.Add("products[" + i + "][qty]", order.OrderItemList[i].Quantity.ToString());
                    //paramsData.Add("products[" + i + "][product_name]", RefProductName);
                    //paramsData.Add("products[" + i + "][qty]", RefProductQuantity.ToString());
                    ////paramsData.Add("products[" + i + "][price]",(order.OrderItemList[i].SalesUnitPrice + order.OrderItemList[i].ChangeAmount).ToString());
                    productSku += "&products[" + i + "][product_sku]=" + product.ErpCode;
                    productSku += "&products[" + i + "][supplier_code]=";
                    productSku += "&products[" + i + "][product_name]=" + order.OrderItemList[i].ProductName;
                    productSku += "&products[" + i + "][qty]=" + RefProductQuantity;
                    decimal amount = Math.Round(((order.OrderItemList[i].SalesAmount + order.OrderItemList[i].ChangeAmount) / order.OrderItemList[i].Quantity), 4);
                    productSku += "&products[" + i + "][price]=" + amount;
                    //paramsData.Add("products[" + i + "][price]", amount.ToString());
                    //order.OrderItemList[i].SalesAmount+order.OrderItemList[i].ChangeAmount=(order.OrderItemList[i].SalesUnitPrice*order.OrderItemList[i].Quantity)  =>
                    //order.OrderItemList[i].SalesUnitPrice=(order.OrderItemList[i].SalesAmount + order.OrderItemList[i].ChangeAmount) / order.OrderItemList[i].Quantity
                }

                //2016-10-28 18:39 临时处理报错问题
                if (!string.IsNullOrWhiteSpace(error))
                {
                    result.Message = this.Code + ":商品编号(" + error.TrimEnd(',') + ")在库存中找不到,无法获取SKU,请入库。";
                    return(result);
                }
                paramsData.Add("address_remark", "");
                paramsData.Add("products", "products");
                paramsData.Add("card_no", order.ReceiveAddress.IDCardNo);
                paramsData.Add("card_type", "01");
                paramsData.Add("currency_code", "RMB");
                paramsData.Add("customize_category", "");
                paramsData.Add("express_method", "1");
                paramsData.Add("tracking_number", "");
                paramsData.Add("inter_tracking_number", "");
                paramsData.Add("note", "");
                paramsData.Add("freight", order.FreightAmount.ToString());
                paramsData.Add("gross_weight", grossWeight.ToString());
                paramsData.Add("net_weight", netWeight.ToString());
                paramsData.Add("is_valuation", "0");
                paramsData.Add("valuation_fee", order.TaxFee.ToString("0.00"));
                paramsData.Add("valuation_value", order.OrderAmount.ToString("0.00"));
                paramsData.Add("order_time", CreateTimeStamp(order.CreateDate).ToString());
                paramsData.Add("pay_company", "易宝支付有限公司");
                paramsData.Add("pay_company_no", config.CIECode);// 信营商检企业备案号
                paramsData.Add("pay_no", recVoucher.VoucherItems.FirstOrDefault().VoucherNo);
                paramsData.Add("receiver_city_id", receiverCity.AreaCode);
                paramsData.Add("receiver_district_id", receiverDistrict.AreaCode);
                paramsData.Add("receiver_name", order.ReceiveAddress.Name);
                //paramsData.Add("receiver_postcode", order.ReceiveAddress.ZipCode);
                paramsData.Add("receiver_postcode", "000000");// 无邮政编码,默认六个零
                paramsData.Add("receiver_province_id", receiverProvince.AreaCode);
                paramsData.Add("receiver_fax", receiverProvince.AreaCode);
                paramsData.Add("receiver_tel", order.ReceiveAddress.MobilePhoneNumber);
                paramsData.Add("receiver_tel2", order.ReceiveAddress.PhoneNumber);
                paramsData.Add("reference_no", onlinePayment.BusinessOrderSysNo);
                paramsData.Add("receiver_address", order.ReceiveAddress.StreetAddress);
                paramsData.Add("shipper_city", shipperCity.AreaName);
                paramsData.Add("shipper_country", "CN");
                //paramsData.Add("shipper_country", "HK");
                paramsData.Add("shipper_name", !string.IsNullOrWhiteSpace(warehouse.BackWarehouseName) ? warehouse.BackWarehouseName : dealer.ErpName);
                paramsData.Add("sm_code", _deliveryType);
                paramsData.Add("tax_amount", order.TaxFee.ToString());
                paramsData.Add("total_amount", order.OrderAmount.ToString());
                paramsData.Add("total_product_amount", (order.ProductAmount + order.ProductChangeAmount).ToString());
                //paramsData.Add("wrap_type", "2C1");
                paramsData.Add("wrap_type", "4M");
                paramsData.Add("warehouse_id", warehouse.LogisWarehouseCode);//广州白云
                paramsData.Add("shipper_tel", string.IsNullOrWhiteSpace(dealer.MobilePhoneNumber) ? dealer.PhoneNumber : dealer.MobilePhoneNumber);
                paramsData.Add("shipper_address", warehouse.StreetAddress);
                string postData   = InitParams(paramsData);
                string timerstamp = CreateTimeStamp();
                //postData += Key + timerstamp;
                postData = postData.Replace("&products=products", productSku + supplierCode + productName + qty + price);
                string responseStr = GetResponse(url, postData, timerstamp, Key);

                result = GetResult(JObject.Parse(responseStr), result);

                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;
                if (result.Status == true)
                {
                    soOrderSyncLogisticsLog.LastUpdateBy     = 0;
                    soOrderSyncLogisticsLog.LogisticsOrderId = JObject.Parse(responseStr)["data"]["order_sn"].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);
                }
            }
            catch (Exception ex)
            {
                result.Message = "向" + this.Code + "物流推送订单报错:" + ex.StackTrace;
                return(result);
            }

            return(result);
        }