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