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);
 }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
 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);
 }