From 5ea36ab02c1f1fcf7195d3850d12e9a2072441ce Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 03 八月 2023 09:34:47 +0800
Subject: [PATCH] 1

---
 ExportMap/db/TaskDBHelper.cs |   12 +++++++-----
 ExportMap/cs/CommonUtils.cs  |    2 +-
 ExportMap/cs/ConvertUtils.cs |   16 ++++++++++++++--
 ExportMap/cs/TerraUtils.cs   |   13 ++++++++++++-
 ExportMap/export.html        |    2 +-
 5 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/ExportMap/cs/CommonUtils.cs b/ExportMap/cs/CommonUtils.cs
index 0ad0155..682e148 100644
--- a/ExportMap/cs/CommonUtils.cs
+++ b/ExportMap/cs/CommonUtils.cs
@@ -59,7 +59,7 @@
                 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;
diff --git a/ExportMap/cs/ConvertUtils.cs b/ExportMap/cs/ConvertUtils.cs
index 659e93a..93e2d2e 100644
--- a/ExportMap/cs/ConvertUtils.cs
+++ b/ExportMap/cs/ConvertUtils.cs
@@ -60,7 +60,8 @@
                 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))
@@ -78,7 +79,7 @@
         /// <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
@@ -90,16 +91,27 @@
 
                 // 鍚姩杩涚▼
                 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
             {
diff --git a/ExportMap/cs/TerraUtils.cs b/ExportMap/cs/TerraUtils.cs
index c4b370a..607d622 100644
--- a/ExportMap/cs/TerraUtils.cs
+++ b/ExportMap/cs/TerraUtils.cs
@@ -13,7 +13,15 @@
     {
         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鏂囦欢
@@ -211,6 +219,9 @@
         /// </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);
 
@@ -231,7 +242,7 @@
             }
             if (File.Exists(layerJson)) File.Delete(layerJson);
 
-            return level;
+            return level > DEFAULT_MAX_LEVEL ? DEFAULT_MAX_LEVEL : level;
         }
 
         /// <summary>
diff --git a/ExportMap/db/TaskDBHelper.cs b/ExportMap/db/TaskDBHelper.cs
index f447dc8..4acb91e 100644
--- a/ExportMap/db/TaskDBHelper.cs
+++ b/ExportMap/db/TaskDBHelper.cs
@@ -29,7 +29,7 @@
         /// </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());
@@ -53,11 +53,12 @@
         /// <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;
@@ -70,11 +71,12 @@
         /// <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;
diff --git a/ExportMap/export.html b/ExportMap/export.html
index c32152a..573f8ea 100644
--- a/ExportMap/export.html
+++ b/ExportMap/export.html
@@ -10,7 +10,7 @@
   <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) {

--
Gitblit v1.9.3