瀏覽代碼

添加面积筛选

gushoubang 1 年之前
父節點
當前提交
4d29621dd2

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

@@ -10,7 +10,9 @@ import java.util.List;
 import java.util.Map;
 
 public interface GhdkaMapper extends BaseMapper<GhdkaDTO> {
-    List<Integer> getIdByGeom(Map<String, Object> params);
+    List<Integer> getIdByGeom(Map<String, String> params);
+
+    List<Integer> getIdByArea(Map<String, Object> params);
 
     List<Integer> getIdByFilter(GhdkaFilter ghdkaFilter);
 }

+ 9 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -152,11 +152,18 @@ public class FzssServiceImpl implements IFzssService {
     public RequestResult startSchedule(String geomWkt, FzxzCalc fzxzCalc) {
         FzxzDTO fzxzDTO = fzxzCalc.getFzxzDTO();
         // 1.区域筛选
-        Map<String, Object> paramMap = new HashMap<>();
+        Map<String, String> paramMap = new HashMap<>();
         paramMap.put("geom", geomWkt);
         paramMap.put("sjy", fzxzDTO.getSjy());
         List<Integer> ids = ghdkaMapper.getIdByGeom(paramMap);
-        // 2.条件筛选
+        // 2.面积筛选
+        Map<String, Object> areaMap = new HashMap<>();
+        areaMap.put("sjy", fzxzDTO.getSjy());
+        areaMap.put("beginArea", fzxzDTO.getYdmjbegin());
+        areaMap.put("endArea", fzxzDTO.getYdmjend());
+        areaMap.put("idList", ids);
+        ids = ghdkaMapper.getIdByArea(areaMap);
+        // 3.条件筛选
         GhdkaFilter ghdkaFilter = new GhdkaFilter();
         ghdkaFilter.setSjy(fzxzDTO.getSjy());
         ghdkaFilter.setIdList(ids);

+ 14 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/vector/GhdkaMapper.xml

@@ -9,6 +9,20 @@
         WHERE public.st_contains(public.st_geomfromewkt(#{geom,jdbcType=OTHER}), geom);
     </select>
 
+    <select id="getIdByArea" parameterType="map" resultType="java.lang.Integer">
+        SELECT id
+        FROM "${sjy}"
+        WHERE
+        <if test="idList != null">
+            id in
+            <foreach collection="idList" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        and shape_area &gt;= ${beginArea}
+        and shape_area &lt;= ${endArea}
+    </select>
+
     <select id="getIdByFilter" parameterType="com.onemap.analyse.domain.query.GhdkaFilter"
             resultType="java.lang.Integer">
         SELECT dk.id