From 6d07bbdde780eb7e413b0dc883236dd9a76517bd Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 11 一月 2023 11:27:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/service/data/UploadService.java |   91 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 84 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/lf/server/service/data/UploadService.java b/src/main/java/com/lf/server/service/data/UploadService.java
index c237c9b..79a3524 100644
--- a/src/main/java/com/lf/server/service/data/UploadService.java
+++ b/src/main/java/com/lf/server/service/data/UploadService.java
@@ -1,13 +1,19 @@
 package com.lf.server.service.data;
 
+import com.lf.server.entity.all.BaseEntity;
 import com.lf.server.entity.all.StaticData;
 import com.lf.server.entity.data.CoordEntity;
 import com.lf.server.entity.data.DirEntity;
 import com.lf.server.entity.data.FmeLogEntity;
 import com.lf.server.entity.data.MetaFileEntity;
 import com.lf.server.entity.sys.UserEntity;
+import com.lf.server.helper.ClassHelper;
+import com.lf.server.helper.GdbHelper;
+import com.lf.server.helper.ShpHelper;
 import com.lf.server.helper.StringHelper;
+import com.lf.server.mapper.all.BasicMapper;
 import com.lf.server.mapper.data.UploadMapper;
+import com.lf.server.service.all.BaseQueryService;
 import com.lf.server.service.all.BaseUploadService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -59,12 +65,84 @@
     }
 
     /**
-     * 瑁呰浇鏁版嵁
-     *
-     * @param list
+     * 鍔犺浇鏁版嵁
      */
     private void dataLoader(List<MetaFileEntity> list) {
+        loadData(list);
+        copyFiles(list);
+    }
 
+    /**
+     * 鍔犺浇鏁版嵁
+     */
+    private void loadData(List<MetaFileEntity> list) {
+        for (MetaFileEntity mf : list) {
+            if (StaticData.SHP.equals(mf.getExtName()) || StaticData.GDB.equals(mf.getExtName())) {
+                loadSpatialData(mf);
+            }
+        }
+    }
+
+    /**
+     * 鍔犺浇绌洪棿鏁版嵁
+     */
+    private void loadSpatialData(MetaFileEntity mf) {
+        BasicMapper basicMapper = ClassHelper.getBasicMapper(mf.getEntity());
+        if (null == basicMapper) {
+            return;
+        }
+
+        String tabName = BaseQueryService.getTabName(basicMapper);
+        String className = ClassHelper.getClassName(basicMapper);
+        Class clazz = ClassHelper.getEntityClass(className);
+        if (null == clazz || null == tabName) {
+            return;
+        }
+
+        List<?> list = null;
+        if (StaticData.SHP.equals(mf.getExtName())) {
+            list = ShpHelper.readData(clazz, mf.getPath());
+        } else {
+            GdbHelper.readData(clazz, mf.getPath(), mf.getTab());
+        }
+        if (null == list || list.isEmpty()) {
+            return;
+        }
+        setCreateInfo(list, mf);
+
+        int rows = basicMapper.insertBatch(list);
+        mf.setTab(tabName);
+        mf.setRows(rows);
+    }
+
+    /**
+     * 璁剧疆鍒涘缓淇℃伅
+     */
+    private <T> void setCreateInfo(List<T> list, MetaFileEntity mf) {
+        try {
+            if (!(list.get(0) instanceof BaseEntity)) {
+                return;
+            }
+
+            for (T t : list) {
+                BaseEntity be = (BaseEntity) t;
+                be.setEventid(StringHelper.getGuid());
+                be.setParentid(mf.getEventid());
+                be.setCreateuser(mf.getCreateUser());
+                be.setCreatetime(mf.getCreatetime());
+                be.setDirid(mf.getDirid());
+                be.setDepid(mf.getDepid());
+                be.setVerid(mf.getVerid());
+            }
+        } catch (Exception ex) {
+            log.error(ex.getMessage(), ex);
+        }
+    }
+
+    /**
+     * 澶嶅埗鏂囦欢
+     */
+    private void copyFiles(List<MetaFileEntity> list) {
 
     }
 
@@ -73,12 +151,12 @@
      */
     private void checkMetaFiles(UserEntity ue, List<MetaFileEntity> list) {
         String tempPath = pathHelper.getConfig().getTempPath();
-
         for (MetaFileEntity mf : list) {
             mf.setCreateUser(ue.getId());
             mf.setDepid(ue.getDepid());
+            mf.setPath(tempPath + File.separator + mf.getPath());
 
-            File f = new File(tempPath + File.separator + mf.getPath());
+            File f = new File(mf.getPath());
             if (!f.exists()) {
                 mf.setRows(-1);
                 mf.setMsg("鏂囦欢涓嶅瓨鍦�");
@@ -129,9 +207,8 @@
         List<String> dirList = new ArrayList<>();
         List<String> pidList = new ArrayList<>();
 
-        String tempPath = pathHelper.getConfig().getTempPath();
         for (MetaFileEntity mf : xlsList) {
-            pathList.add(tempPath + File.separator + mf.getPath());
+            pathList.add(mf.getPath());
             dirList.add(mf.getDirid() + "");
             pidList.add(mf.getEventid());
         }

--
Gitblit v1.9.3