跨境通仓库综合系统申报代码

using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using A8EXP.BaseForm;
using A8ERP.Win;
using A8ERP.Common;
using A8EXP.Entity;
using A8ERP.Utilities;
using A8EXP.BLL;
using A8EXP.DotNetWinform;
using System.Xml;
using System.Web;
using A8EXP.Utilities;
using KUANG.Win.Winform;
using System.Security.Cryptography;
using System.Diagnostics;

namespace A8EXP.ShopOrders
{
    /// <summary>
    ///订单管理
    /// </summary>
    public partial class Form_ShopOrderManage : FormBase
    {
        #region 公共变量
        DataTable JkfSignTable = new DataTable(A8ERP_Customs_JkfSignInfo.TableName);//签名信息
        DataTable JkfOrderImportHeadTable = new DataTable(A8ERP_Customs_JkfOrderImportHeadInfo.TableName);//订单主体
        DataTable OrderImportTable = new DataTable(A8ERP_Customs_JkfOrderImportHeadInfo.TableName);//订单主体
        DataTable JkfOrderDetailTable = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单明细
        DataTable JkfOrderResultTable = new DataTable(A8ERP_Customs_JkfOrderResultInfo.TableName);//回执状态
        DataTable JkfOrderReturnResultDetailTable = new DataTable(A8ERP_Customs_JkfOrderReturnResultDetailInfo.TableName);//回执明细   
        DataTable OperationRecordsdt = new DataTable(A8ERP_WMS_OperationRecordsInfo.TableName);//日志信息表
        DataTable InventoryReturndt = new DataTable(A8EXP_CEB622Message_InventoryReturnInfo.TableName);//总署回执信息
        DataTable OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);//导出订单表
        DataTable OrderDetailEntitydt = null;//导出订单表明细
        DataTable CainiaoitemsDt = new DataTable(A8ERP_Cainiao_CainiaoitemsInfo.TableName);//菜鸟对接商品信息
        DataTable DeclareInfoDt = new DataTable(A8ERP_Cainiao_DeclareInfoInfo.TableName);//菜鸟对接申报清单信
        DataTable LogisticsInfoDt = new DataTable(A8ERP_Cainiao_LogisticsInfoInfo.TableName);//菜鸟对接物流信息

        string statDate = string.Empty;//开始日期
        string endDate = string.Empty;//结束日期
        string OrderAuditState = "0";//订单状态
        string OrderTotalAmount = string.Empty;//订单总金额
        private int FieldId = 0;//主表Id用于单击行不重复显示
        private int chEnabled = 1;
        private int DeletionStateCode = 0;//删除状态
        string searchValue = string.Empty;
        string Expressstr = string.Empty;//报关公司
        bool SingleDel = false;//作废
        string TransportUnitCode = string.Empty;//运输单位编码
        string ShopNameId = string.Empty;//电商平台Id
        string ShopPrivinceId = string.Empty;//省ID
        string CitySelectId = string.Empty;//市Id
        string Phone = string.Empty;//手机
        string searchWhereValue = "0";//运单号
        string IsWhether = "0";//是否跨境
        #endregion

        #region public string CurrentEntityId 当前选种的订单Id
        string _currentEntityId = string.Empty;
        /// <summary>
        /// 当前选种的ID
        /// </summary>
        public string CurrentEntityId
        {
            get
            {
                return _currentEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldId);
            }
        }
        #endregion

        #region 获得已被选择的Id主键数组
        /// <summary>
        /// 获得已被选择的Id主键数组
        /// </summary>
        /// <returns>主键数组</returns>
        private string[] GetSelecteIds()
        {
            return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldId, "colSelected", true);
        }
        #endregion

        #region 获得明细的ID
        /// <summary>
        ///获得明细的ID
        /// </summary>
        string _currentDetailEntityId = string.Empty;
        public string CurrentDetailEntityId
        {
            get { return this._currentDetailEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderDetail, A8ERP_Customs_JkfOrderDetailInfo.FieldId); }
            set { this._currentDetailEntityId = value; }
        }
        #endregion

        #region 获得当前的订单编号
        /// <summary>
        /// 获得当前的订单编号
        /// </summary>
        private string _currentOrderNo = string.Empty;
        /// <summary>
        /// 获得订单主表当前的订单编号
        /// </summary>
        public string CurrentOrderNo
        {
            get
            {
                return _currentOrderNo = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo);
            }
        }
        #endregion

        #region public string CurrentDetailEntityFId 当前选种的Id
        string _currentDetaiFld = string.Empty;
        /// <summary>
        /// 当前选种的ID
        /// </summary>
        public string CurrentDetailEntityFId
        {
            get
            {
                return _currentDetaiFld = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderDetail, A8ERP_Customs_JkfOrderDetailInfo.FieldFId);
            }

        }
        #endregion        

        #region private string[] GetSelecteUserIds() 获得已被选择的主键数组
        /// <summary>
        /// 获得已被选择的Id主键数组
        /// </summary>
        /// <returns>主键数组</returns>
        private string[] GetSelecteJkfOrderDetaiIds()
        {
            return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderDetail, A8ERP_Customs_JkfOrderDetailInfo.FieldId, "cSelected", true);
        }
        #endregion

        #region private string[] GetSelecteUserIds() 获得已被选择的ID主键数组
        /// <summary>
        /// 获得已被选择的单号主键数组
        /// </summary>
        /// <returns>主键数组</returns>
        private string[] GetSelecteOrderNos()
        {
            return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo, "colSelected", true);
        }
        #endregion

        #region private string[] GetSelecteOrderNo() 获得已被选择的订单号数组
        /// <summary>
        /// 获得已被选择的Id主键数组
        /// </summary>
        /// <returns>主键数组</returns>
        private string[] GetSelecteOrderNo()
        {
            return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo, "colSelected", true);
        }
        #endregion

        #region  获得当前店铺Id
        /// <summary>
        /// 获得当前店铺Id
        /// </summary>
        private string currentShopNameId = string.Empty;
        public string CurrentShopNameId
        {
            get
            {
                return currentShopNameId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldShopNameId);
            }

        }
        #endregion

        #region 得到当前的签名信息
        /// <summary>
        ///得到当前的签名信息
        /// </summary>
        private string M_currentJkfSignEntityId = string.Empty;
        public string CurrentJkfSignEntityId
        {
            get { return M_currentJkfSignEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo); }

        }
        #endregion

        #region 获得先中的数组
        /// <summary>
        /// 获得先中的数组
        /// </summary>
        /// <returns></returns>
        public string[] GetSelectIds()
        {
            return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldId, "colSelected", true);
        }
        #endregion

        #region 获得先中单号的数组
        /// <summary>
        /// 获得先中单号的数组
        /// </summary>
        /// <returns></returns>
        public string[] GetSelectOrderNos()
        {
            return BaseInterfaceLogic.GetSelecteIdsTwo(this.Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldOrderNo, "colSelected", true);
        }
        #endregion

        #region 构造方法
        /// <summary>
        /// 构造方法
        /// </summary>
        public Form_ShopOrderManage()
        {
            InitializeComponent();
            Grid_JkfOrderImportHead.RowPrePaint += new DataGridViewRowPrePaintEventHandler(Grid_JkfOrderImportHead_RowPrePaint);
            Grid_JkfOrderImportHead.SaveAsFileToExcelAllSelected += new EventHandler<EventDataArgs<object>>(Grid_JkfOrderImportHead_SaveAsFileToExcelAllSelected);
            Grid_JkfOrderImportHead.RefreshSelected += new EventHandler<EventDataArgs<object>>(Grid_JkfOrderImportHead_RefreshSelected);
            Grid_JkfOrderImportHead.SelectionChanged += new EventHandler(Grid_OrderImportHead_SelectionChanged);
            Cmb_ShopName.SelectedIndexChanged += new BaseBusinessLogic.SelectedIndexChangedEventHandler(Cmb_ShopName_SelectedIndexChanged);
            AddContextMenu(Grid_JkfOrderImportHead);//右键处理
            Grid_JkfSign.ContextMenuStrip = null;
            Grid_JkfOrderResult.ContextMenuStrip = null;
            Grid_JkfOrderReturnResultDetail.ContextMenuStrip = null;
            IsWhether = checkIsWhether.Checked == true ? "1" : "0";



        }
        #endregion

        #region  主表选中行事件
        /// <summary>
        /// 主表选择事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Grid_OrderImportHead_SelectionChanged(object sender, EventArgs e)
        {
            if (Grid_JkfOrderImportHead.CurrentRow != null)
            {
                if (!string.IsNullOrEmpty(FieldId.ToString()) || FieldId.ToString() != CurrentEntityId)
                {
                    if (string.IsNullOrEmpty(CurrentEntityId))
                    {
                        FieldId = 0;
                    }
                    else
                    {
                        FieldId = Convert.ToInt32(CurrentEntityId);
                        GetSelectIndexChanged();//选项加载                                          
                        DataOrderResultBind();//回执信息
                    }
                }
            }
        }
        #endregion

        #region 刷新
        /// <summary>
        /// 刷新
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Grid_JkfOrderImportHead_RefreshSelected(object sender, EventDataArgs<object> e)
        {
            this.FormOnLoad();
        }
        #endregion

        #region 条件
        /// <summary>
        /// 条件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void devRadioGroupQuery_EditValueChanged(object sender, EventArgs e)
        {
            if (this.FormLoaded)
            {
                searchWhereValue = devRadioGroupQuery.EditValue.ToString();
            }
        }
        #endregion

        #region 导出查询全部
        /// <summary>
        /// 导出查询全部
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Grid_JkfOrderImportHead_SaveAsFileToExcelAllSelected(object sender, EventDataArgs<object> e)
        {
            #region 导出操作
            OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);
            OrderDetailEntitydt = new DataTable();
            OrderDetailEntitydt = new DataTable(OrderDetailEntityTable.TableName);//订单明细
            List<A8ERP_Customs_JkfOrderDetailInfo> entityDetailList = null;
            #region 主表记录
            Dictionary<string, string> fieldList = new Dictionary<string, string>();
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, "店铺名称");//店铺名称
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, "买家昵称");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, "订单号");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, "运单号");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCreateOn, "订单时间");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, "产品总金额");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, "订单金额");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, "优惠金额");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, "运费");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, "收货国家");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, "州/省");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, "城市");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, "区");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, "收货地址");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, "收货人名称");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, "联系电话");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, "手机");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, "买家留言");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, "订单备注");

            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, typeof(System.String));//店铺名称
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, typeof(System.String));//买家昵称
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, typeof(System.String));//订单号
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, typeof(System.String));//运单号
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCreateOn, typeof(System.String));//订单时间
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, typeof(System.String));//产品总金额
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, typeof(System.String));//订单金额
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, typeof(System.String));
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, typeof(System.String));//收货地址
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, typeof(System.String));//收货人名称
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, typeof(System.String));//收货地址
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, typeof(System.String));//州/省
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, typeof(System.String));//城市
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, typeof(System.String));//区
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, typeof(System.String));//联系电话
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, typeof(System.String));//手机
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, typeof(System.String));//运费
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, typeof(System.String));//订单备注
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, typeof(System.String));//买家留言

            #endregion

            Dictionary<string, string> fieldDetailList = new Dictionary<string, string>();
            fieldDetailList.Add(OrderDetailEntityTable.FieldOrderNo, "订单号");
            fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsOrder, "序号");
            fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCode, "商品编码");
            fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsName, "商品名称");
            fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsBar, "商品条码");
            fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsModel, "规格");
            fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCount, "购买数量");
            fieldDetailList.Add(OrderDetailEntityTable.FieldUnitPrice, "售价");
            fieldDetailList.Add(OrderDetailEntityTable.FieldShipperName, "店铺名称");//店铺名称
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldOrderNo, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsOrder, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCode, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsName, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsBar, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsModel, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCount, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldUnitPrice, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldShipperId, typeof(System.String));
            OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldShipperName, typeof(System.String));
            for (int i = 0; i < OrderImportTable.Rows.Count; i++)
            {
                A8ERP_Customs_JkfOrderDetailInfo entityDetail = new A8ERP_Customs_JkfOrderDetailInfo();
                string Sqlwhere = string.Format("FId='{0}'", OrderImportTable.Rows[i]["Id"].ToString());
                entityDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.FindSingle(Sqlwhere);//订单明细             
                //JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(Sqlwhere);//购买人信息
                DataRow dr;
                dr = OrderEntityTable.NewRow();
                dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNo] = OrderImportTable.Rows[i]["OrderNo"].ToString();//订单号
                dr[A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber] = OrderImportTable.Rows[i]["WayBills"].ToString();//GetExpressCode(entityMain.WayBills.ToString());//发货快递单号
                dr[A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname] = OrderImportTable.Rows[i]["BuyerNick"];//买家昵称
                dr[A8ERP_Customs_OrderEntityInfo.FieldCreateOn] = Convert.ToDateTime(OrderImportTable.Rows[i]["CreateOn"]).ToString("yyyy-MM-dd HH:mm");//订单时间
                dr[A8ERP_Customs_OrderEntityInfo.FieldShopName] = OrderImportTable.Rows[i]["ShopName"].ToString();//店铺名称
                dr[A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts] = OrderImportTable.Rows[i]["OrderTotalAmount"].ToString();//产品总金额
                dr[A8ERP_Customs_OrderEntityInfo.FieldOrderAmount] = OrderImportTable.Rows[i]["OrderGoodsAmount"].ToString();//订单金额
                dr[A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount] = OrderImportTable.Rows[i]["DiscountAmount"].ToString();//优惠金额
                dr[A8ERP_Customs_OrderEntityInfo.FieldFreight] = OrderImportTable.Rows[i]["FeeAmount"].ToString();//运费        
                dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNote] = OrderImportTable.Rows[i]["Note"].ToString();//订单备注
                dr[A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage] = OrderImportTable.Rows[i]["Description"].ToString();//买家留言
                dr[A8ERP_Customs_OrderEntityInfo.FieldShippingAddress] = OrderImportTable.Rows[i]["ConsigneeAddress"].ToString();//收货地址
                dr[A8ERP_Customs_OrderEntityInfo.FieldConsigneeName] = OrderImportTable.Rows[i]["Consignee"].ToString();//收货人名称
                dr[A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries] = OrderImportTable.Rows[i]["SenderCountry"].ToString();//entityMain.SenderCountry.ToString()收货国家
                dr[A8ERP_Customs_OrderEntityInfo.FieldStateprovince] = OrderImportTable.Rows[i]["Province"].ToString();//州/省
                dr[A8ERP_Customs_OrderEntityInfo.FieldCity] = OrderImportTable.Rows[i]["City"].ToString();//城市                
                dr[A8ERP_Customs_OrderEntityInfo.FieldArea] = OrderImportTable.Rows[i]["Area"].ToString();//区
                dr[A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber] = OrderImportTable.Rows[i]["ConsigneeTel"].ToString();//联系电话
                dr[A8ERP_Customs_OrderEntityInfo.FieldMobilePhone] = OrderImportTable.Rows[i]["ConsigneeTel"].ToString();//手机
                OrderEntityTable.Rows.Add(dr);
                entityDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                entityDetailList = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                //明细表
                for (int k = 0; k < entityDetailList.Count; k++)
                {
                    DataRow drdetail;
                    drdetail = OrderDetailEntitydt.NewRow();
                    drdetail[OrderDetailEntityTable.FieldOrderNo] = entityDetailList[k].OrderNo.ToString();//订单号
                    drdetail[OrderDetailEntityTable.FieldGoodsOrder] = entityDetailList[k].GoodsOrder.ToString();//序号
                    drdetail[OrderDetailEntityTable.FieldGoodsName] = entityDetailList[k].GoodsName.ToString() + entityDetailList[k].GoodsModel.ToString();//商品名称
                    drdetail[OrderDetailEntityTable.FieldGoodsCode] = entityDetailList[k].GoodsCode.ToString();//商品编码
                    drdetail[OrderDetailEntityTable.FieldGoodsModel] = entityDetailList[k].GoodsModel.ToString();//商品规格
                    drdetail[OrderDetailEntityTable.FieldGoodsBar] = entityDetailList[k].GoodsBar.ToString();//商品条码
                    drdetail[OrderDetailEntityTable.FieldGoodsCount] = entityDetailList[k].GoodsCount.ToString();//商品数量
                    drdetail[OrderDetailEntityTable.FieldUnitPrice] = Math.Round(entityDetailList[k].UnitPrice, 2).ToString();//价格((int)Math.Round(entityListDetail[i].GoodsCount, 0)).ToString()
                    drdetail[OrderDetailEntityTable.FieldShipperName] = OrderImportTable.Rows[i]["ShopName"].ToString();//店铺名称;//店铺名称
                    OrderDetailEntitydt.Rows.Add(drdetail);
                }
            }
            #endregion
            string Paths = @"Export";
            string exportFileName = DateTime.Now.ToString("yyyyMMdd商品订单") + ".xls";//文件名称             
            ExportNPOI(OrderEntityTable, "订单主表", fieldList, OrderDetailEntitydt, "订单明细", fieldDetailList, Paths, exportFileName);
        }
        #endregion

        #region 导出操作
        /// <summary>
        /// 导出操作
        /// </summary>
        public void ExportExcel()
        {
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                #region 导出操作
                OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);
                OrderDetailEntitydt = new DataTable(OrderDetailEntityTable.TableName);//订单明细
                List<A8ERP_Customs_JkfOrderDetailInfo> entityDetailList = null;
                #region 主表记录
                Dictionary<string, string> fieldList = new Dictionary<string, string>();
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, "订单号");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, "发货快递单号");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, "买家昵称");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, "店铺名称");//店铺名称
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldSingleTime, "拍单时间");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, "产品总金额");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, "订单金额");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, "优惠金额");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, "运费");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryService, "货到付款服务费");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, "订单备注");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, "买家留言");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, "收货地址");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, "收货人名称");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, "收货国家");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, "州/省");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, "城市");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, "区");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, "邮编");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, "联系电话");
                fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, "手机");

                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldSingleTime, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShopName, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderAmount, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldFreight, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryService, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNote, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldShippingAddress, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldConsigneeName, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldMobilePhone, typeof(System.String));
                OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldPromotionTemplateMatching, typeof(System.String));

                #endregion
                Dictionary<string, string> fieldDetailList = new Dictionary<string, string>();
                fieldDetailList.Add(OrderDetailEntityTable.FieldOrderNo, "订单号");
                fieldDetailList.Add(OrderDetailEntityTable.FieldShipperName, "店铺名称");//店铺名称
                fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCode, "编码");//编码
                fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsModel, "规格");//规格
                fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsName, "商品名称");
                fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsBar, "商品条码");
                fieldDetailList.Add(OrderDetailEntityTable.FieldGoodsCount, "购买数量");
                fieldDetailList.Add(OrderDetailEntityTable.FieldUnitPrice, "售价");
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldShipperName, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldOrderNo, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsName, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCode, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsModel, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsBar, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldGoodsCount, typeof(System.String));
                OrderDetailEntitydt.Columns.Add(OrderDetailEntityTable.FieldUnitPrice, typeof(System.String));

                for (int i = 0; i < GetSelectIds().Length; i++)
                {
                    DataTable dtMain = new DataTable();
                    string Ids = GetSelectIds()[i].ToString();
                    string condition = string.Format("Id='{0}'", Ids);
                    A8ERP_Customs_JkfOrderImportHeadInfo entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
                    entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
                    A8ERP_Customs_JkfOrderDetailInfo entityDetail = new A8ERP_Customs_JkfOrderDetailInfo();
                    if (entityMain == null)
                        return;
                    string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
                    entityDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.FindSingle(Sqlwhere);//订单明细

                    DataRow dr;
                    dr = OrderEntityTable.NewRow();
                    dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNo] = entityMain.OrderNo.ToString();//订单号
                    dr[A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber] = entityMain.WayBills.ToString();//GetExpressCode(entityMain.WayBills.ToString());//发货快递单号
                    dr[A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname] = entityMain.BuyerNick;//买家昵称
                    dr[A8ERP_Customs_OrderEntityInfo.FieldShopName] = entityMain.ShopName.ToString();//店铺名称
                    dr[A8ERP_Customs_OrderEntityInfo.FieldSingleTime] = Convert.ToDateTime(entityMain.TradeTime.ToString()).ToString("yyyy/MM/dd HH:mm");//拍单时间
                    //dr[A8ERP_Customs_OrderEntityInfo.FieldTimePayment] = Convert.ToDateTime(entityMain.TradeTime.ToString()).ToString("yyyy/MM/dd HH:mm");//付款时间
                    dr[A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts] = entityMain.OrderTotalAmount.ToString();//产品总金额
                    dr[A8ERP_Customs_OrderEntityInfo.FieldOrderAmount] = entityMain.OrderGoodsAmount.ToString();//订单金额
                    dr[A8ERP_Customs_OrderEntityInfo.FieldDiscountAmount] = entityMain.DiscountAmount;//优惠金额
                    dr[A8ERP_Customs_OrderEntityInfo.FieldFreight] = entityMain.FeeAmount.ToString();//运费
                    dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNote] = entityMain.Note.ToString();//订单备注
                    dr[A8ERP_Customs_OrderEntityInfo.FieldBuyerMessage] = entityMain.Description.ToString();//买家留言
                    dr[A8ERP_Customs_OrderEntityInfo.FieldShippingAddress] = entityMain.ConsigneeAddress.ToString();//收货地址
                    dr[A8ERP_Customs_OrderEntityInfo.FieldConsigneeName] = entityMain.Consignee.ToString();//收货人名称
                    dr[A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries] = entityMain.SenderCountry.ToString();//收货国家  
                    dr[A8ERP_Customs_OrderEntityInfo.FieldStateprovince] = entityMain.Province.ToString();//州/省               
                    dr[A8ERP_Customs_OrderEntityInfo.FieldCity] = entityMain.City.ToString();//城市              
                    dr[A8ERP_Customs_OrderEntityInfo.FieldArea] = entityMain.Area.ToString();//区
                    dr[A8ERP_Customs_OrderEntityInfo.FieldZipCode] = entityMain.ZipCode;//邮编
                    dr[A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber] = entityMain.ConsigneeTel.ToString();//联系电话
                    dr[A8ERP_Customs_OrderEntityInfo.FieldMobilePhone] = entityMain.ConsigneeTel.ToString();//手机
                    OrderEntityTable.Rows.Add(dr);
                    entityDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                    entityDetailList = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                    //明细表
                    for (int k = 0; k < entityDetailList.Count; k++)
                    {
                        DataRow drdetail;
                        drdetail = OrderDetailEntitydt.NewRow();
                        drdetail[OrderDetailEntityTable.FieldOrderNo] = entityDetailList[k].OrderNo.ToString();//订单号
                        drdetail[OrderDetailEntityTable.FieldShipperName] = entityMain.ShopName.ToString();//店铺名称
                        drdetail[OrderDetailEntityTable.FieldGoodsName] = entityDetailList[k].GoodsName.ToString();//商品名称
                        drdetail[OrderDetailEntityTable.FieldGoodsCode] = entityDetailList[k].GoodsCode.ToString();//编码
                        drdetail[OrderDetailEntityTable.FieldGoodsModel] = entityDetailList[k].GoodsModel.ToString();//规格
                        drdetail[OrderDetailEntityTable.FieldGoodsBar] = entityDetailList[k].GoodsBar.ToString();//商品条码
                        drdetail[OrderDetailEntityTable.FieldGoodsCount] = entityDetailList[k].GoodsCount.ToString();//商品数量
                        drdetail[OrderDetailEntityTable.FieldUnitPrice] = Math.Round(entityDetailList[k].UnitPrice, 2).ToString();//价格((int)Math.Round(entityListDetail[i].GoodsCount, 0)).ToString()
                        OrderDetailEntitydt.Rows.Add(drdetail);
                    }
                }
                #endregion
                string Paths = @"Export";
                string exportFileName = DateTime.Now.ToString("yyyyMMdd") + ".xls";//文件名称             
                ExportNPOI(OrderEntityTable, "订单主记录", fieldList, OrderDetailEntitydt, "订单明细记录", fieldDetailList, Paths, exportFileName);
            }
        }
        #endregion

        #region 重写是否有退单记录
        /// <summary>
        /// 重写是否有退单记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Grid_JkfOrderImportHead_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            string OrderNo = string.Empty;// "T2700P1685805632043446";
            XmlDocument xmldoc = new XmlDocument(); //创建空的XML文档        
            OrderNo = Grid_JkfOrderImportHead.Rows[e.RowIndex].Cells["COrderNo"].Value.ToString();
            string Condition = string.Format("OrderNo='{0}'", OrderNo);
            bool IsFilePath = BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.IsExistRecord(Condition);
            if (IsFilePath)
            {
                IsFilePath = BLLTools.IsFileNamePathXml(OrderNo);//是否是退货状态
                if (!IsFilePath)
                {
                    A8ERP_Customs_OrderAbnormalStateInfo entityOrderAbnormalState = new A8ERP_Customs_OrderAbnormalStateInfo();
                    entityOrderAbnormalState = BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.FindSingle(Condition);
                    BLLTools.WriteRefund_Status(entityOrderAbnormalState.OrderNoId.ToString(), entityOrderAbnormalState.OrderNo.ToString(), entityOrderAbnormalState.StatusCode, entityOrderAbnormalState.StateDescription);//记录退单记录  
                    IsFilePath = true;
                }
            }
            if (IsFilePath)
            {
                string FilePath = BLLTools.CareateXml(OrderNo);//
                xmldoc.Load(FilePath);
                //读取Head头消息
                XmlNode nodeHead = xmldoc.SelectSingleNode("//Response");//读取当前节点下的所有内容
                string XmlOrderNo = (nodeHead.SelectSingleNode("OrderNo")).InnerText.ToString();//获得当前返回消的HEAD的值
                if (XmlOrderNo.Equals(Grid_JkfOrderImportHead.Rows[e.RowIndex].Cells["COrderNo"].Value.ToString()))
                {
                    DataGridViewRow row;
                    row = Grid_JkfOrderImportHead.Rows[e.RowIndex];
                    row.DefaultCellStyle.BackColor = Color.Red;
                }
            }

        }
        #endregion

        #region private void GetItemDetails() 绑定下拉筐数据
        /// <summary>
        /// 绑定下拉筐数据
        /// </summary>
        public override void GetItemDetails()
        {
            devDateTimeSelect1.LoadServerTime(this.GetServerDateTime());
            PageControlByCodeMain.PageSize = 100;
            FP = (FunctionParameter)Tag;

            #region 报关物流公司
            Cmb_Express.FP = FP;
            Cmb_Express.DataBind();
            Cmb_Express.SetSelectedIndex(0);
            #endregion

            #region 电商平台
            Cmb_ShopName.FP = FP;
            Cmb_ShopName.SelectCode = UserInfo.SubCompanyId;
            Cmb_ShopName.DataBind();
            Cmb_ShopName.SelectedId = "-1";
            #endregion

            #region 运输单位
            Cmb_BaseTransportUnit.FP = FP;
            Cmb_BaseTransportUnit.DataBind();
            #endregion

        }
        #endregion

        #region 工具栏
        /// <summary>
        /// 工具栏
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void barManager1_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            switch (e.Item.Name)
            {
                case "Bar_Add":
                    Add();//新增
                    break;
                case "bar_Edit"://编辑
                    Edit();
                    break;
                case "bar_Del"://删除
                    SingleDel = true;
                    Delete();
                    break;
                case "bar_Termination"://作废
                    SingleDel = false;
                    Delete();
                    break;
                case "bar_lenglianExport"://冷链导出
                    LenglianExcel();
                    break;
                case "bar_Import"://导入
                    ExcelImport();
                    break;
                case "bar_Export"://导出
                    ExportExcel();
                    break;
                case "bar_Synchronous"://同步仓库
                    RunBtnSynchronous();
                    break;
                case "barSuspended"://暂停
                    Suspended();
                    break;
                case "bar_Audit"://审核
                    //AuditPass();
                    break;
                case "bar_UnCheck"://反审核
                    //UnAuditPass();
                    break;
                case "bar_ReturnState"://重置已处理
                    GetreturnAuditState();
                    break;
                case "barProcessingSingle"://确认发货
                    ConfirmShipment();
                    break;
                case "bar_Refresh"://刷新                  
                    this.FormOnLoad();
                    break;
                case "bar_ExpressOrder"://生成物流数据
                    GetRunExpress();
                    break;
                case "bar_ConfirmShipment"://确认发货
                    ConfirmShipment();
                    break;
                case "bar_OutStock"://确认出库
                    OrderOutStock();
                    break;
                case "bar_Printpreview"://打印预览
                    FormPrintView();
                    break;
                case "bar_Print"://打印
                    FormPrint();
                    break;
                case "bar_Report"://打印模板
                    FormReportSet();
                    break;
                case "bar_Help":
                    break;
                case "bar_Close"://关闭
                    Close();
                    break;
            }
        }
        #endregion

        #region 窗体加载
        /// <summary>
        /// 窗体加载
        /// </summary>
        public override void FormOnLoad()
        {
            devDateTimeSelect1.LoadServerTime(this.GetServerDateTime());
            GetList();
            SetControlState();
        }
        #endregion

        #region 列表显示
        /// <summary>
        /// 列表显示
        /// </summary>
        public override void GetList()
        {
            //设为空
            Grid_JkfOrderImportHead.DataSource = null;
            SqlCondition = string.Empty;
            //获得日期时间值          
            statDate = devDateTimeSelect1.BeginDateTime().ToString("yyyy-MM-dd HH:mm:ss");//start
            endDate = devDateTimeSelect1.EndDateTime().ToString("yyyy-MM-dd HH:mm:ss");//end             
            ProgressForm progress = new ProgressForm(this);
            progress.Show();
            progress.SetProgressValue(1);
            try
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                string IdsArray = string.Empty;
                searchValue = txtQuery.Text.ToLower().Trim();
                OrderTotalAmount = Txt_OrderTotalAmount.Text.ToString();
                //初始化方法二
                SearchCondition Condition = new SearchCondition();
                switch (searchWhereValue)
                {
                    case "0":
                        if (!string.IsNullOrEmpty(searchValue))
                        {
                            searchValue = BLLTools.ToBj(searchValue);
                            string[] sArray = searchValue.Split(',');
                            IdsArray = BLLTools.ObjectsToList(sArray, "'");
                        }
                        Condition.AddCondition("OrderNo", IdsArray, SqlOperator.In);//订单号
                        break;
                    case "10":
                        if (!string.IsNullOrEmpty(searchValue))
                        {
                            searchValue = BLLTools.ToBj(searchValue);
                            string[] sArray = searchValue.Split(',');
                            IdsArray = BLLTools.ObjectsToList(sArray, "'");
                        }
                        Condition.AddCondition("WayBills", IdsArray, SqlOperator.In);//运单号
                        break;
                    case "20":
                        Condition.AddCondition("Consignee", searchValue, SqlOperator.Equal);//收货人名称
                        break;
                    case "30":
                        Condition.AddCondition("ConsigneePhone", searchValue, SqlOperator.Equal);//收货人手机
                        break;
                    case "40":
                        Condition.AddCondition("City", searchValue, SqlOperator.Equal);//城市
                        break;
                }
                Condition.AddCondition("CreateOn", statDate, SqlOperator.MoreThanOrEqual)//起始日期
                    .AddCondition("CreateOn", endDate, SqlOperator.LessThanOrEqual)//结束日期
                    .AddCondition("ShopNameId", ShopNameId, SqlOperator.Equal)//电商平台ID
                    .AddCondition("logisCompanyCode", Expressstr, SqlOperator.Equal)//申报物流公司编号
                     .AddCondition("TransportUnitCode", TransportUnitCode, SqlOperator.Equal)//运输单位
                    .AddCondition("IsWhether", IsWhether, SqlOperator.Equal)//是否跨境  
                    .AddCondition("OrderTotalAmount", OrderTotalAmount, SqlOperator.Equal)//订单金额
                    .AddCondition("AuditState", OrderAuditState, SqlOperator.Equal)//订单状态   
                                                                                   //.AddCondition("OrgId", UserInfo.CompanyId, SqlOperator.Equal)//组织Id
                    .AddCondition("DeletionStateCode", DeletionStateCode, SqlOperator.Equal)//删除状态
                    .AddCondition("Enabled", chEnabled, SqlOperator.Equal);//有效的
                if (checkZ.Checked)
                {
                    Condition.AddCondition("Province", "'浙江省','江苏省','上海市','上海'", SqlOperator.In);//收件人省浙江省,江苏省,上海市
                }
                if (!checkZ.Checked)
                {
                    Condition.AddCondition("Province", "浙江省','江苏省','上海市','上海", SqlOperator.NotIn);//收件人省浙江省,江苏省,上海市
                }
                SqlCondition = Condition.BuildConditionSql(DatabaseType.SqlServer);
                OrderImportTable = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(SqlCondition);//获得当前查询到的所有数据
                progress.SetProgressValue(60);
                PageControlByCodeMain.SetUcPageControlPars(SqlCondition, "A8ERP_Customs_JkfOrderImportHead", "Id", "Id", "*");
                JkfOrderImportHeadTable = PageControlByCodeMain.BindPageControl();
                if (JkfOrderImportHeadTable.Rows.Count != 0)
                {
                    #region 审核状态也是单根的流转状态
                    for (int i = 0; i < JkfOrderImportHeadTable.Rows.Count; i++)
                    {
                        JkfOrderImportHeadTable.Rows[i]["OrderState"] = GetEnumsIndex.GetOrderStateToDescription(JkfOrderImportHeadTable.Rows[i]["OrderState"].ToString());
                        JkfOrderImportHeadTable.Rows[i]["IeFlag"] = JkfOrderImportHeadTable.Rows[i]["IeFlag"].ToString() == "I" ? "进口" : "出口";
                    }
                    #endregion
                    progress.SetProgressValue(100);
                    Grid_JkfOrderImportHead.DataSource = JkfOrderImportHeadTable;
                }
                else
                {
                    //设为空                    
                    JkfOrderImportHeadTable.Clear();
                    JkfSignTable.Clear();
                    JkfOrderDetailTable.Clear();
                    JkfOrderResultTable.Clear();
                    JkfOrderReturnResultDetailTable.Clear();
                    OperationRecordsdt.Clear();
                    InventoryReturndt.Clear();
                    progress.SetStatusInfo.Text = "查询结果没有数据,请重新输入查询条件!";
                }
                stopwatch.Stop();
                PageControlByCodeMain.Statistics = String.Format("查询耗时:{0:00}:{1:00}:{2:000}", stopwatch.Elapsed.Minutes, stopwatch.Elapsed.Seconds, stopwatch.Elapsed.Milliseconds);
            }
            catch (Exception ex)
            {
                MessageUtil.ShowTips(ex.Message);
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.Tip = "查找完毕...";
                progress.SetStatusInfo.Text = "查找完毕...";
                progress.Close();
                if (Grid_JkfOrderImportHead.CurrentRow != null)
                {
                    btnSelectAll.Enabled = true;
                    btnInvertSelect.Enabled = true;
                }
                else
                {
                    btnSelectAll.Enabled = false;
                    btnInvertSelect.Enabled = false;
                }
            }
        }
        #endregion

        #region 分页事件
        /// <summary>
        /// 分页事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ucPageControlByCode_OnEventPageClicked(object sender, EventArgs e)
        {
            ProgressForm progress = new ProgressForm(this);
            progress.Show();
            try
            {
                progress.SetProgressValue(1);
                PageControlByCodeMain.SqlWhereStatement = SqlCondition; //指定查询表达式
                JkfOrderImportHeadTable = PageControlByCodeMain.PageTable;
                for (int i = 0; i < JkfOrderImportHeadTable.Rows.Count; i++)
                {
                    JkfOrderImportHeadTable.Rows[i]["OrderState"] = GetEnumsIndex.GetOrderStateToDescription(JkfOrderImportHeadTable.Rows[i]["OrderState"].ToString());
                    JkfOrderImportHeadTable.Rows[i]["IeFlag"] = JkfOrderImportHeadTable.Rows[i]["IeFlag"].ToString() == "I" ? "进口" : "出口";
                    //支付类型
                    string OrderpayType = JkfOrderImportHeadTable.Rows[i]["payType"].ToString();
                    switch (OrderpayType)
                    {
                        case "1":
                            JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType01.ToDescription().ToString();
                            break;
                        case "2":
                            JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType02.ToDescription().ToString();
                            break;
                        case "3":
                            JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType03.ToDescription().ToString();
                            break;
                        case "03":
                            JkfOrderImportHeadTable.Rows[i]["payType"] = payType.payType03.ToDescription().ToString();
                            break;
                    }
                    //币别国家
                    string CurrCode = JkfOrderImportHeadTable.Rows[i]["CurrCode"].ToString() == "142" ? "人民币" : "142";
                    JkfOrderImportHeadTable.Rows[i]["CurrCode"] = CurrCode;
                    //发件人国别
                    string SenderCountry = JkfOrderImportHeadTable.Rows[i]["CurrCode"].ToString() == "142" ? "中国" : "142";
                    JkfOrderImportHeadTable.Rows[i]["SenderCountry"] = SenderCountry;
                }
                progress.SetProgressValue(100);
                Grid_JkfOrderImportHead.DataSource = this.JkfOrderImportHeadTable;
                if (this.JkfOrderImportHeadTable.Rows.Count == 0)
                {
                    progress.SetStatusInfo.Text = "查询结果没有数据,请重新输入查询条件!";
                }
            }
            catch (Exception)
            {
                if (this.JkfOrderImportHeadTable.Rows.Count == 0)
                {
                    progress.SetStatusInfo.Text = "查询结果没有数据,请重新输入查询条件!";
                }
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.SetStatusInfo.Text = "查找完毕...";
                progress.Close();
            }
        }
        #endregion

        #region 导入操作       
        /// <summary>
        /// 导入操作
        /// </summary>
        public void ExcelImport()
        {
            try
            {
                Form Frm = null;
                RF = new ReflectionFunction();
                Frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_ImportExcel", FP);
                if (Frm == null)
                {
                    MessageUtil.ShowTips("调用失败");
                    return;
                }
                if (Frm.DialogResult == DialogResult.OK)
                {
                    this.FormOnLoad();
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }
        #endregion

        #region 发送打包及取消订单
        /// <summary>
        /// 确认发送打包指令发货接口
        /// </summary>
        /// <param name="userInfo"></param>
        /// <param name="Ids"></param>
        public void SetNOTIFY_WMS_PACKAGE()
        {
            ProgressForm progress = new ProgressForm(this);
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            int itemCount = 0;
            string ShopId = string.Empty;
            string OrderNo = string.Empty;
            progress.Show();
            try
            {
                A8ERP_Customs_JkfOrderImportHeadInfo entityMain = null;
                List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
                A8ERP_Customs_JkfGoodsPurchaserInfo JkfGoodsPurchaserInfoentity = null;
                KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
                for (int i = 0; i < GetSelecteIds().Length; i++)
                {
                    progress.SetProgressValue(1);
                    string condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
                    string Id = GetSelecteIds()[i].ToString();
                    entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
                    entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
                    if (entityMain == null)
                        return;
                    //检查是否有退货
                    long Tid = long.Parse(entityMain.OrderNo.ToString().Substring(6));
                    if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                    {
                        continue;
                    }
                    string Province = entityMain.Province.ToString();
                    if (string.IsNullOrEmpty(Province))
                    {
                        MessageUtil.ShowTips("省份名称不能为空!");
                        continue;
                    }
                    string City = entityMain.City.ToString();
                    if (string.IsNullOrEmpty(City))
                    {
                        MessageUtil.ShowTips("省份名称不能为空!");
                        continue;
                    }
                    var ShopNameId = entityMain.ShopNameId.ToString();
                    if (ShopNameId == "4")
                    {
                        ShopId = "dayuan";
                    }
                    else
                    {
                        ShopId = "dayuantianmao";
                    }
                    string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
                    entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                    entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                    OrderNo = entityMain.OrderNo.ToString();
                    string sqldetail = string.Format("OrderNo='{0}'", OrderNo);
                    JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(sqldetail);//购买人信息
                    InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
                    //输入订单主表
                    string FileName = OrderNo;
                    string MsgData = string.Empty;//错误与成功消息类型
                    string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
                    string tmsServiceCode = entityMain.LogisticsCarrierNumber;//配送商编码
                    string tmsOrderCode = entityMain.WayBills;//运单号
                    string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.SendNOTIFY_WMS_PACKAGE(OrderNo, tmsServiceCode, tmsOrderCode);
                    string Notify_type = "NOTIFY_WMS_PACKAGE";//下发订单打包指令接口
                    bool returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, Notify_type, out statusMessage, out MsgData);
                    if (!returnValue)
                    {
                        MessageUtil.ShowTips(MsgData);
                    }
                    //修改当前的订单状态
                    if (statusMessage == "true")
                    {
                        //<?xml version="1.0" encoding="utf-8"?> <response><errorCode>S13</errorCode> <errorMsg>单号:T2700P1542912654134539已经存在</errorMsg> <success>false</success> </response>"
                        //写入订单状态到订单
                        //string orderStatusCode = CustomsOrderState.SynchronousOk.ToString();
                        //if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(Id, orderStatusCode))
                        //{
                        statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
                        itemCount++;
                        //MessageUtil.ShowTips(statusMessage);
                        //}
                        progress.SetProgressValue(70);
                        progress.SetStatusInfo.Text = "执行发货处理...";
                        ////是否更新电商的发货状态
                        //string TidNo = OrderNo.Substring(6);
                        //ConfirmDelivery(TidNo, entityMain.LogisticsCarrierNumber.ToString());
                    }

                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.SetStatusInfo.Text = "执行完毕...";
                progress.Close();
                MessageUtil.ShowTips(string.Format("同步网仓生成成功:{0}个,{1}", itemCount, statusMessage));
                this.FormOnLoad();
            }

        }

        /// <summary>
        /// 单个发送打包指令
        /// </summary>
        /// <param name="OrderNo"></param>
        /// <returns></returns>
        public bool SendNoTFY_WMS_PACKAGE(string Id)
        {
            ProgressForm progress = new ProgressForm(this);
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            bool returnValue = false;
            progress.Show();
            try
            {
                A8ERP_Customs_JkfOrderImportHeadInfo entityMain = null;
                List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
                A8ERP_Customs_JkfGoodsPurchaserInfo JkfGoodsPurchaserInfoentity = null;
                KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
                progress.SetProgressValue(1);
                string ShopId = string.Empty;
                string OrderNo = string.Empty;
                string condition = string.Format("Id='{0}'", Id);
                entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
                entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
                if (entityMain == null)
                    return false;
                OrderNo = entityMain.OrderNo.ToString();
                string Province = entityMain.Province.ToString();
                if (string.IsNullOrEmpty(Province))
                {
                    MessageUtil.ShowTips("省份名称不能为空!");
                    return false;
                }
                string City = entityMain.City.ToString();
                if (string.IsNullOrEmpty(City))
                {
                    MessageUtil.ShowTips("省份名称不能为空!");
                    return false; ;
                }
                var ShopNameId = entityMain.ShopNameId.ToString();
                if (ShopNameId == "4")
                {
                    ShopId = "dayuan";
                }
                else
                {
                    ShopId = "dayuantianmao";
                }
                string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
                entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                OrderNo = entityMain.OrderNo.ToString();
                string sqldetail = string.Format("OrderNo='{0}'", OrderNo);
                JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(sqldetail);//购买人信息
                InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
                //输入订单主表
                string FileName = OrderNo;
                string MsgData = string.Empty;//错误与成功消息类型
                string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
                string tmsServiceCode = entityMain.LogisticsCarrierNumber;//配送商编码
                string tmsOrderCode = entityMain.WayBills;//运单号
                string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.SendNOTIFY_WMS_PACKAGE(OrderNo, tmsServiceCode, tmsOrderCode);
                string Notify_type = "NOTIFY_WMS_PACKAGE";//下发订单打包指令接口
                returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, Notify_type, out statusMessage, out MsgData);
                if (!returnValue)
                {
                    returnValue = false;
                    MessageUtil.ShowTips(MsgData);
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.SetStatusInfo.Text = "执行完毕...";
                progress.Close();
            }
            return returnValue;
        }

        /// <summary>
        /// 订单取消接口
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Bnt_CANCEL_WMS_ORDER_Click(object sender, EventArgs e)
        {
            ProgressForm progress = new ProgressForm(this);
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            int itemCount = 0;
            progress.Show();
            try
            {
                A8ERP_Customs_JkfOrderImportHeadInfo entityMain = null;
                List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
                A8ERP_Customs_JkfGoodsPurchaserInfo JkfGoodsPurchaserInfoentity = null;
                KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
                for (int i = 0; i < GetSelecteIds().Length; i++)
                {
                    progress.SetProgressValue(1);
                    string ShopId = string.Empty;
                    string OrderNo = string.Empty;
                    string condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
                    string Id = GetSelecteIds()[i].ToString();
                    entityMain = new A8ERP_Customs_JkfOrderImportHeadInfo();
                    entityMain = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
                    if (entityMain == null)
                        return;
                    var ShopNameId = entityMain.ShopNameId.ToString();
                    if (ShopNameId == "4")
                    {
                        ShopId = "dayuan";
                    }
                    else
                    {
                        ShopId = "dayuantianmao";
                    }
                    string Sqlwhere = string.Format("FId='{0}'", entityMain.Id);
                    entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                    entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                    OrderNo = entityMain.OrderNo.ToString();
                    string sqldetail = string.Format("OrderNo='{0}'", OrderNo);
                    JkfGoodsPurchaserInfoentity = BLLFactory<A8ERP_Customs_JkfGoodsPurchaser>.Instance.FindSingle(sqldetail);//购买人信息
                    InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
                    //输入订单主表
                    string FileName = OrderNo;
                    string MsgData = string.Empty;//错误与成功消息类型
                    string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
                    string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.CancelOrder(OrderNo);
                    string Notify_type = "CANCEL_WMS_ORDER";//订单取消接口
                    bool returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, Notify_type, out statusMessage, out MsgData);
                    if (!returnValue)
                    {
                        MessageUtil.ShowTips(MsgData);
                    }
                    //修改当前的订单状态
                    if (statusMessage == "true")
                    {
                        //<?xml version="1.0" encoding="utf-8"?> <response><errorCode>S13</errorCode> <errorMsg>单号:T2700P1542912654134539已经存在</errorMsg> <success>false</success> </response>"
                        //取消成功返回到已申报状态
                        string orderStatusCode = CustomsOrderState.CustomsClearanceOk.ToString();//已申报
                        //if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(Id, orderStatusCode))
                        //{
                        statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
                        itemCount++;
                        //MessageUtil.ShowTips(statusMessage);
                        //}
                        progress.SetProgressValue(70);
                        progress.SetStatusInfo.Text = "执行取消处理...";
                        ////是否更新电商的发货状态
                        //string TidNo = OrderNo.Substring(6);
                        //ConfirmDelivery(TidNo, entityMain.LogisticsCarrierNumber.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.SetStatusInfo.Text = "执行完毕...";
                progress.Close();
                this.FormOnLoad();
                MessageUtil.ShowTips(string.Format("同步网仓取消成功:{0}个,{1}", itemCount, statusMessage));
            }
        }
        #endregion

        #region 获得当前订单号的物流单号        
        /// <summary>
        /// 获得当前订单号的物流单号
        /// </summary>
        /// <param name="OrderNo"></param>
        /// <returns></returns>
        public string GetExpressCode(string OrderNo)
        {
            return BLLFactory<A8ERP_Customs_ExpressManagement>.Instance.IsorderNo(OrderNo);
        }
        #endregion

        #region  删除操作     
        /// <summary>
        /// 删除操作
        /// </summary>
        public override void Delete()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                if (SingleDel)
                {
                    BatchDelete();//真删除
                }
                else
                {
                    SingleDelete();//删除标记
                }
            }
        }
        #endregion

        #region private int SingleDelete() 单个记录删除
        /// <summary>
        /// 单个记录删除
        /// </summary>
        /// <returns>影响行数</returns>
        public int SingleDelete()
        {
            int result = 0;
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            // 设置鼠标繁忙状态,并保留原先的状态
            Cursor holdCursor = this.Cursor;
            this.Cursor = Cursors.WaitCursor;
            this.FormLoaded = false;
            if (DevExpress.XtraEditors.XtraMessageBox.Show(AppMessage.MSG0015, AppMessage.MSG0401, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                try
                {
                    // 绑定数据
                    string[] Ids = this.GetSelecteIds();
                    result = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.SetDeleted(UserInfo, Ids);//new String[] { this.CurrentEntityId }
                    DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    if (result > 0)
                    {
                        this.FormOnLoad();
                    }
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowError(ex.Message);
                }
                finally
                {
                    // 设置鼠标默认状态,原来的光标状态
                    this.FormLoaded = true;
                    this.Cursor = holdCursor;
                }

            }
            return result;
        }
        #endregion

        #region 批量删除        
        /// <summary>
        /// 批量删除
        /// </summary>
        /// <returns></returns>
        public override int BatchDelete()
        {
            int result = 0;
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            if (DevExpress.XtraEditors.XtraMessageBox.Show(AppMessage.MSG0015, AppMessage.MSG0000, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                LoadingUtil.ShowWaitLoading();
                try
                {
                    this.FormLoaded = false;
                    // 绑定数据
                    string[] Ids = this.GetSelecteIds();
                    result = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.BatchDelete(UserInfo, Ids, out statusCode, out statusMessage);
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowError(ex.Message);
                }
                finally
                {
                    DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    LoadingUtil.StopLoading();
                    this.Visible = true;
                    // 获取列表
                    this.FormLoaded = true;
                    FormOnLoad();
                }
            }

            return result;
        }
        #endregion

        #region 删除状态        
        /// <summary>
        /// 删除状态
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkDel_CheckedChanged(object sender, EventArgs e)
        {
            this.FormOnLoad();
        }
        #endregion

        #region 编辑
        /// <summary>
        /// 编辑
        /// </summary>
        public override void Edit()
        {
            Form frm = null;
            RF = new ReflectionFunction();
            FP.EntityId = CurrentEntityId.ToString();
            FP.IsTrue = true;
            frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_ShopOrderAdd", FP);
            if (frm.DialogResult == DialogResult.OK)
            {
                this.FormOnLoad();
            }

        }
        #endregion

        #region 双击
        private void Grid_JkfOrderImportHead_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            this.Edit();
        }
        #endregion

        #region 同步订单网仓发送
        /// <summary>
        /// 同步订单网仓发送
        /// </summary>
        /// <param name="userInfo"></param>
        /// <param name="GetIds"></param>
        /// <param name="?"></param>
        public bool PostOrderEntity(BaseUserEntity userInfo, string[] Ids)
        {
            ProgressForm progress = new ProgressForm(this);
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            int itemCount = 0;
            int itemErrcount = 0;
            bool returnValue = false;
            progress.Show();
            try
            {
                A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;
                List<A8ERP_Customs_JkfOrderDetailInfo> entityListDetail = null;
                KCY_InvoiceInfoInfo InvoiceInfoEntity = null;
                for (int i = 0; i < Ids.Length; i++)
                {
                    progress.SetProgressValue(1);
                    string ShopId = string.Empty;
                    string OrderNo = string.Empty;
                    string condition = string.Format("Id='{0}'", Ids[i].ToString());
                    JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                    JkfOrderImportHeadEntity = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);//订单主表
                    if (JkfOrderImportHeadEntity == null)
                        continue;
                    string StoredId = JkfOrderImportHeadEntity.ShopNameId;
                    OrderNo = JkfOrderImportHeadEntity.OrderNo.ToString();

                    #region 状态过滤
                    //已申报才能同步
                    string AuditState = JkfOrderImportHeadEntity.AuditState.ToString();
                    if (!(AuditState.Equals("30")))
                    {
                        MessageUtil.ShowTips("呵呵!您的订单状态不在已申报状态,已申报才能同步!");
                        continue;
                    }
                    string WayBills = JkfOrderImportHeadEntity.WayBills.ToString();//运单号
                    if (WayBills.Length <= 10 && WayBills.Equals(""))
                    {
                        MessageUtil.ShowTips("呵呵!你连运单号都没有或是运单号不符合规定!有点过分了哦");
                        continue;
                    }
                    #endregion

                    #region 检查是否有退货记录
                    A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(StoredId);
                    if (StoreManagementEntity.CheckrefundSingle == 1)
                    {
                        long Tid = long.Parse(JkfOrderImportHeadEntity.OrderNo.ToString().Substring(6));
                        TaobaoConfig.SetTaobaoConfig(JkfOrderImportHeadEntity.ShopNameId);//获得店铺的联连信息
                        if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                        {
                            BLLTools.WriteRefund_Status(JkfOrderImportHeadEntity.Id.ToString(), JkfOrderImportHeadEntity.OrderNo.ToString(), statusCode, statusMessage);//记录退单记录
                            A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                            entity.OrderNoId = JkfOrderImportHeadEntity.Id.ToString();
                            entity.OrderNo = JkfOrderImportHeadEntity.OrderNo.ToString();
                            entity.StatusCode = statusCode;
                            entity.StateDescription = statusMessage;
                            string statusCodes = string.Empty;
                            string statusMessages = string.Empty;
                            BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                            MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
                            continue;
                        }
                    }
                    #endregion

                    #region 验证相关信息
                    string Province = JkfOrderImportHeadEntity.Province.ToString();
                    if (string.IsNullOrEmpty(Province))
                    {
                        MessageUtil.ShowTips("省份名称不能为空!");
                        continue;
                    }
                    string City = JkfOrderImportHeadEntity.City.ToString();
                    if (string.IsNullOrEmpty(City))
                    {
                        MessageUtil.ShowTips("省份名称不能为空!");
                        continue;
                    }
                    string Area = JkfOrderImportHeadEntity.SenderArea.ToString();
                    if (string.IsNullOrEmpty(Area))
                    {
                        MessageUtil.ShowTips("收件人区名称不能为空!");
                        continue;
                    }
                    #endregion

                    ShopId = JkfOrderImportHeadEntity.OrderType.ToString();//订单类型不同平台不同的来源仓库用来区分店铺
                    string Sqlwhere = string.Format("FId='{0}'", JkfOrderImportHeadEntity.Id);
                    entityListDetail = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                    entityListDetail = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                    OrderNo = JkfOrderImportHeadEntity.OrderNo.ToString();

                    InvoiceInfoEntity = new KCY_InvoiceInfoInfo();//发票信息
                    //输入订单主表
                    string FileName = OrderNo;
                    string MsgData = string.Empty;
                    string XmlFileName = WebServiceXMLHelper.CareateXml(FileName, "OrderToWC");//创建并返回路径
                    string XmlData = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OutXMl(JkfOrderImportHeadEntity, entityListDetail, InvoiceInfoEntity, XmlFileName);
                    returnValue = HttpWMSHelper.HttpPostOrder(XmlData, ShopId, out statusMessage, out MsgData);
                    //修改当前的订单状态
                    if (statusMessage == "true")
                    {
                        if (returnValue)
                        {
                            //写入订单状态到订单
                            string orderStatusCode = CustomsOrderState.SynchronousOk.ToString();
                            if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Ids[i].ToString(), orderStatusCode))
                            {
                                string Msg = statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
                                itemCount++;
                                statusMessage = "  已同步 " + itemCount + " 条" + Msg;
                                progress.SetStatusInfo.Text = statusMessage;
                            }
                            progress.SetProgressValue(99);
                            progress.SetStatusInfo.Text = statusMessage + "执行发货处理...";
                            #region 发送打包指令
                            progress.SetStatusInfo.Text = statusMessage + "发送打包指令...";
                            SendNoTFY_WMS_PACKAGE(Ids[i].ToString());
                            #endregion

                            #region 是否更新电商的发货状态
                            if (StoreManagementEntity.DeliveryStatus == 1)
                            {
                                progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
                                string TidNo = OrderNo.Substring(6);
                                ConfirmDelivery(TidNo, WayBills, JkfOrderImportHeadEntity.LogisticsCarrierNumber.ToString());

                            }
                            #endregion

                        }
                    }
                    else
                    {
                        returnValue = false;
                        itemErrcount++;
                        MessageUtil.ShowTips(MsgData);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.SetStatusInfo.Text = "执行完毕...";
                progress.Close();
                MessageUtil.ShowTips(string.Format("同步订单发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount));
                this.FormOnLoad();
            }
            return returnValue;
        }
        #endregion

        #region 确认发货
        /// <summary>
        ///  确认发货
        /// </summary>
        /// <param name="Tid"></param>
        /// <param name="WayBills"></param>
        /// <param name="ExpressCodeName"></param>
        /// <returns></returns>
        public bool ConfirmDelivery(string Tid, string WayBills, string ExpressCodeName)
        {
            bool returnValue = false;
            string Sid = string.Empty;
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            string Condition = string.Format("Tid='{0}'", Tid);
            A8ERP_TaobaoOrdersInfo entity = new A8ERP_TaobaoOrdersInfo();
            entity = BLLFactory<BLL.A8ERP_TaobaoOrders>.Instance.FindSingle(Condition);
            if (entity == null)
                return returnValue;
            //Sid = entity.Sid.ToString();
            Sid = WayBills;
            string shopNameCode = entity.StoreId.ToString();//店铺编码
            if (entity.Tid.Trim().ToString().Equals(entity.Sid.Trim().ToString()))
            {
                MessageUtil.ShowTips(string.Format("未生成物流单号:{0}个", Sid));
                return returnValue;
            }
            returnValue = TaobaoOperation.GetSendResponse(long.Parse(Tid), ExpressCodeName, Sid, shopNameCode, out statusMessage);//"SF"
            //更新订单状态
            if (returnValue)
            {
                entity.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();//;Status             
                if (BLLFactory<BLL.A8ERP_TaobaoOrders>.Instance.OrderAuditState(entity))
                {
                    A8ERP_TaobaoOrderDetailInfo entityDetail = new A8ERP_TaobaoOrderDetailInfo();
                    string Conditiondetail = string.Format("oid='{0}'", Tid);
                    entityDetail = BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.FindSingle(Conditiondetail);
                    if (entityDetail == null)
                        return returnValue;
                    entityDetail.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();// Status;
                    BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.OrderAuditState(entityDetail);
                }
            }
            else
            {
                MessageUtil.ShowTips(statusMessage);
                entity.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();//;Status
                if (BLLFactory<BLL.A8ERP_TaobaoOrders>.Instance.OrderAuditState(entity))
                {
                    A8ERP_TaobaoOrderDetailInfo entityDetail = new A8ERP_TaobaoOrderDetailInfo();
                    string Conditiondetail = string.Format("oid='{0}'", Tid);
                    entityDetail = BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.FindSingle(Conditiondetail);
                    if (entityDetail == null)
                        return returnValue;
                    entityDetail.Status = TaobaoStatusCodeEnum.WAIT_BUYER_CONFIRM_GOODS.ToString();// Status;
                    BLLFactory<BLL.A8ERP_TaobaoOrderDetail>.Instance.OrderAuditState(entityDetail);
                }
            }
            return returnValue;
        }
        #endregion

        #region 同步仓库
        /// <summary>
        /// 同步到网仓
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void RunBtnSynchronous()
        {
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                //PostOrderEntity(UserInfo, GetSelectIds());//网仓
                RunBtnWarehouse(); //冷联
            }
        }
        /// <summary>
        /// 同步冷链
        /// </summary>
        private void RunBtnWarehouse()
        {
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            int itemCount = 0;
            int itemErrcount = 0;
            bool returnValue = false;
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                //if (DialogResult.Yes == DevExpress.XtraEditors.XtraMessageBox.Show("确认同步仓库操作吗?", AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information))
                //{
                ProgressForm progress = new ProgressForm(this);
                progress.Show();
                try
                {
                    #region 批量发送到冷联
                    for (int i = 0; i < GetSelecteIds().Length; i++)
                    {
                        string FileName = string.Empty;
                        string CurrentOrderNo = string.Empty;
                        string PlatformNumber = string.Empty;
                        string XmlFileName = string.Empty;
                        string OrderXml = string.Empty;
                        string WayBills = string.Empty;
                        string LogisticsCarrierNumber = string.Empty;
                        string LogisticsCarriersName = string.Empty;
                        //过滤表获得当前选中行的记录
                        DataTable GoodsOrderImportHeadXml = new DataTable();
                        string Id = GetSelecteIds()[i];
                        string Condition = string.Format("Id='{0}'", Id);
                        GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
                        if (GoodsOrderImportHeadXml.Rows.Count == 0)
                            continue;
                        for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
                        {
                            CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();//当前订单号
                            PlatformNumber = GoodsOrderImportHeadXml.Rows[K]["PlatformNumber"].ToString();//源订单号
                            WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
                            LogisticsCarrierNumber = GoodsOrderImportHeadXml.Rows[K]["LogisticsCarrierNumber"].ToString();//物流承运商编号
                            LogisticsCarriersName = GoodsOrderImportHeadXml.Rows[K]["LogisticsCarriersName"].ToString();//物流承运商名称
                        }
                        DataRow dr = BaseBusinessLogic.GetDataRow(GoodsOrderImportHeadXml, "Id", Id);
                        #region 状态过滤
                        //已申报才能同步
                        string AuditState = dr["AuditState"].ToString();
                        if ((AuditState.Equals("70")))
                        {
                            statusMessage = "已出库不能同步!";
                            MessageUtil.ShowTips(statusMessage);
                            continue;
                        }
                        if ((!AuditState.Equals("30")))
                        {
                            statusMessage = "呵呵!您的订单状态不在已申报状态,已申报才能同步!";
                            MessageUtil.ShowTips(statusMessage);
                            continue;
                        }
                        WayBills = dr["WayBills"].ToString();//运单号                     
                        if (WayBills.Length <= 10 && WayBills.Equals(""))
                        {
                            statusMessage = "呵呵!你连运单号都没有或是运单号不符合规定!有点过分了哦";
                            MessageUtil.ShowTips(statusMessage);
                            continue;
                        }
                        #endregion

                        #region 检查是否有退货记录
                        A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(dr["ShopNameId"].ToString());
                        if (StoreManagementEntity.CheckrefundSingle == 1)
                        {
                            long Tid = long.Parse(PlatformNumber);
                            TaobaoConfig.SetTaobaoConfig(dr["ShopNameId"].ToString());//获得店铺的联连信息
                            if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                            {
                                BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
                                A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                entity.OrderNoId = Id;
                                entity.OrderNo = CurrentOrderNo;
                                entity.StatusCode = statusCode;
                                entity.StateDescription = statusMessage;
                                string statusCodes = string.Empty;
                                string statusMessages = string.Empty;
                                BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
                                continue;
                            }
                        }
                        #endregion

                        #region 验证相关信息
                        string Province = dr["Province"].ToString();
                        if (string.IsNullOrEmpty(Province))
                        {
                            MessageUtil.ShowTips("省份名称不能为空!");
                            continue;
                        }
                        string City = dr["City"].ToString();
                        if (string.IsNullOrEmpty(City))
                        {
                            MessageUtil.ShowTips("省份名称不能为空!");
                            continue;
                        }
                        string Area = dr["Area"].ToString();
                        if (string.IsNullOrEmpty(Area))
                        {
                            MessageUtil.ShowTips("收件人区名称不能为空!");
                            continue;
                        }
                        #endregion

                        #region  验证相关信息
                        if (string.IsNullOrEmpty(LogisticsCarrierNumber))
                        {
                            MessageUtil.ShowTips("物流承运商编号不能为空!");
                            break;
                        }
                        if (string.IsNullOrEmpty(WayBills))
                        {
                            continue;
                        }
                        #endregion

                        DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//个人申报明细表
                        string condition = string.Format("FId='{0}'", Id);
                        GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
                        //发票信息
                        DataTable NvoiceInfoDtXml = new DataTable(A8ERP_Customs_NvoiceInfoInfo.TableName);//发票信息
                        NvoiceInfoDtXml = BLLFactory<BLL.A8ERP_Customs_NvoiceInfo>.Instance.GetDataTable(condition);//发票信息
                        FileName = CurrentOrderNo + "LL";
                        XmlFileName = WebServiceXMLHelper.CareateXmlReturnPath(FileName);//创建并返回路径
                        OrderXml = OrderUtils.GetOrderXml(GoodsOrderImportHeadXml, GoodsDetaildtXml, NvoiceInfoDtXml, XmlFileName);//写入Xml文件   
                        string appSecret = "12345678";
                        MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                        Encoding encoding = Encoding.UTF8;
                        //这里是对方没有进行校验
                        string Md5Sign = BitConverter.ToString(md5.ComputeHash(encoding.GetBytes(appSecret + OrderXml + appSecret)));//Md5加密签名
                        String sign = Convert.ToBase64String(encoding.GetBytes(Md5Sign)).ToUpper();//.Replace("-", "");  //加密签名
                        sign = Convert.ToBase64String(encoding.GetBytes(sign));
                        string PostData = OrderUtils.GerPutSKUDataXml(OrderXml, sign);//发送冷联参数
                        string ReturnMsgXml = HttpUtility.UrlDecode(OrderUtils.SendXml(PostData, out statusMessage, out returnValue));
                        //接收成功变更订单的状态
                        string Msg = string.Empty;
                        returnValue = OrderUtils.ReturnResponseSSuccess(CurrentOrderNo, ReturnMsgXml, out statusCode, out statusMessage);
                        if (returnValue)
                        {
                            //更新订单状态
                            string orderStatusCode = CustomsOrderState.SynchronousOk.ToString();
                            if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode))
                            {
                                itemCount++;
                                progress.SetStatusInfo.Text = "  已同步 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
                            }

                            #region 写入操作记录
                            if (returnValue)
                            {
                                A8ERP_WMS_OperationRecordsInfo OperationEntity = new A8ERP_WMS_OperationRecordsInfo();
                                OperationEntity.ProcessId = CurrentOrderNo;//服务Id
                                OperationEntity.ProcessName = "订单服务";//服务名称
                                OperationEntity.OperationName = string.Format("订单服务 {0} {1}", CustomsOrderState.SynchronousOk.ToDescription().ToString(), CurrentOrderNo);//操作名称
                                OperationEntity.Operation = UserInfo.RealName;//操作人  
                                OperationEntity.OrderState = "40";//状态
                                OperationEntity.CustomsField = UserInfo.WarehouseName;//路由产生地点
                                OperationEntity.Description = string.Format("订单:{0} 订单服务", CurrentOrderNo);//描述
                                OperationEntity.CreateBy = UserInfo.UserName;//用户名称
                                OperationEntity.CreateUserId = UserInfo.Id;//用户Id
                                OperationEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                                OperationEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                                returnValue = BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationEntity);
                            }
                            #endregion
                        }
                        else
                        {
                            itemErrcount++;
                            progress.SetStatusInfo.Text = "  已同步 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
                        }
                        progress.SetProgressValue(99);
                        progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";

                        #region 是否更新电商的发货状态
                        if (returnValue)
                        {
                            if (StoreManagementEntity.DeliveryStatus == 1)
                            {
                                progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
                                ConfirmDelivery(PlatformNumber, WayBills, LogisticsCarrierNumber);//
                            }
                        }
                        #endregion
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowTips(ex.Message);
                }
                finally
                {
                    progress.SetProgressValue(100);
                    progress.SetStatusInfo.Text = "  已同步 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
                    progress.Close();
                    MessageUtil.ShowTips(statusMessage);
                    this.FormOnLoad();
                }
                //}
            }
        }
        #endregion

        #region 确认出货
        /// <summary>
        /// 确认发货
        /// </summary>
        public void ConfirmShipment()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            try
            {
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    if (MessageUtil.ShowYesNoAndWarning("批量执行发货,此操作将改变电商的发货状态,您确定是否继续?") == DialogResult.Yes)
                    {
                        string statusCode = string.Empty;
                        string statusMessage = string.Empty;
                        ProgressForm progress = new ProgressForm(this);
                        int itemCount = 0;
                        int itemErrcount = 0;
                        string OrderstatusCode = string.Empty;
                        progress.Show();
                        try
                        {
                            for (int i = 0; i < GetSelectOrderNos().Length; i++)
                            {
                                progress.SetProgressValue(1);
                                string OrderNo = GetSelectOrderNos()[i].ToString();
                                string conditon = string.Format("OrderNo='{0}'", OrderNo);
                                A8ERP_Customs_JkfOrderImportHeadInfo entityOrder = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(conditon);
                                if (entityOrder == null) continue;
                                string ShopNameId = string.Empty;
                                string PlatformNumber = string.Empty;
                                string LogisticsCarrierNumber = string.Empty;
                                string LogisticsCarriersName = string.Empty;
                                string WayBills = string.Empty;
                                ShopNameId = entityOrder.ShopNameId.ToString();//店铺Id
                                PlatformNumber = entityOrder.PlatformNumber.ToString();//源单号
                                LogisticsCarrierNumber = entityOrder.LogisticsCarrierNumber;//物流承运商编号
                                LogisticsCarriersName = entityOrder.LogisticsCarriersName;//物流承运商名称
                                WayBills = entityOrder.WayBills;//运单号

                                #region 检查是否有退货记录
                                A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(ShopNameId);
                                if (StoreManagementEntity.CheckrefundSingle == 1)
                                {
                                    long Tid = long.Parse(PlatformNumber);
                                    TaobaoConfig.SetTaobaoConfig(ShopNameId);//获得店铺的联连信息
                                    if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                                    {
                                        BLLTools.WriteRefund_Status(entityOrder.Id.ToString(), CurrentOrderNo, statusCode, statusMessage);//记录退单记录
                                        A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                        entity.OrderNoId = entityOrder.Id.ToString();
                                        entity.OrderNo = CurrentOrderNo;
                                        entity.StatusCode = statusCode;
                                        entity.StateDescription = statusMessage;
                                        string statusCodes = string.Empty;
                                        string statusMessages = string.Empty;
                                        BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                        MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
                                        itemErrcount++;
                                        continue;
                                    }
                                }
                                #endregion

                                #region 是否更新电商的发货状态
                                if (StoreManagementEntity.DeliveryStatus == 1)
                                {
                                    progress.SetStatusInfo.Text = statusMessage + "更新电商的发货状态...";
                                    itemCount++;
                                    progress.SetProgressValue(80);
                                    progress.SetStatusInfo.Text = "  确认发货 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
                                    ConfirmDelivery(PlatformNumber, WayBills, LogisticsCarrierNumber);//
                                }
                                #endregion
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageUtil.ShowError(ex.Message);
                        }
                        finally
                        {
                            progress.SetProgressValue(100);
                            progress.SetStatusInfo.Text = "  确认发货 " + itemCount + " 条" + " 出错:" + itemErrcount + " 条" + "消息:" + statusMessage;
                            progress.Close();
                            MessageUtil.ShowTips(string.Format("确认发货成功:{0}个", itemCount));
                            this.FormOnLoad();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }

        }
        #endregion

        #region 商品发送到海关
        /// <summary>
        ///商品发送
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>        
        public override void RundeclareVoid()
        {
            try
            {
                if (Grid_JkfOrderImportHead.CurrentRow == null)
                    return;
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    ProgressForm progress = new ProgressForm(this);
                    string statusCode = string.Empty;
                    string statusMessage = string.Empty;
                    int itemCount = 0;
                    int itemErrcount = 0;
                    progress.Show();
                    try
                    {
                        #region 批量提交申报
                        for (int i = 0; i < GetSelecteIds().Length; i++)
                        {
                            progress.SetProgressValue(1);
                            string FileName = string.Empty;
                            string CurrentOrderNo = string.Empty;
                            string PlatformNumber = string.Empty;
                            string XmlFileName = string.Empty;
                            string OrderXml = string.Empty;
                            bool returnValueMsg = false;
                            string ShopNameId = string.Empty;
                            string WayBills = string.Empty;
                            //过滤表获得当前选中行的记录                        
                            string businessType = "IMPORTORDER";//业务类型//商品订单
                            string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改

                            #region 申报单主信息
                            DataTable GoodsOrderImportHeadXml = new DataTable();
                            string Id = GetSelecteIds()[i];
                            string Condition = string.Format("Id='{0}'", Id);
                            GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
                            for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
                            {
                                CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();
                                PlatformNumber = GoodsOrderImportHeadXml.Rows[K]["PlatformNumber"].ToString();
                                WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
                                ShopNameId = GoodsOrderImportHeadXml.Rows[K]["ShopNameId"].ToString();
                            }
                            if (string.IsNullOrEmpty(WayBills))
                            {
                                continue;
                            }
                            #region 订单状态是否已申报
                            int OrderAuditState = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetOrderAuditState(CurrentOrderNo);
                            if (OrderAuditState >= 30)
                            {
                                progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
                                continue;
                            }
                            #endregion
                            #endregion

                            #region  发现是否有申请退货或是退货关闭交易
                            A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(ShopNameId);
                            if (StoreManagementEntity.CheckrefundSingle == 1)
                            {
                                long Tid = long.Parse(PlatformNumber);
                                TaobaoConfig.SetTaobaoConfig(ShopNameId);//获得店铺的联连信息
                                if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                                {
                                    //更改退单状态
                                    string OrderState = string.Empty;
                                    switch (statusCode)
                                    {
                                        case "61":
                                            OrderState = CustomsOrderState.WAIT_SELLER_AGREE.ToString();//申请退单中
                                            BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
                                            BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
                                            BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
                                            BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
                                            BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
                                            break;
                                        case "66":
                                            OrderState = CustomsOrderState.SUCCESS.ToString();//退款成功
                                            BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
                                            BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
                                            BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
                                            BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
                                            BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
                                            break;
                                    }
                                    BLLTools.WriteRefund_Status(Id, CurrentOrderNo.ToString());//记录退单记录
                                    MessageUtil.ShowTips("呵呵! 发现客户有申请退货或是退单记录已关闭");
                                    continue;
                                }
                            }
                            #endregion

                            #region 签名信息
                            string conditionSign = string.Format("ShopNameId='{0}' and BusinessType='{1}'", ShopNameId, businessType);
                            DataTable SignTableXml = new DataTable();
                            SignTableXml = BLLFactory<BLL.A8ERP_Customs_JkfSign>.Instance.GetDataTable(conditionSign);
                            if (SignTableXml.Rows.Count == 0)
                            {
                                MessageUtil.ShowTips("签名信息不存在!");
                                continue;
                            }
                            for (int j = 0; j < SignTableXml.Rows.Count; j++)
                            {
                                SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
                                SignTableXml.Rows[j]["BusinessType"] = businessType;
                            }
                            #endregion

                            #region 订单申报明细表
                            DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单申报明细表
                            string condition = string.Format("FId='{0}'", Id);
                            GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
                            #endregion
                            FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);
                            #region 进数据组装并发送
                            XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
                            OrderXml = XMLProcess.CareateXml(SignTableXml, GoodsOrderImportHeadXml, GoodsDetaildtXml, XmlFileName, businessType);//写入Xml文件
                            statusMessage = WebServiceSend.OrderXmlSend(OrderXml, businessType, sourceType);
                            //写入回执消息到XMl
                            returnValueMsg = XmlOperation.MessageResultXml(statusMessage, CurrentOrderNo, out statusMessage);
                            //写入状态到表                  
                            if (returnValueMsg)
                            {
                                string orderStatusCode = CustomsOrderState.Declaration.ToString();
                                returnValueMsg = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode);
                                if (returnValueMsg)
                                {
                                    statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
                                    itemCount++;
                                }
                                else
                                {
                                    itemErrcount++;
                                }
                                #region 记录操作日志
                                if (returnValueMsg)
                                {
                                    //申报参数
                                    A8ERP_WMS_OperationRecordsInfo OperationRecordsEntity = new A8ERP_WMS_OperationRecordsInfo();
                                    A8ERP_Customs_OrderDeclareParameterInfo PersonalSingleEntity = new A8ERP_Customs_OrderDeclareParameterInfo();
                                    string PersonalSingleSql = string.Format("ShopNameId='{0}'", ShopNameId);
                                    PersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.FindSingle(PersonalSingleSql);
                                    OperationRecordsEntity.CustomsField = PersonalSingleEntity.CustomsField;//路由产生地点
                                    OperationRecordsEntity.ProcessId = CurrentOrderNo;//服务Id
                                    OperationRecordsEntity.ProcessName = "订单申报";//服务名称
                                    OperationRecordsEntity.OperationName = "申报";//操作名称
                                    OperationRecordsEntity.OrderState = "10";//状态
                                    OperationRecordsEntity.Operation = UserInfo.RealName;//操作人  
                                    OperationRecordsEntity.Description = string.Format("单号:{0} 订单发送成功", CurrentOrderNo);//描述
                                    OperationRecordsEntity.CreateBy = UserInfo.UserName;//用户名称
                                    OperationRecordsEntity.CreateUserId = UserInfo.Id;//用户Id
                                    OperationRecordsEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                                    OperationRecordsEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                                    BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationRecordsEntity, out statusCode, out statusMessage);
                                }
                                #endregion

                            }
                            else
                            {
                                MessageUtil.ShowTips(statusMessage);
                            }
                            #endregion
                            progress.SetStatusInfo.Text = "已成功: " + itemCount + " 条" + "错误:" + itemErrcount + "条";
                            progress.SetProgressValue(100);

                        }
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        MessageUtil.ShowTips(ex.Message);
                    }
                    finally
                    {
                        progress.SetProgressValue(100);
                        progress.SetStatusInfo.Text = "发送完毕...";
                        progress.Close();
                        statusMessage = progress.SetStatusInfo.Text;
                        MessageUtil.ShowTips(string.Format("申报单发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount));
                        this.FormOnLoad();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowTips(ex.Message);
            }
        }
        #endregion

        #region 商品发送到总署海关报文
        /// <summary>
        ///商品发送到总署海关报文
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>        
        public void SendReceivedDeclare()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                ProgressForm progress = new ProgressForm(this);
                string statusCode = string.Empty;
                string statusMessage = string.Empty;
                int itemCount = 0;
                int itemErrcount = 0;
                progress.Show();
                try
                {
                    #region 批量提交申报
                    for (int i = 0; i < GetSelecteIds().Length; i++)
                    {
                        progress.SetProgressValue(1);
                        string FileName = string.Empty;
                        string CurrentOrderNo = string.Empty;
                        string PlatformNumber = string.Empty;
                        string XmlFileName = string.Empty;
                        string OrderXml = string.Empty;
                        bool returnValueMsg = false;
                        string ShopNameId = string.Empty;
                        string WayBills = string.Empty;
                        //过滤表获得当前选中行的记录                        
                        string businessType = "IMPORTORDER";//业务类型//商品订单
                        string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
                        #region 申报单主信息
                        DataTable GoodsOrderImportHeadXml = new DataTable();
                        string Id = GetSelecteIds()[i];
                        string Condition = string.Format("Id='{0}'", Id);
                        GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
                        if (GoodsOrderImportHeadXml.Rows.Count == 0)
                            continue;
                        string AuditState = string.Empty;
                        for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
                        {
                            CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();
                            PlatformNumber = GoodsOrderImportHeadXml.Rows[K]["PlatformNumber"].ToString();
                            WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
                            ShopNameId = GoodsOrderImportHeadXml.Rows[K]["ShopNameId"].ToString();
                            AuditState = GoodsOrderImportHeadXml.Rows[K]["AuditState"].ToString();
                        }
                        if (string.IsNullOrEmpty(WayBills))
                        {
                            continue;
                        }
                        #region 订单状态是否 已申报 已申报//已出库//海关入库
                        if ((AuditState == "30") || (AuditState == "40") || (AuditState == "120"))
                        {
                            progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
                            continue;
                        }
                        #endregion

                        #endregion

                        #region  发现是否有申请退货或是退货关闭交易
                        A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(ShopNameId);
                        if (StoreManagementEntity.CheckrefundSingle == 1)
                        {
                            long Tid = long.Parse(PlatformNumber);
                            TaobaoConfig.SetTaobaoConfig(ShopNameId);//获得店铺的联连信息
                            if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                            {
                                //更改退单状态
                                string OrderState = string.Empty;
                                switch (statusCode)
                                {
                                    case "61":
                                        OrderState = CustomsOrderState.WAIT_SELLER_AGREE.ToString();//申请退单中
                                        BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
                                        BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
                                        BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
                                        BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
                                        BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
                                        break;
                                    case "66":
                                        OrderState = CustomsOrderState.SUCCESS.ToString();//退款成功
                                        BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//订单变更状态
                                        BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//清单变更状态
                                        BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//运变更状态
                                        BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//顺风物流变更状态
                                        BLLFactory<BLL.A8ERP_Customs_ExpressManagement>.Instance.OrderAuditState(UserInfo, CurrentOrderNo, OrderState);//冷联变更状态
                                        break;
                                }
                                BLLTools.WriteRefund_Status(Id, CurrentOrderNo.ToString());//记录退单记录
                                MessageUtil.ShowTips("呵呵! 发现客户有申请退货或是退单记录已关闭");
                                continue;
                            }
                        }
                        #endregion

                        #region 签名信息
                        string conditionSign = string.Format("ShopNameId='{0}' and BusinessType='{1}'", ShopNameId, businessType);
                        DataTable SignTableXml = new DataTable();
                        SignTableXml = BLLFactory<BLL.A8ERP_Customs_JkfSign>.Instance.GetDataTable(conditionSign);
                        if (SignTableXml.Rows.Count == 0)
                        {
                            MessageUtil.ShowTips("签名信息不存在!");
                            continue;
                        }
                        for (int j = 0; j < SignTableXml.Rows.Count; j++)
                        {
                            SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
                            SignTableXml.Rows[j]["BusinessType"] = businessType;
                        }
                        #endregion

                        #region 订单申报明细表
                        DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单申报明细表
                        string condition = string.Format("FId='{0}'", Id);
                        GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
                        #endregion

                        FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);

                        #region 进数据组装并发送
                        XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
                        OrderXml = OrderDelareUtilities.GetCareateOrderXml(SignTableXml, GoodsOrderImportHeadXml, GoodsDetaildtXml, XmlFileName, businessType);//获得组装好的报文  
                        progress.SetProgressValue(80);
                        statusMessage = WebServiceSend.OrderXmlSend(OrderXml, businessType, sourceType);
                        //写入回执消息到XMl
                        returnValueMsg = XmlOperation.MessageResultXml(statusMessage, CurrentOrderNo, out statusMessage);
                        //写入状态到表                  
                        if (returnValueMsg)
                        {
                            string orderStatusCode = CustomsOrderState.Declaration.ToString();
                            returnValueMsg = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, Id, orderStatusCode);
                            if (returnValueMsg)
                            {
                                statusMessage = string.Format(A8AppMessage.MSG, A8AppMessage.MSG99999);
                                itemCount++;
                            }
                            else
                            {
                                itemErrcount++;
                            }
                            #region 记录操作日志
                            if (returnValueMsg)
                            {
                                //申报参数
                                A8ERP_WMS_OperationRecordsInfo OperationRecordsEntity = new A8ERP_WMS_OperationRecordsInfo();
                                A8ERP_Customs_OrderDeclareParameterInfo PersonalSingleEntity = new A8ERP_Customs_OrderDeclareParameterInfo();
                                SqlCondition = string.Format("ShopNameId='{0}'", ShopNameId);
                                PersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.FindSingle(SqlCondition);
                                OperationRecordsEntity.CustomsField = PersonalSingleEntity.CustomsField;//路由产生地点                        
                                OperationRecordsEntity.ProcessId = CurrentOrderNo;//服务Id
                                OperationRecordsEntity.ProcessName = "总署订单申报";//服务名称
                                OperationRecordsEntity.OperationName = "总署订单申报";//操作名称
                                OperationRecordsEntity.OrderState = "10";//状态                           
                                OperationRecordsEntity.Operation = UserInfo.RealName;//操作人  
                                OperationRecordsEntity.Description = string.Format("单号:{0} 订单发送成功", CurrentOrderNo);//描述
                                OperationRecordsEntity.CreateBy = UserInfo.UserName;//用户名称
                                OperationRecordsEntity.CreateUserId = UserInfo.Id;//用户Id
                                OperationRecordsEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                                OperationRecordsEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                                BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationRecordsEntity, out statusCode, out statusMessage);
                            }
                            #endregion
                        }
                        else
                        {
                            MessageUtil.ShowTips(statusMessage);
                        }
                        #endregion

                        statusMessage = string.Format("发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount);
                        progress.SetStatusInfo.Text = statusMessage;
                        progress.SetProgressValue(100);

                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowTips(ex.Message);
                }
                finally
                {
                    progress.SetProgressValue(100);
                    progress.SetStatusInfo.Text = "发送完毕...";
                    progress.Close();
                    statusMessage = string.Format("发送成功:{0}条 错误:{1} 条", itemCount, itemErrcount);
                    DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    //this.FormOnLoad();
                }
            }

        }
        /// <summary>
        /// 生成报文
        /// </summary>
        public void GenerateMessage()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            ProgressForm progress = new ProgressForm(this);
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            string FileNamePath = string.Empty;
            int itemCount = 0;
            int itemErrcount = 0;
            progress.Show();
            try
            {
                #region 批量提交申报
                progress.SetProgressValue(1);
                string FileName = string.Empty;
                string CurrentOrderNo = string.Empty;
                string PlatformNumber = string.Empty;
                string XmlFileName = string.Empty;
                string OrderXml = string.Empty;
                string ShopNameId = string.Empty;
                string WayBills = string.Empty;

                //过滤表获得当前选中行的记录                        
                string businessType = "IMPORTORDER";//业务类型//商品订单
                string sourceType = chkbusinessType.Checked == true ? "1" : "2";//申报类型//1新增 2修改
                #region 申报单主信息
                DataTable JkfOrderImportHeadDt = new DataTable();
                string Id = CurrentEntityId;
                string Condition = string.Format("Id='{0}'", Id);
                JkfOrderImportHeadDt = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
                for (int K = 0; K < JkfOrderImportHeadDt.Rows.Count; K++)
                {
                    CurrentOrderNo = JkfOrderImportHeadDt.Rows[K]["OrderNo"].ToString();
                    PlatformNumber = JkfOrderImportHeadDt.Rows[K]["PlatformNumber"].ToString();
                    WayBills = JkfOrderImportHeadDt.Rows[K]["WayBills"].ToString();
                    ShopNameId = JkfOrderImportHeadDt.Rows[K]["ShopNameId"].ToString();
                }
                if (string.IsNullOrEmpty(WayBills))
                {
                    return;
                }

                #endregion
                #region 签名信息
                string conditionSign = string.Format("ShopNameId='{0}' and BusinessType='{1}'", ShopNameId, businessType);
                DataTable SignTableXml = new DataTable();
                SignTableXml = BLLFactory<BLL.A8ERP_Customs_JkfSign>.Instance.GetDataTable(conditionSign);
                if (SignTableXml.Rows.Count == 0)
                {
                    MessageUtil.ShowTips("签名信息不存在!");
                    return;
                }
                for (int j = 0; j < SignTableXml.Rows.Count; j++)
                {
                    SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
                    SignTableXml.Rows[j]["BusinessType"] = businessType;
                }
                #endregion

                #region 订单申报明细表
                DataTable GoodsDetaildtXml = new DataTable(A8ERP_Customs_JkfOrderDetailInfo.TableName);//订单申报明细表
                string condition = string.Format("FId='{0}'", Id);
                GoodsDetaildtXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(condition);
                #endregion

                FileName = WebServiceXMLHelper.CareateXMLFileName(sourceType, businessType, CurrentOrderNo);
                #region 进数据组装并发送
                XmlFileName = WebServiceXMLHelper.CareateXml(FileName);//创建并返回路径
                FileNamePath = Application.StartupPath + XmlFileName;
                OrderXml = OrderDelareUtilities.GetCareateOrderXml(SignTableXml, JkfOrderImportHeadDt, GoodsDetaildtXml, XmlFileName, businessType);//获得组装好的报文
                #endregion
                progress.SetStatusInfo.Text = "已成功: " + itemCount + " 条" + "错误:" + itemErrcount + "条";
                progress.SetProgressValue(100);
                #endregion
            }
            catch (Exception ex)
            {
                DevExpress.XtraEditors.XtraMessageBox.Show(ex.Message, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                progress.SetProgressValue(100);
                progress.SetStatusInfo.Text = "发送完毕...";
                progress.Close();
                //DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                if (!string.IsNullOrEmpty(FileNamePath))
                {
                    Process.Start(FileNamePath);
                }
            }
        }
        #endregion

        #region 批量生成个人申报单
        /// <summary>
        /// 批量生成个人申报单
        /// </summary>
        public override void RunBathoutputGoodsDeclare()
        {
            ProgressForm progress = new ProgressForm(this);
            progress.Show();
            try
            {
                if (Grid_JkfOrderImportHead.CurrentRow == null)
                    return;
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    string statusCode = string.Empty;
                    string statusMessage = string.Empty;
                    int MainDeclareitemCount = 0;
                    int PaymentCount = 0;
                    int itemMainDeclareitemErrCount = 0;
                    int itemPaymentErrCount = 0;
                    try
                    {
                        for (int i = 0; i < GetSelecteIds().Length; i++)
                        {
                            progress.SetProgressValue(1);
                            //获得电商订单主体信息
                            string Id = GetSelecteIds()[i].ToString();
                            string condition = string.Format("Id='{0}'", Id);
                            A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;
                            A8ERP_Customs_GoodsMainDeclareInfo GoodsMainDeclareEntity = null;
                            JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                            JkfOrderImportHeadEntity = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
                            if (JkfOrderImportHeadEntity == null)
                                continue;
                            if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.Province))
                            {
                                statusMessage = "省份不能为空!";
                                DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.City))
                            {
                                statusMessage = "城市不能为空!";
                                DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.Area))
                            {
                                statusMessage = "区不能为空!";
                                DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            GoodsMainDeclareEntity = new A8ERP_Customs_GoodsMainDeclareInfo();//明细
                            List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailListEntity = null;
                            string conditiondetail = string.Format("FId='{0}'", JkfOrderImportHeadEntity.Id.ToString());
                            JkfOrderDetailListEntity = BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(conditiondetail);
                            if (JkfOrderDetailListEntity == null)
                                continue;
                            if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.WayBills.ToString()))
                                continue;
                            //给表头赋值
                            #region 读取当前平台的参数
                            A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(JkfOrderImportHeadEntity.ShopNameId.ToString());
                            if (GetPersonalSingleEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                                continue;
                            }
                            #endregion

                            #region 清单主表记录
                            string preNumber = string.Empty;
                            GoodsMainDeclareEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单号
                            GoodsMainDeclareEntity.AccountBookNo = GetPersonalSingleEntity.AccountBookNo.ToString().Trim();//账册编号
                            preNumber = GetOrderNumber.GetExpressPreEntryNumber();//预录入号码  
                            GoodsMainDeclareEntity.PreEntryNumber = preNumber;//预录入号码  
                            GoodsMainDeclareEntity.WayBill = JkfOrderImportHeadEntity.WayBills;//运单号
                            GoodsMainDeclareEntity.InOutDateStr = DateTime.Now;//进出口日期
                            GoodsMainDeclareEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            GoodsMainDeclareEntity.ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺Id
                            GoodsMainDeclareEntity.IeFlag = GetPersonalSingleEntity.IeFlag.ToString().Trim();// "I";//进出口标志
                            GoodsMainDeclareEntity.ImportType = GetPersonalSingleEntity.ImportType.ToString().Trim();// "1";//进口类型
                            GoodsMainDeclareEntity.IePort = GetPersonalSingleEntity.IePort.ToString().Trim();// "2991";//进出口岸代码
                            GoodsMainDeclareEntity.DeclareCompanyCode = GetPersonalSingleEntity.DeclareCompanyCode.ToString().Trim();//申报单位代码//3301280007
                            GoodsMainDeclareEntity.DeclareCompanyName = GetPersonalSingleEntity.DeclareCompanyName.ToString().Trim();// "浙江达缘供应链管理有限公司";//申报单位名称//杭州中远报关服务有限公司
                            GoodsMainDeclareEntity.DeclareCompanyType = GetPersonalSingleEntity.DeclareCompanyType.ToString().Trim();// "1"; //申报单位类别
                            GoodsMainDeclareEntity.DestinationPort = GetPersonalSingleEntity.DestinationPort.ToString().Trim();// "142";//指运港(抵运港
                            GoodsMainDeclareEntity.TrafName = GetPersonalSingleEntity.TrafName.ToString();// ""; //运输工具名称
                            GoodsMainDeclareEntity.TrafMode = GetPersonalSingleEntity.TrafMode.ToString();// "4";//运输方式代码
                            GoodsMainDeclareEntity.TrafNo = GetPersonalSingleEntity.TrafNo.ToString();//运输工具编号
                            GoodsMainDeclareEntity.CompanyName = GetPersonalSingleEntity.CompanyName.ToString(); //电商平台名称
                            GoodsMainDeclareEntity.CompanyCode = GetPersonalSingleEntity.CompanyCode.ToString(); //电商平台代码
                            GoodsMainDeclareEntity.ECommerceCode = JkfOrderImportHeadEntity.ECommerceCode.ToString(); //电商企业代码
                            GoodsMainDeclareEntity.ECommerceName = JkfOrderImportHeadEntity.ECommerceName.ToString(); //电商企业名称
                            GoodsMainDeclareEntity.LogisCompanyCode = GetPersonalSingleEntity.LogisCompanyCode.ToString(); //物流企业代码
                            GoodsMainDeclareEntity.LogisCompanyName = GetPersonalSingleEntity.LogisCompanyName.ToString(); //物流企业名称
                            GoodsMainDeclareEntity.TradeCountry = GetPersonalSingleEntity.TradeCountry.ToString();//贸易国别(起运地)
                            GoodsMainDeclareEntity.PackNo = ValuesData.TurnToInt(JkfOrderImportHeadEntity.TotalCount.ToString()); //件数
                            GoodsMainDeclareEntity.BillNo = "";//提运单号
                            GoodsMainDeclareEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight / 1000;//毛重(公斤)
                            GoodsMainDeclareEntity.NetWeight = JkfOrderImportHeadEntity.TotalWeight / 1000;//净重(公斤)
                            GoodsMainDeclareEntity.WarpType = "2";//包装种类
                            GoodsMainDeclareEntity.Remark = JkfOrderImportHeadEntity.Note; //备注
                            GoodsMainDeclareEntity.DeclPort = GetPersonalSingleEntity.DeclPort.ToString().Trim();// "2991";//申报口岸代码
                            GoodsMainDeclareEntity.EnteringPerson = GetPersonalSingleEntity.EnteringPerson;//录入人
                            GoodsMainDeclareEntity.EnteringCompanyName = GetPersonalSingleEntity.EnteringCompanyName;// "9999"; //录入单位名称
                            GoodsMainDeclareEntity.DeclarantNo = GetPersonalSingleEntity.DeclarantNo.ToString();// "999";//报关员代码
                            GoodsMainDeclareEntity.CustomsField = GetPersonalSingleEntity.CustomsField.ToString().Trim(); //"299102";//码头/货场代码
                            GoodsMainDeclareEntity.SenderName = JkfOrderImportHeadEntity.SenderName.ToString();//发件人
                            GoodsMainDeclareEntity.Consignee = JkfOrderImportHeadEntity.Consignee.ToString();//收件人
                            GoodsMainDeclareEntity.SenderCountry = JkfOrderImportHeadEntity.SenderCountry.ToString();// "142";//发件人国别
                            GoodsMainDeclareEntity.SenderCity = JkfOrderImportHeadEntity.SenderCity.ToString(); //发件人城市
                            GoodsMainDeclareEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress.ToString(); //收件人地址
                            GoodsMainDeclareEntity.PaperType = "1";//JkfOrderImportHeadEntity.BuyerIdType.ToString();//收件人证件类型
                            GoodsMainDeclareEntity.PaperNumber = JkfOrderImportHeadEntity.BuyerIdNumber;//收件人证件号
                            GoodsMainDeclareEntity.PurchaserTelNumber = JkfOrderImportHeadEntity.TelMobile.ToString(); //购买人电话
                            GoodsMainDeclareEntity.BuyerIdType = "1";//JkfOrderImportHeadEntity.PaperType.ToString(); //订购人证件类型
                            GoodsMainDeclareEntity.BuyerIdNumber = JkfOrderImportHeadEntity.BuyerIdNumber.ToString(); //订购人证件号
                            GoodsMainDeclareEntity.BuyerName = JkfOrderImportHeadEntity.UserName.ToString(); //购买人姓名
                            GoodsMainDeclareEntity.FeeAmount = JkfOrderImportHeadEntity.FeeAmount; //运费
                            GoodsMainDeclareEntity.InsureAmount = JkfOrderImportHeadEntity.InsureAmount; //保费
                            GoodsMainDeclareEntity.AssureCode = GetPersonalSingleEntity.AssureCode.ToString(); //担保企业编号
                            GoodsMainDeclareEntity.LicenseNo = GetPersonalSingleEntity.LicenseNo.ToString(); //许可证号
                            GoodsMainDeclareEntity.Worth = ValuesData.TurnToDecimal(JkfOrderImportHeadEntity.OrderTotalAmount.ToString());//价值表体所有商品总价的和+运费+保费
                            GoodsMainDeclareEntity.CurrCode = JkfOrderImportHeadEntity.CurrCode.ToString();// "142";//币制
                            GoodsMainDeclareEntity.MainGName = JkfOrderDetailListEntity[0].GoodsName.ToString();//主要货物名称
                            GoodsMainDeclareEntity.InternalAreaCompanyNo = GetPersonalSingleEntity.InternalAreaCompanyNo.ToString().Trim();//区内企业编码
                            GoodsMainDeclareEntity.InternalAreaCompanyName = GetPersonalSingleEntity.InternalAreaCompanyName.ToString().Trim();// "浙江达缘供应链管理有限公司";//区内企业名称
                            GoodsMainDeclareEntity.ApplicationFormNo = GetPersonalSingleEntity.ApplicationFormNo.ToString().Trim();// 申请单编号
                            GoodsMainDeclareEntity.IsAuthorize = Convert.ToInt32(GetPersonalSingleEntity.IsAuthorize.ToString().Trim());//是否授权
                            GoodsMainDeclareEntity.CreateBy = UserInfo.UserName;//用户名称
                            GoodsMainDeclareEntity.CreateUserId = UserInfo.Id;//用户Id
                            GoodsMainDeclareEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                            GoodsMainDeclareEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 支付信息主记录
                            A8ERP_TaobaoPaymentSpecialInfo TaobaoPaymententity = new A8ERP_TaobaoPaymentSpecialInfo();
                            TaobaoPaymententity.CustomsCode = "ZONGSHU";//ZONGSHU海关编码HANGZHOU
                            TaobaoPaymententity.ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺Id
                            TaobaoPaymententity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            TaobaoPaymententity.SubCustoms = "";//关区代码
                            TaobaoPaymententity.MerchantCustomsCode = "3301560039";// JkfOrderImportHeadEntity.ECommerceCode;// "665226530";//商户海关备案编码3301560039
                            TaobaoPaymententity.MerchantCustomsName = "浙江达缘供应链管理有限公司"; //JkfOrderImportHeadEntity.ECommerceName; //"浙江达缘供应链管理有限公司";
                            TaobaoPaymententity.PayType = "03";//支付类型
                            TaobaoPaymententity.SourceOrderCode = JkfOrderImportHeadEntity.OrderNo;//来源订单编码
                            TaobaoPaymententity.OrderNo = JkfOrderImportHeadEntity.OrderNo;// 订单编号
                            TaobaoPaymententity.PaymentNo = JkfOrderImportHeadEntity.PayNumber;//支付单号
                            TaobaoPaymententity.OrderTime = JkfOrderImportHeadEntity.OrderDateTime.ToString();//订单时间
                            TaobaoPaymententity.CurrencyCus = JkfOrderImportHeadEntity.CurrCode; //"142";//币制
                            TaobaoPaymententity.GoodsValue = ValuesData.TurnToDecimal(JkfOrderImportHeadEntity.OrderGoodsAmount.ToString()) + JkfOrderImportHeadEntity.InsureAmount + JkfOrderImportHeadEntity.FeeAmount;//货值=货款+保费+运费
                            TaobaoPaymententity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运费
                            TaobaoPaymententity.InsureAmount = JkfOrderImportHeadEntity.InsureAmount;//保费
                            TaobaoPaymententity.TaxAmount = 0; // 税款总额
                            TaobaoPaymententity.OtherCost = 0;//其他费用
                            TaobaoPaymententity.OrderAmount = JkfOrderImportHeadEntity.OrderTotalAmount;//订单总金额=货款+保费+运费+税费
                            TaobaoPaymententity.CountryCode = JkfOrderImportHeadEntity.SenderCountry;//142发件人国别
                            TaobaoPaymententity.CountryName = JkfOrderImportHeadEntity.ECommerceName;// "浙江达缘供应链管理有限公司";//发件人姓名
                            TaobaoPaymententity.BuyName = JkfOrderImportHeadEntity.UserName; //购买人姓名
                            TaobaoPaymententity.BuyMobile = JkfOrderImportHeadEntity.TelMobile;//购买人移动电话
                            TaobaoPaymententity.ReceiverName = JkfOrderImportHeadEntity.Consignee;//收件人姓名
                            TaobaoPaymententity.ReceiverMobile = JkfOrderImportHeadEntity.ConsigneePhone;//收件人移动电话
                            TaobaoPaymententity.Province = JkfOrderImportHeadEntity.Province.ToString();//收件人省份
                            TaobaoPaymententity.City = JkfOrderImportHeadEntity.City.ToString();//收件人城市
                            TaobaoPaymententity.Area = JkfOrderImportHeadEntity.Area.ToString();//收件人区域
                            TaobaoPaymententity.Town = ""; //JkfOrderImportHeadEntity.Receiver_town;//收件人村镇
                            TaobaoPaymententity.IdType = "01";//证件类型
                            TaobaoPaymententity.IdNo = JkfOrderImportHeadEntity.PaperNumber;// 330102196711270616证件号码一个身份证信息只能购买2万元商品
                            TaobaoPaymententity.DetailAddress = JkfOrderImportHeadEntity.ConsigneeAddress.ToString();//收件人详细地址
                            TaobaoPaymententity.ExpressCode = JkfOrderImportHeadEntity.WayBills;//运单号
                            TaobaoPaymententity.LogisticsCode = JkfOrderImportHeadEntity.LogisCompanyCode;// 快递公司企业备案编码
                            TaobaoPaymententity.LogisticsName = JkfOrderImportHeadEntity.LogisCompanyName;// 快递公司企业备案名称
                            TaobaoPaymententity.CreateBy = UserInfo.UserName;//用户名称
                            TaobaoPaymententity.CreateUserId = UserInfo.Id;//用户Id                            
                            TaobaoPaymententity.OrgId = UserInfo.SubCompanyId;//机构Id
                            TaobaoPaymententity.OrgName = UserInfo.SubCompanyName;//机构名称
                            TaobaoPaymententity.UserProcotol = JkfOrderImportHeadEntity.UserProcotol.ToString(); //"本人承诺所购买商品系个人合理自用,现委托商家代理申报、代缴税款等通关事宜,本人保证遵守《海关法》和国家相关法律法规,保证所提供的身份信息和收货信息真实完整,无侵犯他人权益的行为,以上委托关系系如实填写,本人愿意接受海关、检验检疫机构及其他监管部门的监管,并承担相应法律责任";
                            #endregion

                            #region 清单明细记录操作
                            A8ERP_Customs_GoodsDeclareDetailInfo GoodsDeclareDetailEntity = null;
                            List<A8ERP_Customs_GoodsDeclareDetailInfo> GoodsDeclareDetailListEntity = null;
                            GoodsDeclareDetailListEntity = new List<A8ERP_Customs_GoodsDeclareDetailInfo>();
                            for (int k = 0; k < JkfOrderDetailListEntity.Count; k++)
                            {
                                GoodsDeclareDetailEntity = new A8ERP_Customs_GoodsDeclareDetailInfo();
                                GoodsDeclareDetailEntity.FId = 0;
                                string GoodsCode = JkfOrderDetailListEntity[k].GoodsCode.ToString();//物品编码
                                GoodsDeclareDetailEntity.GoodsCode = GoodsCode;
                                A8ERP_MaterialInfo MaterialEntity = new A8ERP_MaterialInfo();
                                string ConditionSql = string.Format("MaterialCode='{0}'", GoodsCode);
                                MaterialEntity = BLLFactory<BLL.A8ERP_Material>.Instance.FindSingle(ConditionSql);
                                if (MaterialEntity == null)
                                    continue;
                                GoodsDeclareDetailEntity.GoodsOrder = JkfOrderDetailListEntity[k].GoodsOrder.ToString();//商品序号
                                GoodsDeclareDetailEntity.CodeTs = JkfOrderDetailListEntity[k].CodeTs.ToString();//行邮税号
                                GoodsDeclareDetailEntity.OrderNo = JkfOrderDetailListEntity[k].OrderNo;//商品编号
                                GoodsDeclareDetailEntity.GoodsName = JkfOrderDetailListEntity[k].GoodsName.ToString();//商品名称
                                GoodsDeclareDetailEntity.GoodsItemNo = JkfOrderDetailListEntity[k].GoodsCode;//商品货号
                                GoodsDeclareDetailEntity.ItemRecordNo = JkfOrderDetailListEntity[k].ItemRecordNo.ToString();//账册备案料号
                                GoodsDeclareDetailEntity.ItemName = JkfOrderDetailListEntity[k].ItemName.ToString();//企业商品品名
                                GoodsDeclareDetailEntity.BarCode = JkfOrderDetailListEntity[k].GoodsBar.ToString();//条形码
                                GoodsDeclareDetailEntity.GoodsModel = JkfOrderDetailListEntity[k].GoodsModel.ToString();//商品规格、型号
                                GoodsDeclareDetailEntity.OriginCountry = JkfOrderDetailListEntity[k].OriginCountry.ToString();//产销国                        
                                GoodsDeclareDetailEntity.TradeCurr = JkfOrderImportHeadEntity.CurrCode.ToString();//成交币制                               
                                GoodsDeclareDetailEntity.TradeTotal = JkfOrderDetailListEntity[k].GoodsCount * JkfOrderDetailListEntity[k].UnitPrice;// 成交总价
                                GoodsDeclareDetailEntity.DeclPrice = ValuesData.TurnToDecimal(JkfOrderDetailListEntity[k].UnitPrice.ToString());//申报单价
                                GoodsDeclareDetailEntity.DeclTotalPrice = JkfOrderDetailListEntity[k].GoodsCount * JkfOrderDetailListEntity[k].UnitPrice;//申报总价
                                GoodsDeclareDetailEntity.UseTo = "";//用途
                                GoodsDeclareDetailEntity.DeclareCount = JkfOrderDetailListEntity[k].GoodsCount;//申报数量
                                GoodsDeclareDetailEntity.GoodsUnit = JkfOrderDetailListEntity[k].GoodsUnit.ToString();//申报计量单位
                                GoodsDeclareDetailEntity.GoodsGrossWeight = JkfOrderDetailListEntity[k].GrossWeight;
                                GoodsDeclareDetailEntity.FirstUnit = MaterialEntity.FirstUnit;//法定计量单位
                                GoodsDeclareDetailEntity.FirstCount = JkfOrderDetailListEntity[k].GoodsCount.ToString();  //第一数量
                                GoodsDeclareDetailEntity.SecondUnit = MaterialEntity.SecondUnit;//第二单位
                                GoodsDeclareDetailEntity.SecondCount = MaterialEntity.SecondCount;//第二数量
                                GoodsDeclareDetailEntity.ProductRecordNo = JkfOrderDetailListEntity[k].ProductRecordNo.ToString();//产品国检备案编号
                                GoodsDeclareDetailEntity.WebSite = "";//商品网址
                                GoodsDeclareDetailEntity.Note = JkfOrderDetailListEntity[k].Description;//备注
                                GoodsDeclareDetailEntity.CreateBy = UserInfo.UserName;//用户名称
                                GoodsDeclareDetailEntity.CreateUserId = UserInfo.Id;//用户Id
                                GoodsDeclareDetailEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                                GoodsDeclareDetailEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                                GoodsDeclareDetailListEntity.Add(GoodsDeclareDetailEntity);
                            }
                            #endregion

                            #region 支付信息明细记录
                            A8ERP_TaobaoPaymentSpecialDetailInfo entitydetail = null;
                            List<A8ERP_TaobaoPaymentSpecialDetailInfo> entitydetailList = new List<A8ERP_TaobaoPaymentSpecialDetailInfo>();
                            for (int S = 0; S < JkfOrderDetailListEntity.Count; S++)
                            {
                                entitydetail = new A8ERP_TaobaoPaymentSpecialDetailInfo();
                                entitydetail.OrderNo = JkfOrderDetailListEntity[S].OrderNo.ToString();//订单编号
                                entitydetail.GoodsOrder = JkfOrderDetailListEntity[S].GoodsOrder;//商品序号
                                entitydetail.OriginCountry = JkfOrderDetailListEntity[S].OriginCountry;//原产国国家编码
                                entitydetail.ItemCodeCus = JkfOrderDetailListEntity[S].ProductRecordNo;//备案商品(关)
                                entitydetail.GoodsBar = JkfOrderDetailListEntity[S].GoodsBar;//商品条码
                                entitydetail.GoodPrepardNo = JkfOrderDetailListEntity[S].GoodPrepardNo;//商品海关备案编号
                                entitydetail.TaxCode = JkfOrderDetailListEntity[S].CodeTs;//行邮税号
                                entitydetail.HsCode = JkfOrderDetailListEntity[S].CodeTs;//行邮税号
                                entitydetail.ItemCodePlatform = JkfOrderDetailListEntity[S].GoodsCode;//电商平台商品编码
                                entitydetail.WeightUnit = JkfOrderDetailListEntity[S].WeightUnit;//重量单位
                                entitydetail.ItemName = JkfOrderDetailListEntity[S].GoodsName;//商品名称
                                entitydetail.Unit = JkfOrderDetailListEntity[S].GoodsUnit;//计量单位
                                int Count = JkfOrderDetailListEntity[S].GoodsCount;//数量
                                entitydetail.Quantity = Count;//数量
                                entitydetail.UnitPrice = JkfOrderDetailListEntity[S].UnitPrice; //detailentityList[K].Payment  / Count;//单价
                                entitydetail.ItemAmount = Math.Round(entitydetail.UnitPrice * Count, 2);//商品成交额
                                entitydetail.CreateBy = UserInfo.UserName;//用户名称
                                entitydetail.CreateUserId = UserInfo.Id;//用户Id
                                entitydetail.OrgId = UserInfo.SubCompanyId;//机构Id
                                entitydetail.OrgName = UserInfo.SubCompanyName;//机构名称
                                entitydetailList.Add(entitydetail);
                            }

                            #endregion
                            if (BLL.BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.Add(UserInfo, GoodsMainDeclareEntity, GoodsDeclareDetailListEntity, out statusCode, out statusMessage))//更新当前记录
                            {
                                MainDeclareitemCount++;
                            }
                            else
                            {
                                itemMainDeclareitemErrCount++;
                            }
                            if (BLLFactory<BLL.A8ERP_TaobaoPaymentSpecial>.Instance.Add(UserInfo, TaobaoPaymententity, entitydetailList, out statusCode, out statusMessage))//支付信息生成
                            {
                                PaymentCount++;
                            }
                            else
                            {
                                itemPaymentErrCount++;
                            }
                            statusMessage = string.Format("已生成 清单:{0}个 错误:{1} 支付单:{2} 错误: {3}", MainDeclareitemCount, itemMainDeclareitemErrCount, PaymentCount, itemPaymentErrCount);
                            progress.SetStatusInfo.Text = statusMessage;
                            progress.SetProgressValue(100);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageUtil.ShowError(ex.Message);
                    }
                    finally
                    {
                        progress.SetProgressValue(100);
                        progress.SetStatusInfo.Text = statusMessage;
                        progress.Close();
                        DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.FormOnLoad();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }
        #endregion

        #region 明细绑定
        /// <summary>
        /// 明细绑定
        /// </summary>
        public void DataBindDeatil()
        {
            string CurrentId = string.Format("FId='{0}'", CurrentEntityId);
            JkfOrderDetailTable = BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.GetDataTable(CurrentId);
            CountryCodeDao CountryCodeNewentity = new CountryCodeDao();
            MeasuringUnitDao MeasuringUnitDaoNewentity = new MeasuringUnitDao();
            for (int i = 0; i < JkfOrderDetailTable.Rows.Count; i++)
            {
                JkfOrderDetailTable.Rows[i][A8ERP_Customs_JkfOrderDetailInfo.FieldOriginCountry] = CountryCodeNewentity.GetCountryItemName(JkfOrderDetailTable.Rows[i]["OriginCountry"].ToString());
            }
            Grid_JkfOrderDetail.DataSource = JkfOrderDetailTable;
        }
        #endregion

        #region 冷联天下导出
        /// <summary>
        /// 冷联天下导出
        /// </summary>
        private void LenglianExcel()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            #region 导出操作
            OrderEntityTable = new DataTable(A8ERP_Customs_OrderEntityInfo.TableName);//订单主表
            OrderDetailEntitydt = new DataTable(OrderDetailEntityTable.TableName);//订单明细
            List<A8ERP_Customs_JkfOrderDetailInfo> entityDetailList = null;
            #region 主表记录
            Dictionary<string, string> fieldList = new Dictionary<string, string>();
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, "订单编号");//订单号
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, "运单号"); //运单号
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, "项目ID");//项目ID
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, "客户编号");
            fieldList.Add("OrderType", "订单类型");
            fieldList.Add("IsWhether", "是否跨境");
            fieldList.Add("SenderProvince", "发货省份");
            fieldList.Add("SenderCity", "发货城市");
            fieldList.Add("SenderArea", "发货区县");
            fieldList.Add("WHId", "发货仓库ID");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, "收件人联系方式");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, "收件人姓名");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, "目的省份");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, "目的城市");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, "目的区县");
            fieldList.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, "详细地址");
            fieldList.Add("GrossWeight", "毛重");
            fieldList.Add("TotalWeight", "净重");
            fieldList.Add("FeeAmount", "运费");
            fieldList.Add("OrderTotalAmount", "总金额");
            fieldList.Add("GoodsName", "产品描述");
            fieldList.Add("GoodsCount", "总件数");
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldOrderNo, typeof(System.String));//订单号
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber, typeof(System.String));//运单号
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname, typeof(System.String));//项目ID
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts, typeof(System.String));//客户编号
            OrderEntityTable.Columns.Add("OrderType", typeof(System.String));//订单类型
            OrderEntityTable.Columns.Add("IsWhether", typeof(System.String));//是否跨境
            OrderEntityTable.Columns.Add("SenderProvince", typeof(System.String));//发货省份
            OrderEntityTable.Columns.Add("SenderCity", typeof(System.String));//发货城市
            OrderEntityTable.Columns.Add("SenderArea", typeof(System.String));//发货区县
            OrderEntityTable.Columns.Add("WHId", typeof(System.String));//发货仓库ID
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries, typeof(System.String));//收件人联系方式
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber, typeof(System.String));//收件人姓名
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldStateprovince, typeof(System.String));//目的省份
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldCity, typeof(System.String));//目的城市
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldArea, typeof(System.String));//目的区县
            OrderEntityTable.Columns.Add(A8ERP_Customs_OrderEntityInfo.FieldZipCode, typeof(System.String));//详细地址
            OrderEntityTable.Columns.Add("FeeAmount", typeof(System.String));//运费   
            OrderEntityTable.Columns.Add("OrderTotalAmount", typeof(System.String));//总金额
            OrderEntityTable.Columns.Add("GrossWeight", typeof(System.String));//毛重
            OrderEntityTable.Columns.Add("TotalWeight", typeof(System.String));//净重
            OrderEntityTable.Columns.Add("GoodsName", typeof(System.String));//产品描述
            OrderEntityTable.Columns.Add("GoodsCount", typeof(System.String));//总件数
            #endregion
            //主表记导出
            for (int i = 0; i < OrderImportTable.Rows.Count; i++)
            {
                DataRow dr;
                dr = OrderEntityTable.NewRow();
                dr[A8ERP_Customs_OrderEntityInfo.FieldOrderNo] = OrderImportTable.Rows[i]["OrderNo"].ToString();//订单号
                dr[A8ERP_Customs_OrderEntityInfo.FieldDeliveryCourierNumber] = OrderImportTable.Rows[i]["WayBills"].ToString(); //运单号
                dr[A8ERP_Customs_OrderEntityInfo.FieldBuyersNickname] = "DAYUAN";//项目ID
                dr[A8ERP_Customs_OrderEntityInfo.FieldTotalAmountProducts] = "DAYUAN";//客户编号
                dr["OrderType"] = OrderImportTable.Rows[i]["OrderType"].ToString();//订单类型OrderType
                dr["IsWhether"] = OrderImportTable.Rows[i]["IsWhether"].ToString();//是否跨境
                dr["SenderProvince"] = OrderImportTable.Rows[i]["SenderProvince"].ToString();//发货省份                  
                dr["SenderCity"] = OrderImportTable.Rows[i]["SenderCity"].ToString();//发货城市                   
                dr["SenderArea"] = OrderImportTable.Rows[i]["SenderArea"].ToString();//发货区县
                dr["WHId"] = "WH06";//发货仓库ID
                dr[A8ERP_Customs_OrderEntityInfo.FieldReceivingCountries] = OrderImportTable.Rows[i]["ConsigneePhone"].ToString();//收件人联系方式
                dr[A8ERP_Customs_OrderEntityInfo.FieldContactPhoneNumber] = OrderImportTable.Rows[i]["Consignee"].ToString();//收件人姓名
                dr[A8ERP_Customs_OrderEntityInfo.FieldStateprovince] = OrderImportTable.Rows[i]["Province"].ToString();//目的省份                   
                dr[A8ERP_Customs_OrderEntityInfo.FieldCity] = OrderImportTable.Rows[i]["City"].ToString();//目的城市                   
                dr[A8ERP_Customs_OrderEntityInfo.FieldArea] = OrderImportTable.Rows[i]["Area"].ToString();//目的区县
                dr[A8ERP_Customs_OrderEntityInfo.FieldZipCode] = OrderImportTable.Rows[i]["ConsigneeAddress"].ToString();//详细地址
                dr["FeeAmount"] = OrderImportTable.Rows[i]["FeeAmount"].ToString();//运费
                dr["OrderTotalAmount"] = OrderImportTable.Rows[i]["OrderTotalAmount"].ToString();//"订单总金额
                //dr["OrderTaxAmount"] = OrderImportTable.Rows[i]["OrderTaxAmount"].ToString();//应交税款
                dr["GrossWeight"] = OrderImportTable.Rows[i]["GrossWeight"].ToString();//毛重
                dr["TotalWeight"] = OrderImportTable.Rows[i]["TotalWeight"].ToString();//净重
                string Id = OrderImportTable.Rows[i]["Id"].ToString();
                string Sqlwhere = string.Format("FId='{0}'", Id);
                entityDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                entityDetailList = BLL.BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqlwhere);//订单明细
                if (entityDetailList.Count == 0)
                    return;
                string GoodsName = string.Empty;
                for (int k = 0; k < entityDetailList.Count; k++)
                {
                    GoodsName += entityDetailList[k].GoodsName.ToString();//"产品描述"
                }
                dr["GoodsName"] = GoodsName;//产品描述
                dr["GoodsCount"] = entityDetailList.Count;//总件数
                OrderEntityTable.Rows.Add(dr);
            }
            #endregion
            string Paths = @"Export";
            string exportFileName = DateTime.Now.ToString("yyyyMMdd") + ".xls";//文件名称
            ExportNPOI(OrderEntityTable, "订单出货单", fieldList, Paths, exportFileName);


        }
        #endregion

        #region 签名信息
        /// <summary>
        /// 签名信息
        /// </summary>
        public void SignatureDataBind()
        {
            string condition = string.Empty;
            condition = string.Format("ShopNameId='{0}' and BusinessType='{1}'", CurrentShopNameId, "IMPORTORDER");
            //查询当前店铺,的业务类型
            JkfSignTable = BLLFactory<A8ERP_Customs_JkfSign>.Instance.GetDataTable(condition);
            for (int i = 0; i < JkfSignTable.Rows.Count; i++)
            {
                JkfSignTable.Rows[i]["BusinessType"] = JkfSignTable.Rows[i]["BusinessType"].ToString().Equals("IMPORTORDER") ? "商品订单" : "";
                JkfSignTable.Rows[i]["DeclareType"] = JkfSignTable.Rows[i]["DeclareType"].ToString().Equals("1") ? "新增" : "修改";
                JkfSignTable.Rows[i]["BusinessNo"] = CurrentOrderNo;
            }
            Grid_JkfSign.DataSource = JkfSignTable;
        }
        #endregion               

        #region 明细编辑
        /// <summary>
        /// 明细编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Grid_JkfOrderDetail_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (Grid_JkfOrderDetail.CurrentRow == null)
                return;
            Form frm = null;
            RF = new ReflectionFunction();
            FP.EntityId = CurrentDetailEntityId.ToString();
            frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_JkfOrderDetailEdit", FP);
            if (frm.DialogResult == DialogResult.OK)
            {
                this.FormOnLoad();
            }
        }
        #endregion

        #region 订单发送到海送
        /// <summary>
        /// 订单发送到海送
        /// </summary>
        /// <param name="OrderXmlstr"></param>
        /// <param name="xmlType"></param>
        /// <param name="sourceType"></param>
        public string OrderXmlSend(string OrderXmlstr, string xmlType, string sourceType)
        {
            A8EXP.DotNetWinform.OrderXmlService.ReceivedDeclareServiceClient ws = new A8EXP.DotNetWinform.OrderXmlService.ReceivedDeclareServiceClient();
            string Msg = ws.checkReceived(OrderXmlstr, xmlType, sourceType);
            return Msg;
        }
        #endregion

        #region 订单状态选择
        /// <summary>
        /// 订单状态选择
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void devCheckRadioAudit_EditValueChanged(object sender, EventArgs e)
        {
            OrderAuditState = devCheckRadioAudit.EditValue.ToString();
            GetList();
        }
        #endregion

        #region 生成运单物流信息
        /// <summary>
        /// 生成运单物流信息
        /// </summary>
        public void GetRunExpress()
        {
            try
            {
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    Form frm = null;
                    RF = new ReflectionFunction();
                    FP.SelectedIds = GetSelectOrderNos();
                    frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_GetRunExpressOrder", FP);
                    if (frm == null)
                        return;
                    if (frm.DialogResult == DialogResult.OK)
                    {
                        FormOnLoad();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }
        #endregion

        #region  查询
        /// <summary>
        /// 查询
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bntQuery_Click(object sender, EventArgs e)
        {
            GetList();
        }
        #endregion

        #region 回执记录加载显示
        /// <summary>
        /// 回执结果信息
        /// </summary>
        public void DataOrderResultBind()
        {
            if (JkfOrderImportHeadTable.Rows.Count > 0)
            {
                JkfOrderResultTable = GetJkfOrderResultList(CurrentOrderNo, "IMPORTORDER");//当前业务单号
                if (JkfOrderResultTable.Rows.Count > 0)
                {
                    Grid_JkfOrderResult.DataSource = JkfOrderResultTable;
                }
                else
                {
                    Grid_JkfOrderResult.DataSource = null;
                    Grid_JkfOrderReturnResultDetail.DataSource = null;
                }
            }
        }

        /// <summary>
        /// 获得当前业务编号的回执记录
        /// </summary>
        /// <param name="BusinessNo">业务单号</param>
        /// <param name="BusinessType">业务类型</param>
        /// <returns></returns>
        public DataTable GetJkfOrderResultList(string BusinessNo = "", string businessType = "")
        {
            if (Grid_JkfOrderImportHead.CurrentCell != null)
            {
                string filtersql = string.Empty;
                SearchCondition condition = new SearchCondition();
                condition.AddCondition("BusinessNo", BusinessNo, SqlOperator.Equal)
                    .AddCondition("BusinessType", businessType, SqlOperator.Equal)
                  .AddCondition("Enabled", 1, SqlOperator.Equal);
                filtersql = condition.BuildConditionSql(DatabaseType.SqlServer);
                JkfOrderResultTable = BLLFactory<A8ERP_Customs_JkfOrderResult>.Instance.GetDataTable(filtersql);
                if (JkfOrderResultTable.Rows.Count > 0)
                {
                    for (int i = 0; i < JkfOrderResultTable.Rows.Count; i++)
                    {
                        string BusinessType = string.Empty;
                        BusinessType = JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType].ToString();
                        switch (BusinessType)
                        {
                            case "IMPORTORDER":
                                JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.IMPORTORDER.ToDescription();
                                break;
                            case "PERSONAL_GOODS_DECLAR":
                                JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.PERSONAL_GOODS_DECLAR.ToDescription();
                                break;
                            case "IMPORTBILLRESULT":
                                JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.IMPORTBILLRESULT.ToDescription();
                                break;
                            case "IMPORTBILL":
                                JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldBusinessType] = A8EXP.Entity.BusinessType.IMPORTBILL.ToDescription();
                                break;
                        }
                        JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldDeclareType] = JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldDeclareType].ToString() == "1" ? DeclareType.Add.ToDescription().ToString() : DeclareType.Edit.ToDescription().ToString();
                        JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldChkMark] = JkfOrderResultTable.Rows[i][A8ERP_Customs_JkfOrderResultInfo.FieldChkMark].ToString() == "1" ? "成功" : "失败";
                    }
                }
            }
            else
            {
                JkfOrderResultTable = new DataTable(A8ERP_Customs_JkfOrderResultInfo.TableName);//回执状态
                JkfOrderReturnResultDetailTable = new DataTable(A8ERP_Customs_JkfOrderReturnResultDetailInfo.TableName);//回执明细
            }
            return JkfOrderResultTable;
        }

        /// <summary>
        /// 获得回执表的ID
        /// </summary>
        string _JkfOrderResultcurrentEntityId = string.Empty;
        public string GetJkfOrderResultcurrentEntityId
        {
            get
            {
                return _JkfOrderResultcurrentEntityId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderResult, A8ERP_Customs_JkfOrderResultInfo.FieldId);
            }
            set
            {
                this._JkfOrderResultcurrentEntityId = value;
            }
        }

        /// <summary>
        /// 绑定明细
        /// </summary>
        /// <returns></returns>
        public void DataBindJkfOrderReturnResultDetail()
        {
            try
            {
                string condition = string.Format("FId='{0}'", GetJkfOrderResultcurrentEntityId);
                JkfOrderReturnResultDetailTable = BLL.BLLFactory<A8ERP_Customs_JkfOrderReturnResultDetail>.Instance.GetDataTable(condition);
                if (JkfOrderReturnResultDetailTable.Rows.Count == 0)
                    return;
                Grid_JkfOrderReturnResultDetail.DataSource = JkfOrderReturnResultDetailTable.DefaultView;
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }

        }

        /// <summary>
        /// 绑定记录
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Grid_JkfOrderResult_SelectionChanged(object sender, EventArgs e)
        {
            if (this.FormEvented)
            {
                int fileididstr = 0;
                if (Grid_JkfOrderResult.CurrentRow != null)
                {
                    if (!string.IsNullOrEmpty(fileididstr.ToString()) || fileididstr.ToString() != GetJkfOrderResultcurrentEntityId)
                    {
                        if (string.IsNullOrEmpty(GetJkfOrderResultcurrentEntityId))
                        {
                            fileididstr = 0;
                        }
                        else
                        {
                            fileididstr = Convert.ToInt32(GetJkfOrderResultcurrentEntityId);
                            DataBindJkfOrderReturnResultDetail();//回执明细
                        }
                    }
                }
                else
                {
                    //设为空
                    Grid_JkfOrderReturnResultDetail.DataSource = null;
                }
            }
        }
        #endregion

        #region 审核状态
        /// <summary>
        /// 获得当前的订单编号
        /// </summary>
        private string _currentAuditState = string.Empty;
        /// <summary>
        /// 获得订单主表当前的订单编号
        /// </summary>
        public string CurrentAuditState
        {
            get
            {
                return _currentAuditState = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderImportHead, A8ERP_Customs_JkfOrderImportHeadInfo.FieldAuditState);
            }
        }

        /// <summary>
        /// 设置控件状态
        /// </summary>
        public override void SetControlState()
        {
            switch (CurrentAuditState)
            {
                case "0"://未申报中
                         //btnOrder.Enabled = true;
                         //Bnt_SendWayBill.Enabled = true;
                         //BntAutoZip.Enabled = true;
                         //BtnSynchronous.Enabled = false;
                         //devOutStock.Enabled = false;
                    break;
                case "10"://申报中
                          //btnOrder.Enabled = true;
                          //Bnt_SendWayBill.Enabled = true;
                          //BntAutoZip.Enabled = false;
                          //BtnSynchronous.Enabled = false;
                          //devOutStock.Enabled = false;
                    break;
                case "20"://已退回报中
                          //btnOrder.Enabled = false;
                          //Bnt_SendWayBill.Enabled = false;
                          //BntAutoZip.Enabled = false;
                          //BtnSynchronous.Enabled = false;
                          //devOutStock.Enabled = false;
                    break;
                case "30"://己处理
                          //btnOrder.Enabled = false;
                          //Bnt_SendWayBill.Enabled = false;
                          //BntAutoZip.Enabled = false;
                          //BtnSynchronous.Enabled = true;
                          //devOutStock.Enabled = true;
                    break;
                case "40"://己同步
                          //btnOrder.Enabled = true;
                          //Bnt_SendWayBill.Enabled = true;
                          //BntAutoZip.Enabled = false;
                          //Bnt_BathoutputGoodsDeclare.Enabled = false;
                          //BntAutoZip.Enabled = false;
                          //BtnSynchronous.Enabled = true;
                          //devOutStock.Enabled = true;
                    break;
                case "60"://已出库
                          //btnOrder.Enabled = false;
                          //Bnt_SendWayBill.Enabled = false;
                          //BntAutoZip.Enabled = false;
                          //BtnSynchronous.Enabled = false;
                          //devOutStock.Enabled = true;
                    break;
                default:
                    //btnOrder.Enabled = false;

                    //BntAutoZip.Enabled = false;
                    //BtnSynchronous.Enabled = false;
                    //devOutStock.Enabled = false;
                    break;
            }



        }
        #endregion

        #region  申报单号是否存
        /// <summary>
        /// 申报单号是否存
        /// </summary>
        /// <returns></returns>
        public bool GetIsCurrentOrderON()
        {
            string condition = string.Format("OrderNo='{0}'", CurrentOrderNo);
            return BLL.BLLFactory<A8ERP_Customs_GoodsMainDeclare>.Instance.IsExistRecord(condition);
        }
        #endregion

        #region 全选/返选
        /// <summary>
        /// 全选
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSelectAll_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (DataGridViewRow dgvRow in Grid_JkfOrderImportHead.Rows)
                {
                    dgvRow.Cells["colSelected"].Value = true;
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }

        /// <summary>
        /// 返选
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnInvertSelect_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (DataGridViewRow dgvRow in Grid_JkfOrderImportHead.Rows)
                {
                    DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dgvRow.Cells["colSelected"];
                    dgvRow.Cells["colSelected"].Value = !Convert.ToBoolean(checkCell.Value);

                }
            }
            catch (Exception ex)
            {

                MessageUtil.ShowError(ex.Message);
            }
        }
        #endregion

        #region 物流事件拉操作
        /// <summary>
        /// 物流事件
        /// </summary>
        /// <param name="selectedId"></param>
        private void Cmb_Express_SelectedIndexChanged(string selectedId)
        {
            if (this.FormLoaded)
            {
                Expressstr = Cmb_Express.SelectedId.ToString();
                if (Expressstr != "-1")
                {
                    Expressstr = Cmb_Express.SelectedId.ToString();
                }
                else
                {
                    Expressstr = string.Empty;
                }
                GetList();
            }
        }

        #endregion

        #region 跟椐电商Id选择
        /// <summary>
        /// 跟椐电商Id选择
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Cmb_ShopName_Properties_EditValueChanged(object sender, EventArgs e)
        {
            if (this.FormEvented)
            {
                ShopNameId = Cmb_ShopName.SelectedId.ToString();
                if (ShopNameId != "0")
                {
                    ShopNameId = Cmb_ShopName.SelectedId.ToString();
                }
                else
                {
                    ShopNameId = string.Empty;
                }
                GetList();
            }
        }
        #endregion

        #region  自动折分成单品
        /// <summary>
        /// 自动折分成单品
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BntAutoZip_Click(object sender, EventArgs e)
        {
            try
            {
                if (Grid_JkfOrderImportHead.CurrentRow == null)
                    return;
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    string statusCode = string.Empty;
                    string statusMessage = string.Empty;
                    ProgressForm progress = new ProgressForm(this);
                    bool retunValue = false;
                    int itemErrCount = 0;
                    int itemCount = 0;
                    progress.Show();
                    try
                    {
                        for (int i = 0; i < GetSelecteIds().Length; i++)
                        {
                            progress.SetProgressValue(1);
                            //获得电商订单主体信息
                            string Id = GetSelecteIds()[i].ToString();
                            string condition = string.Format("Id='{0}'", Id);
                            A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;   //订单主表                       
                            JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                            JkfOrderImportHeadEntity = BLL.BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
                            //明细
                            List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailListEntity = null;
                            string conditiondetail = string.Format("FId='{0}'", JkfOrderImportHeadEntity.Id.ToString());
                            JkfOrderDetailListEntity = BLLFactory<A8ERP_Customs_JkfOrderDetail>.Instance.Find(conditiondetail);
                            if (JkfOrderDetailListEntity == null)
                                continue;
                            //进行自动折分处理
                            string XmlFileNamePath = FilleUtil.GetOrderCustomsr();
                            XmlDocument Xmldoc = new XmlDocument();
                            Xmldoc.Load(XmlFileNamePath);
                            List<A8ERP_Customs_JkfOrderDetailInfo> JkfCHOrderDetailListEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.IsAutoCFOrderDetail(Xmldoc, JkfOrderDetailListEntity);
                            if (JkfCHOrderDetailListEntity.Count == 0)
                            {
                                itemErrCount++;
                                MessageUtil.ShowTips("折分未完成或编码不存在");
                                continue;
                            }
                            //批量更新
                            for (int K = 0; K < JkfCHOrderDetailListEntity.Count; K++)
                            {
                                if (BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.AddEdit(UserInfo, JkfCHOrderDetailListEntity[K], out statusCode, out statusMessage))
                                {
                                    retunValue = true;
                                }
                                else
                                {
                                    continue;
                                }
                            }

                            #region 主表更新
                            decimal GrossWeight = 0.00m;
                            string MainGName = string.Empty;
                            for (int o = 0; o < JkfCHOrderDetailListEntity.Count; o++)
                            {
                                GrossWeight += JkfCHOrderDetailListEntity[o].GrossWeight;
                                string GoodsName = JkfCHOrderDetailListEntity[o].GoodsName;
                                GoodsName = GoodsName.Remove(0, 5);
                                //GoodsName.Substring(0, GoodsName.Length - 4);
                                MainGName += "(" + JkfCHOrderDetailListEntity[o].GoodsOrder + ")" + "名称:" + GoodsName + " 数量: " + JkfCHOrderDetailListEntity[o].GoodsCount + " 编码:" + JkfCHOrderDetailListEntity[o].GoodsCode.ToString() + " ";
                            }
                            JkfOrderImportHeadEntity.TradeCountry = JkfCHOrderDetailListEntity[0].OriginCountry;
                            JkfOrderImportHeadEntity.MainGName = MainGName.Substring(0, 10);//主要货物名称

                            #endregion
                            if (retunValue)
                            {
                                itemCount++;
                            }
                            progress.SetProgressValue(100);
                            progress.SetStatusInfo.Text = string.Format("成功:'{0}'  错误:'{1}'", itemCount, itemErrCount);

                        }
                    }
                    catch (Exception ex)
                    {
                        MessageUtil.ShowError(ex.Message);
                    }
                    finally
                    {
                        progress.SetProgressValue(100);
                        progress.SetStatusInfo.Text = string.Format("成功:'{0}'  错误:'{1}'", itemCount, itemErrCount);
                        progress.Close();
                        MessageUtil.ShowTips(string.Format("执行折分成功:{0}个", itemCount));
                        this.FormOnLoad();

                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
            //string statusCode = string.Empty; string statusMessage = string.Empty;
            ////获得当前的折分记录
            //string XmlFileNamePath = FilleUtil.GetOrderCustomsr();
            //XmlDocument Xmldoc = new XmlDocument();
            //Xmldoc.Load(XmlFileNamePath);
            ////取指定的结点的集合   //PT14021902
            //XmlNodeList nodes = Xmldoc.SelectNodes("//KCYOrderDetailList//KCYOrderDetail");
            ////先确定是否要折分
            //if (JkfOrderDetailTable.Rows.Count > 0)
            //{
            //    bool IscfOrder = true;
            //    bool returnValue = false;
            //    for (int i = 0; i < JkfOrderDetailTable.Rows.Count; i++)
            //    {
            //        JkfOrderDetailTable.Rows[i]["GoodsOrder"] = i + 1;
            //        string cfInspectionRecordNumber = string.Empty;//返回折解后的备案编号
            //        string CurrentGoodsModel = string.Empty;//未折分当前的规格
            //        string CurrentGoodsCode = string.Empty;//返回当前的折分商品编号
            //        string IscfNumber = string.Empty;//返回折分后的数量
            //        //对比是否要自动折分
            //        string IsProductRecordNo = string.Empty;
            //        string GoodsCodeNo = string.Empty;//当前的商品编码
            //        GoodsCodeNo = JkfOrderDetailTable.Rows[i]["GoodsCode"].ToString();//产品国检备案编号
            //        IscfOrder = IsAutoZfOrder(Xmldoc, GoodsCodeNo, out  cfInspectionRecordNumber, out IscfNumber, out  CurrentGoodsModel, out  CurrentGoodsCode);
            //        if (!IscfOrder)
            //        {
            //            //进行折分
            //            string Id = JkfOrderDetailTable.Rows[i]["Id"].ToString();
            //            A8ERP_Customs_JkfOrderDetailInfo entitydetail = BLL.BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.FindByID(Id);
            //            string GoodsCode = entitydetail.GoodsCode.ToString();
            //            foreach (XmlNode item in nodes)
            //            {
            //                GoodsCode = (item.SelectSingleNode("CommodityCode")).InnerText;//商品编码
            //                if (!string.IsNullOrEmpty(GoodsCode))
            //                {
            //                    if (CurrentGoodsCode.Equals(GoodsCode))
            //                    {
            //                        entitydetail.GoodsName = (item.SelectSingleNode("CfGoodName")).InnerText.Trim();//名称
            //                        entitydetail.GoodsCode = (item.SelectSingleNode("CfCommodityCode")).InnerText.Trim();//拆分后商品编码物品编码
            //                        entitydetail.ProductRecordNo = (item.SelectSingleNode("CfInspectionRecordNumber")).InnerText.Trim();//产品国检备案编号
            //                        entitydetail.GoodPrepardNo = (item.SelectSingleNode("HScode")).InnerText.Trim();//商品海关备案编号
            //                        entitydetail.GoodsModel = (item.SelectSingleNode("CfGoodsModel")).InnerText.Trim();//规格
            //                        entitydetail.CodeTs = "01010160";//行邮税号
            //                        //entitydetail.OriginCountry = "142";//产销国
            //                        decimal Num = ValuesData.TurnToDecimal(CurrentGoodsModel.Substring(CurrentGoodsModel.Length - 1, 1));
            //                        decimal Count = ValuesData.TurnToDecimal(entitydetail.GoodsCount.ToString()) * Num;
            //                        entitydetail.GoodsCount = Count;//数量  
            //                        entitydetail.UnitPrice = entitydetail.DealAmount / Count;//单价修改
            //                        returnValue = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Edit(entitydetail, out statusCode, out statusMessage);
            //                    }
            //                }

            //            }
            //        }
            //        JkfOrderDetailTable.AcceptChanges();
            //        if (returnValue)
            //        {
            //            MessageUtil.ShowTips("折分成功!");
            //            //this.FormOnLoad();
            //        }
            //        else
            //        {

            //            MessageUtil.ShowTips("根据折分文档无须折分!");
            //        }
            //    }
            //}
        }

        /// <summary>
        /// 是否需要折分
        /// </summary>
        /// <param name="Xmldoc"></param>
        /// <param name="ProductRecordNo"></param>
        /// <returns></returns>
        private bool IsAutoZfOrder(XmlDocument Xmldoc, string ProductGoodsCodeNo, out string cfInspectionRecordNumber, out string cfNumber, out string CurrentGoodsModel, out string CurrentGoodsCode)
        {
            bool returnResultValue = true;
            cfInspectionRecordNumber = string.Empty;
            cfNumber = string.Empty;
            CurrentGoodsModel = string.Empty;//折分后规格
            CurrentGoodsCode = string.Empty;//折分后商品编码
                                            //取指定的结点的集合
            XmlNodeList nodes = Xmldoc.SelectNodes("//KCYOrderDetailList//KCYOrderDetail");
            if (nodes != null)
            {
                foreach (XmlNode item in nodes)
                {
                    string strProductRecordNo = (item.SelectSingleNode("CommodityCode")).InnerText;//产品编号
                    string isCf = string.Empty;
                    if (ProductGoodsCodeNo.Equals(strProductRecordNo))
                    {
                        isCf = (item.SelectSingleNode("IsCf")).InnerText;//是否需要拆分
                        if (isCf.Equals("1"))//返回需要折分的数据值
                        {
                            CurrentGoodsModel = (item.SelectSingleNode("GoodsModel")).InnerText.ToString();//折分后规格
                            cfInspectionRecordNumber = (item.SelectSingleNode("CfInspectionRecordNumber")).InnerText.ToString();//拆分后国检备案编号                            
                            CurrentGoodsCode = (item.SelectSingleNode("CfCommodityCode")).InnerText.ToString();//折分后商品编码
                            cfNumber = (item.SelectSingleNode("CfNumber")).InnerText.ToString();//折分后数量
                                                                                                //GoodPrepardNo = (item.SelectSingleNode("cfInspectionRecordNumber")).InnerText.ToString();//拆分后商品海关备案编号
                            returnResultValue = false;
                            break;
                        }
                        return returnResultValue;
                    }
                }
            }
            return returnResultValue;
        }


        #endregion

        #region 新增订单
        /// <summary>
        /// 新增订单
        /// </summary>
        public override void Add()
        {
            Form frm = null;
            RF = new ReflectionFunction();
            FP.EntityId = CurrentEntityId.ToString();
            frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_ShopOrderAdd", FP);
            if (frm.DialogResult == DialogResult.OK)
            {
                this.FormOnLoad();
            }
        }
        #endregion

        #region 确认出库
        /// <summary>
        /// 确认出库
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>  
        public void OrderOutStock()
        {
            string orderNo = string.Empty;
            bool returnValue = false;
            if (MessageUtil.ShowYesNoAndWarning("确认出库,您确定是否继续?") == DialogResult.Yes)
            {
                ProgressForm progress = new ProgressForm(this);
                progress.Show();
                try
                {
                    string statusMessage = string.Empty;
                    for (int i = 0; i < GetSelecteIds().Length; i++)
                    {
                        progress.SetProgressValue(1);
                        string Condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
                        //确认出库前同步一下到网仓
                        A8ERP_Customs_JkfOrderImportHeadInfo entity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                        entity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
                        progress.SetProgressValue(90);
                        if (entity != null)
                        {
                            orderNo = entity.OrderNo.ToString();
                            returnValue = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.UpOrderOutStatusCode(UserInfo, orderNo, CustomsOrderState.CustomsOutOk.ToString());
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowError(ex.Message);
                }
                finally
                {
                    progress.SetProgressValue(100);
                    progress.SetStatusInfo.Text = "确认出库成功...";
                    progress.Close();
                    this.FormOnLoad();
                }

            }
        }
        #endregion

        #region 返回订单已处理状态
        /// <summary>
        /// 返回订单已处理状态
        /// </summary>
        public void GetreturnAuditState()
        {
            string orderNo = string.Empty;
            bool returnValue = false;
            if (MessageUtil.ShowYesNoAndWarning("警告!您确定要返回已处理状态?") == DialogResult.Yes)
            {
                ProgressForm progress = new ProgressForm(this);
                progress.Show();
                try
                {
                    string statusCode = string.Empty;
                    string statusMessage = string.Empty;
                    for (int i = 0; i < GetSelecteIds().Length; i++)
                    {
                        progress.SetProgressValue(1);

                        #region 订单状态是否已申报
                        //int OrderAuditState = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetOrderAuditState(CurrentOrderNo);
                        //if (OrderAuditState != 20)
                        //{
                        //    progress.SetStatusInfo.Text = "订单已进入出货流程不能再申报...";
                        //    continue;
                        //}
                        #endregion

                        string Condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
                        A8ERP_Customs_JkfOrderImportHeadInfo entity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                        entity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
                        if (entity != null)
                        {
                            orderNo = entity.OrderNo.ToString();
                            string OrderstatusCode = CustomsOrderState.CustomsClearanceOk.ToString();
                            returnValue = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.OrderAuditState(UserInfo, orderNo, OrderstatusCode);
                            returnValue = BLLFactory<BLL.A8ERP_Customs_GoodsMainDeclare>.Instance.OrderAuditState(UserInfo, orderNo, OrderstatusCode);
                            returnValue = BLLFactory<BLL.A8ERP_Customs_WillayBillImportDto>.Instance.OrderAuditState(UserInfo, orderNo, OrderstatusCode);

                            #region 写入操作记录
                            if (returnValue)
                            {
                                A8ERP_WMS_OperationRecordsInfo OperationEntity = new A8ERP_WMS_OperationRecordsInfo();
                                OperationEntity.ProcessId = entity.OrderNo;//服务Id
                                OperationEntity.ProcessName = "订单服务操作";//服务名称
                                OperationEntity.OperationName = string.Format("返回已处理订单操作 {0}", entity.OrderNo);//操作名称
                                OperationEntity.Operation = UserInfo.RealName;//操作人  
                                OperationEntity.OrderState = "30";//状态
                                OperationEntity.CustomsField = UserInfo.WarehouseCode;//路由产生地点
                                OperationEntity.Description = string.Format("订单:{0} 返回已处理订单操作成功", entity.OrderNo);//描述
                                OperationEntity.CreateBy = UserInfo.UserName;//用户名称
                                OperationEntity.CreateUserId = UserInfo.Id;//用户Id
                                OperationEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                                OperationEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                                returnValue = BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.Add(UserInfo, OperationEntity, out statusCode, out statusMessage);
                            }
                            #endregion
                        }
                        progress.SetProgressValue(100);

                    }
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowError(ex.Message);
                }
                finally
                {
                    progress.SetProgressValue(100);
                    progress.SetStatusInfo.Text = "返回已处理成功...";
                    progress.Close();
                    GetList();
                }
            }
        }
        #endregion

        #region 明细删除
        /// <summary>
        /// 明细删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < GetSelecteJkfOrderDetaiIds().Length; i++)
            {
                string statusCode = string.Empty;
                string statusMessage = string.Empty;
                if (BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.BatchDelete(UserInfo, GetSelecteJkfOrderDetaiIds(), out statusCode, out statusMessage))
                {
                    MessageUtil.ShowTips("删除成功");
                }
            }
        }
        #endregion

        #region 选中市Id
        /// <summary>
        /// 选中市Id
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void cmb_City_SelectedIndexChanged(object sender, EventArgs e)
        {
            GetList();
        }
        #endregion

        #region 江浙沪
        /// <summary>
        /// 江浙沪
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkZ_CheckedChanged(object sender, EventArgs e)
        {
            GetList();
        }
        #endregion

        #region 已删除
        /// <summary>
        /// 已删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkUnDel_CheckedChanged(object sender, EventArgs e)
        {
            if (checkUnDel.Checked)
            {
                DeletionStateCode = 1;
            }
            else
            {
                DeletionStateCode = 0;
            }
            GetList();
        }
        #endregion

        #region 暂停状态更改
        /// <summary>
        /// 暂停状态更改
        /// </summary>
        public void Suspended()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                RF = new ReflectionFunction();
                Form frm = null;
                FP.SelectedIds = GetSelecteOrderNo();
                frm = RF.LoadDialogForm("A8EXP.ShopOrders.dll", "A8EXP.ShopOrders.Form_OptionStatus", FP);
                if (frm.DialogResult == DialogResult.OK)
                {
                    this.FormOnLoad();
                }
            }
        }
        #endregion

        #region 打印发行
        /// <summary>
        /// /打印模板设计
        /// </summary>
        public override void FormReportSet()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            try
            {
                string TransportUnit = string.Empty;
                TransportUnit = Cmb_BaseTransportUnit.SelectedId;
                //1报表文件是否存在
                string sql = string.Format("Id='{0}'", CurrentEntityId);
                DataTable dtPrintMain = DataTableHelper.FilterDataTable(JkfOrderImportHeadTable, sql);//获得主表数据
                DataTable[] DataTables = new DataTable[1] { dtPrintMain };
                string[] TableName = new string[1] { "销售单" };
                string Expressfrx = string.Empty;
                switch (TransportUnit)
                {
                    case "670725"://运输单位是顺风
                        #region 顺风打印
                        Expressfrx = "ExpressSf.frx";
                        #endregion
                        break;
                    case "672600"://如风达
                        #region 如风达
                        Expressfrx = "ExpressLL.frx";
                        #endregion
                        break;
                    case "672555"://圆通
                        break;
                    case "670036"://EMS
                        break;
                    case "672823"://冠邦冷链
                        Expressfrx = "ExpressGb.frx";
                        break;
                }
                ReportPrint.FormPrint(TableName, Expressfrx, false, DataTables);//false打开模板/true打印预览
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }

        /// <summary>
        /// 打印预览
        /// </summary>
        public override void FormPrintView()
        {
            if (JkfOrderImportHeadTable.Rows.Count == 0)
                return;
            try
            {
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    if (Cmb_BaseTransportUnit.SelectedId.Equals("-1"))
                    {
                        MessageUtil.ShowTips("请选择运输单位!");
                        return;
                    }
                    string TransportUnit = string.Empty;
                    TransportUnit = Cmb_BaseTransportUnit.SelectedId;
                    //1报表文件是否存在                   
                    string IdsArray = string.Empty;
                    IdsArray = BLLTools.ObjectsToList(GetSelectIds(), "'");
                    SearchCondition condition = new SearchCondition();
                    condition.AddCondition("Id", IdsArray, SqlOperator.In)//ID
                    .AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
                    .AddCondition("Enabled", 1, SqlOperator.Equal);//有效的                       
                    SqlCondition = condition.BuildConditionSql(DatabaseType.SqlServer);
                    DataTable dtMainPrint = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(SqlCondition);
                    if (dtMainPrint.Rows.Count == 0)
                        return;
                    switch (TransportUnit)
                    {
                        case "670725"://运输单位是顺风
                            #region 顺风打印
                            if (dtMainPrint.Rows.Count == 0)
                            {
                                MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
                                return;
                            }
                            else
                            {
                                DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
                                string[] TableName = new string[1] { "销售单" };
                                string strReportFileName = string.Empty;
                                strReportFileName = "ExpressSf.frx";
                                ReportPrint.FormPrint(TableName, strReportFileName, true, ArrayDataTables);//false打开模板/true打印预览
                            }
                            #endregion

                            break;
                        case "672600"://如风达

                            #region 如风达
                            if (dtMainPrint.Rows.Count == 0)
                            {
                                MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
                                return;
                            }
                            else
                            {
                                DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
                                string[] TableName = new string[1] { "销售单" };
                                string strReportFileName = string.Empty;
                                strReportFileName = "ExpressLL.frx";
                                ReportPrint.FormPrint(TableName, strReportFileName, true, ArrayDataTables);//false打开模板/true打印预览
                            }
                            #endregion

                            break;
                        case "672555"://圆通

                            break;
                        case "670036"://EMS
                            break;
                        case "672823"://冠邦冷链
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }

        /// <summary>
        /// 直接打印
        /// </summary>
        public override void FormPrint()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            try
            {
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    //1报表文件是否存在                   
                    string IdsArray = string.Empty;
                    IdsArray = BLLTools.ObjectsToList(GetSelectIds(), "'");
                    SearchCondition condition = new SearchCondition();
                    condition.AddCondition("Id", IdsArray, SqlOperator.In)//ID
                    .AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
                    .AddCondition("Enabled", 1, SqlOperator.Equal);//有效的                       
                    SqlCondition = condition.BuildConditionSql(DatabaseType.SqlServer);
                    DataTable dtMainPrint = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(SqlCondition);
                    if (dtMainPrint.Rows.Count == 0)
                        return;
                    string LogisticsCarrierCode = string.Empty;
                    string WayBills = string.Empty;
                    //if (CheckExpress.Checked)//只打印顺风配送的单号
                    //{
                    for (int i = 0; i < dtMainPrint.Rows.Count; i++)
                    {
                        LogisticsCarrierCode = dtMainPrint.Rows[i]["LogisticsCarrierNumber"].ToString();
                        WayBills = dtMainPrint.Rows[i]["WayBills"].ToString();

                        #region 打印顺风配送的单号
                        if (!string.IsNullOrEmpty(LogisticsCarrierCode))
                        {
                            #region 检查是否有退货记录
                            string statusCode = string.Empty;
                            string statusMessage = string.Empty;
                            long OrdeTid = long.Parse(dtMainPrint.Rows[i]["OrderNo"].ToString().Substring(6));
                            if (TaobaoConfig.GetIsreturnRefund_status(OrdeTid, out statusCode, out statusMessage))
                            {
                                BLLTools.WriteRefund_Status(dtMainPrint.Rows[i]["Id"].ToString(), dtMainPrint.Rows[i]["OrderNo"].ToString(), statusCode, statusMessage);//记录退单记录
                                A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                entity.OrderNoId = dtMainPrint.Rows[i]["Id"].ToString();
                                entity.OrderNo = dtMainPrint.Rows[i]["OrderNo"].ToString();
                                entity.StatusCode = statusCode;
                                entity.StateDescription = statusMessage;
                                string statusCodes = string.Empty;
                                string statusMessages = string.Empty;
                                BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                MessageUtil.ShowTips("呵呵! 客官 发现客户有退单记录,已做记录");
                                dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
                                dtMainPrint.AcceptChanges();
                                i--;
                                continue;
                            }
                            #endregion
                            if (string.IsNullOrEmpty(WayBills))
                            {
                                MessageUtil.ShowTips("客官,运单号不能为空哦!");
                                dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
                                dtMainPrint.AcceptChanges();
                                i--;
                            }
                            if (!LogisticsCarrierCode.Equals("SF"))
                            {
                                dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
                                dtMainPrint.AcceptChanges();
                                i--;
                            }
                        }
                        #endregion

                    }
                    if (dtMainPrint.Rows.Count == 0)
                    {
                        MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
                        return;
                    }
                    else
                    {
                        DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
                        string[] TableName = new string[1] { "销售单" };
                        string strReportFileName = string.Empty;
                        strReportFileName = "ExpressSf.frx";
                        if (ReportPrint.ReturnPrintAndPrintView(TableName, strReportFileName, true, ArrayDataTables) > 0) ;//false打开模板/true打印预览
                        {
                            for (int i = 0; i < dtMainPrint.Rows.Count; i++)
                            {
                                BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.PrinCountWrite(dtMainPrint.Rows[i]["Id"].ToString());
                                //写入订单状态到订单
                                string orderStatusCode = WMSOrderStatus.WMS_PRINT.ToString();
                                int AuditState = ValuesData.TurnToInt(GetWMSOrderEnumsIndex.GetOrderStateIndex(orderStatusCode).ToString());
                                if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, dtMainPrint.Rows[i]["Id"].ToString(), orderStatusCode))
                                {

                                }
                            }
                        }
                    }


                    for (int i = 0; i < dtMainPrint.Rows.Count; i++)
                    {
                        LogisticsCarrierCode = dtMainPrint.Rows[i]["LogisticsCarrierNumber"].ToString();
                        WayBills = dtMainPrint.Rows[i]["WayBills"].ToString();
                        if (!string.IsNullOrEmpty(LogisticsCarrierCode))
                        {
                            #region 检查是否有退货记录
                            string statusCode = string.Empty;
                            string statusMessage = string.Empty;
                            long OrdeTid = long.Parse(dtMainPrint.Rows[i]["OrderNo"].ToString().Substring(6));
                            if (TaobaoConfig.GetIsreturnRefund_status(OrdeTid, out statusCode, out statusMessage))
                            {
                                BLLTools.WriteRefund_Status(dtMainPrint.Rows[i]["Id"].ToString(), dtMainPrint.Rows[i]["OrderNo"].ToString(), statusCode, statusMessage);//记录退单记录
                                A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                entity.OrderNoId = dtMainPrint.Rows[i]["Id"].ToString();
                                entity.OrderNo = dtMainPrint.Rows[i]["OrderNo"].ToString();
                                entity.StatusCode = statusCode;
                                entity.StateDescription = statusMessage;
                                string statusCodes = string.Empty;
                                string statusMessages = string.Empty;
                                BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                MessageUtil.ShowTips("呵呵! 客官 发现客户有退单记录,已做记录");
                                dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
                                dtMainPrint.AcceptChanges();
                                i--;
                                continue;
                            }
                            #endregion

                            if (string.IsNullOrEmpty(WayBills))
                            {
                                MessageUtil.ShowTips("客官,运单号不能为空哦!");
                                dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
                                dtMainPrint.AcceptChanges();
                                i--;
                            }
                            if (!LogisticsCarrierCode.Equals("BJRFD-001"))
                            {
                                dtMainPrint.Rows.Remove(dtMainPrint.Rows[i]);
                                dtMainPrint.AcceptChanges();
                                i--;
                            }
                        }
                    }
                    if (dtMainPrint.Rows.Count == 0)
                    {
                        MessageUtil.ShowTips("客官,配送物流与模板不对应哦");
                        return;
                    }
                    else
                    {
                        DataTable[] ArrayDataTables = new DataTable[1] { dtMainPrint };
                        string[] TableName = new string[1] { "销售单" };
                        string strReportFileName = string.Empty;
                        strReportFileName = "ExpressLL.frx";
                        if (ReportPrint.ReturnPrintAndPrintView(TableName, strReportFileName, true, ArrayDataTables) > 0) ;//false打开模板/true打印预览
                        {
                            for (int i = 0; i < dtMainPrint.Rows.Count; i++)
                            {
                                BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.PrinCountWrite(dtMainPrint.Rows[i]["Id"].ToString());
                                //写入订单状态到订单
                                string orderStatusCode = WMSOrderStatus.WMS_PRINT.ToString();
                                int AuditState = ValuesData.TurnToInt(GetWMSOrderEnumsIndex.GetOrderStateIndex(orderStatusCode).ToString());
                                if (BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, dtMainPrint.Rows[i]["Id"].ToString(), AuditState, orderStatusCode))
                                {

                                }
                            }
                        }
                    }
                }
                //}
            }
            catch (Exception ex)
            {
                MessageUtil.ShowError(ex.Message);
            }
        }

        #endregion

        #region 生成仓库发货单处理
        /// <summary>
        /// 生成仓库发货订单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Bnt_SendWayBill_Click(object sender, EventArgs e)
        {
            SendWayBillWarehouse();
        }
        /// <summary>
        /// 生成发运运单处理
        /// </summary>
        /// <returns></returns>
        public bool SendWayBillWarehouse()
        {
            bool returnValue = true;
            string statusCode = string.Empty;
            string statusMessage = string.Empty;
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return false;
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                ProgressForm progress = new ProgressForm(this);
                progress.Show();
                A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = null;
                List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailEntityList = null;
                A8ERP_WMS_ShipmentOrderInfo ShipmentOrderEntity = null;
                List<A8ERP_WMS_ShipmentOrderDetailsInfo> ShipmentOrderDetailsList = null;
                A8ERP_WMS_ShipmentOrderDetailsInfo ShipmentOrderDetail = null;
                int imteCount = 0;
                int imteCountErr = 0;
                try
                {
                    for (int i = 0; i < GetSelecteIds().Length; i++)
                    {
                        string WarehouseId = string.Empty;//交接仓库Id
                        string WarehouseCode = string.Empty;//仓库Code
                        string WarehouseName = string.Empty;//交接仓库
                        string ShopNameCode = string.Empty;//店铺编码
                        string ShopName = string.Empty;//店铺名称
                        string WayBills = string.Empty;//运单号
                        bool WhetherCrossBorder = false;//是否跨境仓 (跨境标识,店铺,仓库,商品)
                        string ShippersCode = string.Empty;//运输商单位编号
                        string UnitCode = string.Empty;//运输单位编码
                        returnValue = true;
                        progress.SetProgressValue(1);

                        #region 获得订单数据 0
                        JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                        ShipmentOrderEntity = new A8ERP_WMS_ShipmentOrderInfo();
                        string condition = string.Format("Id='{0}'", GetSelecteIds()[i].ToString());
                        JkfOrderImportHeadEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(condition);
                        if (JkfOrderImportHeadEntity == null) continue;
                        ShopNameCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                        WayBills = JkfOrderImportHeadEntity.WayBills;//运单号
                        ShippersCode = JkfOrderImportHeadEntity.ShippersCode.ToString();//运输商编码
                        UnitCode = JkfOrderImportHeadEntity.TransportUnitCode.ToString();//运输单位编码
                        WhetherCrossBorder = JkfOrderImportHeadEntity.IsWhether == 1 ? true : false;//是否跨境订单标识
                        #endregion

                        #region 运单号不存在 0
                        if (string.IsNullOrEmpty(WayBills))
                        {
                            imteCountErr++;
                            statusMessage = "运单号不存在!";
                            continue;
                        }
                        #endregion

                        #region 发货中是否存在此记录 1
                        if (BLLFactory<BLL.A8ERP_WMS_ShipmentOrder>.Instance.IsExistCode(JkfOrderImportHeadEntity.OrderNo.ToString()))
                        {
                            progress.SetProgressValue(100);
                            imteCountErr++;
                            statusMessage = "已发送" + imteCount + "条" + "失败" + imteCountErr + "单号以存在!";
                            progress.SetStatusInfo.Text = statusMessage;
                            DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            returnValue = false;
                            continue;
                        }
                        #endregion

                        #region  店铺是否与仓库关联  2-1
                        if (!BLLFactory<BLL.A8ERP_BaseWMS_StoreWarehouseAssociated>.Instance.GetShopNameWarehouseAssociated(UserInfo, JkfOrderImportHeadEntity.ShopNameId, UserInfo.WarehouseCode, out statusCode, out statusMessage))
                        {
                            DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            returnValue = false;
                            continue;
                        }
                        #endregion

                        #region  店铺与货主关联  2-1
                        //店铺是否与货主关联
                        if (!BLLFactory<A8ERP_BaseWMS_StoreShipperAssociated>.Instance.IsStoreShipperAssociated(UserInfo, JkfOrderImportHeadEntity.ShopNameId, out statusCode, out statusMessage))
                        {
                            DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            returnValue = false;
                            continue;
                        }

                        #endregion

                        #region 获得店铺与仓库关联的记当录 (一个店铺有可能有跨境的也有不是跨境的,而仓库确只有仓境或是不跨境的仓库) 2
                        A8ERP_BaseWMS_StoreWarehouseAssociatedInfo GetStoreWarehouseAssociatedEntity = BLLFactory<BLL.A8ERP_BaseWMS_StoreWarehouseAssociated>.Instance.GetObjEntity(UserInfo, ShopNameCode, UserInfo.WarehouseCode);//得当当前记录的店铺编码跟名称
                        if (GetStoreWarehouseAssociatedEntity == null)
                        {
                            statusMessage = "店铺没有关联可用的仓库,请设置相关的关联的仓库再操作";
                            DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            continue;
                        }
                        WarehouseId = GetStoreWarehouseAssociatedEntity.WarehouseId.ToString();
                        WarehouseCode = GetStoreWarehouseAssociatedEntity.WarehouseCode;
                        WarehouseName = GetStoreWarehouseAssociatedEntity.WarehouseName;
                        #endregion

                        #region 店铺关联的仓库与当前的仓库是否一致
                        if (!WarehouseCode.Equals(UserInfo.WarehouseCode))
                        {
                            statusMessage = "店铺关联的仓库与当前登录的仓库不一致!请切换后操作!";
                            DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            break;
                        }
                        #endregion

                        #region 查看运输单位编码是否与仓库关联 0
                        if (!BLLFactory<BLL.A8ERP_WMS_LogisCompanyManage>.Instance.IsShippersAssociated(UserInfo, ShippersCode, WarehouseId))
                        {
                            statusMessage = "当前仓库没有此运输商相关的信息,或是运输商已被禁用, 请前往仓库关联运输商!";
                            returnValue = false;
                            continue;
                        }
                        #endregion

                        #region 查看店铺运输单位打印模板 2
                        if (!BLLFactory<BLL.A8ERP_WMS_PrintTemplate>.Instance.IsExistStoreIdTransportUnitCode(UserInfo, ShopNameCode, UnitCode))
                        {
                            statusMessage = "当前店铺运输单位打印模板不存在,或是运输单位已被禁用, 请前往仓库关联运输商进行修改!";
                            returnValue = false;
                            continue;
                        }
                        #endregion

                        #region 跨境标示对比 3
                        if (!BLLFactory<BLL.A8ERP_WMS_WarehouseTableManagement>.Instance.IsWhetherBorder(WarehouseCode) == WhetherCrossBorder)//当前是否是跨仓
                        {
                            statusCode = string.Empty;
                            statusMessage = "当前仓库是跨境仓库与订单记录不匹配!";
                            returnValue = false;
                            continue;
                        }
                        #endregion

                        #region 运输商匹配  店铺是否授权 4
                        if (!BLLFactory<BLL.A8ERP_BaseWMS_StoreManagement>.Instance.IsShopNameCode(JkfOrderImportHeadEntity.ShopNameId, out statusCode, out statusMessage))
                        {
                            MessageUtil.ShowTips(statusMessage);
                            returnValue = false;
                            continue;
                        }
                        #endregion

                        #region 表单主表处理
                        ShipmentOrderEntity.SOOrderNo = GetOrderNumber.GetSO();//SO编号
                        ShipmentOrderEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo.Trim();//来源编号
                        ShipmentOrderEntity.WayBills = JkfOrderImportHeadEntity.WayBills.Trim(); //运单号    
                        ShipmentOrderEntity.ShopName = JkfOrderImportHeadEntity.ShopName; //店铺名称    
                        ShipmentOrderEntity.ShopNameId = JkfOrderImportHeadEntity.ShopNameId; //店铺名称Id  
                        ShipmentOrderEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId; //店铺名称编号
                        ShipmentOrderEntity.DistributionShops = ""; //分销店铺                   

                        ShipmentOrderEntity.OrderType = "销售订单";//单据类型
                        ShipmentOrderEntity.OrderTypeCode = "SalesOrder";//单据类型
                        ShipmentOrderEntity.RegistrationType = RegistrationType.B2C_DELIVERY.ToDescription(); //"B2C发货";//登记类型
                        ShipmentOrderEntity.RegistrationTypeCode = RegistrationType.B2C_DELIVERY.ToString(); //"B2C_DELIVERY";//登记类型

                        ShipmentOrderEntity.SourceOrder = JkfOrderImportHeadEntity.SourceOrder; //订单来源
                        ShipmentOrderEntity.AssociatedNumber = JkfOrderImportHeadEntity.OrderNo; //关联单号
                        ShipmentOrderEntity.OrderTeme = JkfOrderImportHeadEntity.OrderDateTime; //订单时间         
                        ShipmentOrderEntity.PaymentTime = JkfOrderImportHeadEntity.PayDate; //付款时间    
                        ShipmentOrderEntity.Ifurgent = 0; //是否加急
                        ShipmentOrderEntity.WhetherCrossBorder = JkfOrderImportHeadEntity.IsWhether; //是否跨境
                        ShipmentOrderEntity.WhetherBy = 0; //能否空运
                        ShipmentOrderEntity.SpecialSingle = 0; //是否特殊单
                        ShipmentOrderEntity.ShippersCode = JkfOrderImportHeadEntity.ShippersCode;//运输商编码
                        ShipmentOrderEntity.ShippersName = JkfOrderImportHeadEntity.ShippersName;//运输商名称
                        ShipmentOrderEntity.TransportUnitCode = JkfOrderImportHeadEntity.TransportUnitCode; //运输单位编码
                        ShipmentOrderEntity.TransportUnitName = JkfOrderImportHeadEntity.TransportUnitName; //运输单位名称
                        ShipmentOrderEntity.LogisticsCarriersName = JkfOrderImportHeadEntity.LogisticsCarriersName; //物流承运商名称
                        ShipmentOrderEntity.LogisticsCarrierCode = JkfOrderImportHeadEntity.LogisticsCarrierNumber; //物流承运商编号
                        ShipmentOrderEntity.WhetherOverseasOrders = 0; //是否海外订单
                        ShipmentOrderEntity.WhetherItemsList = 0; //是否物品清单
                        ShipmentOrderEntity.WhetherCard = 0; //是否贺卡
                        ShipmentOrderEntity.GreetingContent = ""; //贺卡内容
                        ShipmentOrderEntity.ErrorMessage = ""; //错误消息
                        ShipmentOrderEntity.NeedInvoice = 0; //是否需要发票
                        ShipmentOrderEntity.InvoiceLooked = ""; //发票抬头
                        ShipmentOrderEntity.InvoiceContent = ""; //发票内容  
                        ShipmentOrderEntity.RecCountry = JkfOrderImportHeadEntity.RecCountry; //收件方国家
                        ShipmentOrderEntity.RecipientCompany = JkfOrderImportHeadEntity.RecipientCompany; //收人人公司名称
                        ShipmentOrderEntity.RealName = JkfOrderImportHeadEntity.RealName; //收件人真实姓名    
                        ShipmentOrderEntity.ConsigneeMobile = JkfOrderImportHeadEntity.ConsigneePhone; //收件人手机
                        ShipmentOrderEntity.ConsigneePhone = JkfOrderImportHeadEntity.ConsigneeTel; //收件人电话
                        ShipmentOrderEntity.Province = JkfOrderImportHeadEntity.Province; //收件人省   
                        ShipmentOrderEntity.City = JkfOrderImportHeadEntity.City; //收件人市
                        ShipmentOrderEntity.Area = JkfOrderImportHeadEntity.Area; //收件人区
                        ShipmentOrderEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress; //收件人地址
                        ShipmentOrderEntity.ZipCode = JkfOrderImportHeadEntity.ZipCode; //收件邮编     
                        ShipmentOrderEntity.TotalAmount = JkfOrderImportHeadEntity.TotalAmount; //商品总金额    
                        ShipmentOrderEntity.OrderTotalAmount = JkfOrderImportHeadEntity.OrderTotalAmount; //订单总金额  
                        ShipmentOrderEntity.ReceivableAmount = JkfOrderImportHeadEntity.OrderGoodsAmount + JkfOrderImportHeadEntity.FeeAmount + JkfOrderImportHeadEntity.InsureAmount; //应收金额    
                        ShipmentOrderEntity.DiscountAmount = JkfOrderImportHeadEntity.DiscountAmount; //优惠金额
                        ShipmentOrderEntity.PaymentAmount = JkfOrderImportHeadEntity.TotalAmount; //付款金额
                        ShipmentOrderEntity.OrderTaxAmount = JkfOrderImportHeadEntity.OrderTaxAmount; //订单税款
                        ShipmentOrderEntity.BenefitAmount = JkfOrderImportHeadEntity.DiscountAmount; //让利金额:    
                        ShipmentOrderEntity.RefundStatus = JkfOrderImportHeadEntity.Refund_status; //退款状态      
                        ShipmentOrderEntity.RefundAmount = JkfOrderImportHeadEntity.RefundAmount; //退款金额
                        ShipmentOrderEntity.FeeAmount = JkfOrderImportHeadEntity.FeeAmount; //运费  
                        ShipmentOrderEntity.InsureAmount = JkfOrderImportHeadEntity.InsureAmount; //保费   
                        ShipmentOrderEntity.PostageAmount = JkfOrderImportHeadEntity.FeeAmount; //邮费                    
                        ShipmentOrderEntity.DeliveryServiceAmount = 0; //货到付款服务费
                        ShipmentOrderEntity.InsuranceType = ""; //保险类型    
                        ShipmentOrderEntity.InsuranceAmount = 0; //保险保价费
                        ShipmentOrderEntity.ForeignProcessingType = "无需处理"; //国外件处理类型  
                        ShipmentOrderEntity.TotalCount = JkfOrderImportHeadEntity.TotalCount; //总件数
                        ShipmentOrderEntity.CommoditySpecies = JkfOrderImportHeadEntity.TotalQuantity; //商品种数
                        ShipmentOrderEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight; //总重量   
                        ShipmentOrderEntity.CashDelivery = 0; //货到付款  
                        ShipmentOrderEntity.FreightCollect = 0; //运费到付
                        ShipmentOrderEntity.OverseasOrders = 0; //海外订单
                        ShipmentOrderEntity.WarehouseId = WarehouseId;//仓库Id
                        ShipmentOrderEntity.WarehouseCode = WarehouseCode; //交接仓库Code    
                        ShipmentOrderEntity.WarehouseName = WarehouseName; //交接仓库
                        ShipmentOrderEntity.ChosenArea = ""; //主拣选区    
                        ShipmentOrderEntity.InventoryStatus = ""; //库存状态
                        ShipmentOrderEntity.Weight = ""; //理论重量
                        ShipmentOrderEntity.Volume = ""; //理论体积
                        ShipmentOrderEntity.PrintTag = 0; //拣货打印标记
                        ShipmentOrderEntity.SellerNote = JkfOrderImportHeadEntity.SellerNote; //卖家备注
                        ShipmentOrderEntity.BuyerMessage = JkfOrderImportHeadEntity.BuyerMessage; //买家留言
                        ShipmentOrderEntity.MembershipGrade = ""; //会员等级  
                        ShipmentOrderEntity.BuyersNickname = JkfOrderImportHeadEntity.BuyerNick; //买家昵称
                        ShipmentOrderEntity.UserId = JkfOrderImportHeadEntity.PurchaserId; //购买人ID
                        ShipmentOrderEntity.UserName = JkfOrderImportHeadEntity.UserName; //购买人姓名
                        ShipmentOrderEntity.TelMobile = JkfOrderImportHeadEntity.TelMobile; //购买人联系手机
                        ShipmentOrderEntity.BuyerPhone = JkfOrderImportHeadEntity.BuyerPhone; //购买人电话
                        ShipmentOrderEntity.PaperType = JkfOrderImportHeadEntity.PaperType; //购买人证件类型
                        ShipmentOrderEntity.PaperNumber = JkfOrderImportHeadEntity.PaperNumber; //收件人证件号
                        ShipmentOrderEntity.Email = JkfOrderImportHeadEntity.Email; //购买人邮件地址    
                        ShipmentOrderEntity.Address = JkfOrderImportHeadEntity.Address; //购买人地址
                        ShipmentOrderEntity.BuyerIdType = JkfOrderImportHeadEntity.BuyerIdType; //收件人证件类型
                        ShipmentOrderEntity.BuyerIdNumber = JkfOrderImportHeadEntity.BuyerIdNumber; //收件人证件号
                        ShipmentOrderEntity.ReviewSign = 0; //快递审核标志
                        ShipmentOrderEntity.ExpressAudit = ""; //快递审核
                        ShipmentOrderEntity.ExpressReviewer = ""; //快递审核人
                                                                  //ShipmentOrderEntity.ExpressAuditTime = DateTime.Now; //快递审核时间   
                        ShipmentOrderEntity.CustomerServiceReviewSign = "未审核"; //客服审核标志     
                        ShipmentOrderEntity.CustomerServiceAuditState = 0; //客服审核状态  
                        ShipmentOrderEntity.CustomerServiceReviewer = ""; //客服审核人     
                                                                          //ShipmentOrderEntity.CustomerServiceAuditTime = DateTime.Now; //客服审核时间
                        ShipmentOrderEntity.PreviousState = ""; //前一状态   
                        ShipmentOrderEntity.NextState = ""; //下一状态
                        ShipmentOrderEntity.OrganizationId = JkfOrderImportHeadEntity.ShopNameId; //平台机构  
                        ShipmentOrderEntity.OrganizationName = JkfOrderImportHeadEntity.ShopName; //平台机构
                        ShipmentOrderEntity.OrganizationState = ""; //平台机构状态反馈
                        ShipmentOrderEntity.OrderState = KCYWMSOrderStatus.WMS_WaitingWarehouse.ToString(); //订单状态 等待仓库处理
                        ShipmentOrderEntity.AuditState = ValuesData.TurnToInt(GetKCYWMSOrderStatus.GetOrderStateIndex(KCYWMSOrderStatus.WMS_WaitingWarehouse.ToString()).ToString());
                        //ShipmentOrderEntity.AuditingDate = ; //审核日期
                        ShipmentOrderEntity.Auditor = ""; //审核人
                        ShipmentOrderEntity.SenderCountry = JkfOrderImportHeadEntity.SenderCountry; //发件人国别
                        ShipmentOrderEntity.DeliveryCompany = JkfOrderImportHeadEntity.DeliveryCompany; //发货公司
                        ShipmentOrderEntity.SenderName = JkfOrderImportHeadEntity.SenderName; //发件人姓名
                        ShipmentOrderEntity.SenderProvince = JkfOrderImportHeadEntity.SenderProvince; //发货人省
                        ShipmentOrderEntity.SenderCity = JkfOrderImportHeadEntity.SenderCity; //发货人市
                        ShipmentOrderEntity.SenderArea = JkfOrderImportHeadEntity.SenderArea; //发货人区
                        ShipmentOrderEntity.ShipperTelephone = JkfOrderImportHeadEntity.ShipperTelephone; //发货人电话
                        ShipmentOrderEntity.ShipperPhone = JkfOrderImportHeadEntity.ShipperPhone; //发货人手机
                        ShipmentOrderEntity.DeliveryAddress = JkfOrderImportHeadEntity.DeliveryAddress; //发货地址
                        ShipmentOrderEntity.ShippeEmail = JkfOrderImportHeadEntity.ShippeEmail; //发件人Email
                        ShipmentOrderEntity.PostalCode = JkfOrderImportHeadEntity.PostalCode; //发货人邮编
                        ShipmentOrderEntity.SFStoreCode = JkfOrderImportHeadEntity.SFStoreCode; //始发站点
                        ShipmentOrderEntity.MonthlyAccount = JkfOrderImportHeadEntity.MonthlyAccount; //月接帐号
                        ShipmentOrderEntity.LockReasonState = 0; //锁定状态
                        ShipmentOrderEntity.LockReason = ""; //锁定原因  
                        ShipmentOrderEntity.LockingPeople = ""; //锁定人
                        ShipmentOrderEntity.LockingTime = ""; //锁定时间        
                        ShipmentOrderEntity.IsBigHeadPen = 0; //是否匹配大头笔       
                        ShipmentOrderEntity.BigHeadPen = ""; //大头笔   
                        ShipmentOrderEntity.BigHeadPenUser = "系统处理"; //大头笔处理人  
                        ShipmentOrderEntity.MethodPayment = "3"; //结算方式   
                        ShipmentOrderEntity.SettlementUnitName = JkfOrderImportHeadEntity.SettlementUnitName; //结算单位
                        ShipmentOrderEntity.SettlementUnitCode = JkfOrderImportHeadEntity.SettlementUnitCode; //结算单位编码
                        ShipmentOrderEntity.SalesmanName = JkfOrderImportHeadEntity.Salesman; //销售员名称
                        ShipmentOrderEntity.SalesmanMobile = ""; //销售员电话
                        ShipmentOrderEntity.IssueProcessing = 0; //问题件处理
                        ShipmentOrderEntity.SendTracking = 0; //派件跟踪      
                        ShipmentOrderEntity.Transfer = 0; //待转件
                        ShipmentOrderEntity.OrderReturn = 0; //订单退换货  
                        ShipmentOrderEntity.WarehouseException = 0; //仓库异常处理
                        ShipmentOrderEntity.CreateBy = UserInfo.UserName;//用户名称
                        ShipmentOrderEntity.CreateUserId = UserInfo.Id;//用户Id
                        ShipmentOrderEntity.OrgId = UserInfo.SubCompanyId;//机构Id
                        ShipmentOrderEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                        #endregion

                        JkfOrderDetailEntityList = new List<A8ERP_Customs_JkfOrderDetailInfo>();
                        string Sqldetail = string.Format("FId='{0}'", GetSelecteIds()[i].ToString());
                        JkfOrderDetailEntityList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(Sqldetail);
                        if (JkfOrderDetailEntityList.Count == 0) continue;
                        //当前的商品明细进行相同的编码合并处理
                        JkfOrderDetailEntityList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.OrderDetailCombine(UserInfo, JkfOrderDetailEntityList);

                        //验证一些字段
                        if (string.IsNullOrEmpty(JkfOrderImportHeadEntity.OrderNo))
                        {
                            MessageUtil.ShowTips("运单号不能为空!");
                            imteCountErr++;
                            returnValue = false;
                            continue;
                        }
                        progress.SetProgressValue(50);
                        progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr;

                        #region 库存是否足够
                        for (int J = 0; J < JkfOrderDetailEntityList.Count; J++)
                        {
                            returnValue = BLLFactory<BLL.A8ERP_WMS_Warehouse>.Instance.QueryWarehouseQuantity(UserInfo, JkfOrderDetailEntityList[J].MaterialId, JkfOrderDetailEntityList[J].GoodsCount, out statusCode, out statusMessage);
                            if (!returnValue)
                            {
                                statusMessage = "物料编码:" + JkfOrderDetailEntityList[J].GoodsCode + "  " + statusMessage;
                                string OrderstatusCode = CustomsOrderState.WMS_Understock.ToString();
                                BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.UPOrderAuditState(UserInfo, JkfOrderImportHeadEntity.Id.ToString(), OrderstatusCode);
                                continue;
                            }
                        }
                        #endregion
                        if (!returnValue)
                            break;
                        #region 商品明细处理
                        //集合数据添加
                        ShipmentOrderDetailsList = new List<A8ERP_WMS_ShipmentOrderDetailsInfo>();
                        for (int K = 0; K < JkfOrderDetailEntityList.Count; K++)
                        {
                            WhetherCrossBorder = BLLFactory<BLL.A8ERP_Material>.Instance.IsWhetherCrossBorder(JkfOrderDetailEntityList[K].MaterialId.ToString());
                            if (!WhetherCrossBorder)
                            {
                                statusMessage = "商品属性与店铺及仓库的跨境标识不一致,操作将终止!";
                                DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                break;
                            }
                            ShipmentOrderDetail = new A8ERP_WMS_ShipmentOrderDetailsInfo();
                            ShipmentOrderDetail.OrderNo = JkfOrderDetailEntityList[K].OrderNo.Trim(); //来源单号
                            ShipmentOrderDetail.MaterialId = JkfOrderDetailEntityList[K].MaterialId; //商品Id  
                            ShipmentOrderDetail.MaterialCode = JkfOrderDetailEntityList[K].GoodsCode; //商品编号
                            ShipmentOrderDetail.Quantity = JkfOrderDetailEntityList[K].GoodsCount; //购买数量  
                            ShipmentOrderDetail.UnitPrice = JkfOrderDetailEntityList[K].UnitPrice; //购买单价
                            ShipmentOrderDetail.DealAmount = JkfOrderDetailEntityList[K].DealAmount; //应付金额
                            ShipmentOrderDetail.Payment = JkfOrderDetailEntityList[K].Payment; //子订单实付金额     
                            ShipmentOrderDetail.GoodsUnit = JkfOrderDetailEntityList[K].GoodsUnit; //计价单位
                            ShipmentOrderDetail.Discount_fee = JkfOrderDetailEntityList[K].Discount_fee; //订单优惠金额
                            ShipmentOrderDetail.Sub_Order_Tax_fee = JkfOrderDetailEntityList[K].Sub_Order_Tax_fee; //关税税费
                            ShipmentOrderDetail.Sub_Order_Tax_rate = JkfOrderDetailEntityList[K].Sub_Order_Tax_rate; //关税税率
                            ShipmentOrderDetail.Part_Mjz_Discount = JkfOrderDetailEntityList[K].Part_Mjz_Discount; //优惠分摊
                            ShipmentOrderDetail.Adjust_fee = JkfOrderDetailEntityList[K].Adjust_fee; //手工调整金额
                            ShipmentOrderDetail.OpenBookingTime = JkfOrderDetailEntityList[K].OpenBookingTime; //预售时间
                            string OrderstatusCode = KCYWMSOrderStatus.WMS_WaitingWarehouse.ToString();//等待仓库处理
                            ShipmentOrderDetail.OrderState = OrderstatusCode; //订单状态 等待仓库处理
                            ShipmentOrderDetail.AuditState = ValuesData.TurnToInt(GetKCYWMSOrderStatus.GetOrderStateIndex(OrderstatusCode).ToString());
                            ShipmentOrderDetail.CreateBy = UserInfo.UserName;//用户名称
                            ShipmentOrderDetail.CreateUserId = UserInfo.Id;//用户Id
                            ShipmentOrderDetail.OrgId = UserInfo.SubCompanyId;//机构Id
                            ShipmentOrderDetail.OrgName = UserInfo.SubCompanyName;//机构名称
                            ShipmentOrderDetailsList.Add(ShipmentOrderDetail);

                            #region 包材处理
                            //获得当前物料商品的包装材料
                            string[] Ids = BLLFactory<BLL.A8ERP_Material>.Instance.GetMaterialPackagingIds(JkfOrderDetailEntityList[K].MaterialId.ToString());
                            ShipmentOrderDetailsList = BLLFactory<BLL.A8ERP_Material>.Instance.GetGenerateMaterialList(UserInfo, ShipmentOrderDetailsList, Ids);
                            #endregion

                            #endregion
                        }
                        progress.SetProgressValue(100);
                        if (BLLFactory<A8ERP_WMS_ShipmentOrder>.Instance.Add(UserInfo, ShipmentOrderEntity, ShipmentOrderDetailsList, out statusCode, out statusMessage))
                        {
                            imteCount++;
                            progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage;
                        }
                        else
                        {
                            imteCountErr++;
                            progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageUtil.ShowTips(ex.Message);
                }
                finally
                {
                    progress.SetProgressValue(100);
                    progress.SetStatusInfo.Text = "已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage;
                    progress.Close();
                    DevExpress.XtraEditors.XtraMessageBox.Show("已发送" + imteCount + "条" + "失败" + imteCountErr + "消息:" + statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            return returnValue;
        }
        #endregion

        #region 下拉店铺选择
        /// <summary>
        /// 下拉店铺选择
        /// </summary>
        /// <param name="selectedId"></param>
        private void Cmb_ShopName_SelectedIndexChanged(string selectedId)
        {
            ShopNameId = Cmb_ShopName.SelectedId;
            if (ShopNameId == "-1")
            {
                ShopNameId = string.Empty;
            }
            GetList();
        }
        #endregion

        #region 选项切换事件
        /// <summary>
        /// 选项切换事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e)
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            GetSelectIndexChanged();
        }

        /// <summary>
        /// 选项切换事件
        /// </summary>
        public void GetSelectIndexChanged()
        {
            string tabName = tabControl1.SelectedTabPage.Name;
            string Condition = string.Empty;
            switch (tabName)
            {
                case "TabPageDetail":
                    DataBindDeatil();//明细绑定
                    break;
                case "tabLogo"://日志显示
                    BindBaseLogo();
                    break;
                case "TabPageSignature":
                    SignatureDataBind();//签名信息
                    break;
                case "TabPageCEB312Message"://订单单号
                    Condition = string.Format("OrderNo='{0}'", CurrentOrderNo);//订单单号
                    InventoryReturndt = BLLFactory<A8EXP_CEB312Message_OrderReturn>.Instance.GetDataTable(Condition);
                    Guid_CEB312Message.DataSource = InventoryReturndt;
                    break;
                case "TabPageCEB622Message"://订单单号
                    Condition = string.Format("CopNo='{0}'", CurrentOrderNo);//订单单号
                    InventoryReturndt = BLLFactory<A8EXP_CEB622Message_InventoryReturn>.Instance.GetDataTable(Condition);
                    Guid_CEB622Message.DataSource = InventoryReturndt;
                    break;
                case "TabPageCEB816Message"://税款信息
                    TaxCEB816Message();
                    break;
                default:
                    break;

            }
        }
        #endregion

        #region 操作日志
        /// <summary>
        /// 操作日志
        /// </summary>
        public void BindBaseLogo()
        {
            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            string condition = string.Format("ProcessId='{0}'", CurrentOrderNo);
            OperationRecordsdt = BLLFactory<BLL.A8ERP_WMS_OperationRecords>.Instance.GetDataTable(condition);
            Grid_OperationRecords.DataSource = OperationRecordsdt;
        }
        #endregion

        #region 同步到冷链
        /// <summary>
        /// 同步到冷链
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void devBntLLtx_Click(object sender, EventArgs e)
        {
            RunBtnWarehouse();
        }
        /// <summary>
        /// 取消订单接口
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void devBntCancel_Click(object sender, EventArgs e)
        {
            try
            {
                if (Grid_JkfOrderImportHead.CurrentRow == null)
                    return;
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    ProgressForm progress = new ProgressForm(this);
                    progress.Show();
                    string statusMessage = string.Empty;
                    try
                    {
                        #region 批量发送到冷联取消
                        for (int i = 0; i < GetSelecteIds().Length; i++)
                        {
                            progress.SetProgressValue(1);
                            string FileName = string.Empty;
                            string CurrentOrderNo = string.Empty;
                            string XmlFileName = string.Empty;
                            string OrderXml = string.Empty;
                            string WayBills = string.Empty;
                            string ReturnMsgXml = string.Empty;
                            DataTable GoodsOrderImportHeadXml = new DataTable();
                            string Id = GetSelecteIds()[i];
                            string Condition = string.Format("Id='{0}'", Id);
                            GoodsOrderImportHeadXml = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GetDataTable(Condition);
                            for (int K = 0; K < GoodsOrderImportHeadXml.Rows.Count; K++)
                            {
                                CurrentOrderNo = GoodsOrderImportHeadXml.Rows[K]["OrderNo"].ToString();
                                WayBills = GoodsOrderImportHeadXml.Rows[K]["WayBills"].ToString();
                            }
                            if (string.IsNullOrEmpty(WayBills))
                            {
                                MessageUtil.ShowTips("运单号不能为空");
                                continue;
                            }
                            DataTable SignTableXml = JkfSignTable.Copy();
                            for (int j = 0; j < SignTableXml.Rows.Count; j++)
                            {
                                SignTableXml.Rows[j]["businessNo"] = CurrentOrderNo;
                            }
                            CurrentOrderNo += "Cancel";
                            XmlFileName = WebServiceXMLHelper.CareateXml(CurrentOrderNo);//创建并返回路径
                            OrderXml = OrderUtils.RetuenResponseCancel(GoodsOrderImportHeadXml, XmlFileName);//写入Xml文件                          
                            bool returnValue = false;
                            string appSecret = "12345678";
                            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                            Encoding encoding = Encoding.UTF8;
                            //这里是对方没有进行校验
                            string Md5Sign = BitConverter.ToString(md5.ComputeHash(encoding.GetBytes(appSecret + OrderXml + appSecret)));//Md5加密签名
                            String sign = Convert.ToBase64String(encoding.GetBytes(Md5Sign)).ToUpper();//.Replace("-", "");  //加密签名
                            sign = Convert.ToBase64String(encoding.GetBytes(sign));
                            string PostData = OrderUtils.GerPutSKUDataXml(OrderXml, sign, "cancelSOData", "SOC");//发送冷联参数
                            ReturnMsgXml = HttpUtility.UrlDecode(OrderUtils.SendXml(PostData, out statusMessage, out returnValue));
                            //进行取消处理
                            returnValue = OrderUtils.ReturnResponseCencelSSuccess(CurrentOrderNo, ReturnMsgXml, returnValue, out statusMessage);
                            if (returnValue)
                            {
                                //更新订单状态
                                string[] ids = new string[] { GetSelecteIds()[i] };
                                int returnCount = BLLFactory<A8ERP_Customs_JkfOrderImportHead>.Instance.SetDeleted(UserInfo, ids);

                            }
                            progress.SetStatusInfo.Text = statusMessage;
                            progress.SetProgressValue(100);
                        }
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        MessageUtil.ShowTips(ex.Message);
                    }
                    finally
                    {
                        progress.SetProgressValue(100);
                        progress.SetStatusInfo.Text = statusMessage;
                        progress.Close();
                        this.FormOnLoad();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowTips(ex.Message);
            }
        }

        #endregion

        #region 菜鸟申报服务
        /// <summary>
        /// 菜鸟申报服务
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>        
        private void GenerateCainiaoDeclare()
        {
            try
            {
                if (Grid_JkfOrderImportHead.CurrentRow == null)
                    return;
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    string statusCode = string.Empty;
                    string statusMessage = string.Empty;
                    int itemCount = 0;
                    int itemErrcount = 0;
                    ProgressForm progress = new ProgressForm(this);
                    try
                    {
                        #region 菜鸟申报服务
                        progress.Show();
                        for (int i = 0; i < GetSelecteIds().Length; i++)
                        {
                            string CurrentOrderNo = string.Empty;
                            string WayBills = string.Empty;
                            string LogisticsCarrierNumber = string.Empty;
                            string LogisticsCarriersName = string.Empty;
                            string ShopNameId = string.Empty;

                            #region 获得当前行的数据
                            A8ERP_Customs_JkfOrderImportHeadInfo MainEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                            string Id = GetSelecteIds()[i];
                            string Condition = string.Format("Id='{0}'", Id);
                            MainEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
                            if (MainEntity == null)
                                continue;
                            CurrentOrderNo = MainEntity.OrderNo;
                            WayBills = MainEntity.WayBills;
                            LogisticsCarrierNumber = MainEntity.LogisticsCarrierNumber;//物流承运商编号
                            LogisticsCarriersName = MainEntity.LogisticsCarriersName;//物流承运商名称
                            ShopNameId = MainEntity.ShopNameId;
                            #endregion

                            #region 检查是否有退货记录 1
                            A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(MainEntity.ShopNameId);
                            if (StoreManagementEntity.CheckrefundSingle == 1)
                            {
                                long Tid = long.Parse(MainEntity.PlatformNumber);
                                TaobaoConfig.SetTaobaoConfig(MainEntity.ShopNameId);//获得店铺的联连信息
                                if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                                {
                                    BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
                                    A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                    entity.OrderNoId = Id;
                                    entity.OrderNo = CurrentOrderNo;
                                    entity.StatusCode = statusCode;
                                    entity.StateDescription = statusMessage;
                                    string statusCodes = string.Empty;
                                    string statusMessages = string.Empty;
                                    BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                    MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
                                    continue;
                                }
                            }
                            #endregion

                            #region 指定当前店铺的Id 2
                            if (!StoreManagementEntity.SpecialInterface.ToString().Equals("1"))
                            {
                                MessageUtil.ShowTips("此店铺设置不能走菜鸟申报流程");
                                continue;
                            }
                            #endregion

                            #region 获得当前店铺的申报参数
                            A8ERP_Customs_OrderDeclareParameterInfo GetOrderDeclareParameterEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.GetObjEntity(ShopNameId);
                            if (GetOrderDeclareParameterEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                            }
                            #endregion

                            #region 海关个人申单报参数
                            A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(ShopNameId);
                            if (GetPersonalSingleEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                                continue;
                            }
                            #endregion

                            #region  验证相关信息
                            if (string.IsNullOrEmpty(LogisticsCarrierNumber))
                            {
                                MessageUtil.ShowTips("物流承运商编号不能为空!");
                                break;
                            }
                            if (string.IsNullOrEmpty(WayBills))
                            {
                                continue;
                            }
                            #endregion

                            #region 个人申报明细表
                            List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();//个人申报明细表                           
                            string condition = string.Format("FId='{0}'", Id);
                            JkfOrderDetailList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(condition);
                            #endregion

                            #region  开始生成主表赋值
                            A8ERP_Cainiao_ImportCustomsInfo ImportCustomSentity = new A8ERP_Cainiao_ImportCustomsInfo();
                            ImportCustomSentity.ShopName = MainEntity.ShopName;//店铺名称
                            ImportCustomSentity.ShopNameId = MainEntity.ShopNameId;//店铺名称Id
                            ImportCustomSentity.OrderState = MainEntity.OrderState;//订单状态                        
                            ImportCustomSentity.AuditState = MainEntity.AuditState;//审核状态
                            ImportCustomSentity.Action_type = "NEW";//操作类型
                            ImportCustomSentity.Customs_Code = GetPersonalSingleEntity.CustomsCode;//关区代码
                            ImportCustomSentity.Suid = Guid.NewGuid().ToString();//企业系统生成36位唯一序号
                            ImportCustomSentity.Source_Order_Code = MainEntity.PlatformNumber;//交易订单号
                                                                                              //ImportCustomSentity.Source_Order_Code = MainEntity.OrderNo;//交易订单号
                            ImportCustomSentity.CreateBy = UserInfo.UserName;//创建用户
                            ImportCustomSentity.OrgId = UserInfo.SubCompanyId;//当前机构
                            ImportCustomSentity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 商品信息
                            //商品信息
                            decimal GrossWeight = 0.00m;
                            decimal NetWeight = 0.00m;
                            List<A8ERP_Cainiao_CainiaoitemsInfo> CainiaoitemsLits = new List<A8ERP_Cainiao_CainiaoitemsInfo>();
                            for (int K = 0; K < JkfOrderDetailList.Count; K++)
                            {
                                A8ERP_Cainiao_CainiaoitemsInfo entity = new A8ERP_Cainiao_CainiaoitemsInfo();
                                entity.ItemId = JkfOrderDetailList[K].Num_iid;//前端商品ID 商品数字ID
                                entity.GoodsCode = JkfOrderDetailList[K].GoodsCode;//商品编码
                                entity.ItemCode = JkfOrderDetailList[K].GoodsCode;//商品货号
                                GrossWeight += JkfOrderDetailList[K].GrossWeight;
                                NetWeight += JkfOrderDetailList[K].NetWeight;
                                entity.Hscode = JkfOrderDetailList[K].CodeTs;//Hscode
                                entity.Unit = JkfOrderDetailList[K].GoodsUnit;//申报计量单位
                                entity.Gmode = JkfOrderDetailList[K].GoodsModel;//商品规格型号
                                entity.Origin_country = JkfOrderDetailList[K].OriginCountry;//原产国国家编码
                                entity.Appliction_Form_No = GetPersonalSingleEntity.ApplicationFormNo;//申请单编号
                                entity.CreateBy = UserInfo.UserName;//创建用户
                                entity.OrgId = UserInfo.SubCompanyId;//当前机构
                                entity.OrgName = UserInfo.SubCompanyName;//机构名称
                                CainiaoitemsLits.Add(entity);
                            }
                            #endregion

                            #region 菜鸟对接申报清单信
                            A8ERP_Cainiao_DeclareInfoInfo DeclareEntity = new A8ERP_Cainiao_DeclareInfoInfo();
                            DeclareEntity.Ems_No = GetPersonalSingleEntity.AccountBookNo;//帐册编号,保税必填
                            DeclareEntity.Area_Name = GetPersonalSingleEntity.InternalAreaCompanyName;//区内企业名称,保税必填
                            DeclareEntity.Area_Code = GetPersonalSingleEntity.InternalAreaCompanyNo;//区内企业代码,保税必填
                            DeclareEntity.Delivery_Type = GetPersonalSingleEntity.ImportType.ToString();//物流模式,3:保税进口 1:直购进口
                            DeclareEntity.In_Port_Number = GetPersonalSingleEntity.IePort;//进出口岸代码,直购进口必填
                            DeclareEntity.CreateBy = UserInfo.UserName;//创建用户
                            DeclareEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                            DeclareEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 菜鸟对接物流信息
                            #region 读取当前平台的参数
                            A8ERP_Customs_LogisticsWaybillInfo GetLogisticsWaybillEntity = BLLFactory<BLL.A8ERP_Customs_LogisticsWaybill>.Instance.GetObjEntity(ShopNameId);
                            if (GetLogisticsWaybillEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                                continue;
                            }
                            #endregion

                            A8ERP_Cainiao_LogisticsInfoInfo LogisticsInfoEntity = new A8ERP_Cainiao_LogisticsInfoInfo();
                            LogisticsInfoEntity.Logistics_Code = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
                            LogisticsInfoEntity.Logistics_Name = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
                            LogisticsInfoEntity.Express_Code = MainEntity.WayBills;//运单号
                            LogisticsInfoEntity.Weight = GrossWeight;//包裹毛重                           
                            LogisticsInfoEntity.Net_Weight = NetWeight;//包裹净重
                            LogisticsInfoEntity.Arrived_Port = GetPersonalSingleEntity.DestinationPort;//指运港,直购进口必填
                            LogisticsInfoEntity.Transport_Name = GetPersonalSingleEntity.TrafName;//运输工具名称
                            LogisticsInfoEntity.Transport_Number = GetPersonalSingleEntity.VoyageNo;//运输工具航班号
                            LogisticsInfoEntity.Transport_Code = GetPersonalSingleEntity.TrafMode;//运输方式代码
                            LogisticsInfoEntity.Bill_no = GetPersonalSingleEntity.BillNo;//提运单号
                            LogisticsInfoEntity.Country = MainEntity.TradeCountry;// MainEntity.SenderCountry;//起运国
                            LogisticsInfoEntity.Sender_Name = MainEntity.UserName;//发件人
                            LogisticsInfoEntity.Sender_Country = MainEntity.TradeCountry;//贸易国别
                            LogisticsInfoEntity.CreateBy = UserInfo.UserName;//创建用户
                            LogisticsInfoEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                            LogisticsInfoEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 进行申报订单生成操作
                            if (BLLFactory<BLL.A8ERP_Cainiao_ImportCustoms>.Instance.Add(UserInfo, ImportCustomSentity, CainiaoitemsLits, DeclareEntity, LogisticsInfoEntity, out statusCode, out statusMessage))
                            {
                                itemCount++;
                                progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                            }
                            else
                            {
                                itemErrcount++;
                                progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                                MessageUtil.ShowTips(statusMessage);
                            }
                            #endregion

                            progress.SetProgressValue(99);
                            progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);


                        }
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        MessageUtil.ShowTips(ex.Message);
                    }
                    finally
                    {
                        progress.SetProgressValue(100);
                        progress.SetStatusInfo.Text = string.Format("菜鸟申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                        progress.Close();
                        this.FormOnLoad();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowTips(ex.Message);
            }
        }
        #endregion

        #region  跨境选择
        /// <summary>
        /// 跨境选择
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void checkIsWhether_CheckedChanged(object sender, EventArgs e)
        {
            IsWhether = checkIsWhether.Checked == true ? "1" : "0";
            GetList();
        }
        #endregion

        #region 配送商
        /// <summary>
        /// 配送商
        /// </summary>
        /// <param name="selectedId"></param>
        private void Cmb_BaseTransportUnit_SelectedIndexChanged(string selectedId)
        {
            if (Cmb_BaseTransportUnit.SelectedId == "-1")
            {
                TransportUnitCode = string.Empty;
            }
            else
            {
                TransportUnitCode = Cmb_BaseTransportUnit.SelectedId.ToString();
            }
            GetList();
        }
        #endregion

        #region 生成统一生报订单
        /// <summary>
        /// 生成统一生报订单
        /// </summary>
        public void GenerateCEB311MessageOrder()
        {

            if (Grid_JkfOrderImportHead.CurrentRow == null)
                return;
            if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
            {
                string statusCode = string.Empty;
                string statusMessage = string.Empty;
                int itemCount = 0;
                int itemErrcount = 0;
                ProgressForm progress = new ProgressForm(this);
                try
                {
                    progress.Show();
                    #region 统一申报订单服务
                    for (int i = 0; i < GetSelecteIds().Length; i++)
                    {
                        progress.SetProgressValue(1);
                        string CurrentOrderNo = string.Empty;
                        string ShopNameId = string.Empty;
                        string WayBills = string.Empty;
                        string LogisticsCarrierNumber = string.Empty;
                        string LogisticsCarriersName = string.Empty;

                        #region 获得当前行的数据
                        A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                        string Id = GetSelecteIds()[i];
                        string Condition = string.Format("Id='{0}'", Id);
                        JkfOrderImportHeadEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
                        if (JkfOrderImportHeadEntity == null)
                            continue;
                        CurrentOrderNo = JkfOrderImportHeadEntity.OrderNo;//订单号
                        WayBills = JkfOrderImportHeadEntity.WayBills;//运单号
                        LogisticsCarrierNumber = JkfOrderImportHeadEntity.LogisticsCarrierNumber;//物流承运商编号
                        LogisticsCarriersName = JkfOrderImportHeadEntity.LogisticsCarriersName;//物流承运商名称
                        ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        #endregion

                        #region 检查是否有退货记录 1
                        A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(JkfOrderImportHeadEntity.ShopNameId);
                        if (StoreManagementEntity.CheckrefundSingle == 1)
                        {
                            long Tid = long.Parse(JkfOrderImportHeadEntity.PlatformNumber);
                            TaobaoConfig.SetTaobaoConfig(JkfOrderImportHeadEntity.ShopNameId);//获得店铺的联连信息
                            if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                            {
                                BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
                                A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                entity.OrderNoId = Id;
                                entity.OrderNo = CurrentOrderNo;
                                entity.StatusCode = statusCode;
                                entity.StateDescription = statusMessage;
                                string statusCodes = string.Empty;
                                string statusMessages = string.Empty;
                                BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
                                continue;
                            }
                        }
                        #endregion

                        #region 获得当前店铺的申报参数
                        A8ERP_Customs_OrderDeclareParameterInfo GetOrderDeclareParameterEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.GetObjEntity(ShopNameId);
                        if (GetOrderDeclareParameterEntity == null)
                        {
                            MessageUtil.ShowTips("非法的平台Id,导入将终止");
                        }
                        #endregion

                        #region 海关个人申单报参数
                        A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(ShopNameId);
                        if (GetPersonalSingleEntity == null)
                        {
                            MessageUtil.ShowTips("非法的平台Id,导入将终止");
                            continue;
                        }
                        #endregion

                        #region  验证相关信息
                        if (string.IsNullOrEmpty(LogisticsCarrierNumber))
                        {
                            MessageUtil.ShowTips("物流承运商编号不能为空!");
                            break;
                        }
                        if (string.IsNullOrEmpty(WayBills))
                        {
                            MessageUtil.ShowTips("运单号不能为空!");
                            continue;
                        }
                        #endregion

                        #region 订单申报明细表
                        List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();//订单申报明细表                           
                        string condition = string.Format("FId='{0}'", Id);
                        JkfOrderDetailList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(condition);
                        #endregion

                        #region  开始生成统一申报单表头赋值
                        A8EXP_CEB311Message_OrderHeadInfo OrderHeadentity = new A8EXP_CEB311Message_OrderHeadInfo();
                        OrderHeadentity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                        OrderHeadentity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        OrderHeadentity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                        OrderHeadentity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                        OrderHeadentity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
                        OrderHeadentity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                        OrderHeadentity.OrderType = "I";//电子订单类型:I进口
                        OrderHeadentity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                        OrderHeadentity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码               
                        OrderHeadentity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
                        OrderHeadentity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码                        
                        OrderHeadentity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
                        OrderHeadentity.GoodsValue = JkfOrderImportHeadEntity.OrderGoodsAmount;//商品价格
                        OrderHeadentity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运杂费
                        OrderHeadentity.Discount = JkfOrderImportHeadEntity.Discount;//非现金抵扣金额                        
                        OrderHeadentity.TaxTotal = JkfOrderImportHeadEntity.OrderTaxAmount;//企业预先代扣的税款金额,无则填写“0”
                        OrderHeadentity.ActuralPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//商品价格+运杂费+代扣税款-非现金抵扣金额,与支付凭证的支付金额一致。
                        OrderHeadentity.Currency = JkfOrderImportHeadEntity.CurrCode;//限定为人民币,填写“142”。                     
                        OrderHeadentity.BuyerRegNo = JkfOrderImportHeadEntity.PurchaserId;//订购人的交易平台注册号。
                        OrderHeadentity.BuyerName = JkfOrderImportHeadEntity.UserName;//订购人的真实姓名
                        OrderHeadentity.BuyerIdType = "1";//JkfOrderImportHeadEntity.PaperType;//1-身份证,2-其它。限定为身份证,填写“1”。     
                        OrderHeadentity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//订购人证件号码
                        OrderHeadentity.PayCode = GetOrderDeclareParameterEntity.PayCompanyCode;//支付企业的海关注册登记编号。
                        OrderHeadentity.PayName = GetOrderDeclareParameterEntity.PayCompanyName;//支付企业在海关注册登记的企业名称。
                        OrderHeadentity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
                        OrderHeadentity.BatchNumbers = "";//商品批次号
                        OrderHeadentity.Consignee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
                        OrderHeadentity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
                        OrderHeadentity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
                        OrderHeadentity.ConsigneeDitrict = JkfOrderImportHeadEntity.ConsigneeDitrict;//收货地址行政区划代码
                        OrderHeadentity.Description = JkfOrderImportHeadEntity.Description;//备注
                        OrderHeadentity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                        OrderHeadentity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
                        OrderHeadentity.CreateBy = UserInfo.UserName;//创建用户
                        OrderHeadentity.OrgId = UserInfo.SubCompanyId;//当前机构
                        OrderHeadentity.OrgName = UserInfo.SubCompanyName;//机构名称
                        #endregion

                        #region 统一申报单订单明细 商品信息
                        List<A8EXP_CEB311Message_OrderListInfo> OrderListEntity = new List<A8EXP_CEB311Message_OrderListInfo>();
                        for (int K = 0; K < JkfOrderDetailList.Count; K++)
                        {
                            A8EXP_CEB311Message_OrderListInfo entity = new A8EXP_CEB311Message_OrderListInfo();
                            entity.OrderNo = JkfOrderDetailList[K].OrderNo;//订单编号
                            entity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
                            entity.MaterialCode = JkfOrderDetailList[K].GoodsCode;//商品编码
                            entity.ItemNo = JkfOrderDetailList[K].GoodsCode;//企业商品货号
                            entity.ItemName = JkfOrderDetailList[K].GoodsName;//企业商品名称
                            entity.ItemDescribe = JkfOrderDetailList[K].GoodsName;//企业商品描述
                            entity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
                            entity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
                            entity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
                            entity.Price = JkfOrderDetailList[K].UnitPrice;//单价
                            entity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
                            entity.Currency = JkfOrderDetailList[K].Currency;//币制
                            entity.Country = JkfOrderDetailList[K].OriginCountry;//原产国
                            entity.CreateBy = UserInfo.UserName;//创建用户
                            entity.OrgId = UserInfo.SubCompanyId;//当前机构
                            entity.OrgName = UserInfo.SubCompanyName;//机构名称
                            OrderListEntity.Add(entity);
                        }
                        #endregion

                        #region 统一申报清单信息
                        A8EXP_CEB621Message_InventoryHeadInfo InventoryHeadEntity = new A8EXP_CEB621Message_InventoryHeadInfo();
                        InventoryHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                        InventoryHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        InventoryHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                        InventoryHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                        InventoryHeadEntity.AppTime = DateTime.Now;//企业报送时间。格式:YYYYMMDDhhmmss。
                        InventoryHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                        InventoryHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                        InventoryHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
                        InventoryHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码               
                        InventoryHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
                        InventoryHeadEntity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码                        
                        InventoryHeadEntity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
                        InventoryHeadEntity.LogisticsCode = GetOrderDeclareParameterEntity.LogisCompanyCode; //物流企业代码                        
                        InventoryHeadEntity.LogisticsName = GetOrderDeclareParameterEntity.LogisCompanyName;//物流企业名称
                        InventoryHeadEntity.CopNo = GetPersonalSingleEntity.AssureCode.ToString(); //担保企业编号

                        string preNumber = string.Empty;
                        preNumber = GetOrderNumber.GetExpressPreEntryNumber();//预录入号码  
                        InventoryHeadEntity.PreNo = preNumber;//预录入编号
                        InventoryHeadEntity.AssureCode = GetPersonalSingleEntity.AccountBookNo;//担保企业编号
                        InventoryHeadEntity.EmsNo = GetPersonalSingleEntity.AccountBookNo.ToString().Trim();// "W29916000040"账册编号
                        InventoryHeadEntity.InvtNo = "";// GetPersonalSingleEntity.ApplicationFormNo.ToString().Trim();//清单编号
                        InventoryHeadEntity.IeFlag = GetPersonalSingleEntity.IeFlag.ToString().Trim();// "I";//进出口标志
                        InventoryHeadEntity.DeclTime = DateTime.Now;//申报日期,以海关计算机系统接受清单申报数据时记录的日期为准。格式:YYYYMMDD。
                        InventoryHeadEntity.CustomsCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// "2991";//申报海关代码
                        InventoryHeadEntity.PortCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// 口岸海关代码
                        InventoryHeadEntity.IeDate = DateTime.Now;//运载所申报商品的运输工具申报进境的日期,进口申报时无法确知相应的运输工具的实际进境日期时,免填。格式:YYYYMMDD
                        InventoryHeadEntity.BuyerIdType = "1";// JkfOrderImportHeadEntity.PaperType;// 订购人证件类型
                        InventoryHeadEntity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;// 订购人证件号码
                        InventoryHeadEntity.BuyerName = JkfOrderImportHeadEntity.Consignee;// 订购人姓名
                        InventoryHeadEntity.BuyerTelephone = JkfOrderImportHeadEntity.ConsigneePhone;// 订购人电话
                        InventoryHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;// 收件地址

                        InventoryHeadEntity.AgentCode = GetPersonalSingleEntity.DeclareCompanyCode.ToString().Trim();// 申报企业代码 申报单位的海关注册登记编号。
                        InventoryHeadEntity.AgentName = GetPersonalSingleEntity.DeclareCompanyName.ToString().Trim();// 申报单位在海关注册登记的名称。
                        InventoryHeadEntity.AreaCode = GetPersonalSingleEntity.InternalAreaCompanyNo.ToString().Trim();// 区内企业代码 保税模式必填,区内仓储企业的海关注册登记编号
                        InventoryHeadEntity.AreaName = GetPersonalSingleEntity.InternalAreaCompanyName.ToString().Trim();// 区内企业名称 保税模式必填,区内仓储企业在海关注册登记的名称。
                        InventoryHeadEntity.TradeMode = "1210";// GetPersonalSingleEntity.TradeMode.ToString();// 贸易方式 直购进口填写“9610”,保税进口填写“1210”
                        InventoryHeadEntity.TrafMode = GetPersonalSingleEntity.TrafMode.ToString();// 运输方式 填写海关标准的参数代码,参照《JGS-20 海关业务代码集》- 运输方式代码。直购进口指跨境段物流运输方式,保税进口指二线出区物流

                        InventoryHeadEntity.TrafNo = GetPersonalSingleEntity.TrafNo.ToString();// 运输工具编号 直购进口必填。货物进出境的运输工具的名称或运输工具编号。填报内容应与运输部门向海关申报的载货清单所列相应内容一致;同报关单填制规范。保税进口免填
                        InventoryHeadEntity.VoyageNo = GetPersonalSingleEntity.VoyageNo.ToString();// 航班航次号 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填

                        InventoryHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;// 提运单号 直购进口必填。货物提单或运单的编号,保税进口免填
                        InventoryHeadEntity.LoctNo = GetPersonalSingleEntity.CustomsField;// 监管场所代码 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填。
                        InventoryHeadEntity.LicenseNo = "";// JkfOrderImportHeadEntity.LicenseNo;// 许可证件号
                        InventoryHeadEntity.Country = JkfOrderImportHeadEntity.TradeCountry;// 起运国(地区)

                        InventoryHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;// 运费
                        InventoryHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;// 保费 物流企业实际收取的商品保价费用。
                        InventoryHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;// 币制 限定为人民币,填写“142”。
                        InventoryHeadEntity.WrapType = "2";//GetPersonalSingleEntity.WrapType;// 包装种类代码  海关对进出口货物实际采用的外部包装方式的标识代码,采用1 位数字表示,如:木箱、纸箱、桶装、散装、托盘、包、油罐车等
                        InventoryHeadEntity.PackNo = 1;// 件数 件数为包裹数量,限定为“1”。
                        InventoryHeadEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight;//毛重(公斤)  货物及其包装材料的重量之和,计量单位为千克。
                        InventoryHeadEntity.NetWeight = JkfOrderImportHeadEntity.TotalWeight;//净重(公斤)货物的毛重减去外包装材料后的重量,即货物本身的实际重量,计量单位为千克
                        InventoryHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注

                        InventoryHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                        InventoryHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                        InventoryHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态

                        InventoryHeadEntity.CreateBy = UserInfo.UserName;//创建用户
                        InventoryHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                        InventoryHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                        #endregion

                        #region 统一申报清单 商品明细信息
                        List<A8EXP_CEB621Message_InventoryListInfo> InventoryListEntity = new List<A8EXP_CEB621Message_InventoryListInfo>();
                        for (int K = 0; K < JkfOrderDetailList.Count; K++)
                        {
                            #region 获得商品资料
                            A8ERP_MaterialInfo MaterialEntity = new A8ERP_MaterialInfo();
                            string ConditionSql = string.Format("MaterialCode='{0}'", JkfOrderDetailList[K].GoodsCode);
                            MaterialEntity = BLLFactory<BLL.A8ERP_Material>.Instance.FindSingle(ConditionSql);
                            if (MaterialEntity == null)
                                continue;
                            #endregion
                            A8EXP_CEB621Message_InventoryListInfo InventoryListentity = new A8EXP_CEB621Message_InventoryListInfo();
                            InventoryListentity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
                            InventoryListentity.ItemRecordNo = MaterialEntity.ItemRecordNo;//账册备案料号                                
                            InventoryListentity.ItemNo = MaterialEntity.GoodsItemNo;//企业商品货号
                            InventoryListentity.ItemName = MaterialEntity.ItemName;//企业商品品名
                            InventoryListentity.GoodsCode = JkfOrderDetailList[K].GoodsCode;//商品编码
                            InventoryListentity.Gcode = JkfOrderDetailList[K].CodeTs;//海关10位商品编码
                            InventoryListentity.Gname = JkfOrderDetailList[K].GoodsName;//商品名称
                            InventoryListentity.Gmodel = JkfOrderDetailList[K].GoodsModel;//商品规格型号
                            InventoryListentity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
                            InventoryListentity.Country = MaterialEntity.TradeCountry;//原产国
                            InventoryListentity.Currency = JkfOrderDetailList[K].Currency;//币制
                            InventoryListentity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
                            InventoryListentity.Qty1 = MaterialEntity.FirstCount;//法定数量
                            InventoryListentity.Qty2 = MaterialEntity.SecondCount;//第二数量
                            InventoryListentity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
                            InventoryListentity.Unit1 = MaterialEntity.FirstUnit;//法定计量单位
                            InventoryListentity.Unit2 = MaterialEntity.SecondUnit;//第二计量单位
                            InventoryListentity.Price = JkfOrderDetailList[K].UnitPrice;//单价
                            InventoryListentity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
                            InventoryListentity.CreateBy = UserInfo.UserName;//创建用户
                            InventoryListentity.OrgId = UserInfo.SubCompanyId;//当前机构
                            InventoryListentity.OrgName = UserInfo.SubCompanyName;//机构名称
                            InventoryListEntity.Add(InventoryListentity);
                        }
                        #endregion

                        #region 统一申报运单信息
                        #region 读取当前平台的运单参数
                        A8ERP_Customs_LogisticsWaybillInfo GetLogisticsWaybillEntity = BLLFactory<BLL.A8ERP_Customs_LogisticsWaybill>.Instance.GetObjEntity(ShopNameId);
                        if (GetLogisticsWaybillEntity == null)
                        {
                            MessageUtil.ShowTips("非法的平台Id,导入将终止");
                            continue;
                        }
                        #endregion

                        #region  统一申报物流运单数据
                        A8EXP_CEB511Message_LogisticsHeadInfo LogisticsHeadEntity = new A8EXP_CEB511Message_LogisticsHeadInfo();
                        LogisticsHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                        LogisticsHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        LogisticsHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                        LogisticsHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                        LogisticsHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
                        LogisticsHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                        LogisticsHeadEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
                        LogisticsHeadEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
                        LogisticsHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                        LogisticsHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
                        LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
                        LogisticsHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运费
                        LogisticsHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;//保价费
                        LogisticsHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//币制
                        LogisticsHeadEntity.Weight = JkfOrderImportHeadEntity.GrossWeight;//毛重
                        LogisticsHeadEntity.PackNo = JkfOrderImportHeadEntity.TotalCount;//件数
                        LogisticsHeadEntity.GoodsInfo = JkfOrderImportHeadEntity.MainGName;//主要货物信息
                        LogisticsHeadEntity.Consingee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
                        LogisticsHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
                        LogisticsHeadEntity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
                        LogisticsHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                        LogisticsHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                        LogisticsHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
                        LogisticsHeadEntity.CreateBy = UserInfo.UserName;//创建用户
                        LogisticsHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                        LogisticsHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                        #endregion

                        #endregion

                        #region  统一申报物流运单状态数据
                        A8EXP_CEB513Message_LogisticsStatusInfo LogisticsStatusEntity = new A8EXP_CEB513Message_LogisticsStatusInfo();
                        LogisticsStatusEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                        LogisticsStatusEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        LogisticsStatusEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                        LogisticsStatusEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                        LogisticsStatusEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
                        LogisticsStatusEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                        LogisticsStatusEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
                        LogisticsStatusEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
                        LogisticsStatusEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                        LogisticsStatusEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
                        LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
                        LogisticsStatusEntity.LogisticsStatus = "";//物流运单状态
                        LogisticsStatusEntity.LogisticsTime = DateTime.Now;//物流状态时间
                        LogisticsStatusEntity.Note = JkfOrderImportHeadEntity.Note;//备注
                        LogisticsStatusEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                        LogisticsStatusEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                        LogisticsStatusEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
                        LogisticsStatusEntity.CreateBy = UserInfo.UserName;//创建用户
                        LogisticsStatusEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                        LogisticsStatusEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                        #endregion

                        #region 统一申报支付凭证数据
                        A8EXP_CEB411Message_PaymentHeadInfo PaymentHeadEntity = new A8EXP_CEB411Message_PaymentHeadInfo();
                        PaymentHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                        PaymentHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                        PaymentHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                        PaymentHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                        PaymentHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
                        PaymentHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                        PaymentHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                        PaymentHeadEntity.PayCode = GetLogisticsWaybillEntity.LogisCompanyCode;//支付企业代码
                        PaymentHeadEntity.PayName = GetLogisticsWaybillEntity.LogisCompanyName;//支付企业名称
                        PaymentHeadEntity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
                        PaymentHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码               
                        PaymentHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
                        PaymentHeadEntity.PayerIdType = "1";// JkfOrderImportHeadEntity.PaperType;//支付人证件类型
                        PaymentHeadEntity.PayerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//支付人证件号码
                        PaymentHeadEntity.PayerName = JkfOrderImportHeadEntity.Consignee;//支付人姓名
                        PaymentHeadEntity.Telephone = JkfOrderImportHeadEntity.ConsigneePhone;//支付人电话
                        PaymentHeadEntity.AmountPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//支付金额
                        PaymentHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//支付币制
                        PaymentHeadEntity.PayTime = JkfOrderImportHeadEntity.OrderDateTime;//支付时间
                        PaymentHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注
                        PaymentHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                        PaymentHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                        PaymentHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态
                        PaymentHeadEntity.CreateBy = UserInfo.UserName;//创建用户
                        PaymentHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                        PaymentHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称

                        #endregion

                        #region 进行申报订单生成操作
                        progress.SetProgressValue(99);
                        if (BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GenerateDeployment(UserInfo, OrderHeadentity, OrderListEntity, InventoryHeadEntity, InventoryListEntity, LogisticsHeadEntity, LogisticsStatusEntity, PaymentHeadEntity, out statusCode, out statusMessage))
                        {
                            itemCount++;
                            progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                        }
                        else
                        {
                            itemErrcount++;
                            progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                            DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        #endregion

                        progress.SetProgressValue(99);
                        progress.SetStatusInfo.Text = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);

                    }
                    #endregion

                }
                catch (Exception ex)
                {
                    MessageUtil.ShowTips(ex.Message);
                }
                finally
                {
                    progress.SetProgressValue(100);
                    progress.SetStatusInfo.Text = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                    progress.Close();
                    statusMessage = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                    DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    this.FormOnLoad();
                }
            }
        }
        #endregion

        #region 双击查看回执明细结果
        #region public string _currentJkfOrderResultOrderNo 当前选种的业务单号
        string _currentJkfOrderResultOrderNo = string.Empty;
        /// <summary>
        /// 当前选种的业务单号
        /// </summary>
        public string CurrentJkfOrderResultOrderNo
        {
            get
            {
                return _currentJkfOrderResultOrderNo = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_JkfOrderResult, A8ERP_Customs_JkfOrderResultInfo.FieldBusinessNo);
            }

        }
        #endregion

        /// <summary>
        /// 双击查看回执明细结果
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Grid_JkfOrderResult_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (Grid_JkfOrderResult.CurrentRow == null)
                return;
            Form frm = null;
            RF = new ReflectionFunction();
            FP.CurrentCode = CurrentJkfOrderResultOrderNo.ToString();
            frm = RF.LoadDialogForm("A8EXP.EXPRessWayBillImportDto.dll", "A8EXP.EXPRessWayBillImportDto.Form_ReturnReceiptListManage", FP);
            if (frm.DialogResult == DialogResult.OK)
            {
                this.FormOnLoad();
            }

        }
        #endregion

        #region 生成支付信息申报
        /// <summary>
        /// 生成支付信息申报
        /// </summary>
        public void GetGeneratealipay()
        {
            try
            {
                if (Grid_JkfOrderImportHead.CurrentRow == null)
                    return;
                if (BaseInterfaceLogic.CheckInputSelectAnyTwo(Grid_JkfOrderImportHead, "colSelected"))
                {
                    string statusCode = string.Empty;
                    string statusMessage = string.Empty;
                    int itemCount = 0;
                    int itemErrcount = 0;
                    ProgressForm progress = new ProgressForm(this);
                    try
                    {
                        #region 统一申报订单服务
                        progress.Show();
                        for (int i = 0; i < GetSelecteIds().Length; i++)
                        {
                            progress.SetProgressValue(1);
                            string CurrentOrderNo = string.Empty;
                            string ShopNameId = string.Empty;
                            string WayBills = string.Empty;
                            string LogisticsCarrierNumber = string.Empty;
                            string LogisticsCarriersName = string.Empty;

                            #region 获得当前行的数据
                            A8ERP_Customs_JkfOrderImportHeadInfo JkfOrderImportHeadEntity = new A8ERP_Customs_JkfOrderImportHeadInfo();
                            string Id = GetSelecteIds()[i];
                            string Condition = string.Format("Id='{0}'", Id);
                            JkfOrderImportHeadEntity = BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.FindSingle(Condition);
                            if (JkfOrderImportHeadEntity == null)
                                continue;
                            CurrentOrderNo = JkfOrderImportHeadEntity.OrderNo;//订单号
                            WayBills = JkfOrderImportHeadEntity.WayBills;//运单号
                            LogisticsCarrierNumber = JkfOrderImportHeadEntity.LogisticsCarrierNumber;//物流承运商编号
                            LogisticsCarriersName = JkfOrderImportHeadEntity.LogisticsCarriersName;//物流承运商名称
                            ShopNameId = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                            #endregion

                            #region 检查是否有退货记录 1
                            A8ERP_BaseWMS_StoreManagementInfo StoreManagementEntity = TaobaoConfig.GetStoreManagementObj(JkfOrderImportHeadEntity.ShopNameId);
                            if (StoreManagementEntity.CheckrefundSingle == 1)
                            {
                                long Tid = long.Parse(JkfOrderImportHeadEntity.PlatformNumber);
                                TaobaoConfig.SetTaobaoConfig(JkfOrderImportHeadEntity.ShopNameId);//获得店铺的联连信息
                                if (TaobaoConfig.GetIsreturnRefund_status(Tid, out statusCode, out statusMessage))
                                {
                                    BLLTools.WriteRefund_Status(Id, CurrentOrderNo, statusCode, statusMessage);//记录退单记录
                                    A8ERP_Customs_OrderAbnormalStateInfo entity = new A8ERP_Customs_OrderAbnormalStateInfo();
                                    entity.OrderNoId = Id;
                                    entity.OrderNo = CurrentOrderNo;
                                    entity.StatusCode = statusCode;
                                    entity.StateDescription = statusMessage;
                                    string statusCodes = string.Empty;
                                    string statusMessages = string.Empty;
                                    BLLFactory<BLL.A8ERP_Customs_OrderAbnormalState>.Instance.Add(entity, out statusCodes, out statusMessages);
                                    MessageUtil.ShowTips("呵呵! 发现客户有退单记录,已做记录");
                                    continue;
                                }
                            }
                            #endregion

                            #region 获得当前店铺的申报参数
                            A8ERP_Customs_OrderDeclareParameterInfo GetOrderDeclareParameterEntity = BLLFactory<BLL.A8ERP_Customs_OrderDeclareParameter>.Instance.GetObjEntity(ShopNameId);
                            if (GetOrderDeclareParameterEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                            }
                            #endregion

                            #region 海关个人申单报参数
                            A8ERP_Customs_PersonalSingleInfo GetPersonalSingleEntity = BLLFactory<BLL.A8ERP_Customs_PersonalSingle>.Instance.GetObjEntity(ShopNameId);
                            if (GetPersonalSingleEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                                continue;
                            }
                            #endregion

                            #region  验证相关信息
                            if (string.IsNullOrEmpty(LogisticsCarrierNumber))
                            {
                                MessageUtil.ShowTips("物流承运商编号不能为空!");
                                break;
                            }
                            if (string.IsNullOrEmpty(WayBills))
                            {
                                MessageUtil.ShowTips("运单号不能为空!");
                                continue;
                            }
                            #endregion

                            #region 订单申报明细表
                            List<A8ERP_Customs_JkfOrderDetailInfo> JkfOrderDetailList = new List<A8ERP_Customs_JkfOrderDetailInfo>();//订单申报明细表                           
                            string condition = string.Format("FId='{0}'", Id);
                            JkfOrderDetailList = BLLFactory<BLL.A8ERP_Customs_JkfOrderDetail>.Instance.Find(condition);
                            #endregion

                            #region  开始生成统一申报单表头赋值
                            A8EXP_CEB311Message_OrderHeadInfo OrderHeadentity = new A8EXP_CEB311Message_OrderHeadInfo();
                            OrderHeadentity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            OrderHeadentity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码

                            OrderHeadentity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                            OrderHeadentity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                            OrderHeadentity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
                            OrderHeadentity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                            OrderHeadentity.OrderType = "I";//电子订单类型:I进口
                            OrderHeadentity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                            OrderHeadentity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码               
                            OrderHeadentity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称

                            OrderHeadentity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码                        
                            OrderHeadentity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
                            OrderHeadentity.GoodsValue = JkfOrderImportHeadEntity.OrderGoodsAmount;//商品价格     

                            OrderHeadentity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运杂费
                            OrderHeadentity.Discount = JkfOrderImportHeadEntity.Discount;//非现金抵扣金额                        
                            OrderHeadentity.TaxTotal = JkfOrderImportHeadEntity.OrderTaxAmount;//企业预先代扣的税款金额,无则填写“0”
                            OrderHeadentity.ActuralPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//商品价格+运杂费+代扣税款-非现金抵扣金额,与支付凭证的支付金额一致。
                            OrderHeadentity.Currency = JkfOrderImportHeadEntity.CurrCode;//限定为人民币,填写“142”。                     
                            OrderHeadentity.BuyerRegNo = JkfOrderImportHeadEntity.PurchaserId;//订购人的交易平台注册号。
                            OrderHeadentity.BuyerName = JkfOrderImportHeadEntity.UserName;//订购人的真实姓名
                            OrderHeadentity.BuyerIdType = "1";//JkfOrderImportHeadEntity.PaperType;//1-身份证,2-其它。限定为身份证,填写“1”。     
                            OrderHeadentity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//订购人证件号码  

                            OrderHeadentity.PayCode = GetOrderDeclareParameterEntity.PayCompanyCode;//支付企业的海关注册登记编号。
                            OrderHeadentity.PayName = GetOrderDeclareParameterEntity.PayCompanyName;//支付企业在海关注册登记的企业名称。
                            OrderHeadentity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
                            OrderHeadentity.BatchNumbers = "";//商品批次号

                            OrderHeadentity.Consignee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
                            OrderHeadentity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
                            OrderHeadentity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
                            OrderHeadentity.ConsigneeDitrict = JkfOrderImportHeadEntity.ConsigneeDitrict;//收货地址行政区划代码
                            OrderHeadentity.Description = JkfOrderImportHeadEntity.Description;//备注

                            OrderHeadentity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                            OrderHeadentity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态


                            OrderHeadentity.CreateBy = UserInfo.UserName;//创建用户
                            OrderHeadentity.OrgId = UserInfo.SubCompanyId;//当前机构
                            OrderHeadentity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 统一申报单订单明细 商品信息
                            List<A8EXP_CEB311Message_OrderListInfo> OrderListEntity = new List<A8EXP_CEB311Message_OrderListInfo>();
                            for (int K = 0; K < JkfOrderDetailList.Count; K++)
                            {
                                A8EXP_CEB311Message_OrderListInfo entity = new A8EXP_CEB311Message_OrderListInfo();
                                entity.OrderNo = JkfOrderDetailList[K].OrderNo;//订单编号
                                entity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
                                entity.MaterialCode = JkfOrderDetailList[K].GoodsCode;//商品编码
                                entity.ItemNo = JkfOrderDetailList[K].GoodsCode;//企业商品货号
                                entity.ItemName = JkfOrderDetailList[K].GoodsName;//企业商品名称
                                entity.ItemDescribe = JkfOrderDetailList[K].GoodsName;//企业商品描述
                                entity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
                                entity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
                                entity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
                                entity.Price = JkfOrderDetailList[K].UnitPrice;//单价
                                entity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
                                entity.Currency = JkfOrderDetailList[K].Currency;//币制
                                entity.Country = JkfOrderDetailList[K].OriginCountry;//原产国
                                entity.CreateBy = UserInfo.UserName;//创建用户
                                entity.OrgId = UserInfo.SubCompanyId;//当前机构
                                entity.OrgName = UserInfo.SubCompanyName;//机构名称
                                OrderListEntity.Add(entity);

                            }
                            #endregion

                            #region 统一申报清单信息
                            A8EXP_CEB621Message_InventoryHeadInfo InventoryHeadEntity = new A8EXP_CEB621Message_InventoryHeadInfo();
                            InventoryHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            InventoryHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                            InventoryHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                            InventoryHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                            InventoryHeadEntity.AppTime = DateTime.Now;//企业报送时间。格式:YYYYMMDDhhmmss。
                            InventoryHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                            InventoryHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                            InventoryHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
                            InventoryHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码               
                            InventoryHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
                            InventoryHeadEntity.EbcCode = GetOrderDeclareParameterEntity.ECommerceCode; //电商企业代码                        
                            InventoryHeadEntity.EbcName = GetOrderDeclareParameterEntity.ECommerceName;//电商企业名称
                            InventoryHeadEntity.LogisticsCode = GetOrderDeclareParameterEntity.LogisCompanyCode; //物流企业代码                        
                            InventoryHeadEntity.LogisticsName = GetOrderDeclareParameterEntity.LogisCompanyName;//物流企业名称
                            InventoryHeadEntity.CopNo = GetPersonalSingleEntity.AssureCode.ToString(); //担保企业编号

                            string preNumber = string.Empty;
                            preNumber = GetOrderNumber.GetExpressPreEntryNumber();//预录入号码  
                            InventoryHeadEntity.PreNo = preNumber;//预录入编号
                            InventoryHeadEntity.AssureCode = GetPersonalSingleEntity.AccountBookNo;//担保企业编号
                            InventoryHeadEntity.EmsNo = GetPersonalSingleEntity.AccountBookNo.ToString().Trim();// "W29916000040"账册编号
                            InventoryHeadEntity.InvtNo = "";// GetPersonalSingleEntity.ApplicationFormNo.ToString().Trim();//清单编号
                            InventoryHeadEntity.IeFlag = GetPersonalSingleEntity.IeFlag.ToString().Trim();// "I";//进出口标志
                            InventoryHeadEntity.DeclTime = DateTime.Now;//申报日期,以海关计算机系统接受清单申报数据时记录的日期为准。格式:YYYYMMDD。
                            InventoryHeadEntity.CustomsCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// "2991";//申报海关代码
                            InventoryHeadEntity.PortCode = GetPersonalSingleEntity.DeclPort.ToString().Trim();// 口岸海关代码
                            InventoryHeadEntity.IeDate = DateTime.Now;//运载所申报商品的运输工具申报进境的日期,进口申报时无法确知相应的运输工具的实际进境日期时,免填。格式:YYYYMMDD
                            InventoryHeadEntity.BuyerIdType = "1";// JkfOrderImportHeadEntity.PaperType;// 订购人证件类型
                            InventoryHeadEntity.BuyerIdNumber = JkfOrderImportHeadEntity.PaperNumber;// 订购人证件号码
                            InventoryHeadEntity.BuyerName = JkfOrderImportHeadEntity.Consignee;// 订购人姓名
                            InventoryHeadEntity.BuyerTelephone = JkfOrderImportHeadEntity.ConsigneePhone;// 订购人电话
                            InventoryHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;// 收件地址

                            InventoryHeadEntity.AgentCode = GetPersonalSingleEntity.DeclareCompanyCode.ToString().Trim();// 申报企业代码 申报单位的海关注册登记编号。
                            InventoryHeadEntity.AgentName = GetPersonalSingleEntity.DeclareCompanyName.ToString().Trim();// 申报单位在海关注册登记的名称。
                            InventoryHeadEntity.AreaCode = GetPersonalSingleEntity.InternalAreaCompanyNo.ToString().Trim();// 区内企业代码 保税模式必填,区内仓储企业的海关注册登记编号
                            InventoryHeadEntity.AreaName = GetPersonalSingleEntity.InternalAreaCompanyName.ToString().Trim();// 区内企业名称 保税模式必填,区内仓储企业在海关注册登记的名称。
                            InventoryHeadEntity.TradeMode = "1210";// GetPersonalSingleEntity.TradeMode.ToString();// 贸易方式 直购进口填写“9610”,保税进口填写“1210”
                            InventoryHeadEntity.TrafMode = GetPersonalSingleEntity.TrafMode.ToString();// 运输方式 填写海关标准的参数代码,参照《JGS-20 海关业务代码集》- 运输方式代码。直购进口指跨境段物流运输方式,保税进口指二线出区物流

                            InventoryHeadEntity.TrafNo = GetPersonalSingleEntity.TrafNo.ToString();// 运输工具编号 直购进口必填。货物进出境的运输工具的名称或运输工具编号。填报内容应与运输部门向海关申报的载货清单所列相应内容一致;同报关单填制规范。保税进口免填
                            InventoryHeadEntity.VoyageNo = GetPersonalSingleEntity.VoyageNo.ToString();// 航班航次号 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填

                            InventoryHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;// 提运单号 直购进口必填。货物提单或运单的编号,保税进口免填
                            InventoryHeadEntity.LoctNo = GetPersonalSingleEntity.CustomsField;// 监管场所代码 直购进口必填。货物进出境的运输工具的航次编号。保税进口免填。
                            InventoryHeadEntity.LicenseNo = "";// JkfOrderImportHeadEntity.LicenseNo;// 许可证件号
                            InventoryHeadEntity.Country = JkfOrderImportHeadEntity.TradeCountry;// 起运国(地区)

                            InventoryHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;// 运费
                            InventoryHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;// 保费 物流企业实际收取的商品保价费用。
                            InventoryHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;// 币制 限定为人民币,填写“142”。
                            InventoryHeadEntity.WrapType = "2";//GetPersonalSingleEntity.WrapType;// 包装种类代码  海关对进出口货物实际采用的外部包装方式的标识代码,采用1 位数字表示,如:木箱、纸箱、桶装、散装、托盘、包、油罐车等
                            InventoryHeadEntity.PackNo = 1;// 件数 件数为包裹数量,限定为“1”。
                            InventoryHeadEntity.GrossWeight = JkfOrderImportHeadEntity.GrossWeight;//毛重(公斤)  货物及其包装材料的重量之和,计量单位为千克。
                            InventoryHeadEntity.NetWeight = JkfOrderImportHeadEntity.TotalWeight;//净重(公斤)货物的毛重减去外包装材料后的重量,即货物本身的实际重量,计量单位为千克
                            InventoryHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注

                            InventoryHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                            InventoryHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                            InventoryHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态

                            InventoryHeadEntity.CreateBy = UserInfo.UserName;//创建用户
                            InventoryHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                            InventoryHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 统一申报清单 商品明细信息
                            List<A8EXP_CEB621Message_InventoryListInfo> InventoryListEntity = new List<A8EXP_CEB621Message_InventoryListInfo>();
                            for (int K = 0; K < JkfOrderDetailList.Count; K++)
                            {
                                #region 获得商品资料
                                A8ERP_MaterialInfo MaterialEntity = new A8ERP_MaterialInfo();
                                string ConditionSql = string.Format("MaterialCode='{0}'", JkfOrderDetailList[K].GoodsCode);
                                MaterialEntity = BLLFactory<BLL.A8ERP_Material>.Instance.FindSingle(ConditionSql);
                                if (MaterialEntity == null)
                                    continue;
                                #endregion
                                A8EXP_CEB621Message_InventoryListInfo InventoryListentity = new A8EXP_CEB621Message_InventoryListInfo();
                                InventoryListentity.MaterialId = JkfOrderDetailList[K].MaterialId.ToString();//商品Id
                                InventoryListentity.ItemRecordNo = MaterialEntity.ItemRecordNo;//账册备案料号                                
                                InventoryListentity.ItemNo = MaterialEntity.GoodsItemNo;//企业商品货号
                                InventoryListentity.ItemName = MaterialEntity.ItemName;//企业商品品名
                                InventoryListentity.GoodsCode = JkfOrderDetailList[K].GoodsCode;//商品编码
                                InventoryListentity.Gcode = JkfOrderDetailList[K].CodeTs;//海关10位商品编码
                                InventoryListentity.Gname = JkfOrderDetailList[K].GoodsName;//商品名称
                                InventoryListentity.Gmodel = JkfOrderDetailList[K].GoodsModel;//商品规格型号
                                InventoryListentity.BarCode = JkfOrderDetailList[K].GoodsBar;//条形码
                                InventoryListentity.Country = MaterialEntity.TradeCountry;//原产国
                                InventoryListentity.Currency = JkfOrderDetailList[K].Currency;//币制
                                InventoryListentity.Qty = JkfOrderDetailList[K].GoodsCount;//数量
                                InventoryListentity.Qty1 = MaterialEntity.FirstCount;//法定数量
                                InventoryListentity.Qty2 = MaterialEntity.SecondCount;//第二数量
                                InventoryListentity.Unit = JkfOrderDetailList[K].GoodsUnit;//单位
                                InventoryListentity.Unit1 = MaterialEntity.FirstUnit;//法定计量单位
                                InventoryListentity.Unit2 = MaterialEntity.SecondUnit;//第二计量单位
                                InventoryListentity.Price = JkfOrderDetailList[K].UnitPrice;//单价
                                InventoryListentity.TotalPrice = JkfOrderDetailList[K].Payment;//总价
                                InventoryListentity.CreateBy = UserInfo.UserName;//创建用户
                                InventoryListentity.OrgId = UserInfo.SubCompanyId;//当前机构
                                InventoryListentity.OrgName = UserInfo.SubCompanyName;//机构名称
                                InventoryListEntity.Add(InventoryListentity);
                            }
                            #endregion

                            #region 统一申报运单信息
                            #region 读取当前平台的运单参数
                            A8ERP_Customs_LogisticsWaybillInfo GetLogisticsWaybillEntity = BLLFactory<BLL.A8ERP_Customs_LogisticsWaybill>.Instance.GetObjEntity(ShopNameId);
                            if (GetLogisticsWaybillEntity == null)
                            {
                                MessageUtil.ShowTips("非法的平台Id,导入将终止");
                                continue;
                            }
                            #endregion

                            #region  统一申报物流运单数据
                            A8EXP_CEB511Message_LogisticsHeadInfo LogisticsHeadEntity = new A8EXP_CEB511Message_LogisticsHeadInfo();
                            LogisticsHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            LogisticsHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                            LogisticsHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                            LogisticsHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                            LogisticsHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
                            LogisticsHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                            LogisticsHeadEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
                            LogisticsHeadEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
                            LogisticsHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                            LogisticsHeadEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
                            LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
                            LogisticsHeadEntity.Freight = JkfOrderImportHeadEntity.FeeAmount;//运费
                            LogisticsHeadEntity.InsuredFee = JkfOrderImportHeadEntity.InsureAmount;//保价费
                            LogisticsHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//币制
                            LogisticsHeadEntity.Weight = JkfOrderImportHeadEntity.GrossWeight;//毛重
                            LogisticsHeadEntity.PackNo = JkfOrderImportHeadEntity.TotalCount;//件数
                            LogisticsHeadEntity.GoodsInfo = JkfOrderImportHeadEntity.MainGName;//主要货物信息
                            LogisticsHeadEntity.Consingee = JkfOrderImportHeadEntity.Consignee;//收货人姓名
                            LogisticsHeadEntity.ConsigneeAddress = JkfOrderImportHeadEntity.ConsigneeAddress;//收货地址
                            LogisticsHeadEntity.ConsigneeTelephone = JkfOrderImportHeadEntity.ConsigneePhone;//收货人电话
                            LogisticsHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                            LogisticsHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                            LogisticsHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态

                            LogisticsHeadEntity.CreateBy = UserInfo.UserName;//创建用户
                            LogisticsHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                            LogisticsHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #endregion

                            #region  统一申报物流运单状态数据
                            A8EXP_CEB513Message_LogisticsStatusInfo LogisticsStatusEntity = new A8EXP_CEB513Message_LogisticsStatusInfo();
                            LogisticsStatusEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            LogisticsStatusEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                            LogisticsStatusEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                            LogisticsStatusEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                            LogisticsStatusEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。报送时间
                            LogisticsStatusEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                            LogisticsStatusEntity.LogisticsCode = GetLogisticsWaybillEntity.LogisCompanyCode;//物流企业备案编码
                            LogisticsStatusEntity.LogisticsName = GetLogisticsWaybillEntity.LogisCompanyName;//物流企业备案名称
                            LogisticsStatusEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                            LogisticsStatusEntity.LogisticsNo = JkfOrderImportHeadEntity.WayBills;//物流运单编号
                            LogisticsHeadEntity.BillNo = GetPersonalSingleEntity.BillNo;//提运单号
                            LogisticsStatusEntity.LogisticsStatus = "";//物流运单状态
                            LogisticsStatusEntity.LogisticsTime = DateTime.Now;//物流状态时间
                            LogisticsStatusEntity.Note = JkfOrderImportHeadEntity.Note;//备注

                            LogisticsStatusEntity.Description = JkfOrderImportHeadEntity.Description;//备注
                            LogisticsStatusEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                            LogisticsStatusEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态

                            LogisticsStatusEntity.CreateBy = UserInfo.UserName;//创建用户
                            LogisticsStatusEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                            LogisticsStatusEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 统一申报支付凭证数据
                            A8EXP_CEB411Message_PaymentHeadInfo PaymentHeadEntity = new A8EXP_CEB411Message_PaymentHeadInfo();
                            PaymentHeadEntity.ShopName = JkfOrderImportHeadEntity.ShopName;//店铺名称
                            PaymentHeadEntity.ShopCode = JkfOrderImportHeadEntity.ShopNameId;//店铺编码
                            PaymentHeadEntity.Guid = Guid.NewGuid().ToString().ToUpper();//企业系统生成36位唯一序号转成大写
                            PaymentHeadEntity.AppType = "1";//企业报送类型。1-新增 2-变更 3-删除。默认为1
                            PaymentHeadEntity.AppTime = DateTime.Now;//格式:YYYYMMDDhhmmss。
                            PaymentHeadEntity.AppStatus = "2";//业务状态:1-暂存,2-申报,默认为2。
                            PaymentHeadEntity.OrderNo = JkfOrderImportHeadEntity.OrderNo;//订单编号
                            PaymentHeadEntity.PayCode = GetLogisticsWaybillEntity.LogisCompanyCode;//支付企业代码
                            PaymentHeadEntity.PayName = GetLogisticsWaybillEntity.LogisCompanyName;//支付企业名称
                            PaymentHeadEntity.PayTransactionId = JkfOrderImportHeadEntity.PayNumber;//支付交易编号
                            PaymentHeadEntity.EbpCode = GetOrderDeclareParameterEntity.ECommerceCode;//电商平台代码               
                            PaymentHeadEntity.EbpName = GetOrderDeclareParameterEntity.ECommerceName;//电商平台名称
                            PaymentHeadEntity.PayerIdType = "1";// JkfOrderImportHeadEntity.PaperType;//支付人证件类型
                            PaymentHeadEntity.PayerIdNumber = JkfOrderImportHeadEntity.PaperNumber;//支付人证件号码
                            PaymentHeadEntity.PayerName = JkfOrderImportHeadEntity.Consignee;//支付人姓名
                            PaymentHeadEntity.Telephone = JkfOrderImportHeadEntity.ConsigneePhone;//支付人电话
                            PaymentHeadEntity.AmountPaid = JkfOrderImportHeadEntity.OrderTotalAmount;//支付金额
                            PaymentHeadEntity.Currency = JkfOrderImportHeadEntity.CurrCode;//支付币制
                            PaymentHeadEntity.PayTime = JkfOrderImportHeadEntity.OrderDateTime;//支付时间
                            PaymentHeadEntity.Note = JkfOrderImportHeadEntity.Note;//备注

                            PaymentHeadEntity.Description = JkfOrderImportHeadEntity.Description;//备注

                            PaymentHeadEntity.OrderState = CustomsOrderState.CustomsNo.ToString();//审核状态
                            PaymentHeadEntity.AuditState = ValuesData.TurnToInt(GetEnumsIndex.GetOrderStateIndex(CustomsOrderState.CustomsNo.ToString()));//审核状态

                            PaymentHeadEntity.CreateBy = UserInfo.UserName;//创建用户
                            PaymentHeadEntity.OrgId = UserInfo.SubCompanyId;//当前机构
                            PaymentHeadEntity.OrgName = UserInfo.SubCompanyName;//机构名称
                            #endregion

                            #region 进行申报订单生成操作
                            progress.SetProgressValue(99);
                            if (BLLFactory<BLL.A8ERP_Customs_JkfOrderImportHead>.Instance.GenerateDeployment(UserInfo, OrderHeadentity, OrderListEntity, InventoryHeadEntity, InventoryListEntity, LogisticsHeadEntity, LogisticsStatusEntity, PaymentHeadEntity, out statusCode, out statusMessage))
                            {
                                itemCount++;
                                progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                            }
                            else
                            {
                                itemErrcount++;
                                progress.SetStatusInfo.Text = string.Format("统一版申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                                DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            }
                            #endregion

                            progress.SetProgressValue(99);
                            progress.SetStatusInfo.Text = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);


                        }
                        #endregion
                    }
                    catch (Exception ex)
                    {
                        MessageUtil.ShowTips(ex.Message);
                    }
                    finally
                    {
                        statusMessage = string.Format("统一申报单生成成功:{0}个,错误:{1},消息:{2}", itemCount, itemErrcount, statusMessage);
                        progress.SetProgressValue(100);
                        progress.SetStatusInfo.Text = statusMessage;
                        progress.Close();
                        DevExpress.XtraEditors.XtraMessageBox.Show(statusMessage, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Information);

                        this.FormOnLoad();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageUtil.ShowTips(ex.Message);
            }

        }

        #endregion

        #region 显示税款信息
        public void TaxCEB816Message()
        {
            Grid_CEB816MessageTax.DataSource = null;
            Grid_CustomsTaxDetail.DataSource = null;
            SearchCondition condition = new SearchCondition();
            string SqlCondition = "select * from View_TaxCEB816Message where ";
            condition.AddCondition("CopNo", CurrentOrderNo, SqlOperator.Equal)//订单号
            .AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
            .AddCondition("Enabled", chEnabled, SqlOperator.Equal);//有效的
            SqlCondition += condition.BuildConditionSql(DatabaseType.SqlServer);
            Grid_CEB816MessageTax.DataSource = BLLFactory<BLL.A8EXP_CEB816Message_CustomsTax>.Instance.SqlTable(SqlCondition);
        }

        #region public string _currentDetaiFld 当前选种的Id
        string _currentCEB816MessageId = string.Empty;
        /// <summary>
        /// 当前选种的ID
        /// </summary>
        public string CurrentCEB816MessageId
        {
            get
            {
                return _currentCEB816MessageId = BaseInterfaceLogic.GetDataGridViewEntityId(Grid_CEB816MessageTax, A8ERP_Customs_JkfOrderDetailInfo.FieldId);
            }
        }
        #endregion

        #endregion

        #region 显示税款明细
        /// <summary>
        /// 显示税款明细
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Grid_CEB816MessageTax_SelectionChanged(object sender, EventArgs e)
        {
            SearchCondition condition = new SearchCondition();
            SqlCondition = string.Empty;
            condition.AddCondition("FId", CurrentCEB816MessageId, SqlOperator.Equal)//订单号
            .AddCondition("DeletionStateCode", 0, SqlOperator.Equal)//删除状态
            .AddCondition("Enabled", chEnabled, SqlOperator.Equal);//有效的
            SqlCondition = condition.BuildConditionSql(DatabaseType.SqlServer);
            Grid_CustomsTaxDetail.DataSource = BLLFactory<BLL.A8EXP_CEB816Message_CustomsTaxDetail>.Instance.GetDataTable(SqlCondition);

        }
        #endregion



    }
}

原文地址:https://www.cnblogs.com/kuangood/p/7709446.html