Răsfoiți Sursa

耕地保护中辅助研判修改返回结果,返回面积信息和空间信息

DESKTOP-2K9OVK9\siwei 4 luni în urmă
părinte
comite
7559e2715c

+ 2 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/mapper/gdbh/GdbhRwJgMapper.java

@@ -17,6 +17,8 @@ public interface GdbhRwJgMapper extends BaseMapper<GdbhRwJgDTO> {
 
     List<Map<String, Object>> selectGdbhRwJgGroup(@Param("rwbsm") String rwbsm, @Param("mxbsm") String mxbsm, @Param("yzbsm") String yzbsm);
 
+    Map<String, Object> selectGdbhRwJgSum(@Param("rwbsm") String rwbsm, @Param("mxbsm") String mxbsm, @Param("yzbsm") String yzbsm);
+
 
 //    int selectGdbhRwJgList(GdbhRwJgDTO gdbhRwJgDTO);
 }

+ 12 - 15
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/gdbh/impl/GdbhJgService.java

@@ -132,18 +132,20 @@ public class GdbhJgService {
             return RequestResult.error("未查询到数据");
         }
         String d_RawTableName = gdbhDto.getXzfwTbaleName();
-
-        List<Map<String, Object>> d_sandiao = gdbhRwJgMapper.selectGdbhRwJgGroup(bsm, mxbsm, yzbsm);
-        List<String> ids = new ArrayList<>();
-        for (Map<String, Object> mx : d_sandiao) {
-            String idvalue = (String) mx.get("groupvalue");
-            ids.add(idvalue);
+        Map<String, Object> d0_sandiao = gdbhRwJgMapper.selectGdbhRwJgSum(bsm, mxbsm, yzbsm);
+        if (d0_sandiao == null || d0_sandiao.isEmpty()) {
+            return RequestResult.success("操作成功", new HashMap<>());
         }
-        if (ids == null || ids.size() == 0) {
-            return RequestResult.success("操作成功", null);
+        String idvalue = (String) d0_sandiao.get("groupvalue");
+        List<String> ids = Arrays.asList(idvalue.split(","));
+        if (ids == null || ids.isEmpty()) {
+            return RequestResult.success("操作成功", new HashMap<>());
         }
+        d0_sandiao.remove("groupvalue");
         List<String> columns = new ArrayList<>(); // 列名
         columns.add("id");
+//        columns.add("round(geomarea::numeric,2) geomarea");
+        columns.add("geomarea");
         RawTableVo d0_vo = new RawTableVo();
         d0_vo.setIds(ids);
         d0_vo.setSrid(4525);
@@ -152,13 +154,8 @@ public class GdbhJgService {
         d0_vo.setIsGeography(false);
         d0_vo.setColumns(columns);
         Object objectData = httpAnalyseService.getHttpAnalyse(d0_vo);
-        if (objectData != null) {
-            List<Map> objectDataList = (List<Map>) objectData;
-            for (Map d_map_01 : objectDataList) {
-                d_map_01.put("siweiarea", NumberUtil.double2TwoDecimal(Double.parseDouble(d_map_01.get("siweiarea").toString())));
-            }
-        }
-        return RequestResult.success(objectData);
+        d0_sandiao.put("datalist", objectData);
+        return RequestResult.success(d0_sandiao);
     }
 
     public RequestResult QueryGdbhJgId(String rwBsm, String id) {

+ 6 - 0
onemap-modules/onemap-apply/src/main/resources/mapper/postgresql/gdbh/GdbhRwJgMapper.xml

@@ -35,5 +35,11 @@
         group by groupvalue
     </select>
 
+    <select id="selectGdbhRwJgSum" resultType="map">
+        select string_agg(groupvalue,',') groupvalue, round(sum(sumvalue::numeric)::numeric,2) sumvalue,
+               public.st_asewkt(public.st_union(geomvalue)) geom FROM t_gdbh_rw_jg
+        WHERE rwbsm = #{rwbsm} and yz_bsm = #{yzbsm} and mx_bsm = #{mxbsm}
+    </select>
+
 
 </mapper>