private void buttonX2_Click_1(object sender, EventArgs e) { Inspur.InspurRequestApiModel model = new Inspur.InspurRequestApiModel() { flow_id = 1, name = "wjj", remark = "dfsafsafasf" }; //var objs = XMLHelper.SerializeToXmlStr(model, false); var objs2 = XMLHelper.SerializeToXmlStr(model, true); //var objs3 = XMLHelper.XmlDeserialize<Inspur.InspurRequestApiModel>(objs); var objs4 = XMLHelper.XmlDeserialize <Inspur.InspurRequestApiModel>(objs2); }
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); } }