1
0
فهرست منبع

已批未供sql定义

chenendian 19 ساعت پیش
والد
کامیت
b09e9fcf17

+ 18 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/cadastre/ReportBatchController.java

@@ -85,6 +85,24 @@ public class ReportBatchController extends BaseController {
     }
 
 
+
+    /**
+     *
+     * @param year
+     * @return
+     */
+    @GetMapping("/notSupply/list")
+    public R<List<?>> getNotSupplyList(@RequestParam(required = false) String year) {
+        try {
+            List<?> resList =  batchServiceImpl.getNotSupplyList(year);
+            return R.ok(resList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail(e.getMessage());
+        }
+    }
+
+
     /**
      *
      * @param year

+ 1 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/YdbpDataMapper.java

@@ -59,5 +59,6 @@ public interface YdbpDataMapper {
 
     List<Map<String,Object>> queryRemainGeomAreaByYear();
 
+    List<Map<String,Object>> queryRemainGeomListByYear(@Param("year") String year);
 
 }

+ 1 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/YdbpMapper.java

@@ -57,9 +57,8 @@ public interface YdbpMapper {
     List<Map<String, Object>> getStatisticsList(@Param("year") String year,@Param("startYear") String startYear,@Param("endYear") String endYear,
                                                 @Param("keyWord") String keyWord,@Param("hasGeom") Boolean hasGeom);
 
-
     List<Map<String,Object>> queryRemainGeomAreaByYearOfYdbp();
 
-
+    List<Map<String,Object>> queryRemainGeomListByYearOfYdbp(@Param("year") String year);
 
 }

+ 12 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/cadastre/impl/BatchServiceImpl.java

@@ -3,7 +3,6 @@ package com.siwei.apply.service.cadastre.impl;
 import com.siwei.apply.domain.YdbpData;
 import com.siwei.apply.domain.res.*;
 import com.siwei.apply.domain.vo.BatchTrendReportVO;
-import com.siwei.apply.domain.vo.LandSupplyProjectVO;
 import com.siwei.apply.mapper.*;
 import com.siwei.common.core.exception.ServiceException;
 import com.siwei.common.core.utils.StringUtils;
@@ -14,7 +13,6 @@ import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -42,6 +40,18 @@ public class BatchServiceImpl{
     private YdbpDataMapper ydbpDataMapper;
 
 
+    public List<?> getNotSupplyList(String year) {
+        List<Map<String, Object>> resList = new ArrayList<>();
+        List<Map<String,Object>> ydbpNotSupplyList =  ydbpMapper.queryRemainGeomListByYearOfYdbp(year);
+        List<Map<String,Object>> ydbpDataNotSupplyList =  ydbpDataMapper.queryRemainGeomListByYear(year);
+        if(CollectionUtils.isNotEmpty(ydbpNotSupplyList)){
+            resList.addAll(ydbpNotSupplyList);
+        }
+        if(CollectionUtils.isNotEmpty(ydbpDataNotSupplyList)){
+            resList.addAll(ydbpDataNotSupplyList);
+        }
+        return resList;
+    }
 
 
     /**

+ 31 - 11
siwei-modules/siwei-apply/src/main/resources/mapper/YdbpDataMapper.xml

@@ -166,13 +166,8 @@
         </if>
     </select>
 
-    <!--
-    方案:已批未供的图层相关:
-    1.把土地供应的所有的地块。并且已经上链的的查找出来。
-    2.把这些地块与报批中所有地块等值判断进行筛选。
-    3.再查找所有的报批的地块,减去上面找出的地块。然后按照年份统计其面积。
-    -->
-    <select id="queryRemainGeomAreaByYear" resultType="java.util.Map">
+
+    <sql id="commonYdbpDataCte" >
         WITH
             supply_geom AS (
                 SELECT DISTINCT
@@ -195,6 +190,19 @@
                     WHERE ST_Equals(ST_Normalize(gd.geom), supply_geom.norm_geom)
                 )
             )
+    </sql>
+
+
+
+
+    <!--
+    方案:已批未供的图层相关:
+    1.把土地供应的所有的地块。并且已经上链的的查找出来。
+    2.把这些地块与报批中所有地块等值判断进行筛选。
+    3.再查找所有的报批的地块,减去上面找出的地块。然后按照年份统计其面积。
+    -->
+    <select id="queryRemainGeomAreaByYear" resultType="java.util.Map">
+        <include refid="commonYdbpDataCte"></include>
         SELECT
             LEFT(bp.pf_date, '4') AS stat_year,
             COUNT(DISTINCT gd.id) AS patch_count,
@@ -211,10 +219,22 @@
         ORDER BY stat_year
     </select>
 
-
-
-
-
+    <select id="queryRemainGeomListByYear" resultType="java.util.Map">
+        <include refid="commonYdbpDataCte"></include>
+        SELECT
+        gd.id,
+        LEFT(bp.pf_date, '4') AS year,
+        '2' AS batch_type,
+        bp.id  as  node_id,
+        public.st_asewkt(geom) geom
+        FROM t_geom_db_details gd
+            INNER JOIN t_node_land nl ON gd.upload_id = nl.geom_db_id
+            INNER JOIN t_ydbp_data bp ON nl.node_id = bp.id
+        WHERE bp.has_onchain = 't'  AND LEFT(bp.pf_date, '4')=#{year}
+          AND NOT EXISTS (
+            SELECT 1 FROM hit_geom_id h WHERE h.details_id = gd.id
+            )
+    </select>
 
 
 </mapper>

+ 24 - 1
siwei-modules/siwei-apply/src/main/resources/mapper/YdbpMapper.xml

@@ -113,7 +113,7 @@
     </select>
 
 
-    <select id="queryRemainGeomAreaByYearOfYdbp"   resultType="java.util.Map">
+    <sql id="commonYdbpCte">
         WITH
             supply_geom AS (
                 SELECT DISTINCT
@@ -137,7 +137,12 @@
                     WHERE ST_Equals(ST_Normalize(gd.geom), supply_geom.norm_geom)
                 )
             )
+    </sql>
+
+
 
+    <select id="queryRemainGeomAreaByYearOfYdbp"   resultType="java.util.Map">
+        <include refid="commonYdbpCte"></include>
         SELECT
             LEFT(bp.pf_date, '4') AS stat_year,
             COUNT(DISTINCT gd.id) AS patch_count,
@@ -151,7 +156,25 @@
             )
         GROUP BY stat_year
         ORDER BY stat_year
+    </select>
 
+
+    <select id="queryRemainGeomListByYearOfYdbp"   resultType="java.util.Map">
+        <include refid="commonYdbpCte"></include>
+        SELECT
+        gd.id,
+        LEFT(bp.pf_date, '4') AS year,
+        bp.id  as  node_id,
+        '1' AS batch_type,
+        public.st_asewkt(geom) geom
+        FROM t_geom_db_details gd
+        INNER JOIN t_node_land nl ON gd.upload_id = nl.geom_db_id
+        INNER JOIN t_ydbp  bp ON nl.node_id = bp.id
+        WHERE bp.has_onchain = 't'
+        AND LEFT(bp.pf_date, '4')=#{year}
+        AND NOT EXISTS (
+        SELECT 1 FROM hit_geom_id h WHERE h.details_id = gd.id
+        )
     </select>