/// <summary> /// 执行规划仿真任务 /// </summary> public void DoPlanTask(PLAData Data) { JLog.Instance.AppInfo("开始调用服务"); AircomSvr.CreateTask(Data); JLog.Instance.AppInfo("开始调用服务完成"); }
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); } }
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); } }
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); } }
public bool CreateTask(PLAData Data) { JLog.Instance.AppInfo("收到请求....."); return(true); }