| | |
| | | string ip = Tools.GetLocalIP(); |
| | | foreach (SysTask task in tasks) |
| | | { |
| | | if (ip != task.ip) continue; |
| | | if (ip != task.ip || task.status > 1) continue; |
| | | |
| | | task.err = KillProcess(task.id); |
| | | task.status = 3; |
| | |
| | | if (File.Exists(jsonFile)) File.Delete(jsonFile); |
| | | |
| | | WriteText(configFile, string.Format(JobConfig, outPath.Replace("\\", "\\\\"))); |
| | | ExecNavisworks(modelFile, configFile); |
| | | SysTask task = TaskDBHelper.CreateTask(args, meta, "BIM"); |
| | | ExecNavisworks(task, modelFile, configFile); |
| | | |
| | | File.Delete(configFile); |
| | | if (File.Exists(jsonFile)) |
| | |
| | | /// <summary> |
| | | /// 运行Navisworks |
| | | /// </summary> |
| | | public static void ExecNavisworks(string modelFile, string configFile) |
| | | public static void ExecNavisworks(SysTask task, string modelFile, string configFile) |
| | | { |
| | | Process p = null; |
| | | try |
| | |
| | | |
| | | // 启动进程 |
| | | p = Process.Start(RoamerExe, args); |
| | | task.pid = p.Id; |
| | | task.id = TaskDBHelper.Insert(task); |
| | | |
| | | // 让组件等候相关的进程进入闲置状态 |
| | | p.WaitForInputIdle(); |
| | | |
| | | // 让组件无限期地等待关联进程退出 |
| | | p.WaitForExit(); |
| | | |
| | | task.status = 2; |
| | | TaskDBHelper.Update(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogOut.Error(ex.Message + "\r\n" + ex.StackTrace); |
| | | if (task.id > 0 && task.status < 2) |
| | | { |
| | | task.err = ex.Message; |
| | | task.status = 4; |
| | | TaskDBHelper.Update(task); |
| | | } |
| | | } |
| | | finally |
| | | { |
| | |
| | | { |
| | | private static string pyFile; |
| | | |
| | | /// <summary> |
| | | /// 默认最大级别 |
| | | /// </summary> |
| | | public static int DEFAULT_MAX_LEVEL = 16; |
| | | |
| | | /// <summary> |
| | | /// 默认最大文件大小:5GB |
| | | /// </summary> |
| | | public static long DDEFAULT_MAX_SIZE = 5L * 1024 * 1024 * 1024; |
| | | |
| | | /// <summary> |
| | | /// 获取Python文件 |
| | |
| | | /// </summary> |
| | | private static int GetTerrainMaxLevel(XYZArgs args, string tifFile) |
| | | { |
| | | FileInfo fi = new FileInfo(tifFile); |
| | | if (fi.Length > DDEFAULT_MAX_SIZE) return DEFAULT_MAX_LEVEL; |
| | | |
| | | string ctbPath = Tools.GetSetting("ctbPath"); |
| | | string dirPath = GetTerrainPath(args.dircode); |
| | | |
| | |
| | | } |
| | | if (File.Exists(layerJson)) File.Delete(layerJson); |
| | | |
| | | return level; |
| | | return level > DEFAULT_MAX_LEVEL ? DEFAULT_MAX_LEVEL : level; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// </summary> |
| | | public static int Insert(SysTask task) |
| | | { |
| | | string sql = "insert into lf.sys_task (name, status, type, descr, err, ip, pid, gids, depcode, dircode, create_user) values (@name, @status, @type, @descr, @err, @ip, @pid, @gids, @depcode, @dircode, @create_user)"; |
| | | string sql = "insert into lf.sys_task (name, status, type, descr, err, ip, pid, gids, depcode, dircode, create_user) values (@name, @status, @type, @descr, @err, @ip, @pid, @gids, @depcode, @dircode, @create_user) returning id"; |
| | | |
| | | List<DbParameter> list = Tools.GetParams<SysTask>(sql, task); |
| | | object obj = Tools.DBHelper.GetScalar(sql, list.ToArray()); |
| | |
| | | /// <summary> |
| | | /// 创建任务实体类 |
| | | /// </summary> |
| | | public static SysTask CreateTask(XYZArgs args) |
| | | public static SysTask CreateTask(XYZArgs args, string type) |
| | | { |
| | | SysTask task = new SysTask(); |
| | | task.name = args.name; |
| | | task.status = 0; |
| | | task.status = 1; |
| | | task.type = type; |
| | | task.ip = Tools.GetLocalIP(); |
| | | task.gids = string.Join(",", args.ids.ToArray()); |
| | | task.depcode = args.depcode; |
| | |
| | | /// <summary> |
| | | /// 创建任务实体类 |
| | | /// </summary> |
| | | public static SysTask CreateTask(XYZArgs args, SysMeta meta) |
| | | public static SysTask CreateTask(XYZArgs args, SysMeta meta, string type) |
| | | { |
| | | SysTask task = new SysTask(); |
| | | task.name = meta.name; |
| | | task.status = 0; |
| | | task.status = 1; |
| | | task.type = type; |
| | | task.ip = Tools.GetLocalIP(); |
| | | task.gids = meta.id.ToString(); |
| | | task.depcode = args.depcode; |
| | |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| | | <script src="js/jquery.1.12.4.js"></script> |
| | | <script> |
| | | var token = "bc381c1e-83cb-4956-a1e4-a624b08225f1"; |
| | | var token = "04f00381-cefa-4a57-8b08-899d02814545"; |
| | | |
| | | // Ajax |
| | | function ajax(url, type, data, dataType, contentType, fn) { |