Browse Source

规划地块性质

gushoubang 1 year ago
parent
commit
1d547b7144

+ 1 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/controller/FzssController.java

@@ -39,6 +39,7 @@ public class FzssController extends BaseController {
      */
     @PostMapping("/AddFzxz")
     public RequestResult AddFzxz(@RequestBody Map params) {
+        // TODO xmlx:项目类型
         // 存储规划参数
         FzxzCalc fzxzCalc = fzssService.saveScheduleParam(params);
         // 开始规划任务

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

@@ -14,6 +14,8 @@ public interface GhdkaMapper extends BaseMapper<GhdkaDTO> {
 
     List<Integer> getIdByArea(Map<String, Object> params);
 
+    List<Integer> getIdLandType(Map<String, Object> params);
+
     List<Integer> getIdByFilter(GhdkaFilter ghdkaFilter);
 
     /**

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

@@ -197,6 +197,7 @@ public class FzssServiceImpl implements IFzssService {
         iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "选址参数", "info");
 
         // 1.区域筛选
+        // TODO:每一步都要判断ids是否为空
         GeomRes geomRes = shpFileMapper.getOne(fzxzDTO.getGeomId());
 
         iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "载入选址范围完成", "info");
@@ -216,7 +217,15 @@ public class FzssServiceImpl implements IFzssService {
         ids = ghdkaMapper.getIdByArea(areaMap);
 
         iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "地块面积分析完成", "info");
-        // 3.条件筛选
+
+        // 3.用地类型(性质)筛选
+        Map<String, Object> landTypeMap = new HashMap<>();
+        landTypeMap.put("sjy", fzxzDTO.getSjy());
+        landTypeMap.put("landTypeCode", fzxzDTO.getYdxz_bsm());
+        landTypeMap.put("idList", ids);
+        ids = ghdkaMapper.getIdLandType(landTypeMap);
+
+        // 4.条件筛选
         GhdkaFilter ghdkaFilter = new GhdkaFilter();
         ghdkaFilter.setSjy(fzxzDTO.getSjy());
         ghdkaFilter.setIdList(ids);
@@ -236,7 +245,7 @@ public class FzssServiceImpl implements IFzssService {
             return RequestResult.error("条件筛选未找到符合条件数据!", null);
         }
 
-        // 4.保存规划结果
+        // 5.保存规划结果
         Map<String, Object> scheduleResMap = new HashMap<>();
         scheduleResMap.put("dkIds", ids);
         scheduleResMap.put("rwbsm", fzxzDTO.getBsm());
@@ -248,11 +257,11 @@ public class FzssServiceImpl implements IFzssService {
         // 保存成功日志
         iLogService.saveLog(fzxzDTO.getBsm(), "辅助选址", "计算完成", "info");
 
-        // 5.生成报告,生成world文件
+        // 6.生成报告,生成world文件
         FzxzReport fzxzReport = iReportService.createReport(fzxzDTO.getBsm(), null);
         updateFzxzReport(fzxzDTO.getBsm(), fzxzReport.getReportfile());
 
-        // 6.开始规划,更新任务状态
+        // 7.开始规划,更新任务状态
         updateFzxzStatus(fzxzDTO.getBsm(), Rwzt.getComplete());
 
         Map<String, Object> resMap = new HashMap<>();

+ 13 - 0
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/vector/GhdkaMapper.xml

@@ -23,6 +23,19 @@
         and ydmj &lt;= ${endArea}
     </select>
 
+    <select id="getIdLandType" parameterType="map" resultType="java.lang.Integer">
+        SELECT id
+        FROM "${sjy}"
+        WHERE
+        <if test="idList != null">
+            id in
+            <foreach collection="idList" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+        and kzxxgyddm like '%${landTypeCode}%'
+    </select>
+
     <select id="getIdByFilter" parameterType="com.onemap.analyse.domain.query.GhdkaFilter"
             resultType="java.lang.Integer">
         SELECT dk.id