Exemplo n.º 1
0
 /// <summary>
 /// 根据品种ID获取品种名称
 /// </summary>
 /// <param name="breedClassID">品种ID</param>
 /// <returns></returns>
 public static string GetBreedClassNameByID(int breedClassID)
 {
     try
     {
         CM_BreedClassBLL cM_BreedClassBLL = new CM_BreedClassBLL();
         CM_BreedClass    cM_BreedClass    = cM_BreedClassBLL.GetModel(breedClassID);
         return(cM_BreedClass.BreedClassName);
     }
     catch (Exception ex)
     {
         GTA.VTS.Common.CommonUtility.LogHelper.WriteError(ex.Message, ex);
         return(null);
     }
 }
        /// <summary>
        /// 添加期货品种时初始化一个周期的和约代码
        /// </summary>
        /// <param name="BreedClassID"></param>
        public void QHCommdityCodeInit(int BreedClassID)
        {
            CommodityCodeUpdate CCP = new CommodityCodeUpdate();
            //根据品种ID,找到品种的前缀代码
            string QH_PrefixCode = CCP.GetQH_PrefixCodeByID(BreedClassID);

            //根据品种ID,找到品种的名称
            string QH_breedclassName = CCP.GetBreedClassNameByID(BreedClassID);

            #region 创建代码规则管理器 add by 董鹏 2010-03-10
            //根据品种获取交易所
            CM_BreedClassBLL bc = new CM_BreedClassBLL();
            CM_BourseTypeBLL bt = new CM_BourseTypeBLL();
            var bourseType      = bt.GetModel(bc.GetModel(BreedClassID).BourseTypeID.Value);

            //创建代码规则管理
            CodeRulesManager codeRule;
            if (bourseType.CodeRulesType.HasValue)
            {
                LogHelper.WriteDebug("===开始自动生成代码,代码规则类型:" + bourseType.CodeRulesType.ToString());
                codeRule = new CodeRulesManager((Types.CodeRulesType)bourseType.CodeRulesType.Value);
            }
            else
            {
                LogHelper.WriteDebug("===开始自动生成代码,没有获取到交易所对应的代码规则,交易所:" + bourseType.BourseTypeName);
                codeRule = new CodeRulesManager(null);
            }
            #endregion

            CM_CommodityDAL CommodityDAL = new CM_CommodityDAL();
            CM_Commodity    CM_Commodity = new CM_Commodity();
            CM_Commodity.BreedClassID = BreedClassID;

            CM_Commodity.GoerScale          = decimal.MaxValue;
            CM_Commodity.LabelCommodityCode = null;
            CM_Commodity.StockPinYin        = null;
            CM_Commodity.MarketDate         = DateTime.Now.AddYears(-1); //暂时将日期定为一年前 DateTime.MaxValue;
            CM_Commodity.turnovervolume     = null;
            CM_Commodity.IsExpired          = (int)Types.IsYesOrNo.No;   //初始化期货代码时,默认没有过期
            CM_Commodity.ISSysDefaultCode   = (int)Types.IsYesOrNo.Yes;  //新增期货代码时,默认代码没有过期

            QH_AgreementDeliveryMonthDAL     AgreementDeliveryMonthDAL = new QH_AgreementDeliveryMonthDAL();
            List <QH_AgreementDeliveryMonth> L = AgreementDeliveryMonthDAL.GetListArray(string.Format("BreedClassID={0}", BreedClassID));

            foreach (QH_AgreementDeliveryMonth AgreementDeliveryMonth in L)
            {
                if ((int)AgreementDeliveryMonth.MonthID > System.DateTime.Now.Month && (int)AgreementDeliveryMonth.MonthID <= 12)
                {
                    //string Code = QH_PrefixCode + CommodityCodeUpdate.GetTwoLenYear(System.DateTime.Now) +
                    //    CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID);

                    //使用代码规则管理器生成代码
                    string Code = codeRule.GetCode(QH_PrefixCode, DateTime.Now.Year.ToString(), CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID));
                    CM_Commodity.CommodityCode = Code;
                    CM_Commodity.CommodityName = Code;// QH_breedclassName + Code.Substring(Code.Length - 4);
                    CommodityDAL.Add(CM_Commodity);
                }
                if ((int)AgreementDeliveryMonth.MonthID < System.DateTime.Now.Month)
                {
                    //string Code = QH_PrefixCode + CommodityCodeUpdate.GetTwoLenYear(System.DateTime.Now.AddYears(1)) +
                    //    CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID);

                    //使用代码规则管理器生成代码
                    string Code = codeRule.GetCode(QH_PrefixCode, DateTime.Now.AddYears(1).Year.ToString(), CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID));
                    CM_Commodity.CommodityCode = Code;
                    CM_Commodity.CommodityName = Code;// QH_breedclassName + Code.Substring(Code.Length - 4);
                    CommodityDAL.Add(CM_Commodity);
                }
                if ((int)AgreementDeliveryMonth.MonthID == System.DateTime.Now.Month)
                {
                    int    lasttradingday = CCP.GetLastTradingDay(CCP.GetLastTradingDayEntity(BreedClassID), BreedClassID);
                    string Code           = string.Empty;
                    if (System.DateTime.Now.Day < lasttradingday)
                    {
                        //  Code = QH_PrefixCode + CommodityCodeUpdate.GetTwoLenYear(System.DateTime.Now) +
                        //CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID);

                        //使用代码规则管理器生成代码
                        Code = codeRule.GetCode(QH_PrefixCode, DateTime.Now.Year.ToString(), CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID));
                    }
                    else
                    {
                        //   Code = QH_PrefixCode + CommodityCodeUpdate.GetTwoLenYear(System.DateTime.Now.AddYears(1)) +
                        //CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID);

                        //使用代码规则管理器生成代码
                        Code = codeRule.GetCode(QH_PrefixCode, DateTime.Now.AddYears(1).Year.ToString(), CommodityCodeUpdate.GetTwoLenMonth((int)AgreementDeliveryMonth.MonthID));
                    }
                    CM_Commodity.CommodityCode = Code;
                    CM_Commodity.CommodityName = Code;// QH_breedclassName + Code.Substring(Code.Length - 4);
                    CommodityDAL.Add(CM_Commodity);
                }
                if ((int)AgreementDeliveryMonth.MonthID == 13)
                {
                    SpecialQHCodeInit(BreedClassID, QH_PrefixCode, QH_breedclassName);
                }
            }
        }
        /// <summary>
        /// 把新增的现货代码(StockInfo表和HKStockInfo表中)新增的代码自动添加到交易商品_撮合机_分配表中
        /// </summary>
        public void XHCodeAutoRCTradeCommodityAssign()
        {
            try
            {
                //交易所类型ID
                int            bourseTypeID   = 0;
                StockInfoBLL   stockInfoBLL   = new StockInfoBLL();
                HKStockInfoBLL hKStockInfoBLL = new HKStockInfoBLL();

                CM_BreedClassBLL           cM_BreedClassBLL            = new CM_BreedClassBLL();
                RC_MatchCenterBLL          rcMatchCenterBll            = new RC_MatchCenterBLL();
                RC_MatchMachineBLL         rcMatchMachineBll           = new RC_MatchMachineBLL();
                RC_TradeCommodityAssignBLL rcTradeCommodityAssignBll   = new RC_TradeCommodityAssignBLL();
                RC_MatchMachine            rcMatchMachine              = new RC_MatchMachine();
                RC_MatchCenter             rcMatchCenterModel          = new RC_MatchCenter();
                RC_TradeCommodityAssign    rcTradeCommodityAssignModel = new RC_TradeCommodityAssign();

                //获取撮合中心记录
                List <ManagementCenter.Model.RC_MatchCenter> rcMatchCenters = rcMatchCenterBll.GetListArray(string.Empty);
                if (rcMatchCenters.Count == 0)
                {
                    string errCode = "GL-7005";
                    string errMsg  = "撮合中心记录不存在!";
                    LogHelper.WriteDebug(errCode + errMsg);
                    VTException exception = new VTException(errCode, errMsg);
                    LogHelper.WriteError(exception.ToString(), exception.InnerException);
                    return;
                }

                //获取所有新添加的普通代码
                string           strWhereStock = " StockCode not in (select CommodityCode from CM_Commodity) ";
                List <StockInfo> stockInfoList = stockInfoBLL.GetStockInfoList(strWhereStock);
                //获取所有新添加的港股代码
                string             strWhereHKStock = " StockCode not in (select HKCommodityCode from HK_Commodity) ";
                List <HKStockInfo> hKStockInfoList = hKStockInfoBLL.GetHKStockInfoList(strWhereHKStock);

                if (stockInfoList.Count > 0)
                {
                    int breedClassID = 0;//品种标识
                    foreach (StockInfo info in stockInfoList)
                    {
                        if (breedClassID != info.BreedClassID)
                        {
                            breedClassID = info.BreedClassID;
                            //获取相同品种ID的所有代码
                            string           strWhereStock1 = " StockCode not in (select CommodityCode from CM_Commodity) and BreedClassID={0} ";
                            List <StockInfo> _stockInfoList =
                                stockInfoBLL.GetStockInfoList(string.Format(strWhereStock1, breedClassID));//(string.Format(" and BreedClassID={0}", breedClassID));
                            if (_stockInfoList == null || _stockInfoList.Count == 0)
                            {
                                string errCode = "GL-7006";
                                string errMsg  = "相同品种ID的所有普通代码为空!";
                                LogHelper.WriteDebug(errCode + errMsg);
                                VTException exception = new VTException(errCode, errMsg);
                                LogHelper.WriteError(exception.ToString(), exception.InnerException);
                                continue;
                            }
                            //根据品种ID获取交易所ID
                            CM_BreedClass cmBreedClass = cM_BreedClassBLL.GetModel(breedClassID);
                            if (cmBreedClass != null)
                            {
                                bourseTypeID = (int)cmBreedClass.BourseTypeID;
                                //根据交易所类型ID,获取撮合机记录
                                List <ManagementCenter.Model.RC_MatchMachine> rcMatchMachines =
                                    rcMatchMachineBll.GetListArray(string.Format("BourseTypeID={0}", bourseTypeID));
                                if (rcMatchMachines.Count == 0)
                                {
                                    string errCode = "GL-7007";
                                    string errMsg  = "获取撮合机记录不存在!";
                                    LogHelper.WriteDebug(errCode + errMsg);
                                    VTException exception = new VTException(errCode, errMsg);
                                    LogHelper.WriteError(exception.ToString(), exception.InnerException);
                                    return;
                                }
                                //把同一品种ID的所有代码添加到交易商品_撮合机_分配表中
                                foreach (StockInfo _stockInfo in _stockInfoList)
                                {
                                    rcTradeCommodityAssignModel.CommodityCode  = _stockInfo.StockCode;
                                    rcTradeCommodityAssignModel.MatchMachineID = rcMatchMachines[0].MatchMachineID;
                                    rcTradeCommodityAssignModel.CodeFormSource = (int)GTA.VTS.Common.CommonObject.Types.IsCodeFormSource.Yes; //_stockInfo.CodeFromSource;
                                    rcTradeCommodityAssignBll.Add(rcTradeCommodityAssignModel);
                                }
                            }
                        }
                        continue;
                    }
                }
                if (hKStockInfoList.Count > 0)
                {
                    int breedClassID = 0;//品种标识
                    foreach (HKStockInfo hKInfo in hKStockInfoList)
                    {
                        if (breedClassID != hKInfo.BreedClassID)
                        {
                            breedClassID = hKInfo.BreedClassID;
                            //获取相同品种ID的所有港股代码
                            string strWhereHKStock1 = " StockCode not in (select HKCommodityCode from HK_Commodity) and BreedClassID={0} ";

                            List <HKStockInfo> _hKStockInfoList =
                                hKStockInfoBLL.GetHKStockInfoList(string.Format(strWhereHKStock1, breedClassID));//(string.Format(" and BreedClassID={0}", breedClassID));

                            if (_hKStockInfoList == null || _hKStockInfoList.Count == 0)
                            {
                                string errCode = "GL-7008";
                                string errMsg  = "相同品种ID的所有港股代码为空!";
                                LogHelper.WriteDebug(errCode + errMsg);
                                VTException exception = new VTException(errCode, errMsg);
                                LogHelper.WriteError(exception.ToString(), exception.InnerException);
                                continue;
                            }
                            //根据品种ID获取交易所ID
                            CM_BreedClass cmBreedClass = cM_BreedClassBLL.GetModel(breedClassID);
                            if (cmBreedClass != null)
                            {
                                bourseTypeID = (int)cmBreedClass.BourseTypeID;
                                //根据交易所类型ID,获取撮合机记录
                                List <ManagementCenter.Model.RC_MatchMachine> rcMatchMachines =
                                    rcMatchMachineBll.GetListArray(string.Format("BourseTypeID={0}", bourseTypeID));
                                if (rcMatchMachines.Count == 0)
                                {
                                    string errCode = "GL-7009";
                                    string errMsg  = "获取撮合机记录不存在!";
                                    LogHelper.WriteDebug(errCode + errMsg);
                                    VTException exception = new VTException(errCode, errMsg);
                                    LogHelper.WriteError(exception.ToString(), exception.InnerException);
                                    return;
                                }
                                //把同一品种ID的所有港股代码添加到交易商品_撮合机_分配表中
                                foreach (HKStockInfo _hKStockInfo in _hKStockInfoList)
                                {
                                    rcTradeCommodityAssignModel.CommodityCode  = _hKStockInfo.StockCode;
                                    rcTradeCommodityAssignModel.MatchMachineID = rcMatchMachines[0].MatchMachineID;
                                    rcTradeCommodityAssignModel.CodeFormSource = (int)GTA.VTS.Common.CommonObject.Types.IsCodeFormSource.No; //_hKStockInfo.CodeFromSource;
                                    rcTradeCommodityAssignBll.Add(rcTradeCommodityAssignModel);
                                }
                            }
                        }
                        continue;
                    }
                }
            }
            catch (Exception ex)
            {
                string errCode = "GL-7010";
                string errMsg  = "把新增的现货代码(StockInfo表和HKStockInfo表中)新增的代码添加到交易商品_撮合机_分配表中失败!";
                LogHelper.WriteDebug(errCode + errMsg);
                VTException exception = new VTException(errCode, errMsg, ex);
                LogHelper.WriteError(exception.ToString(), exception.InnerException);
            }
        }
        /// <summary>
        /// 期货代码更新
        /// Update by: 董鹏
        /// Update Date: 2010-03-10
        /// Desc: 使用代码规则管理器生成代码
        /// </summary>
        /// <param name="breedclass">品种ID</param>
        /// <param name="LastTradingDayEntity">期货最后交易日实体</param>
        public void QHCodeUpdata(int breedclass, QH_LastTradingDay LastTradingDayEntity)
        {
            try
            {
                //根据品种ID,找到品种的代码名称
                string QH_Prefixname = GetQH_PrefixCodeByID(breedclass);

                //根据品种ID,找到品种的名称
                string QH_breedclassName = GetBreedClassNameByID(breedclass);

                //根据品种获取交易所
                CM_BreedClassBLL bc = new CM_BreedClassBLL();
                CM_BourseTypeBLL bt = new CM_BourseTypeBLL();
                var bourseType      = bt.GetModel(bc.GetModel(breedclass).BourseTypeID.Value);

                //创建代码规则管理
                CodeRulesManager codeRule;
                if (bourseType.CodeRulesType.HasValue)
                {
                    LogHelper.WriteDebug("===开始自动生成代码,代码规则类型:" + bourseType.CodeRulesType.ToString());
                    codeRule = new CodeRulesManager((Types.CodeRulesType)bourseType.CodeRulesType.Value);
                }
                else
                {
                    LogHelper.WriteDebug("===开始自动生成代码,没有获取到交易所对应的代码规则,交易所:" + bourseType.BourseTypeName);
                    codeRule = new CodeRulesManager(null);
                }

                CM_CommodityDAL            CommodityDAL            = new CM_CommodityDAL();
                RC_TradeCommodityAssignDAL TradeCommodityAssignDAL = new RC_TradeCommodityAssignDAL();

                string Old_QH_codename;
                string New_QH_codename;

                if ((int)LastTradingDayEntity.LastTradingDayTypeID ==
                    (int)Types.QHLastTradingDayType.DeliMonthAgoMonthLastTradeDay)
                {
                    //Old_QH_codename = QH_Prefixname + GetTwoLenYear(DateTime.Now) +
                    //                  GetTwoLenMonth(DateTime.Now.AddMonths(1));
                    //New_QH_codename = QH_Prefixname + GetTwoLenYear(DateTime.Now.AddYears(1)) +
                    //                  GetTwoLenMonth(DateTime.Now.AddMonths(1));

                    //使用代码规则管理器生成代码
                    Old_QH_codename = codeRule.GetCode(QH_Prefixname, DateTime.Now.Year.ToString(), DateTime.Now.AddMonths(1).Month.ToString().PadLeft(2, '0'));
                    New_QH_codename = codeRule.GetCode(QH_Prefixname, DateTime.Now.AddYears(1).Year.ToString(), DateTime.Now.AddMonths(1).Month.ToString().PadLeft(2, '0'));
                }
                else
                {
                    //Old_QH_codename = QH_Prefixname + GetTwoLenYear(DateTime.Now) + GetTwoLenMonth(DateTime.Now);
                    //New_QH_codename = QH_Prefixname + GetTwoLenYear(DateTime.Now.AddYears(1)) +
                    //                  GetTwoLenMonth(DateTime.Now);

                    //使用代码规则管理器生成代码
                    Old_QH_codename = codeRule.GetCode(QH_Prefixname, DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString().PadLeft(2, '0'));
                    New_QH_codename = codeRule.GetCode(QH_Prefixname, DateTime.Now.AddYears(1).Year.ToString(), DateTime.Now.Month.ToString().PadLeft(2, '0'));
                }

                CM_Commodity CM_Commodity = CommodityDAL.GetModel(Old_QH_codename);

                if (CM_Commodity == null)
                {
                    CM_Commodity = new CM_Commodity();
                }
                CM_Commodity.CommodityCode = New_QH_codename;
                CM_Commodity.MarketDate    = DateTime.Parse(System.DateTime.Now.AddDays(1).ToShortDateString());
                //若第二天是非交易日则顺延一天 add by 董鹏 2010-03-31
                while (!JudgmentIsTrandingDay(CM_Commodity.MarketDate, breedclass))
                {
                    CM_Commodity.MarketDate = CM_Commodity.MarketDate.AddDays(1);
                }
                //根据确认结果 期货名称等于期货代码
                CM_Commodity.CommodityName = New_QH_codename;// QH_breedclassName + New_QH_codename.Substring(New_QH_codename.Length - 4);

                CM_Commodity.BreedClassID       = breedclass;
                CM_Commodity.GoerScale          = decimal.MaxValue;
                CM_Commodity.LabelCommodityCode = null;
                CM_Commodity.StockPinYin        = null;
                CM_Commodity.turnovervolume     = null;
                CM_Commodity.IsExpired          = (int)Types.IsYesOrNo.No;  //新增期货代码时,默认代码没有过期
                CM_Commodity.ISSysDefaultCode   = (int)Types.IsYesOrNo.Yes; //新增期货代码时,默认是系统代码

                #region old
                //bool _result = CommodityDAL.Add(CM_Commodity);
                //if (!_result)
                //{
                //    LogHelper.WriteDebug("添加代码失败");
                //    return;
                //}
                ////更新代码分配表
                //TradeCommodityAssignDAL.Update(Old_QH_codename, New_QH_codename);
                ////CommodityDAL.Delete(Old_QH_codename);
                ////根据2009-7-22需求过期代码添加标识
                //int isExpired = (int)Types.IsYesOrNo.Yes;//旧代码状态设置为过期
                //bool _resultUpdate = CommodityDAL.Update(Old_QH_codename, isExpired);
                //if (!_resultUpdate)
                //{
                //    LogHelper.WriteDebug("更新代码失败");
                //}
                ////调用把期货新增的代码自动添加到可交易商品_撮合机_分配表中的方法
                //QHCodeAutoRCTradeCommodityAssign(New_QH_codename, breedclass);
                #endregion

                //前面的bool值实际上没有用处,改为直接抛出异常,并增加日志记录 update by 董鹏 2010-03-31
                LogHelper.WriteDebug("===生成新代码:" + New_QH_codename);
                //添加新代码
                CommodityDAL.Add(CM_Commodity);

                LogHelper.WriteDebug("===更新代码分配表");
                //更新代码分配表
                TradeCommodityAssignDAL.Update(Old_QH_codename, New_QH_codename);

                LogHelper.WriteDebug("===设置代码过期:" + Old_QH_codename);
                //旧代码状态设置为过期
                int isExpired = (int)Types.IsYesOrNo.Yes;
                CommodityDAL.Update(Old_QH_codename, isExpired);

                LogHelper.WriteDebug("===将代码添加到撮合机分配表中");
                //如果新代码未分配,将代码添加到撮合机分配表中
                QHCodeAutoRCTradeCommodityAssign(New_QH_codename, breedclass);

                LogHelper.WriteDebug("===新代码:" + New_QH_codename + "完成生成并分配到撮合机,旧代码:" + Old_QH_codename + "完成从撮合机分配表中移除并设为过期。");
            }
            catch (Exception ex)
            {
                string errCode = "GL-7002";
                string errMsg  = "执行更新方法QHCodeUpdata()失败";
                //VTException exception = new VTException(errCode, errMsg, ex);
                //LogHelper.WriteError(exception.ToString(), exception.InnerException);
                LogHelper.WriteError(errCode + ":" + errMsg, ex);
            }
        }
        /// <summary>
        /// 把期货新增的代码自动添加到可交易商品_撮合机_分配表中
        /// </summary>
        /// <param name="CommodityName">商品代码</param>
        /// <param name="BreedClassID">品种ID</param>
        public void QHCodeAutoRCTradeCommodityAssign(string CommodityName, int BreedClassID)
        {
            try
            {
                //交易所类型ID
                int bourseTypeID = 0;
                CM_BreedClassBLL           cM_BreedClassBLL            = new CM_BreedClassBLL();
                RC_MatchCenterBLL          rcMatchCenterBll            = new RC_MatchCenterBLL();
                RC_MatchMachineBLL         rcMatchMachineBll           = new RC_MatchMachineBLL();
                RC_TradeCommodityAssignBLL rcTradeCommodityAssignBll   = new RC_TradeCommodityAssignBLL();
                RC_MatchMachine            rcMatchMachine              = new RC_MatchMachine();
                RC_MatchCenter             rcMatchCenterModel          = new RC_MatchCenter();
                RC_TradeCommodityAssign    rcTradeCommodityAssignModel = new RC_TradeCommodityAssign();
                //根据品种ID获取交易所ID
                CM_BreedClass cmBreedClass = cM_BreedClassBLL.GetModel(BreedClassID);
                if (cmBreedClass != null)
                {
                    bourseTypeID = (int)cmBreedClass.BourseTypeID;
                }
                //获取撮合中心记录
                List <ManagementCenter.Model.RC_MatchCenter> rcMatchCenters = rcMatchCenterBll.GetListArray(string.Empty);
                //撮合中心记录存在
                if (rcMatchCenters.Count > 0)
                {
                    //根据交易所类型ID,获取撮合机记录
                    List <ManagementCenter.Model.RC_MatchMachine> rcMatchMachines = rcMatchMachineBll.GetListArray(string.Format("BourseTypeID={0}", bourseTypeID));

                    //有撮合机存在,则向可交易商品_撮合机_分配表中添加新代码
                    if (rcMatchMachines.Count > 0)
                    {
                        //判断代码分配记录已存在则退出 add by 董鹏 2010-03-31
                        if (rcTradeCommodityAssignBll.Exists(CommodityName, rcMatchMachines[0].MatchMachineID))
                        {
                            return;
                        }
                        rcTradeCommodityAssignModel.CommodityCode  = CommodityName;
                        rcTradeCommodityAssignModel.MatchMachineID = rcMatchMachines[0].MatchMachineID;
                        rcTradeCommodityAssignBll.Add(rcTradeCommodityAssignModel);
                    }
                    else
                    {
                        //撮合机不存在,则添加撮合机
                        rcMatchMachine.MatchCenterID    = rcMatchCenters[0].MatchCenterID;
                        rcMatchMachine.MatchMachineName = "自动添加的撮合机名称";//保证不重复
                        rcMatchMachine.BourseTypeID     = bourseTypeID;
                        int result = rcMatchMachineBll.Add(rcMatchMachine);
                        if (result > 0)
                        {
                            rcTradeCommodityAssignModel.CommodityCode  = CommodityName;
                            rcTradeCommodityAssignModel.MatchMachineID = rcMatchMachines[0].MatchMachineID;
                            rcTradeCommodityAssignBll.Add(rcTradeCommodityAssignModel);
                        }
                        else
                        {
                            //写错误日志
                            LogHelper.WriteDebug("添加撮合机失败");
                        }
                    }
                }
                else
                {
                    //添加撮合中心记录
                    rcMatchCenterModel.MatchCenterName = "自动添加的撮合中心名称";
                    rcMatchCenterModel.IP            = "127.0.0.1";
                    rcMatchCenterModel.Port          = 9281;
                    rcMatchCenterModel.CuoHeService  = "OrderDealRpt";
                    rcMatchCenterModel.XiaDanService = "DoOrderService";
                    int addrcMatchCResultID = rcMatchCenterBll.Add(rcMatchCenterModel);
                    if (addrcMatchCResultID > 0)
                    {
                        //撮合中心添加成功,则添加撮合机
                        rcMatchMachine.MatchCenterID    = addrcMatchCResultID; // rcMatchCenterslist[0].MatchCenterID;
                        rcMatchMachine.MatchMachineName = "自动添加的撮合机名称";        //保证不重复
                        rcMatchMachine.BourseTypeID     = bourseTypeID;
                        int resultMatchMachineID = rcMatchMachineBll.Add(rcMatchMachine);
                        //撮合机添加成功,则向可交易商品_撮合机_分配表中添加新代码
                        if (resultMatchMachineID > 0)
                        {
                            rcTradeCommodityAssignModel.CommodityCode  = CommodityName;
                            rcTradeCommodityAssignModel.MatchMachineID = resultMatchMachineID;// rcMatchMachineslist[0].MatchMachineID;
                            rcTradeCommodityAssignBll.Add(rcTradeCommodityAssignModel);
                        }
                        else
                        {
                            //写错误日志
                            LogHelper.WriteDebug("向可交易商品_撮合机_分配表中添加新代码失败");
                        }
                    }
                    else
                    {
                        //写错误日志
                        LogHelper.WriteDebug("添加撮合中心失败");
                    }
                }
            }
            catch (Exception ex)
            {
                string      errCode   = "GL-7004";
                string      errMsg    = "执行期货新增代码自动添加到可交易商品撮合机分配表中失败";
                VTException exception = new VTException(errCode, errMsg, ex);
                LogHelper.WriteError(exception.ToString(), exception.InnerException);
                return;
            }
        }