Jelajahi Sumber

根据id筛选

gushoubang 10 bulan lalu
induk
melakukan
bb5bb14d48

+ 5 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/query/GhdkaFilter.java

@@ -1,12 +1,15 @@
 package com.onemap.analyse.domain.query;
 
+import com.onemap.analyse.domain.FzxzXzyzDTO;
 import lombok.Data;
 
+import java.util.List;
+
 /**
  * 规划选址地块筛选条件
  */
 @Data
 public class GhdkaFilter {
-    // 筛选区域,wkt格式
-    String geom;
+    List<Integer> idList;
+    List<FzxzXzyzDTO> xzyxList;
 }

+ 5 - 1
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/vector/GhdkaMapper.java

@@ -1,10 +1,14 @@
 package com.onemap.analyse.mapper.vector;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.onemap.analyse.domain.FzxzXzyzDTO;
 import com.onemap.analyse.domain.query.GhdkaFilter;
 import com.onemap.analyse.domain.vector.GhdkaDTO;
 
 import java.util.List;
+
 public interface GhdkaMapper extends BaseMapper<GhdkaDTO> {
-    List<Integer> filter(GhdkaFilter ghdkaFilter);
+    List<Integer> getIdByGeom(String geom);
+
+    List<Integer> getIdByFilter(GhdkaFilter ghdkaFilter);
 }

+ 13 - 4
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -135,15 +135,24 @@ public class FzssServiceImpl implements IFzssService {
     @Slave
     public RequestResult startSchedule(FzxzCalc fzxzCalc) {
         FzxzDTO fzxzDTO = fzxzCalc.getFzxzDTO();
-        GhdkaFilter ghdkaFilter = new GhdkaFilter();
+        //
+        String geoWkt = null;
         if (fzxzDTO.getFwlx() == 1) {
             // 绘制
-            String geoWkt = fzxzDTO.getXzfw();
-            ghdkaFilter.setGeom(geoWkt);
+            geoWkt = fzxzDTO.getXzfw();
+            // ghdkaFilter.setGeom(geoWkt);
         } else if (fzxzDTO.getFwlx() == 2) {
             // shp文件
         }
-        List<Integer> ids = ghdkaMapper.filter(ghdkaFilter);
+
+        // 1.区域筛选
+        List<Integer> ids = ghdkaMapper.getIdByGeom(geoWkt);
+
+        // 2.条件筛选
+        GhdkaFilter ghdkaFilter = new GhdkaFilter();
+        ghdkaFilter.setIdList(ids);
+        ghdkaFilter.setXzyxList(fzxzCalc.getXzyxList());
+        ids = ghdkaMapper.getIdByFilter(ghdkaFilter);
         return RequestResult.success(ids);
     }
 

+ 11 - 1
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/vector/GhdkaMapper.xml

@@ -3,9 +3,19 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.onemap.analyse.mapper.vector.GhdkaMapper">
-    <select id="filter" parameterType="com.onemap.analyse.domain.query.GhdkaFilter" resultType="java.lang.Integer">
+    <select id="getIdByGeom" parameterType="String" resultType="java.lang.Integer">
         SELECT id
         FROM "GHDKA"
         WHERE public.st_contains(public.st_geometryfromtext(#{geom}, 4326), geom);
     </select>
+
+    <select id="getIdByFilter" parameterType="com.onemap.analyse.domain.query.GhdkaFilter" resultType="java.lang.Integer">
+        SELECT id
+        FROM "GHDKA"
+        WHERE
+        id in
+        <foreach collection="idList" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 </mapper>