/// <summary>
        /// 执行同步客户操作
        /// </summary>
        /// <param name="sourceDatas"></param>
        /// <param name="logs"></param>
        /// <param name="operationType"></param>
        /// <returns></returns>
        public override HttpResponseResult ExecuteSynchro(IEnumerable <AbsSynchroDataInfo> sourceDatas, List <SynchroLog> logs, SynOperationType operationType)
        {
            HttpResponseResult result = null;
            KDTransactionScope trans  = null;

            List <K3CustomerInfo> custs = ConvertAbsSynchroObject(sourceDatas);
            JObject bizData             = BuildSynchroDataJsons(sourceDatas, operationType);

            List <string> numbers = null;
            List <int>    pkIds   = null;

            try
            {
                if (operationType == SynOperationType.SAVE)
                {
                    #region
                    try
                    {
                        #region
                        using (trans = new KDTransactionScope(System.Transactions.TransactionScopeOption.Required))
                        {
                            //单据保存
                            result = ExecuteOperate(SynOperationType.SAVE, null, null, bizData.ToString());

                            if (result != null && result.Success == true)
                            {
                                //保存操作成功后返回单据的编码集合
                                if (result.GetNeedReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj)) != null)
                                {
                                    numbers = result.GetNeedReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj));
                                }
                                //保存操作成功后返回的单据内码集合
                                if (result.GetNeedReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList() != null)
                                {
                                    pkIds = result.GetNeedReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList();
                                }
                            }
                            ////单据提交
                            //result = InvokeWebApi.InvokeBatchSubmit(this.K3CloudContext, this.DataType, FormKey, numbers);
                            ////单据审核
                            //result = InvokeWebApi.InvokeBatchAudit(this.K3CloudContext, this.DataType, FormKey, numbers);
                            ////单据分配
                            //result = InvokeWebApi.InvokeBatchAllot(this.K3CloudContext, this.DataType, FormKey, pkIds);
                            ////分配后更新提交审核
                            //result = AfterAllot(this.K3CloudContext, custs);
                            ////提交事务
                            trans.Complete();
                        }
                    }

                    #endregion

                    #region
                    ////单据保存
                    //result = InvokeWebApi.InvokeBatchSave(this.K3CloudContext, this.DataType, FormKey, bizData.ToString());

                    //if (result != null && result.Success == true)
                    //{
                    //    //保存操作成功后返回单据的编码集合
                    //    if (result.ReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj)) != null)
                    //    {
                    //        numbers = result.ReturnValues("FNumber").ConvertAll(obj => string.Format("{0}", obj));
                    //    }
                    //    //保存操作成功后返回的单据内码集合
                    //    if (result.ReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList() != null)
                    //    {
                    //        pkIds = result.ReturnValues("FCUSTID").Select(obj => Convert.ToInt32(obj)).ToList();
                    //    }
                    //}
                    ////单据提交
                    //result = InvokeWebApi.InvokeBatchSumbit(this.K3CloudContext, this.DataType, FormKey, numbers);

                    ////单据审核
                    //result = InvokeWebApi.InvokeBatchAudit(this.K3CloudContext, this.DataType, FormKey, numbers);


                    ////单据分配
                    ////result = InvokeWebApi.InvokeBatchAllot(this.K3CloudContext, this.DataType, FormKey, pkIds);

                    ////分配后更新提交审核
                    ////result = AfterAllot(this.K3CloudContext, custs);

                    //trans.Complete();

                    #endregion

                    catch (Exception ex)
                    {
                        LogUtils.WriteSynchroLog(this.K3CloudContext, this.DataType, "提交事务出现异常,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace);
                    }
                    finally
                    {
                        if (trans != null)
                        {
                            trans.Dispose();
                        }
                    }

                    #endregion
                }
                else if (operationType == SynOperationType.ALLOT)
                {
                    //单据分配
                    try
                    {
                        if (custs != null && custs.Count > 0)
                        {
                            AfterAllot(this.K3CloudContext, custs);
                        }
                    }
                    catch (Exception ex)
                    {
                        LogUtils.WriteSynchroLog(this.K3CloudContext, this.DataType, "分配操作出现异常,异常信息:" + ex.Message + System.Environment.NewLine + ex.StackTrace);
                    }
                }

                else if (operationType == SynOperationType.UPDATE)
                {
                    //单据更新
                    //result = InvokeWebApi.InvokeBatchSave(this.K3CloudContext, this.DataType, FormKey, bizData.ToString());
                }
                return(result);
            }
            catch (Exception ex)
            {
                if (logs != null && logs.Count > 0)
                {
                    foreach (var log in logs)
                    {
                        log.IsSuccess = 0;
                        log.ErrInfor  = ex.Message + System.Environment.NewLine + ex.StackTrace;
                    }
                }
            }

            if (result == null)
            {
                return(null);
            }

            if (result.Success == false && result.FailedResult == null && result.Result == null)
            {
                //同步出现错误之类:如令牌错误,url错误之类的
                if (logs != null && logs.Count > 0)
                {
                    foreach (var log in logs)
                    {
                        log.IsSuccess = 0;
                        log.ErrInfor  = "数据同步失败:" + result.Message == null ? "" : result.Message;
                    }
                }

                return(result);
            }

            return(result);
        }