/// <summary>
        /// 程序执行主入口
        /// </summary>
        /// <param name="serviceData"></param>
        public void Execute(object serviceData)
        {
            ResponseEntity responseEntity = new ResponseEntity();
            ServiceData    data           = serviceData as ServiceData;

            if (data == null)
            {
                return;
            }

            ServiceCommand command = data.Command;

            if (command == null)
            {
                return;
            }

            RequestEntity requestEntity = command.Entity;

            if (requestEntity == null)
            {
                responseEntity.ResponseStatus = (int)EnumResponseState.RequestCommandError;
                return;
            }

            //请求ID
            responseEntity.RequestId = requestEntity.RequestId;
            // 用户名
            responseEntity.UserId = requestEntity.UserId;

            string errorMessage = "";

            // 记录执行时间类
            using (StopWatcherAuto auto = new StopWatcherAuto())
            {
                int ServiceID   = ContractSide.SHWS;
                int LendingBHID = ContractSide.SHBH;

                string lockkey = string.Empty;
                try
                {
                    if (HaveFrozenBusiness(LendingBHID, ServiceID, ref errorMessage))
                    {
                        return;
                    }

                    AnnulCLoanByBusinessesByBoHai(Const.COMPANY_WX_SHWS_SERVICE, Const.COMPANY_BHXT_LENDING);

                    string sqllend = SqlFile.PayBankSqlBH.ToFileContent
                                         (true, ServiceID, "AND BUS.LendingSideID =" + LendingBHID,
                                         ServiceID, "AND BUS.LendingSideID =" + LendingBHID);
                    string sqlserv = SqlFile.PayBankSqlServer.ToFileContent
                                         (true, ServiceID, "AND BUS.LendingSideID =" + LendingBHID);

                    PayBankDal dal      = new PayBankDal();
                    var        datalend = dal.GetPayBankExportItem(sqllend);
                    var        dataserv = dal.GetPayBankExportItem(sqlserv);

                    if (datalend.Count == 0 && dataserv.Count == 0)
                    {
                        errorMessage = "无扣款指令导出。";
                        m_Logger.Info("无扣款指令导出!");
                        return;
                    }

                    // 为导出订单加锁
                    lockkey = SetBusinessLock(ServiceID, LendingBHID);

                    // 根据子公司编号获取导出扣款文件名
                    var titles = GetTitles(ServiceID, lockkey);

                    // 根据子公司编号获取导出扣款指令配置
                    var dic = GetDeductCommand(ServiceID);

                    var         lstBankAccount = Singleton <BankAccountsCache> .Instance.BankAccounts;
                    BankFactory fac            = new BankFactory(dic);

                    var    cmpanys = Singleton <CompanyCache> .Instance.CompanyEnumeration;
                    byte[] ret     = fac.ExportBHXT(datalend, dataserv, requestEntity.UserId,
                                                    lstBankAccount, cmpanys, titles, ServiceID, LendingBHID, lockkey);

                    if (ret == null)
                    {
                        //为导出订单解锁
                        SetBusinessUnLock(lockkey);
                        errorMessage = "无扣款指令导出。";
                        m_Logger.Info("无扣款指令导出。");
                    }
                    else
                    {
                        var result = new ResponseFileResult();
                        result.Result = ret;

                        responseEntity.ResponseStatus = (int)EnumResponseState.Success;
                        responseEntity.Results        = result;
                    }
                }
                catch (Exception ex)
                {
                    errorMessage = "";
                    responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                    responseEntity.ResponseMessage = "导出扣款指令失败。" + ex.Message.ToString();
                    m_Logger.Error("导出扣款指令失败:" + ex.Message.ToString());
                    m_Logger.Error("导出扣款指令失败:" + ex.StackTrace.ToString());
                    // 为导出订单解锁
                    SetBusinessUnLock(lockkey);
                }
                finally
                {
                    if (errorMessage.Length > 0)
                    {
                        responseEntity.ResponseStatus  = (int)EnumResponseState.Others;
                        responseEntity.ResponseMessage = errorMessage;
                    }

                    Singleton <ResultCacheManager> .Instance.AddResult(command.Guid, responseEntity);
                }
            }
        }