Browse Source

地块筛选结果

gushoubang 9 months ago
parent
commit
90721a4091

+ 1 - 1
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/vo/RawTableVo.java

@@ -13,6 +13,6 @@ public class RawTableVo {
     private List<String> ids;  // id
     private List<String> columns; // 列名
     private Boolean siweiArea; // 是否需要计算面积
-    private Integer srid;  // srid
+    private Integer srid;  // srid,默认4326
     private Boolean isGeography = true;
 }

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

@@ -7,6 +7,7 @@ import com.onemap.analyse.domain.*;
 import com.onemap.analyse.domain.calculation.FzxzCalc;
 import com.onemap.analyse.domain.res.FzxzResultDTO;
 import com.onemap.analyse.domain.res.GeomRes;
+import com.onemap.analyse.domain.vo.RawTableVo;
 import com.onemap.analyse.domain.vo.TableWktVo;
 import com.onemap.analyse.domain.vo.SelectPilotVo;
 import com.onemap.analyse.domain.vo.TableNameIdsVo;
@@ -14,10 +15,7 @@ import com.onemap.analyse.mapper.*;
 import com.onemap.analyse.mapper.base.FzxzResMapper;
 import com.onemap.analyse.mapper.base.ShpFileMapper;
 import com.onemap.analyse.mapper.vector.GhdkaMapper;
-import com.onemap.analyse.service.CreateUtilsDBService;
-import com.onemap.analyse.service.IFzssService;
-import com.onemap.analyse.service.ILogService;
-import com.onemap.analyse.service.IReportService;
+import com.onemap.analyse.service.*;
 import com.onemap.analyse.utils.DozerUtils;
 import com.onemap.common.core.utils.StringUtils;
 import com.onemap.common.core.web.domain.RequestResult;
@@ -77,7 +75,7 @@ public class FzssServiceImpl implements IFzssService {
     @Resource
     private CreateUtilsDBService createUtilsDBService;
     @Resource
-    private TableDateServiceImpl tableDateService;
+    private ITableDateService tableDateService;
     //**需要拿出来的逻辑**//
 
     @Transactional(rollbackFor = Exception.class)
@@ -255,7 +253,8 @@ public class FzssServiceImpl implements IFzssService {
 
         // 5.保存规划结果
         Map<String, Object> scheduleResMap = new HashMap<>();
-        // TODO scheduleResMap.put("dkIds", ids);
+        // scheduleResMap.put("dkIds", ids);
+        scheduleResMap.put("rawTableName", rawTable);
         scheduleResMap.put("rwbsm", fzxzDTO.getBsm());
         scheduleResMap.put("sjyb", fzxzDTO.getSjy());
         // TODO 用地性质待定
@@ -363,9 +362,7 @@ public class FzssServiceImpl implements IFzssService {
 
             Integer tableCount = tableDateService.getTableCount(rawTable);
             if (tableCount == 0) {
-                iLogService.saveLog(taskId, "辅助选址",
-                        factorUseDTO.getFactorName() + "计算完成,未找到符合条件数据",
-                        "info");
+                iLogService.saveLog(taskId, "辅助选址", factorUseDTO.getFactorName() + "计算完成,未找到符合条件数据", "info");
                 updateFzxzStatus(taskId, Rwzt.getNoJX());
                 return "";
             }
@@ -385,18 +382,23 @@ public class FzssServiceImpl implements IFzssService {
         String sjyb = (String) resMap.get("sjyb");
         String ydxz = (String) resMap.get("ydxz");
 
-        List<Integer> dkIds = (List<Integer>) resMap.get("dkIds");
+        String rawTableName = (String) resMap.get("rawTableName");
 
-        Map<String, Object> paramMap = new HashMap<>();
-        paramMap.put("sjy", sjyb);
-        paramMap.put("idList", dkIds);
-        List<Map<String, Object>> dkSelectMap = ghdkaMapper.getAreaGeom(paramMap);
-        Map<Integer, Map<String, Object>> dksMap = new HashMap<>();
-        for (Map<String, Object> map : dkSelectMap) {
-            dksMap.put((Integer) map.get("id"), map);
-        }
+        RawTableVo rawTableVo = new RawTableVo();
+        rawTableVo.setRawTableName(rawTableName);
+        List<String> columns = new ArrayList<>();
+        columns.add("id");
+        columns.add("geom");
+        rawTableVo.setColumns(columns);
+        rawTableVo.setSiweiArea(true);
+        rawTableVo.setIsGeography(true);
+        List<Map<String, Object>> resList = tableDateService.getRawTable(rawTableVo);
+
+        for (Map<String, Object> landMap : resList) {
+            Integer dkId = (Integer) landMap.get("id");
+            String geom = (String) landMap.get("geom");
+            Double area = (Double) landMap.get("siweiArea");
 
-        for (Integer dkId : dkIds) {
             FzxzResDTO fzxzResDTO = DozerUtils.map(resMap, FzxzResDTO.class);
             fzxzResDTO.setBsm(StringUtils.getUUID());
             fzxzResDTO.setRwbsm(rwbsm);
@@ -404,11 +406,9 @@ public class FzssServiceImpl implements IFzssService {
             fzxzResDTO.setYdxz(ydxz);
             fzxzResDTO.setCreateAt(new Date());
             fzxzResDTO.setDkid(dkId);
-            if (dksMap.containsKey(dkId)) {
-                Map<String, Object> dkMap = dksMap.get(dkId);
-                fzxzResDTO.setArea((Double) dkMap.get("ydmj"));
-                fzxzResDTO.setGeom((String) dkMap.get("geom"));
-            }
+            fzxzResDTO.setArea(area);
+            fzxzResDTO.setGeom(geom);
+
             // TODO 设置土地价格
             fzxzResDTO.setLandPrice(100.0);
             fzxzResMapper.saveOne(fzxzResDTO);