Пример #1
0
        /// <summary>
        /// 更新期货委托单状态,撤单专用,当前状态为最终状态时不更新
        /// </summary>
        /// <param name="order">委托单</param>
        public static void UpdateFutureOrderStatus_Cancel(QH_TodayEntrustTableInfo order)
        {
            //如果状态时废单,部撤,已撤,已成,那么代表是最终状态
            int a = (int)Types.OrderStateType.DOSCanceled;
            int b = (int)Types.OrderStateType.DOSPartRemoved;
            int c = (int)Types.OrderStateType.DOSRemoved;
            int d = (int)Types.OrderStateType.DOSDealed;

            //如果状态是已报待撤、部成待撤,那么也不需要更新状态
            int e = (int)Types.OrderStateType.DOSRequiredRemoveSoon;
            int f = (int)Types.OrderStateType.DOSPartDealRemoveSoon;

            try
            {
                string format = "update qh_todayentrusttable set orderstatusid={0} where entrustnumber='{1}'";
                format += " and OrderStatusId<>{2} and OrderStatusId<>{3} and OrderStatusId<>{4} and OrderStatusId<>{5}";
                format += " and OrderStatusId<>{6} and OrderStatusId<>{7}";

                string sql = string.Format(format, order.OrderStatusId, order.EntrustNumber, a, b, c, d, e, f);
                DbHelperSQL.ExecuteSql(sql);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }
        }
Пример #2
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public void UpdateRecord(QH_TodayEntrustTableInfo model, ReckoningTransaction tm)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update QH_TodayEntrustTable set ");
            strSql.Append("PortfolioLogo=@PortfolioLogo,");
            strSql.Append("EntrustPrice=@EntrustPrice,");
            strSql.Append("EntrustAmount=@EntrustAmount,");
            strSql.Append("TradeAmount=@TradeAmount,");
            strSql.Append("TradeAveragePrice=@TradeAveragePrice,");
            strSql.Append("CancelAmount=@CancelAmount,");
            strSql.Append("CancelLogo=@CancelLogo,");
            strSql.Append("BuySellTypeId=@BuySellTypeId,");
            strSql.Append("CurrencyTypeId=@CurrencyTypeId,");
            strSql.Append("OpenCloseTypeId=@OpenCloseTypeId,");
            strSql.Append("TradeUnitId=@TradeUnitId,");
            strSql.Append("OrderStatusId=@OrderStatusId,");
            strSql.Append("ContractCode=@ContractCode,");
            strSql.Append("TradeAccount=@TradeAccount,");
            strSql.Append("CapitalAccount=@CapitalAccount,");
            strSql.Append("IsMarketValue=@IsMarketValue,");
            strSql.Append("OrderMessage=@OrderMessage,");
            strSql.Append("CallbackChannelId=@CallbackChannelId,");
            strSql.Append("McOrderId=@McOrderId,");
            strSql.Append("CloseFloatProfitLoss=@CloseFloatProfitLoss,");
            strSql.Append("CloseMarketProfitLoss=@CloseMarketProfitLoss,");
            strSql.Append("OfferTime=@OfferTime,");
            strSql.Append("EntrustTime=@EntrustTime");
            strSql.Append(" where EntrustNumber=@EntrustNumber ");
            Database  db        = tm.Database;
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber);
            db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo);
            db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice);
            db.AddInParameter(dbCommand, "EntrustAmount", DbType.Int32, model.EntrustAmount);
            db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount);
            db.AddInParameter(dbCommand, "TradeAveragePrice", DbType.Decimal, model.TradeAveragePrice);
            db.AddInParameter(dbCommand, "CancelAmount", DbType.Int32, model.CancelAmount);
            db.AddInParameter(dbCommand, "CancelLogo", DbType.Boolean, model.CancelLogo);
            db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId);
            db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId);
            db.AddInParameter(dbCommand, "OpenCloseTypeId", DbType.Int32, model.OpenCloseTypeId);
            db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId);
            db.AddInParameter(dbCommand, "OrderStatusId", DbType.Int32, model.OrderStatusId);
            db.AddInParameter(dbCommand, "ContractCode", DbType.AnsiString, model.ContractCode);
            db.AddInParameter(dbCommand, "TradeAccount", DbType.AnsiString, model.TradeAccount);
            db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount);
            db.AddInParameter(dbCommand, "IsMarketValue", DbType.Boolean, model.IsMarketValue);
            db.AddInParameter(dbCommand, "OrderMessage", DbType.AnsiString, model.OrderMessage);
            db.AddInParameter(dbCommand, "CallbackChannelId", DbType.AnsiString, model.CallbackChannelId);
            db.AddInParameter(dbCommand, "McOrderId", DbType.AnsiString, model.McOrderId);
            db.AddInParameter(dbCommand, "CloseFloatProfitLoss", DbType.Decimal, model.CloseFloatProfitLoss);
            db.AddInParameter(dbCommand, "CloseMarketProfitLoss", DbType.Decimal, model.CloseMarketProfitLoss);
            db.AddInParameter(dbCommand, "OfferTime", DbType.DateTime, model.OfferTime);
            db.AddInParameter(dbCommand, "EntrustTime", DbType.DateTime, model.EntrustTime);
            db.ExecuteNonQuery(dbCommand, tm.Transaction);
        }
        /// <summary>
        /// 依据期货委托单号获取委托单实体
        /// </summary>
        /// <param name="strEntrustId"></param>
        /// <param name="tm"></param>
        /// <returns></returns>
        public static QH_TodayEntrustTableInfo GetQHEntrustEntity(string strEntrustId, ReckoningTransaction tm)
        {
            QH_TodayEntrustTableInfo result = null;

            QH_TodayEntrustTableDal qhtodayEntrustTabledDal = new QH_TodayEntrustTableDal();

            result = qhtodayEntrustTabledDal.GetModel(strEntrustId);

            return(result);
        }
        /// <summary>
        /// 依据期货委托单号获取委托单实体
        /// </summary>
        /// <param name="strEntrustId"></param>
        /// <returns></returns>
        public static QH_TodayEntrustTableInfo GetQHEntrustEntity(string strEntrustId)
        {
            QH_TodayEntrustTableInfo result = null;

            //var tetp = new SqlQhTodayEntrustTableProvider(TransactionFactory.RC_ConnectionString, true, string.Empty);

            QH_TodayEntrustTableDal qhtodayEntrustTabledDal = new QH_TodayEntrustTableDal();

            result = qhtodayEntrustTabledDal.GetModel(strEntrustId);

            return(result);
        }
Пример #5
0
        /// <summary>
        /// 检查是否有超过数据库限制长度的字段
        /// </summary>
        /// <param name="tet"></param>
        private static void CheckEntrustLength(QH_TodayEntrustTableInfo tet)
        {
            if (tet.PortfolioLogo.Length > 25)
            {
                string format1 = "CheckEntrustLength[PortfolioLogo={0}]";
                string desc1   = string.Format(format1, tet.PortfolioLogo);
                LogHelper.WriteDebug(desc1);
                tet.PortfolioLogo = tet.PortfolioLogo.Substring(0, 25);
            }

            if (tet.TradeAccount.Length > 20)
            {
                string format1 = "CheckEntrustLength[StockAccount={0}]";
                string desc1   = string.Format(format1, tet.TradeAccount);
                LogHelper.WriteDebug(desc1);
                tet.TradeAccount = tet.TradeAccount.Substring(0, 20);
            }

            if (tet.CapitalAccount.Length > 20)
            {
                string format1 = "CheckEntrustLength[CapitalAccount={0}]";
                string desc1   = string.Format(format1, tet.CapitalAccount);
                LogHelper.WriteDebug(desc1);
                tet.CapitalAccount = tet.CapitalAccount.Substring(0, 20);
            }

            if (tet.OrderMessage.Length > 100)
            {
                string format1 = "CheckEntrustLength[OrderMessage={0}]";
                string desc1   = string.Format(format1, tet.OrderMessage);
                LogHelper.WriteDebug(desc1);
                tet.OrderMessage = tet.OrderMessage.Substring(0, 100);
            }

            if (tet.CallbackChannelId.Length > 50)
            {
                string format1 = "CheckEntrustLength[CallbackChannlId={0}]";
                string desc1   = string.Format(format1, tet.CallbackChannelId);
                LogHelper.WriteDebug(desc1);
                tet.CallbackChannelId = tet.CallbackChannelId.Substring(0, 50);
            }

            if (tet.McOrderId.Length > 100)
            {
                string format1 = "CheckEntrustLength[McOrderId={0}]";
                string desc1   = string.Format(format1, tet.McOrderId);
                LogHelper.WriteDebug(desc1);
                tet.McOrderId = tet.McOrderId.Substring(0, 100);
            }
        }
Пример #6
0
 /// <summary>
 /// 更新期货委托单
 /// </summary>
 /// <param name="stockOrder">委托单</param>
 public static void UpdateFutureOrder(QH_TodayEntrustTableInfo stockOrder)
 {
     try
     {
         //var sxtetp = new SqlQhTodayEntrustTableProvider(TransactionFactory.RC_ConnectionString, true,
         //string.Empty);
         // sxtetp.Update(stockOrder);
         QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();
         dal.Update(stockOrder);
     }
     catch (Exception ex)
     {
         LogHelper.WriteError(ex.Message, ex);
     }
 }
Пример #7
0
        /// <summary>
        /// 更新委托表
        /// </summary>
        /// <param name="tet">委托表</param>
        /// <param name="rt">事务包装类</param>
        /// <returns>是否成功</returns>
        public static bool UpdateEntrustTable(QH_TodayEntrustTableInfo tet, ReckoningTransaction rt)
        {
            try
            {
                QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();
                dal.Update(tet, rt);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
                return(false);
            }

            return(true);
        }
Пример #8
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(QH_TodayEntrustTableInfo model, ReckoningTransaction tm)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into QH_TodayEntrustTable(");
            strSql.Append("EntrustNumber,PortfolioLogo,EntrustPrice,EntrustAmount,TradeAmount,TradeAveragePrice,CancelAmount,CancelLogo,BuySellTypeId,CurrencyTypeId,OpenCloseTypeId,TradeUnitId,OrderStatusId,ContractCode,TradeAccount,CapitalAccount,IsMarketValue,OrderMessage,CallbackChannelId,McOrderId,CloseFloatProfitLoss,CloseMarketProfitLoss,OfferTime,EntrustTime)");

            strSql.Append(" values (");
            strSql.Append("@EntrustNumber,@PortfolioLogo,@EntrustPrice,@EntrustAmount,@TradeAmount,@TradeAveragePrice,@CancelAmount,@CancelLogo,@BuySellTypeId,@CurrencyTypeId,@OpenCloseTypeId,@TradeUnitId,@OrderStatusId,@ContractCode,@TradeAccount,@CapitalAccount,@IsMarketValue,@OrderMessage,@CallbackChannelId,@McOrderId,@CloseFloatProfitLoss,@CloseMarketProfitLoss,@OfferTime,@EntrustTime)");
            Database  db        = tm.Database;
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, model.EntrustNumber);
            db.AddInParameter(dbCommand, "PortfolioLogo", DbType.AnsiString, model.PortfolioLogo);
            db.AddInParameter(dbCommand, "EntrustPrice", DbType.Decimal, model.EntrustPrice);
            db.AddInParameter(dbCommand, "EntrustAmount", DbType.Int32, model.EntrustAmount);
            db.AddInParameter(dbCommand, "TradeAmount", DbType.Int32, model.TradeAmount);
            db.AddInParameter(dbCommand, "TradeAveragePrice", DbType.Decimal, model.TradeAveragePrice);
            db.AddInParameter(dbCommand, "CancelAmount", DbType.Int32, model.CancelAmount);
            db.AddInParameter(dbCommand, "CancelLogo", DbType.Boolean, model.CancelLogo);
            db.AddInParameter(dbCommand, "BuySellTypeId", DbType.Int32, model.BuySellTypeId);
            db.AddInParameter(dbCommand, "CurrencyTypeId", DbType.Int32, model.CurrencyTypeId);
            db.AddInParameter(dbCommand, "OpenCloseTypeId", DbType.Int32, model.OpenCloseTypeId);
            db.AddInParameter(dbCommand, "TradeUnitId", DbType.Int32, model.TradeUnitId);
            db.AddInParameter(dbCommand, "OrderStatusId", DbType.Int32, model.OrderStatusId);
            db.AddInParameter(dbCommand, "ContractCode", DbType.AnsiString, model.ContractCode);
            db.AddInParameter(dbCommand, "TradeAccount", DbType.AnsiString, model.TradeAccount);
            db.AddInParameter(dbCommand, "CapitalAccount", DbType.AnsiString, model.CapitalAccount);
            db.AddInParameter(dbCommand, "IsMarketValue", DbType.Boolean, model.IsMarketValue);
            db.AddInParameter(dbCommand, "OrderMessage", DbType.AnsiString, model.OrderMessage);
            db.AddInParameter(dbCommand, "CallbackChannelId", DbType.AnsiString, model.CallbackChannelId);
            db.AddInParameter(dbCommand, "McOrderId", DbType.AnsiString, model.McOrderId);
            db.AddInParameter(dbCommand, "CloseFloatProfitLoss", DbType.Decimal, model.CloseFloatProfitLoss);
            db.AddInParameter(dbCommand, "CloseMarketProfitLoss", DbType.Decimal, model.CloseMarketProfitLoss);
            db.AddInParameter(dbCommand, "OfferTime", DbType.DateTime, model.OfferTime);
            db.AddInParameter(dbCommand, "EntrustTime", DbType.DateTime, model.EntrustTime);
            try
            {
                db.ExecuteNonQuery(dbCommand, tm.Transaction);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Пример #9
0
        /// <summary>
        /// 根据委托单号获取今日委托
        /// </summary>
        /// <param name="entrustNumber">委托单号</param>
        /// <returns>今日委托</returns>
        public static QH_TodayEntrustTableInfo GetEntrustTable(string entrustNumber)
        {
            QH_TodayEntrustTableInfo tet = null;

            QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();

            try
            {
                tet = dal.GetModel(entrustNumber);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }

            return(tet);
        }
Пример #10
0
        /// <summary>
        /// 更新期货委托单状态
        /// </summary>
        /// <param name="order">委托单</param>
        public static void UpdateFutureOrderStatus(QH_TodayEntrustTableInfo order)
        {
            try
            {
                string format = "update qh_todayentrusttable set orderstatusid={0} where entrustnumber='{1}'";
                string sql    = string.Format(format, order.OrderStatusId, order.EntrustNumber);

                //DataRepository.Provider.ExecuteNonQuery(CommandType.Text, sql);
                DbHelperSQL.ExecuteSql(sql);
                //var sxtetp = new SqlXhTodayEntrustTableProvider(TransactionFactory.RC_ConnectionString, true,
                //                                                string.Empty);
                //sxtetp.Update(order);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
            }
        }
Пример #11
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public QH_TodayEntrustTableInfo GetModel(string EntrustNumber)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select EntrustNumber,PortfolioLogo,EntrustPrice,EntrustAmount,TradeAmount,TradeAveragePrice,CancelAmount,CancelLogo,BuySellTypeId,CurrencyTypeId,OpenCloseTypeId,TradeUnitId,OrderStatusId,ContractCode,TradeAccount,CapitalAccount,IsMarketValue,OrderMessage,CallbackChannelId,McOrderId,CloseFloatProfitLoss,CloseMarketProfitLoss,OfferTime,EntrustTime from QH_TodayEntrustTable ");
            strSql.Append(" where EntrustNumber=@EntrustNumber ");
            Database  db        = DatabaseFactory.CreateDatabase();
            DbCommand dbCommand = db.GetSqlStringCommand(strSql.ToString());

            db.AddInParameter(dbCommand, "EntrustNumber", DbType.AnsiString, EntrustNumber);
            QH_TodayEntrustTableInfo model = null;

            using (IDataReader dataReader = db.ExecuteReader(dbCommand))
            {
                if (dataReader.Read())
                {
                    model = ReaderBind(dataReader);
                }
            }
            return(model);
        }
Пример #12
0
        /// <summary>
        /// 检查是否存在对应的委托单号
        /// </summary>
        /// <param name="errMsg">错误信息</param>
        /// <returns>校验结果</returns>
        private bool CheckDelegateExist(ref string errMsg)
        {
            bool result = false;

            errMsg = "";
            QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();

            //qhTodayEntrustTable = DataRepository.QhTodayEntrustTableProvider.GetByEntrustNumber(this.orderNo);
            qhTodayEntrustTable = dal.GetModel(this.orderNo);
            if (qhTodayEntrustTable != null)
            {
                result = true;
            }
            else
            {
                string errCode = "GT-1600";
                errMsg = "委托不存在。";
                errMsg = errCode + ":" + errMsg;
                LogHelper.WriteInfo(errMsg);
            }

            return(result);
        }
Пример #13
0
        public static void ProcessCancelOrderStatus(QH_TodayEntrustTableInfo tet)
        {
            //未报,待报,已报的单,做废单处理
            if (tet.OrderStatusId == (int)Types.OrderStateType.DOSUnRequired ||
                tet.OrderStatusId == (int)Types.OrderStateType.DOSRequiredSoon ||
                tet.OrderStatusId == (int)Types.OrderStateType.DOSIsRequired)
            {
                tet.OrderStatusId = (int)Types.OrderStateType.DOSCanceled;
            }
            //已报待撤的单:默认撤单成功,改状态为已撤
            else if (tet.OrderStatusId == (int)Types.OrderStateType.DOSRequiredRemoveSoon)
            {
                tet.OrderStatusId = (int)Types.OrderStateType.DOSRemoved;
            }
            //部成,部成待撤的单:默认撤单成功,改状态为部撤
            else if (tet.OrderStatusId == (int)Types.OrderStateType.DOSPartDealRemoveSoon ||
                     tet.OrderStatusId == (int)Types.OrderStateType.DOSPartDealed)
            {
                tet.OrderStatusId = (int)Types.OrderStateType.DOSPartRemoved;
            }

            //其他的保持原有状态
        }
 /// <summary>
 /// 构造器
 /// </summary>
 /// <param name="original"></param>
 public QhTodayEntrustTableEx(QH_TodayEntrustTableInfo original)
 {
     OriginalEntity = original;
 }
Пример #15
0
        /// <summary>
        /// 对象实体绑定数据
        /// </summary>
        public QH_TodayEntrustTableInfo ReaderBind(IDataReader dataReader)
        {
            QH_TodayEntrustTableInfo model = new QH_TodayEntrustTableInfo();
            object ojb;

            model.EntrustNumber = dataReader["EntrustNumber"].ToString();
            model.PortfolioLogo = dataReader["PortfolioLogo"].ToString();
            ojb = dataReader["EntrustPrice"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustPrice = (decimal)ojb;
            }
            ojb = dataReader["EntrustAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustAmount = (int)ojb;
            }
            ojb = dataReader["TradeAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeAmount = (int)ojb;
            }
            ojb = dataReader["TradeAveragePrice"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeAveragePrice = (decimal)ojb;
            }
            ojb = dataReader["CancelAmount"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CancelAmount = (int)ojb;
            }
            ojb = dataReader["CancelLogo"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CancelLogo = (bool)ojb;
            }
            ojb = dataReader["BuySellTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.BuySellTypeId = (int)ojb;
            }
            ojb = dataReader["CurrencyTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CurrencyTypeId = (int)ojb;
            }
            ojb = dataReader["OpenCloseTypeId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.OpenCloseTypeId = (int)ojb;
            }
            ojb = dataReader["TradeUnitId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.TradeUnitId = (int)ojb;
            }
            ojb = dataReader["OrderStatusId"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.OrderStatusId = (int)ojb;
            }
            model.ContractCode   = dataReader["ContractCode"].ToString();
            model.TradeAccount   = dataReader["TradeAccount"].ToString();
            model.CapitalAccount = dataReader["CapitalAccount"].ToString();
            ojb = dataReader["IsMarketValue"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.IsMarketValue = (bool)ojb;
            }
            model.OrderMessage      = dataReader["OrderMessage"].ToString();
            model.CallbackChannelId = dataReader["CallbackChannelId"].ToString();
            model.McOrderId         = dataReader["McOrderId"].ToString();
            ojb = dataReader["CloseFloatProfitLoss"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CloseFloatProfitLoss = (decimal)ojb;
            }
            ojb = dataReader["CloseMarketProfitLoss"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.CloseMarketProfitLoss = (decimal)ojb;
            }
            ojb = dataReader["OfferTime"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.OfferTime = (DateTime)ojb;
            }
            ojb = dataReader["EntrustTime"];
            if (ojb != null && ojb != DBNull.Value)
            {
                model.EntrustTime = (DateTime)ojb;
            }
            return(model);
        }
Пример #16
0
        /// <summary>
        /// 构建股指期货成交回报
        /// </summary>
        /// <param name="tet"></param>
        /// <param name="sdbe"></param>
        /// <param name="qhcr"></param>
        /// <param name="dMargin"></param>
        /// <param name="tm"></param>
        /// <param name="marketProfitLoss"></param>
        /// <param name="dealRptType">成交类型</param>
        /// <returns></returns>
        public static QH_TodayTradeTableInfo BuildGZQHDealRpt(QH_TodayEntrustTableInfo tet, FutureDealBackEntity sdbe,
                                                              QHCostResult qhcr, decimal dMargin, decimal marketProfitLoss,
                                                              ReckoningTransaction tm, Types.DealRptType dealRptType)
        {
            string result = string.Empty;
            //成交回报实体
            var qhDealrpt = new QH_TodayTradeTableInfo();

            //xhDealrpt.TradeNumber = this.BuildXHDealOrderNo();
            qhDealrpt.TradeNumber = sdbe.Id; //不再自己构建id,使用成交回报的id,一一对应
            //成交时间
            qhDealrpt.TradeTime = sdbe.DealTime;
            //成交价
            qhDealrpt.TradePrice = sdbe.DealPrice;
            //成交量
            qhDealrpt.TradeAmount = Convert.ToInt32(sdbe.DealAmount);
            //成交单位
            qhDealrpt.TradeUnitId = tet.TradeUnitId;
            //股东代码
            qhDealrpt.TradeAccount = tet.TradeAccount;
            //资金帐户
            qhDealrpt.CapitalAccount = tet.CapitalAccount;
            //成交回报类型
            // qhDealrpt.TradeTypeId = (int)Types.DealRptType.DRTDealed;
            qhDealrpt.TradeTypeId = (int)dealRptType;
            //现货名称
            qhDealrpt.ContractCode = tet.ContractCode;
            //现货代码
            //qhDealrpt = tet.ContractName;
            //交易手续费
            qhDealrpt.TradeProceduresFee = qhcr.Cosing;
            //保证金
            //qhDealrpt.Margin = 0; // dMargin;
            //update date 2009-12-03 不管开平仓都记录保证金
            //if (tet.OpenCloseTypeId == (int) Types.FutureOpenCloseType.OpenPosition)
            qhDealrpt.Margin = dMargin;
            //=============

            //委托价格
            qhDealrpt.EntrustPrice = tet.EntrustPrice;
            //委托单号
            qhDealrpt.EntrustNumber = tet.EntrustNumber;
            //投组标识
            qhDealrpt.PortfolioLogo = tet.PortfolioLogo;
            //货币类型
            qhDealrpt.CurrencyTypeId = tet.CurrencyTypeId;

            qhDealrpt.BuySellTypeId = tet.BuySellTypeId;

            qhDealrpt.OpenCloseTypeId = tet.OpenCloseTypeId;

            //add 李健华 增加每笔盯市盈亏
            qhDealrpt.MarketProfitLoss = marketProfitLoss;
            //==========

            QH_TodayTradeTableDal qhTodayTradeTableDal = new QH_TodayTradeTableDal();

            if (qhTodayTradeTableDal.Exists(qhDealrpt.TradeNumber))
            {
                string format = "BuildGZQHDealRpt数据库已经存在TradeNumber={0}";
                string desc   = string.Format(format, qhDealrpt.TradeNumber);
                LogHelper.WriteDebug(desc);

                return(null);
            }

            try
            {
                qhTodayTradeTableDal.Add(qhDealrpt, tm);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message, ex);
                qhDealrpt = null;
            }

            return(qhDealrpt);
        }
Пример #17
0
        /// <summary>
        /// 构建期货撤单回报
        /// </summary>
        /// <param name="tet"></param>
        /// <param name="rde"></param>
        /// <param name="tm"></param>
        /// <param name="isInternalCancelOrder"></param>
        /// <returns></returns>
        public static QH_TodayTradeTableInfo BuildQHCancelRpt(QH_TodayEntrustTableInfo tet, CancelOrderEntity rde,
                                                              ReckoningTransaction tm, bool isInternalCancelOrder)
        {
            string result = string.Empty;

            //当为价格错误的撤单时,直接作为废单,不记录到数据库中。
            if (rde.OrderVolume == -1)
            {
                return(null);
            }

            //成交回报实体
            var qhDealrpt = new QH_TodayTradeTableInfo();

            qhDealrpt.TradeNumber = rde.Id; //不再自己构建id,使用撤单回报的id,一一对应
            //成交时间
            qhDealrpt.TradeTime = DateTime.Now;
            //成交价
            qhDealrpt.TradePrice = 0;
            //成交量
            qhDealrpt.TradeAmount = Convert.ToInt32(rde.OrderVolume);
            //股东代码
            qhDealrpt.TradeAccount = tet.TradeAccount;
            //资金帐户
            qhDealrpt.CapitalAccount = tet.CapitalAccount;
            //成交回报类型
            if (isInternalCancelOrder)
            {
                qhDealrpt.TradeTypeId = (int)Types.DealRptType.DRTInternalCanceled;
            }
            else
            {
                qhDealrpt.TradeTypeId = (int)Types.DealRptType.DRTCanceled;
            }
            //现货名称
            qhDealrpt.ContractCode = tet.ContractCode;

            //交易手续费
            qhDealrpt.TradeProceduresFee = 0;
            //保证金
            qhDealrpt.Margin = 0;

            //委托价格
            qhDealrpt.EntrustPrice = tet.EntrustPrice;
            //委托单号
            qhDealrpt.EntrustNumber = tet.EntrustNumber;
            //投组标识
            qhDealrpt.PortfolioLogo = tet.PortfolioLogo;
            //货币类型
            qhDealrpt.CurrencyTypeId = tet.CurrencyTypeId;
            //开平方向
            qhDealrpt.OpenCloseTypeId = tet.OpenCloseTypeId;
            //买卖方向
            qhDealrpt.BuySellTypeId = tet.BuySellTypeId;
            //成交单位
            qhDealrpt.TradeUnitId = tet.TradeUnitId;
            //2009-12-03 add 李健华
            qhDealrpt.MarketProfitLoss = 0;
            //==========
            QH_TodayTradeTableDal qh_TodayTradeTableDal = new QH_TodayTradeTableDal();

            // var provider = new SqlQhTodayTradeTableProvider(TransactionFactory.RC_ConnectionString, true, string.Empty);

            //provider.Insert(tm, qhDealrpt);
            qh_TodayTradeTableDal.Add(qhDealrpt, tm);

            return(qhDealrpt);
        }
Пример #18
0
        /// <summary>
        /// 构造股指期货委托单
        /// </summary>
        public static string BuildGZQHOrder(ref QH_TodayEntrustTableInfo order,
                                            StockIndexFuturesOrderRequest originalOrder,
                                            string strHoldingAccount, string strCapitalAccount,
                                            int iCurType, ref string strMessage)
        {
            //bool result = false;
            order = new QH_TodayEntrustTableInfo();

            order.EntrustNumber = BuildQHOrderNo();
            order.EntrustAmount = Convert.ToInt32(originalOrder.OrderAmount);
            order.EntrustPrice  = Convert.ToDecimal(originalOrder.OrderPrice);
            order.EntrustTime   = DateTime.Now;
            order.OfferTime     = DateTime.Now;
            order.IsMarketValue = originalOrder.OrderWay == Types.OrderPriceType.OPTMarketPrice
                                      ? true
                                      : false;
            order.BuySellTypeId = (int)originalOrder.BuySell;
            order.OrderStatusId = (int)Types.OrderStateType.DOSUnRequired;
            if (strHoldingAccount == null)
            {
                strHoldingAccount = "";
            }
            order.TradeAccount = strHoldingAccount;
            if (strCapitalAccount == null)
            {
                strCapitalAccount = "";
            }
            order.CapitalAccount = strCapitalAccount;
            if (originalOrder.PortfoliosId == null)
            {
                originalOrder.PortfoliosId = "";
            }
            order.PortfolioLogo = originalOrder.PortfoliosId;
            if (originalOrder.Code == null)
            {
                originalOrder.Code = "";
            }
            order.ContractCode      = originalOrder.Code;
            order.TradeAmount       = 0;
            order.TradeAveragePrice = 0;
            order.CancelAmount      = 0;
            order.CancelLogo        = true;
            if (originalOrder.ChannelID == null)
            {
                originalOrder.ChannelID = "";
            }
            order.CallbackChannelId = originalOrder.ChannelID;
            order.IsMarketValue     = originalOrder.OrderWay == Types.OrderPriceType.OPTMarketPrice
                                      ? true
                                      : false;
            order.OpenCloseTypeId = (int)originalOrder.OpenCloseType;
            order.TradeUnitId     = (int)originalOrder.OrderUnitType;
            order.CurrencyTypeId  = iCurType;

            order.OrderMessage = "";
            order.McOrderId    = "";

            CheckEntrustLength(order);

            QH_TodayEntrustTableDal dal = new QH_TodayEntrustTableDal();

            dal.Add(order);

            return(order.EntrustNumber);
        }