From 7601dfc7ed26319174e415b41306339cf534075a Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期五, 17 三月 2023 10:47:26 +0800
Subject: [PATCH] 1

---
 ExportMap/cs/SGUtils.cs                    |   49 ++++++++++++++++++++++++++++++-------------------
 ExportMap/Controllers/ConvertController.cs |    6 ++++--
 2 files changed, 34 insertions(+), 21 deletions(-)

diff --git a/ExportMap/Controllers/ConvertController.cs b/ExportMap/Controllers/ConvertController.cs
index 5a270ac..8d37944 100644
--- a/ExportMap/Controllers/ConvertController.cs
+++ b/ExportMap/Controllers/ConvertController.cs
@@ -86,10 +86,12 @@
                 }
 
                 SGUtils utils = new SGUtils();
-                int count = utils.Release(args);
+
+                string err = null;
+                int count = utils.Release(args, ref err);
                 if (0 == count)
                 {
-                    return ResponseMsg<int>.fail("澶辫触");
+                    return ResponseMsg<int>.fail(null == err ? "澶辫触" : err);
                 }
 
                 return ResponseMsg<int>.success("鎴愬姛", count);
diff --git a/ExportMap/cs/SGUtils.cs b/ExportMap/cs/SGUtils.cs
index 1d61b10..048f066 100644
--- a/ExportMap/cs/SGUtils.cs
+++ b/ExportMap/cs/SGUtils.cs
@@ -63,17 +63,19 @@
         /// </summary>
         /// <param name="args">XYZ鍙傛暟</param>
         /// <returns>琛屾暟</returns>
-        public int Release(XYZArgs args)
+        public int Release(XYZArgs args, ref string err)
         {
             List<SysMeta> list = XYZUtils.selectMetas(args.ids, "and type in ('mpt', '3dml')");
             if (null == list || list.Count == 0) return 0;
 
-            int maxId = GetMaxId();
+            int maxId = GetMaxId(); maxId = 411576; // 
             RomoveNoneFiles(list);
             if (list.Count == 0) return 0;
 
-            LinkFiles(list);
+            err = LinkFiles(list);
+            if (!string.IsNullOrEmpty(err)) return 0;
 
+            int count = 0;
             for (int i = 0; i < 25; i++)
             {
                 Thread.Sleep(3000);
@@ -81,16 +83,17 @@
                 List<SpatialItem> items = SelectItems(maxId);
                 if (null == items || items.Count == 0) continue;
 
-                //
+                count = items.Count;
+                break;
             }
 
-            return 0;
+            return count;
         }
 
         /// <summary>
         /// 鑾峰彇鏈�澶D鍊�
         /// </summary>
-        public static int GetMaxId()
+        public int GetMaxId()
         {
             Object obj = SQLiteHelper.ExecuteScalar("select max(id) from SpatialItems");
 
@@ -102,7 +105,7 @@
         /// </summary>
         /// <param name="maxId">鏈�澶D鍊�</param>
         /// <returns>SG鏁版嵁椤�</returns>
-        public static List<SpatialItem> SelectItems(int maxId)
+        public List<SpatialItem> SelectItems(int maxId)
         {
             string sql = string.Format("select id, Name, RelativePath, LayerName, DataSourceId, Description from SpatialItems where id > {0} order by id desc", maxId);
 
@@ -165,9 +168,9 @@
 
             }
 
-            string str = Tool.ExecCmd(list);
+            if (0 == list.Count) return "娌℃湁闇�瑕佹洿鏂板彂甯冪殑鏂囦欢";
 
-            return str;
+            return Tool.ExecCmd(list);
         }
 
         /// <summary>
@@ -178,11 +181,16 @@
             string uploadFolder = Tool.GetSetting("uploadFolder");
             string d3mlFolder = Tool.GetSetting("3dmlFolder");
 
-            string d3ml = Path.Combine(uploadFolder, meta.path);
-            string targetD3ml = Path.Combine(d3mlFolder, meta.id.ToString(), meta.path);
+            string targetFolder = Path.Combine(d3mlFolder, meta.id.ToString());
+            if (!Directory.Exists(targetFolder)) Directory.CreateDirectory(targetFolder);
 
-            string link = string.Format("mklink \"{0}\" \"{1}\"", targetD3ml, d3ml); // /H
-            list.Add(link);
+            string d3ml = Path.Combine(uploadFolder, meta.path);
+            string targetD3ml = Path.Combine(d3mlFolder, meta.id.ToString(), meta.name);
+
+            if (!File.Exists(targetD3ml))
+            {
+                list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetD3ml, d3ml)); // /H
+            }
         }
 
         /// <summary>
@@ -193,18 +201,21 @@
             string uploadFolder = Tool.GetSetting("uploadFolder");
             string mptFolder = Tool.GetSetting("mptFolder");
 
+            string targetFolder = Path.Combine(mptFolder, meta.id.ToString());
+            if (!Directory.Exists(targetFolder)) Directory.CreateDirectory(targetFolder);
+
             string mpt = Path.Combine(uploadFolder, meta.path);
-            string targetMpt = Path.Combine(mptFolder, meta.id.ToString(), meta.path);
+            string targetMpt = Path.Combine(mptFolder, meta.id.ToString(), meta.name);
 
             string midx = Path.Combine(uploadFolder, meta.path.Replace(".mpt", ".midx"));
-            string targetMidx = Path.Combine(mptFolder, meta.id.ToString(), meta.path.Replace(".mpt", ".midx"));
+            string targetMidx = Path.Combine(mptFolder, meta.id.ToString(), meta.name.Replace(".mpt", ".midx"));
 
             string strmi = Path.Combine(uploadFolder, meta.path.Replace(".mpt", ".strmi"));
-            string targetStrmi = Path.Combine(mptFolder, meta.id.ToString(), meta.path.Replace(".mpt", ".strmi"));
+            string targetStrmi = Path.Combine(mptFolder, meta.id.ToString(), meta.name.Replace(".mpt", ".strmi"));
 
-            list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetMpt, mpt));
-            list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetMidx, midx));
-            list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetStrmi, strmi));
+            if (!File.Exists(targetMpt)) list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetMpt, mpt));
+            if (!File.Exists(targetMidx)) list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetMidx, midx));
+            if (!File.Exists(targetStrmi)) list.Add(string.Format("mklink \"{0}\" \"{1}\"", targetStrmi, strmi));
         }
     }
 }

--
Gitblit v1.9.3