Parcourir la source

土地价格字段预留

gushoubang il y a 10 mois
Parent
commit
3302b4238e

+ 2 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FzxzResDTO.java

@@ -23,4 +23,6 @@ public class FzxzResDTO {
     Double area;
     String geom;
     Integer dkid;
+    @TableField(value = "land_price")
+    Double landPrice;
 }

+ 3 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/res/FzxzResultDTO.java

@@ -8,6 +8,7 @@ import lombok.Data;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @TableName("t_fzss_fzxz")
 @Data
@@ -15,11 +16,11 @@ public class FzxzResultDTO {
     private String bsm;
     private String xmmc;
     private String jsdw;
-    private String fxbg;
+    private String fxbg;//分析报告地址
 
     // 结果返回地块信息
     @TableField(exist = false)
-    private List<FzxzResDTO> dks = new ArrayList<>();
+    private List<Map<String, Object>> dks = new ArrayList<>();
 
     // TODO 选址条件信息,数据源,面积起始、终止
     // 结果返回选址因子信息

+ 8 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/mapper/vector/GhdkaMapper.java

@@ -23,4 +23,12 @@ public interface GhdkaMapper extends BaseMapper<GhdkaDTO> {
      * @return id,geom,ydmj
      */
     List<Map<String, Object>> getAreaGeom(Map<String, Object> params);
+
+    /**
+     * 根据idList,sjy 获取geom,ydmj
+     *
+     * @param params idList,sjy
+     * @return 数据源中全部的字段信息
+     */
+    List<Map<String, Object>> getInfo(Map<String, Object> params);
 }

+ 34 - 5
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/FzssServiceImpl.java

@@ -165,7 +165,7 @@ public class FzssServiceImpl implements IFzssService {
      */
     private void updateFzxzReport(String bsm, String reportPath) {
         UpdateWrapper<FzxzDTO> wrapper = new UpdateWrapper<>();
-        wrapper.eq("bsm", bsm).set("rwzt", Rwzt.getRun());
+        wrapper.eq("bsm", bsm).set("fxbg", reportPath);
         fzxzMapper.update(null, wrapper);
     }
 
@@ -250,10 +250,8 @@ public class FzssServiceImpl implements IFzssService {
 
         // 5.生成报告,生成world文件
         FzxzReport fzxzReport = iReportService.createReport(fzxzDTO.getBsm(), null);
-
         updateFzxzReport(fzxzDTO.getBsm(), fzxzReport.getReportfile());
 
-
         // 6.开始规划,更新任务状态
         updateFzxzStatus(fzxzDTO.getBsm(), Rwzt.getComplete());
 
@@ -263,7 +261,6 @@ public class FzssServiceImpl implements IFzssService {
         return RequestResult.success(resMap);
     }
 
-
     /**
      * 保存选址结果
      *
@@ -299,6 +296,7 @@ public class FzssServiceImpl implements IFzssService {
                 fzxzResDTO.setArea((Double) dkMap.get("ydmj"));
                 fzxzResDTO.setGeom((String) dkMap.get("geom"));
             }
+            // TODO 设置土地价格
             fzxzResMapper.saveOne(fzxzResDTO);
         }
     }
@@ -324,9 +322,40 @@ public class FzssServiceImpl implements IFzssService {
 
         // 构建返回结果
         FzxzResultDTO result = DozerUtils.map(fzxzinfo, FzxzResultDTO.class);
+
         // 查询分析结果信息
         List<FzxzResDTO> fzxzResDTOS = fzxzResMapper.getListByRwbsm(result.getBsm());
-        result.setDks(fzxzResDTOS);
+        // 查询地块信息
+        String resourceTable = "";
+        List<Integer> dkIds = new ArrayList<>();
+        for (FzxzResDTO fzxzResDTO : fzxzResDTOS) {
+            resourceTable = fzxzResDTO.getSjyb();
+            dkIds.add(fzxzResDTO.getDkid());
+        }
+
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("sjy", resourceTable);
+        paramMap.put("idList", dkIds);
+        List<Map<String, Object>> dkSelectMap = ghdkaMapper.getInfo(paramMap);
+        Map<Integer, Map<String, Object>> dksMap = new HashMap<>();
+        for (Map<String, Object> map : dkSelectMap) {
+            dksMap.put((Integer) map.get("id"), map);
+        }
+
+        List<Map<String, Object>> dkMaps = new ArrayList<>();
+        for (FzxzResDTO fzxzResDTO : fzxzResDTOS) {
+            Map<String, Object> dkMap = new HashMap<>();
+            if (dksMap.containsKey(fzxzResDTO.getDkid())) {
+                Map<String, Object> dkInfoMap = dksMap.get(fzxzResDTO.getDkid());
+                dkMap.put("area", dkInfoMap.get("ydmj"));// 面积
+                dkMap.put("dkbm", dkInfoMap.get("dkbm"));// 地块编码
+                dkMap.put("kzxxgydmc", dkInfoMap.get("kzxxgydmc"));// 地块类型
+                dkMap.put("landPrice", fzxzResDTO.getLandPrice());// 地价
+            }
+            dkMaps.add(dkMap);
+        }
+        result.setDks(dkMaps);
+
         // 查询选址因子
         QueryWrapper<FzxzXzyzDTO> xzyzWrapper = new QueryWrapper<>();
         xzyzWrapper.eq("rwbsm", result.getBsm());

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

@@ -61,7 +61,7 @@
             )
         </if>
     </select>
-    <select id="getAreaGeom" parameterType="arraylist" resultType="map">
+    <select id="getAreaGeom" parameterType="map" resultType="map">
         SELECT
         id,ydmj,public.st_asewkt(geom) as geom
         FROM "${sjy}"
@@ -70,4 +70,14 @@
             #{id}
         </foreach>
     </select>
+
+    <select id="getInfo" parameterType="map" resultType="map">
+        SELECT
+        *,public.st_asewkt(geom) as ewkt
+        FROM "${sjy}"
+        WHERE id in
+        <foreach collection="idList" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </select>
 </mapper>