zoukankan      html  css  js  c++  java
  • 跨境通仓库综合系统申报代码

    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



        }
    }

  • 相关阅读:
    MySQL 连接的使用:语法及案例剖析、INNER JOIN、LEFT JOIN、RIGHT JOIN
    MySQL GROUP BY 分组语句:语法及案例剖析、使用 WITH ROLLUP
    MySQL 排序:语法及案例剖析、在命令提示符中使用 ORDER BY 子句
    MySQL UNION 操作符:语法及案例剖析
    MySQL LIKE 子句:语法及案例剖析、在命令提示符中使用 LIKE 子句
    maven仓库
    maven安装配置
    Jedis
    Redis下载安装以及String类型
    Redis介绍
  • 原文地址:https://www.cnblogs.com/kuangood/p/7709446.html
Copyright © 2011-2022 走看看