public static string CreateQueryDepositRecordSql(QueryDepositRecordParameter parameter) { System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("dbo.P_GetDepositForFlex"); AppentSqlParameter(sb,parameter.FromTradeDay.ToStandardDatetimeString()); AppentSqlParameter(sb, parameter.ToTradeDay.ToStandardDatetimeString()); AppentSqlParameter(sb, parameter.AccountCodeStr); AppentSqlParameter(sb, parameter.DepositCodeStr); AppentSqlParameter(sb, ((int)parameter.PaymentType).ToString()); AppentSqlParameter(sb, parameter.IsGetRecordCount.ToInt32().ToString()); return sb.ToString(0, sb.Length - 1); }
public QueryPageCountResult GetDepositPageCount(string sessionID, QueryObject parameter) { QueryPageCountResult result = new QueryPageCountResult(); QueryDepositRecordParameter depositParameter = new QueryDepositRecordParameter { FromTradeDay= parameter.BeginDatetime, ToTradeDay=parameter.EndDatetime, AccountCodeStr=parameter.AccountStr, DepositCodeStr=parameter.DepositQueryStr, PaymentType=parameter.Type, IsGetRecordCount=false }; string sql = ProcedureStrFactory.CreateQueryDepositRecordSql(depositParameter); _Log.Warn(string.Format("GetDepositData {0}", sql)); DataSet ds = DataAccess.GetData(sql, ConfigHelper.ConnectionString, TimeSpan.FromMinutes(10)); _Log.Warn(string.Format("GetDepositData End Count: {0}", ds.Tables[0].Rows.Count)); Guid? accountingBaseCurrencyId = CurrencyRepository.GetAccountingBaseCurrency(); if (accountingBaseCurrencyId == null) { result.Type = ReturnType.DataNotComplete; return result; } string baseCurrencyName = CurrencyRepository.GetCurrencyName(accountingBaseCurrencyId.Value); List<DepositData> list = new List<DepositData>(); foreach (DataRow dr in ds.Tables[0].Rows) { try { var data = Fill(dr, baseCurrencyName, parameter.Type); if (data == null) { result.Type = ReturnType.DataNotComplete; return result; } if (parameter.Type != BusinessTypeEnum.Transfer) FlexInterface.Helper.DepositInnerService.AddDesc(parameter.Type, data); list.Add(data); } catch (Exception ex) { _Log.ErrorFormat("GetDepositData {0}", ex); result.Type = ReturnType.Error; return result; } } int count = list.Count; if (parameter.Type == BusinessTypeEnum.Transfer) { count = count / 2; List<DepositData> transferList = new List<DepositData>(); foreach (var item in list.GroupBy(m => m.MarginReference).ToDictionary(m => m.Key, m => m.OrderBy(x => x.SourceAmount).ToList())) { if (item.Value.Count != 2) { result.Type = ReturnType.Error; return result; } var target = item.Value[1]; target.Transfer = item.Value[0]; FlexInterface.Helper.DepositInnerService.AddDesc(BusinessTypeEnum.Transfer, target); transferList.Add(target); } lock (this._SycBlock) { this._Dict[sessionID] = transferList; } } else { lock (this._SycBlock) { this._Dict[sessionID] = list; } } _Log.Warn(string.Format("GetDepositData Complete Count: {0}", count)); result.Type = ReturnType.Normal; result.PageCount = this._CommonService.GetPageCount(count); return result; }
public int GetDepositRecordCount(QueryObject parameter) { QueryDepositRecordParameter depositParameter = new QueryDepositRecordParameter() { FromTradeDay=parameter.BeginDatetime, ToTradeDay=parameter.EndDatetime, AccountCodeStr=parameter.AccountStr, DepositCodeStr=parameter.DepositQueryStr, PaymentType=parameter.Type, IsGetRecordCount=true }; string sql = ProcedureStrFactory.CreateQueryDepositRecordSql(depositParameter); _Log.Warn(string.Format("GetDepositData {0}", sql)); return (int)DataAccess.ExecuteScalar(sql, ConfigHelper.ConnectionString); }