gushoubang 9 месяцев назад
Родитель
Сommit
36c9475e67

+ 8 - 1
README.md

@@ -6,4 +6,11 @@
 
 ## 1.污水厂数据
 1.污水处理厂的数据,需要提供空间字段,缓冲区字段
-2.通过缓冲区字段生成缓冲区导入到数据库
+2.通过缓冲区字段生成缓冲区导入到数据库
+
+## 2.插入表格数据
+```sql
+INSERT INTO "base"."t_table" ( "id", "table_name", "table_describe", "table_type", "is_exist", "create_time", "delete_time", "create_user_id", "delete_user_id", "version" )
+VALUES
+( replace(uuid_generate_v4()::text, '-', ''), 'TB_TYYDCS', '体育运动场所', 0, 0, now(), NULL, '1', NULL, '20240711172001' );
+```

+ 14 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/analyse/GetTableDateController.java

@@ -1,5 +1,6 @@
 package com.onemap.analyse.controller.analyse;
 
+import com.onemap.analyse.domain.vo.RawTableLengthVo;
 import com.onemap.analyse.domain.vo.RawTableVo;
 import com.onemap.analyse.domain.vo.TargetTableVo;
 import com.onemap.analyse.service.ITableDateService;
@@ -48,4 +49,17 @@ public class GetTableDateController {
         List<Map<String, Object>> mapInfos = tableDateService.getTargetTable(targetTableVo);
         return RequestResult.success(mapInfos);
     }
+
+    /**
+     * 原始表格的数据
+     *
+     * @param rawTableLengthVo
+     * @return
+     */
+    @PostMapping("/raw_table_length")
+    @Slave
+    public RequestResult rawTableLength(@RequestBody RawTableLengthVo rawTableLengthVo) {
+        List<Map<String, Object>> mapInfos = tableDateService.getRawTableLength(rawTableLengthVo);
+        return RequestResult.success(mapInfos);
+    }
 }

+ 17 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/vo/RawTableLengthVo.java

@@ -0,0 +1,17 @@
+package com.onemap.analyse.domain.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 获取原始表的信息
+ */
+@Data
+public class RawTableLengthVo {
+    private String rawTableName; // 原始表名
+    private List<String> ids;  // id
+    private List<String> columns; // 列名
+    private Boolean siweiLength; // 是否需要计算面积
+    private String ewkt;
+}

+ 3 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/vector/TableDataMapper.java

@@ -1,5 +1,6 @@
 package com.onemap.analyse.mapper.vector;
 
+import com.onemap.analyse.domain.vo.RawTableLengthVo;
 import com.onemap.analyse.domain.vo.RawTableVo;
 import com.onemap.analyse.domain.vo.TargetTableVo;
 import com.onemap.common.datasource.annotation.Slave;
@@ -11,5 +12,7 @@ import java.util.Map;
 public interface TableDataMapper {
     List<Map<String, Object>> getRawTable(RawTableVo rawTableVo);
 
+    List<Map<String, Object>> getRawTableLength(RawTableLengthVo rawTableLengthVo);
+
     List<Map<String, Object>> getTargetTable(TargetTableVo targetTableVo);
 }

+ 3 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/ITableDateService.java

@@ -1,5 +1,6 @@
 package com.onemap.analyse.service;
 
+import com.onemap.analyse.domain.vo.RawTableLengthVo;
 import com.onemap.analyse.domain.vo.RawTableVo;
 import com.onemap.analyse.domain.vo.TargetTableVo;
 
@@ -12,5 +13,7 @@ import java.util.Map;
 public interface ITableDateService {
     List<Map<String, Object>> getRawTable(RawTableVo rawTableVo);
 
+    List<Map<String, Object>> getRawTableLength(RawTableLengthVo rawTableLengthVo);
+
     List<Map<String, Object>> getTargetTable(TargetTableVo targetTableVo);
 }

+ 7 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/TableDateServiceImpl.java

@@ -1,5 +1,6 @@
 package com.onemap.analyse.service.impl;
 
+import com.onemap.analyse.domain.vo.RawTableLengthVo;
 import com.onemap.analyse.domain.vo.RawTableVo;
 import com.onemap.analyse.domain.vo.TargetTableVo;
 import com.onemap.analyse.mapper.vector.TableDataMapper;
@@ -7,6 +8,7 @@ import com.onemap.analyse.service.ITableDateService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
@@ -21,6 +23,11 @@ public class TableDateServiceImpl implements ITableDateService {
         return list;
     }
 
+    @Override
+    public List<Map<String, Object>> getRawTableLength(RawTableLengthVo rawTableLengthVo) {
+        return tableDataMapper.getRawTableLength(rawTableLengthVo);
+    }
+
     @Override
     public List<Map<String, Object>> getTargetTable(TargetTableVo targetTableVo) {
         List<Map<String, Object>> list = tableDataMapper.getTargetTable(targetTableVo);

+ 27 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/vector/TableDateMapper.xml

@@ -41,6 +41,33 @@
             </foreach>
         </if>
     </select>
+    <select id="getRawTableLength" resultType="Map">
+        SELECT
+        <foreach item="column" collection="columns" separator=",">
+            <choose>
+                <when test="column == 'geom'">
+                    public.st_asewkt(${column}) AS geom
+                </when>
+                <otherwise>
+                    ${column}
+                </otherwise>
+            </choose>
+        </foreach>
+        <if test="siweiLength == true">
+            , public.st_distance(
+            public.st_geomfromewkt(#{ewkt})::public.geography,geom::public.geography
+            ) AS siweiLength
+        </if>
+        FROM
+        "${rawTableName}"
+        <if test="ids != null and ids.size()>0 ">
+            WHERE
+            (id::varchar) IN
+            <foreach item="id" collection="ids" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+    </select>
 
     <select id="getTargetTable" resultType="Map">
         SELECT