소스 검색

同步控规数据自相交报错

songxy 1 년 전
부모
커밋
0ffd3e5858

+ 11 - 0
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/controller/rest/BjkgController.java

@@ -23,6 +23,17 @@ public class BjkgController extends BaseRestController {
             return error(err.getMessage(), ErrorCode.DEFAULT);
         }
     }
+
+    @GetMapping("/sfyg/update")
+    public Object updateSyygSync(){
+        try{
+            return result(bjkgService.updateSyyGSync());
+        }catch (Exception err){
+            err.printStackTrace();
+            return error(err.getMessage(), ErrorCode.DEFAULT);
+        }
+    }
+
     /**
      * 滨江控规规划单元(dymc)汇总LIST查询
      * @return Map

+ 20 - 5
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/dao/BjkgMapper.java

@@ -24,16 +24,31 @@ public interface BjkgMapper extends BaseMapper<BjKgDO> {
     default int insertOrUpdate(List<BjKgDO> lists){
         this.delete(null);  //清空表
         for(BjKgDO bjKgDO: lists){
-            if(selectIntersectionAreaRatio(bjKgDO.getShape()) > 0){
-                bjKgDO.setSfyg("1");
-            }else{
-                bjKgDO.setSfyg("0");
-            }
+//            if(selectIntersectionAreaRatio(bjKgDO.getShape()) > 0){
+//                bjKgDO.setSfyg("1");
+//            }else{
+//                bjKgDO.setSfyg("0");
+//            }
             insertShape(bjKgDO);
         }
         return lists.size();
     }
 
+    default List<Long> updateSyyGSync(){
+        List<BjKgDO> lists = this.selectList(null);
+        List<Long> ids = new ArrayList<>();
+        for(BjKgDO bjKgDO: lists) {
+            if (selectIntersectionAreaRatio(bjKgDO.getShape()) > 0) {
+                bjKgDO.setSfyg("1");
+                ids.add(bjKgDO.getId());
+                this.updateSyfg(bjKgDO);
+            }
+        }
+        return ids;
+    }
+
+    Integer updateSyfg(BjKgDO bjKgDO);
+
     Integer selectIntersectionAreaRatio(@Param("shape") Object shape);
 
     Integer insertShape(@Param("entity") BjKgDO entity);

+ 2 - 0
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/service/BjkgService.java

@@ -14,6 +14,8 @@ public interface BjkgService extends IService<BjKgDO> {
 
     Integer addBath(BjKgReqVO reqVO);
 
+    List<Long> updateSyyGSync();
+
     List<String> queryDymcList();
 
     BjKgStatisticsRespVO queryStatistics();

+ 5 - 0
BJYSYBZ_S/src/main/java/com/zjugis/ysgzybz/service/impl/BjkgServiceImpl.java

@@ -43,6 +43,11 @@ public class BjkgServiceImpl extends ServiceImpl<BjkgMapper, BjKgDO> implements
         return reqVO.getData().size();
     }
 
+    @Override
+    public List<Long> updateSyyGSync() {
+        return bjkgMapper.updateSyyGSync();
+    }
+
     @Override
     public List<String> queryDymcList() {
         return bjkgMapper.selectDymcList();

+ 5 - 0
BJYSYBZ_S/src/main/resources/mapper/BjkgMapper.xml

@@ -86,6 +86,11 @@
     <select id="selectIntersectionAreaRatio" resultType="int">
       SELECT COUNT(1) AS num FROM sde.gdxminfo_bj a WHERE (public.ST_Area(public.ST_Intersection(#{shape}, a.shape), false) / public.ST_Area(a.shape, false)) >= 0.5
     </select>
+
+    <update id="updateSyfg">
+      UPDATE sde.ybz_bj_kg SET sfyg = #{sfyg} WHERE id = #{id}
+    </update>
+
     <select id="selectListAll" resultType="com.zjugis.ysgzybz.domain.entity.BjKgDO">
       SELECT dlbm, mj, dymc FROM sde.ybz_bj_kg
     </select>