Beispiel #1
0
        /// <summary>
        /// 执行规划仿真任务
        /// </summary>
        public void DoPlanTask(PLAData Data)
        {
            JLog.Instance.AppInfo("开始调用服务");
            AircomSvr.CreateTask(Data);

            JLog.Instance.AppInfo("开始调用服务完成");
        }
Beispiel #2
0
 public void CreateTask(PLAData Data)
 {
     try
     {
         JLog.Instance.AppInfo("外部程序调用,添加仿真数据");
         Monitor.Enter(PLADatas);
         JLog.Instance.AppInfo("读取配置文件,获取XML保存目录");
         Data.Savedir = GlobalInfo.Instance.ConfigParam.XmlFileSaveDir;
         JLog.Instance.AppInfo(string.Format("保存路径{0}", Data.Savedir));
         PLADatas.Enqueue(Data);
         JLog.Instance.AppInfo(string.Format("添加到仿真数据队列,当前共计{0}", PLADatas.Count));
         Monitor.Exit(PLADatas);
     }
     catch (Exception ex)
     {
         JLog.Instance.Error(ex.Message);
     }
 }
Beispiel #3
0
 public bool CreateTask(PLAData Data)
 {
     try
     {
         JLog.Instance.AppInfo(string.Format("接收到调用请求,工程名{0}", Data.ProjectName));
         var    Dir      = AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + "XML\\";
         string FileName = string.Format("{1}SendXML{0}.xml", DateTime.Now.ToString("hh-mm-ss"), Dir);
         JLog.Instance.AppInfo(FileName);
         JFileExten.ToXML(Data, FileName);
         BLLDoTask.Instance.CreateTask(Data);
         return(true);
     }
     catch (Exception ex)
     {
         JLog.Instance.Error(ex.Message, MethodBase.GetCurrentMethod().Name,
                             MethodBase.GetCurrentMethod().Module.Name);
         return(false);
     }
 }
Beispiel #4
0
        private void DoWork()
        {
            JLog.Instance.AppInfo("仿真线程已启动.....");
            while (true)
            {
                #region 提取仿真数据
                Monitor.Enter(PLADatas);

                if (PLADatas.Count >= 1)
                {
                    _CurProcData = PLADatas.Dequeue();
                }
                else
                {
                    _CurProcData = null;
                }
                Monitor.Exit(PLADatas);
                #endregion
                if (_CurProcData != null)
                {
                    CreateNewEAWSHandle();
                    XmlFilePackageInfo xmlFilePage = new XmlFilePackageInfo();
                    //生成XML文件
                    JLog.Instance.AppInfo("开始生成XML文件....");
                    var _BuilLTEXMLResult = LteNodeBuildFactory.BuilLTEXMLFilesInterface(_CurProcData.BaseInfo, _CurProcData.CellSectors, _CurProcData.Savedir,
                                                                                         out xmlFilePage);
                    if (_BuilLTEXMLResult) //生成成功
                    {
                        #region 导入前EAWS仿真

                        string Taskname    = GetTaskName(_CurProcData.ProjectName);
                        string SchemaName  = GlobalInfo.Instance.ConfigParam.EAWSSchemaName;
                        string SaveDirName = Guid.NewGuid().ToString();
//#if WEB
//                        string SaveFileDir = HttpContext.Current.Server.MapPath(string.Format("~/FTPDir/{0}", SaveDirName));
//                        JLog.Instance.AppInfo(string.Format("FTP目录:{0}",SaveFileDir));
//#else
                        string SaveFileDir = Path.Combine(GlobalInfo.Instance.ConfigParam.FTPDir, SaveDirName);
//#endif
                        if (!System.IO.Directory.Exists(SaveFileDir))
                        {
                            System.IO.Directory.CreateDirectory(SaveFileDir);
                        }

                        if (!String.IsNullOrEmpty(Taskname))
                        {
                            //获取带号

                            var ProjectInfo = GlobalInfo.Instance.ConfigParam.ProjectNames
                                              .FirstOrDefault(
                                Fo => Fo.ProjectName == _CurProcData.ProjectName);
                            if (ProjectInfo == null)
                            {
                                JLog.Instance.AppInfo(string.Format("配置文件中没有找到工程名为:{0}的工程",
                                                                    _CurProcData.ProjectName));
                                continue;
                            }
                            var ProjNo = ProjectInfo.UtmID;
                            JLog.Instance.AppInfo(string.Format("工程投影带号为:{0}", ProjNo));
                            _CurProcData.GetExtend(_CurProcData.BaseInfo.Lng, _CurProcData.BaseInfo.Lat,
                                                   out _CurProcData.RegionBound.EastMin,
                                                   out _CurProcData.RegionBound.Eastmax,
                                                   out _CurProcData.RegionBound.NorthMin,
                                                   out _CurProcData.RegionBound.NorthMax,
                                                   _CurProcData.CoverRadius * 1000, ProjNo);
                            JLog.Instance.AppInfo(string.Format("工程坐标范围为:{0}",
                                                                _CurProcData.RegionBound.ToString()));
                            _bllEAWs.UpdateRegionREQ(_CurProcData.RegionBound, SchemaName,
                                                     Taskname);
                            DoNextTask = false;
                            _ReSet.WaitOne(600000);
                            JLog.Instance.AppInfo("_ReSet等待完成,执行下一步操作");
                            if (DoNextTask)
                            {
                                JLog.Instance.AppInfo("编辑仿真范围完成");

                                #region 启动仿真

                                DoNextTask = false;
                                JLog.Instance.AppInfo("发送启动仿真请求");
                                _bllEAWs.StartTaskREQ(SchemaName, Taskname);
                                DoNextTask = false;
                                _ReSet.WaitOne(60000);
                                if (DoNextTask)
                                {
                                    JLog.Instance.AppInfo("启动仿真任务完成,等待任务执行完成");
                                    DoNextTask = false;
                                    _ReSet.WaitOne(3600000);
                                    JLog.Instance.AppInfo("_ReSet等待完成,执行下一步操作");
                                    if (DoNextTask)
                                    {
                                        JLog.Instance.AppInfo("仿真任务执行完成");

                                        #region 压缩上传文件
                                        if (!string.IsNullOrEmpty(EAWSReleaseSaveDir))
                                        {
                                            EAWSReleaseSaveDir = string.Format(@"{0}\{1}", EAWSReleaseSaveDir,
                                                                               ProjectInfo.TaskName);
                                        }
                                        else
                                        {
                                            JLog.Instance.AppInfo("BLLEAWS返回的仿真结果保存路径为空,执行中断");
                                            continue;
                                        }
//#if WEB
//                                        EAWSReleaseSaveDir = HttpContext.Current.Server.MapPath(string.Format("~/ResultDir/{0}",_CurProcData.ProjectName));
//#endif
                                        JLog.Instance.AppInfo(string.Format("仿真结果保存路径:{0}", EAWSReleaseSaveDir));


                                        string ArarFileName = "A.rar";// string.Format(, Guid.NewGuid().ToString());
                                        ZipHelper.Zip(
                                            Path.Combine(SaveFileDir,
                                                         ArarFileName), EAWSReleaseSaveDir, "*****@*****.**",
                                            ZipHelper.CompressLevel.Level6);
                                        JLog.Instance.AppInfo("压缩文件成功");
                                        #endregion

                                        #region 导入XML文件,生成
                                        JLog.Instance.AppInfo("开始生成XML成功,开始...");
                                        //导入XML文件
                                        if (ExecuteCommand(AutoEDSInputCommand(xmlFilePage.InputLocationFileFullName, _CurProcData.ProjectName),
                                                           60000))
                                        {
                                            if (
                                                ExecuteCommand(AutoEDSInputCommand(xmlFilePage.InputLTENodeFileFullName, _CurProcData.ProjectName),
                                                               60000))
                                            {
                                                JLog.Instance.AppInfo("导入XML文件执行完成,判断导入位置数据是否成功...");
                                                if (InputXmlSuccess(_CurProcData.BaseInfo.Stationiid, _CurProcData.ProjectName))
                                                //判断导入是否成功,导入成功执行
                                                {
                                                    JLog.Instance.AppInfo("导入XML文件执行成功,启动EAWS仿真...");

                                                    #region 启动EAWS仿真

                                                    //string Taskname = GetTaskName(_CurProcData.ProjectName);
                                                    //string SchemaName = GlobalInfo.Instance.ConfigParam.EAWSSchemaName;
                                                    if (!String.IsNullOrEmpty(Taskname))
                                                    {
                                                        //获取带号
                                                        JLog.Instance.AppInfo(string.Format("工程投影带号为:{0}", ProjNo));
                                                        _CurProcData.GetExtend(_CurProcData.BaseInfo.Lng, _CurProcData.BaseInfo.Lat,
                                                                               out _CurProcData.RegionBound.EastMin,
                                                                               out _CurProcData.RegionBound.Eastmax,
                                                                               out _CurProcData.RegionBound.NorthMin,
                                                                               out _CurProcData.RegionBound.NorthMax,
                                                                               _CurProcData.CoverRadius * 1000, ProjNo);
                                                        JLog.Instance.AppInfo(string.Format("工程坐标范围为:{0}",
                                                                                            _CurProcData.RegionBound.ToString()));
                                                        _bllEAWs.UpdateRegionREQ(_CurProcData.RegionBound, SchemaName,
                                                                                 Taskname);
                                                        DoNextTask = false;
                                                        _ReSet.WaitOne(600000);
                                                        JLog.Instance.AppInfo("_ReSet等待完成,执行下一步操作");
                                                        if (DoNextTask)
                                                        {
                                                            JLog.Instance.AppInfo("编辑仿真范围完成");

                                                            #region 启动仿真

                                                            DoNextTask = false;
                                                            JLog.Instance.AppInfo("发送启动仿真请求");
                                                            _bllEAWs.StartTaskREQ(SchemaName, Taskname);
                                                            DoNextTask = false;
                                                            _ReSet.WaitOne(60000);
                                                            if (DoNextTask)
                                                            {
                                                                JLog.Instance.AppInfo("启动仿真任务完成,等待任务执行完成");
                                                                DoNextTask = false;
                                                                _ReSet.WaitOne(3600000);
                                                                JLog.Instance.AppInfo("_ReSet等待完成,执行下一步操作");
                                                                if (DoNextTask)
                                                                {
                                                                    JLog.Instance.AppInfo("仿真任务执行完成");

                                                                    #region 压缩上传文件
                                                                    if (!string.IsNullOrEmpty(EAWSReleaseSaveDir))
                                                                    {
                                                                        EAWSReleaseSaveDir = string.Format(@"{0}\{1}", EAWSReleaseSaveDir,
                                                                                                           ProjectInfo.TaskName);
                                                                    }
                                                                    else
                                                                    {
                                                                        JLog.Instance.AppInfo("BLLEAWS返回的仿真结果保存路径为空,执行中断");
                                                                        continue;
                                                                    }
                                                                    JLog.Instance.AppInfo(string.Format("仿真结果保存路径:{0}", EAWSReleaseSaveDir));
                                                                    string BrarFileName = "B.rar";
                                                                    ZipHelper.Zip(
                                                                        Path.Combine(SaveFileDir,
                                                                                     BrarFileName), EAWSReleaseSaveDir, "*****@*****.**",
                                                                        ZipHelper.CompressLevel.Level6);
                                                                    #endregion
                                                                    Thread.Sleep(60000);
                                                                    #region 解压文件
                                                                    RepackageFile(SaveFileDir);
                                                                    #endregion

                                                                    #region 调用浪潮接口上传
                                                                    JLog.Instance.AppInfo("通知浪潮下载");
                                                                    Inspur.InspurRequestApiModel sendmodel = new Inspur.InspurRequestApiModel()
                                                                    {
                                                                        flow_id = _CurProcData.WorkOrder,
                                                                        name    = SaveDirName,
                                                                        remark  = ""
                                                                    };
                                                                    var sendxml  = XMLHelper.SerializeToXmlStr(sendmodel, true);
                                                                    var s        = new Inspur.InspurService.TaircomServiceImplService();
                                                                    var recxml   = s.SycAirCom(sendxml);
                                                                    var recModel =
                                                                        XMLHelper.XmlDeserialize <Inspur.InspurResponeseApiModel>(
                                                                            recxml);
                                                                    if (recModel.is_archive.Equals("0"))
                                                                    {
                                                                        JLog.Instance.AppInfo("浪潮返回调用成功消息");
                                                                    }
                                                                    else
                                                                    {
                                                                        JLog.Instance.AppInfo("浪潮返回调用失败消息");
                                                                    }
                                                                    #endregion

                                                                    if (_CurProcData.BaseInfo.SaveType == EnumSaveType.Delete)
                                                                    //需要删除基站的,执行删除程序
                                                                    {
                                                                        JLog.Instance.AppInfo("执行删除xml操作");

                                                                        #region 执行删除xml操作

                                                                        if (
                                                                            !ExecuteCommand(
                                                                                AutoEDSDeleteCommand(
                                                                                    xmlFilePage.DeleteLTENodeFileFullName,
                                                                                    _CurProcData.ProjectName),
                                                                                60000))
                                                                        {
                                                                            JLog.Instance.AppInfo("执行删除xml操作失败");
                                                                        }
                                                                        else
                                                                        {
                                                                            JLog.Instance.AppInfo("执行删除xml操作成功");
                                                                            if (!ExecuteCommand(AutoEDSDeleteCommand(xmlFilePage.DeleteLocationFileFullName, _CurProcData.ProjectName), 60000))
                                                                            {
                                                                                JLog.Instance.AppInfo("执行删除xml操作失败");
                                                                            }
                                                                        }
                                                                        #endregion
                                                                    }
                                                                    continue;
                                                                }
                                                                JLog.Instance.Info("仿真任务执行失败,无需执行下一步,退出");
                                                                continue;
                                                            }
                                                            JLog.Instance.Info("启动仿真失败,无需执行下一步,退出");
                                                            continue;
                                                            #endregion
                                                        }
                                                        JLog.Instance.AppInfo("编辑仿真范围失败,无需执行下一步");
                                                        continue;
                                                    }
                                                    JLog.Instance.AppInfo("配置文件中没有找到相应的工程信息,中断");
                                                    continue;
                                                    #endregion
                                                }
                                                JLog.Instance.AppInfo("导入XML文件执行失败,不执行仿真任务");
                                                continue;
                                            }
                                            JLog.Instance.AppInfo("执行导入LTENode命令失败");
                                            continue;
                                        }
                                        JLog.Instance.AppInfo("执行导入location命令失败");
                                        continue;
                                        #endregion
                                    }
                                    JLog.Instance.Info("仿真任务执行失败,无需执行下一步,退出");
                                    continue;
                                }
                                JLog.Instance.Info("启动仿真失败,无需执行下一步,退出");
                                continue;
                                #endregion
                            }
                            JLog.Instance.AppInfo("编辑仿真范围失败,无需执行下一步");
                            continue;
                        }
                        JLog.Instance.AppInfo("配置文件中没有找到相应的工程信息,中断");
                        continue;
                        #endregion

                        #region 导入XML文件,生成
                        //JLog.Instance.AppInfo("开始生成XML成功,开始...");
                        ////导入XML文件
                        //if (ExecuteCommand(AutoEDSInputCommand(xmlFilePage.InputLocationFileFullName, _CurProcData.ProjectName),
                        //    60000))
                        //{
                        //    if (
                        //        ExecuteCommand(AutoEDSInputCommand(xmlFilePage.InputLTENodeFileFullName, _CurProcData.ProjectName),
                        //            60000))
                        //    {
                        //        JLog.Instance.AppInfo("导入XML文件执行完成,判断导入位置数据是否成功...");
                        //        if (InputXmlSuccess(_CurProcData.BaseInfo.StationId, _CurProcData.ProjectName))
                        //        //判断导入是否成功,导入成功执行
                        //        {
                        //            JLog.Instance.AppInfo("导入XML文件执行成功,启动EAWS仿真...");

                        //            #region 启动EAWS仿真

                        //            //string Taskname = GetTaskName(_CurProcData.ProjectName);
                        //            //string SchemaName = GlobalInfo.Instance.ConfigParam.EAWSSchemaName;
                        //            if (!String.IsNullOrEmpty(Taskname))
                        //            {
                        //                //获取带号

                        //                var ProjectInfo = GlobalInfo.Instance.ConfigParam.ProjectNames
                        //                    .FirstOrDefault(
                        //                        Fo => Fo.ProjectName == _CurProcData.ProjectName);
                        //                if (ProjectInfo == null)
                        //                {

                        //                    JLog.Instance.AppInfo(string.Format("配置文件中没有找到工程名为:{0}的工程",
                        //                        _CurProcData.ProjectName));
                        //                    continue;
                        //                }
                        //                var ProjNo = ProjectInfo.UtmID;
                        //                JLog.Instance.AppInfo(string.Format("工程投影带号为:{0}", ProjNo));
                        //                _CurProcData.GetExtend(_CurProcData.BaseInfo.Lng, _CurProcData.BaseInfo.Lat,
                        //                    out _CurProcData.RegionBound.EastMin,
                        //                    out _CurProcData.RegionBound.Eastmax,
                        //                    out _CurProcData.RegionBound.NorthMin,
                        //                    out _CurProcData.RegionBound.NorthMax,
                        //                    _CurProcData.CoverRadius * 1000, ProjNo);
                        //                JLog.Instance.AppInfo(string.Format("工程坐标范围为:{0}",
                        //                    _CurProcData.RegionBound.ToString()));
                        //                _bllEAWs.UpdateRegionREQ(_CurProcData.RegionBound, SchemaName,
                        //                    Taskname);
                        //                DoNextTask = false;
                        //                _ReSet.WaitOne(600000);
                        //                JLog.Instance.AppInfo("_ReSet等待完成,执行下一步操作");
                        //                if (DoNextTask)
                        //                {
                        //                    JLog.Instance.AppInfo("编辑仿真范围完成");

                        //                    #region 启动仿真

                        //                    DoNextTask = false;
                        //                    JLog.Instance.AppInfo("发送启动仿真请求");
                        //                    _bllEAWs.StartTaskREQ(SchemaName, Taskname);
                        //                    DoNextTask = false;
                        //                    _ReSet.WaitOne(60000);
                        //                    if (DoNextTask)
                        //                    {
                        //                        JLog.Instance.AppInfo("启动仿真任务完成,等待任务执行完成");
                        //                        DoNextTask = false;
                        //                        _ReSet.WaitOne(3600000);
                        //                        JLog.Instance.AppInfo("_ReSet等待完成,执行下一步操作");
                        //                        if (DoNextTask)
                        //                        {
                        //                            JLog.Instance.AppInfo("仿真任务执行完成");

                        //                            #region 压缩上传文件
                        //                            if (!string.IsNullOrEmpty(EAWSReleaseSaveDir))
                        //                            {
                        //                                EAWSReleaseSaveDir = string.Format(@"{0}\{1}", EAWSReleaseSaveDir,
                        //                                      ProjectInfo.TaskName);
                        //                            }
                        //                            else
                        //                            {
                        //                                JLog.Instance.AppInfo("BLLEAWS返回的仿真结果保存路径为空,执行中断");
                        //                                continue;

                        //                            }
                        //                            JLog.Instance.AppInfo(string.Format("仿真结果保存路径:{0}", EAWSReleaseSaveDir));
                        //                            string rarFileName = string.Format("{0}.rar", Guid.NewGuid().ToString());
                        //                            ZipHelper.Zip(
                        //                                Path.Combine(GlobalInfo.Instance.ConfigParam.FTPDir,
                        //                                    rarFileName), EAWSReleaseSaveDir, string.Empty,
                        //                                ZipHelper.CompressLevel.Level6);
                        //                            #endregion

                        //                            #region 调用浪潮接口上传
                        //                            JLog.Instance.AppInfo("压缩文件,上传至浪潮");
                        //                            Inspur.InspurRequestApiModel sendmodel = new Inspur.InspurRequestApiModel()
                        //                            {
                        //                                flow_id = _CurProcData.WorkOrder,
                        //                                name = rarFileName,
                        //                                remark = ""
                        //                            };
                        //                            var sendxml = XMLHelper.SerializeToXmlStr(sendmodel, true);
                        //                            var s = new Inspur.InspurService.TaircomServiceImplService();
                        //                            var recxml = s.SycAirCom(sendxml);
                        //                            var recModel =
                        //                                XMLHelper.XmlDeserialize<Inspur.InspurResponeseApiModel>(
                        //                                    recxml);
                        //                            if (recModel.is_archive.Equals("0"))
                        //                            {
                        //                                JLog.Instance.AppInfo("浪潮返回调用成功消息");
                        //                            }
                        //                            else
                        //                            {
                        //                                JLog.Instance.AppInfo("浪潮返回调用失败消息");
                        //                            }
                        //                            #endregion

                        //                            if (_CurProcData.BaseInfo.SaveType == EnumSaveType.Delete)
                        //                            //需要删除基站的,执行删除程序
                        //                            {
                        //                                JLog.Instance.AppInfo("执行删除xml操作");

                        //                                #region 执行删除xml操作

                        //                                if (
                        //                                    !ExecuteCommand(
                        //                                        AutoEDSDeleteCommand(
                        //                                            xmlFilePage.DeleteLTENodeFileFullName,
                        //                                            _CurProcData.ProjectName),
                        //                                        60000))
                        //                                {
                        //                                    JLog.Instance.AppInfo("执行删除xml操作失败");
                        //                                }
                        //                                else
                        //                                {
                        //                                    JLog.Instance.AppInfo("执行删除xml操作成功");

                        //                                }
                        //                                #endregion
                        //                            }
                        //                            continue;
                        //                        }
                        //                        JLog.Instance.Info("仿真任务执行失败,无需执行下一步,退出");
                        //                        continue;
                        //                    }
                        //                    JLog.Instance.Info("启动仿真失败,无需执行下一步,退出");
                        //                    continue;
                        //                    #endregion
                        //                }
                        //                JLog.Instance.AppInfo("编辑仿真范围失败,无需执行下一步");
                        //                continue;
                        //            }
                        //            JLog.Instance.AppInfo("配置文件中没有找到相应的工程信息,中断");
                        //            continue;
                        //            #endregion

                        //        }
                        //        JLog.Instance.AppInfo("导入XML文件执行失败,不执行仿真任务");
                        //        continue;

                        //    }
                        //    JLog.Instance.AppInfo("执行导入LTENode命令失败");
                        //    continue;

                        //}
                        //JLog.Instance.AppInfo("执行导入location命令失败");
                        //continue;
                        #endregion
                    }
                    JLog.Instance.AppInfo("开始生成XML文件失败");
                    continue;
                }
                JLog.Instance.AppInfo("等待.......");
                Thread.Sleep(40000);
            }
        }
Beispiel #5
0
 public bool CreateTask(PLAData Data)
 {
     JLog.Instance.AppInfo("收到请求.....");
     return(true);
 }