Exemple #1
0
 /// <summary>
 ///根据交易所类型_非交易日期表中的交易所类型ID获取交易所类型名称
 /// </summary>
 /// <returns></returns>
 public DataSet GetCMNotTradeDateBourseTypeName()
 {
     try
     {
         CM_NotTradeDateDAL cMNotTradeDateDAL = new CM_NotTradeDateDAL();
         return(cMNotTradeDateDAL.GetCMNotTradeDateBourseTypeName());
     }
     catch (Exception ex)
     {
         string      errCode   = "GL-4724";
         string      errMsg    = "根据交易所类型_非交易日期表中的交易所类型ID获取交易所类型名称失败!";
         VTException exception = new VTException(errCode, errMsg, ex);
         LogHelper.WriteError(exception.ToString(), exception.InnerException);
         return(null);
     }
 }
        /// <summary>
        /// 判断该天是否交易
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="breedclass"></param>
        /// <returns></returns>
        public bool JudgmentIsTrandingDay(DateTime dt, int breedclass)
        {
            CM_NotTradeDateDAL     NotTradeDateDAL      = new CM_NotTradeDateDAL();
            List <CM_NotTradeDate> List_CM_NotTradeDate = NotTradeDateDAL.GetListArrayByBreedClassID(breedclass);
            bool falg = true;

            foreach (CM_NotTradeDate NotTradeDate in List_CM_NotTradeDate)
            {
                if (((DateTime)NotTradeDate.NotTradeDay).ToShortDateString() == dt.ToShortDateString())
                {
                    falg = false;
                    break;
                }
            }
            return(falg);
        }
Exemple #3
0
 /// <summary>
 /// 获取所有交易所类型_非交易日期
 /// </summary>
 /// <param name="BourseTypeName">交易所类型名称</param>
 /// <param name="pageNo">当前页</param>
 /// <param name="pageSize">显示记录数</param>
 /// <param name="rowCount">总行数</param>
 /// <returns></returns>
 public DataSet GetAllCMNotTradeDate(string BourseTypeName, int pageNo, int pageSize,
                                     out int rowCount)
 {
     try
     {
         CM_NotTradeDateDAL cMNotTradeDateDAL = new CM_NotTradeDateDAL();
         return(cMNotTradeDateDAL.GetAllCMNotTradeDate(BourseTypeName, pageNo, pageSize, out rowCount));
     }
     catch (Exception ex)
     {
         rowCount = AppGlobalVariable.INIT_INT;
         string      errCode   = "GL-4723";
         string      errMsg    = "获取所有交易所类型_非交易日期失败!";
         VTException exception = new VTException(errCode, errMsg, ex);
         LogHelper.WriteError(exception.ToString(), exception.InnerException);
         return(null);
     }
 }
        /// <summary>
        /// 添加非交易日
        /// </summary>
        /// <param name="year"></param>
        public static void InitNotTrandingDay(int year)
        {
            try
            {
                CM_BourseTypeDAL     BourseTypeDAL   = new CM_BourseTypeDAL();
                List <CM_BourseType> l               = BourseTypeDAL.GetListArray(string.Empty);
                DateTime             startDate       = DateTime.Parse(string.Format("{0}-01-01", year));
                DateTime             endDate         = DateTime.Parse(string.Format("{0}-12-31", year));
                CM_NotTradeDateDAL   NotTradeDateDAL = new CM_NotTradeDateDAL();
                CM_NotTradeDate      NotTradeDate    = new CM_NotTradeDate();

                foreach (CM_BourseType type in l)
                {
                    for (DateTime dt = startDate; dt <= endDate; dt = dt.AddDays(1))
                    {
                        DayOfWeek t = dt.DayOfWeek;
                        if (t == DayOfWeek.Sunday || t == DayOfWeek.Saturday)
                        {
                            List <ManagementCenter.Model.CM_NotTradeDate> l_NotTradeDate =
                                NotTradeDateDAL.GetListArray(string.Format("NotTradeDay='{0}' AND BourseTypeID={1}", dt, type.BourseTypeID));
                            if (l_NotTradeDate == null || l_NotTradeDate.Count < 1)
                            {
                                NotTradeDate.NotTradeDay  = dt;
                                NotTradeDate.BourseTypeID = type.BourseTypeID;
                                NotTradeDateDAL.Add(NotTradeDate);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string errMsg = "初始化非交易日失败!";
                LogHelper.WriteError(errMsg, ex);
            }
        }
        /// <summary>
        /// 删除交易所类型及相关联的表
        /// </summary>
        /// <param name="BourseTypeID">交易所类型ID</param>
        public bool DeleteCMBourseTypeAbout(int BourseTypeID)
        {
            CM_NotTradeDateDAL         cM_NotTradeDateDAL         = new CM_NotTradeDateDAL();
            CM_TradeTimeDAL            cM_TradeTimeDAL            = new CM_TradeTimeDAL();
            CM_BreedClassDAL           cM_BreedClassDAL           = new CM_BreedClassDAL();
            RC_MatchMachineDAL         rC_MatchMachineDAL         = new RC_MatchMachineDAL();
            RC_TradeCommodityAssignDAL rC_TradeCommodityAssignDAL = new RC_TradeCommodityAssignDAL();

            DbConnection Conn = null;
            Database     db   = DatabaseFactory.CreateDatabase();

            Conn = db.CreateConnection();
            if (Conn.State != ConnectionState.Open)
            {
                Conn.Open();
            }
            DbTransaction Tran = Conn.BeginTransaction();

            try
            {
                int NewBourseTypeID = 5;//未分配交易所的ID=5,固定值
                //获得撮合机数据列表
                List <RC_MatchMachine> rCMatchMachineList =
                    rC_MatchMachineDAL.GetListArray(string.Format("BourseTypeID={0}", BourseTypeID), Tran, db);
                if (rCMatchMachineList.Count > 0)
                {
                    foreach (RC_MatchMachine rCMatchMode in rCMatchMachineList)
                    {
                        // List<RC_TradeCommodityAssign> rCTradeCommodityAssignList =
                        //rC_TradeCommodityAssignDAL.GetListArray(string.Format("MatchMachineID={0}", rCMatchMode.MatchMachineID), Tran, db);
                        //删除撮合机代码分配表中同一个撮合机ID的代码
                        if (!rC_TradeCommodityAssignDAL.DeleteRCTradeCommodityAByMachineID(rCMatchMode.MatchMachineID))
                        {
                            Tran.Rollback();
                            return(false);
                        }
                    }
                    //根据交易所类型ID,删除撮合机
                    if (!rC_MatchMachineDAL.DeleteByBourseTypeID(BourseTypeID, Tran, db))
                    {
                        Tran.Rollback();
                        return(false);
                    }
                }
                //根据交易所类型删除交易日
                if (!cM_TradeTimeDAL.DeleteCMTradeTimeByBourseTypeID(BourseTypeID, Tran, db))
                {
                    Tran.Rollback();
                    return(false);
                }
                //根据交易所类型删除非交易日
                if (!cM_NotTradeDateDAL.DeleteByBourseTypeID(BourseTypeID, Tran, db))
                {
                    Tran.Rollback();
                    return(false);
                }

                //根据交易所类型ID,更新交易商品品种中的交易所类型ID
                if (!cM_BreedClassDAL.UpdateBourseTypeID(BourseTypeID, NewBourseTypeID, Tran, db))
                {
                    Tran.Rollback();
                    return(false);
                }
                if (!cM_BourseTypeDAL.Delete(BourseTypeID, Tran, db))
                {
                    Tran.Rollback();
                    return(false);
                }
                Tran.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                Tran.Rollback();
                string errCode   = "GL-4701";
                string errMsg    = "删除交易所类型失败!";
                var    exception = new VTException(errCode, errMsg, ex);
                LogHelper.WriteError(exception.ToString(), exception.InnerException);
                return(false);
            }
            finally
            {
                if (Conn.State == ConnectionState.Open)
                {
                    Conn.Close();
                }
            }
        }
        /// <summary>
        /// 类型为倒数或者顺数第几个交易日,求最后交易日
        /// </summary>
        /// <param name="LastTradingDay"></param>
        /// <param name="breedclass"></param>
        /// <returns></returns>
        private int DeliMonthOfTurnOrBackTrandingDay(QH_LastTradingDay LastTradingDay, int breedclass)
        {
            int day = (int)LastTradingDay.WhatDay;

            DateTime now          = DateTime.Now;
            int      CurrentYear  = now.Year;
            int      CurrentMonth = now.Month;

            CM_NotTradeDateDAL NotTradeDateDAL = new CM_NotTradeDateDAL();

            int temp = 0;

            //根据品种获取当前月份里面的非交易日列表
            List <CM_NotTradeDate> List_CM_NotTradeDate = NotTradeDateDAL.GetListArrayByBreedClassID(breedclass);

            #region 根据类型求出最后交易日
            if ((int)LastTradingDay.Sequence == (int)Types.QHLastTradingDayIsSequence.Order)
            {
                for (int i = 1; i <= System.DateTime.DaysInMonth(CurrentYear, CurrentMonth); i++)
                {
                    DateTime dt   = DateTime.Parse(string.Format("{0}-{1}-{2}", CurrentYear, CurrentMonth, i));
                    bool     falg = false;
                    foreach (CM_NotTradeDate date in List_CM_NotTradeDate)
                    {
                        if (((DateTime)date.NotTradeDay).ToShortDateString() == dt.ToShortDateString())
                        {
                            falg = true;
                            break;
                        }
                    }
                    if (!falg)
                    {
                        temp = temp + 1;
                        if (temp == day)
                        {
                            return(i);
                        }
                    }
                }
            }
            else
            {
                for (int i = System.DateTime.DaysInMonth(CurrentYear, CurrentMonth); i >= 1; i--)
                {
                    DateTime dt   = DateTime.Parse(string.Format("{0}-{1}-{2}", CurrentYear, CurrentMonth, i));
                    bool     falg = false;
                    foreach (CM_NotTradeDate date in List_CM_NotTradeDate)
                    {
                        if (((DateTime)date.NotTradeDay).ToShortDateString() == dt.ToShortDateString())
                        {
                            falg = true;
                            break;
                        }
                    }
                    if (!falg)
                    {
                        temp = temp + 1;
                        if (temp == day)
                        {
                            return(i);
                        }
                    }
                }
            }
            #endregion

            return(int.MaxValue);
        }