/// <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); } } }