1
0
gushoubang 1 сар өмнө
parent
commit
775f95f3a6

+ 22 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/NodeLandController.java

@@ -68,6 +68,28 @@ public class NodeLandController extends BaseController {
         }
         }
     }
     }
 
 
+    /**
+     * 根据项目ID与节点表名获取地块几何信息
+     * 先查项目流程得到nodeId,再查几何信息
+     */
+    @GetMapping("/node/geom")
+    public R<Map<String, Object>> getGeomByProjectAndNodeTable(@RequestParam String projectId,
+                                                               @RequestParam String nodeTableName) {
+        try {
+            if (projectId == null || projectId.trim().isEmpty()) {
+                return R.fail("projectId不能为空");
+            }
+            if (nodeTableName == null || nodeTableName.trim().isEmpty()) {
+                return R.fail("nodeTableName不能为空");
+            }
+            Map<String, Object> geomInfo = nodeLandService.getGeomByProjectAndNodeTable(projectId, nodeTableName);
+            return R.ok(geomInfo);
+        } catch (Exception e) {
+            logger.error("根据项目与节点表名查询地块几何信息异常", e);
+            return R.fail("查询异常:" + e.getMessage());
+        }
+    }
+
     /**
     /**
      * 根据nodeId删除节点地块关联记录
      * 根据nodeId删除节点地块关联记录
      *
      *

+ 11 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/NodeLandMapper.java

@@ -1,9 +1,8 @@
 package com.siwei.apply.mapper;
 package com.siwei.apply.mapper;
 
 
-import com.siwei.apply.domain.NodeLand;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 
-import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -35,4 +34,14 @@ public interface NodeLandMapper {
      */
      */
     void deleteByNodeId(String nodeId);
     void deleteByNodeId(String nodeId);
 
 
+    /**
+     * 根据项目ID与节点表名查询项目流程表中的节点ID(唯一)
+     *
+     * @param projectId 项目ID
+     * @param nodeTableName 节点表名
+     * @return 节点ID
+     */
+    String selectNodeIdsByProjectIdAndNodeTableName(@Param("projectId") String projectId,
+                                                    @Param("nodeTableName") String nodeTableName);
+
 }
 }

+ 10 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/NodeLandService.java

@@ -30,4 +30,14 @@ public interface NodeLandService {
      * @param nodeId 节点ID
      * @param nodeId 节点ID
      */
      */
     void deleteByNodeId(String nodeId);
     void deleteByNodeId(String nodeId);
+
+    /**
+     * 根据项目ID和节点表名获取地块几何信息:
+     * 1) 先查项目流程表获得nodeId;2) 再查节点地块几何信息。
+     *
+     * @param projectId 项目ID
+     * @param nodeTableName 节点表名
+     * @return 地块几何信息Map,结构同getGeomByNodeId返回
+     */
+    Map<String, Object> getGeomByProjectAndNodeTable(String projectId, String nodeTableName);
 }
 }

+ 23 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/NodeLandImpl.java

@@ -113,4 +113,27 @@ public class NodeLandImpl implements NodeLandService {
             throw e;
             throw e;
         }
         }
     }
     }
+
+    @Override
+    public Map<String, Object> getGeomByProjectAndNodeTable(String projectId, String nodeTableName) {
+        try {
+            if (projectId == null || projectId.trim().isEmpty()) {
+                logger.warn("根据项目与节点表名查询失败:projectId不能为空");
+                return null;
+            }
+            if (nodeTableName == null || nodeTableName.trim().isEmpty()) {
+                logger.warn("根据项目与节点表名查询失败:nodeTableName不能为空");
+                return null;
+            }
+            String nodeId = nodeLandMapper.selectNodeIdsByProjectIdAndNodeTableName(projectId, nodeTableName);
+            if (nodeId == null || nodeId.trim().isEmpty()) {
+                logger.info("未查询到匹配的项目流程节点,projectId: {}, nodeTableName: {}", projectId, nodeTableName);
+                return null;
+            }
+            return getGeomByNodeId(nodeId);
+        } catch (Exception e) {
+            logger.error("根据项目与节点表名获取地块几何信息异常,projectId: {}, nodeTableName: {}", projectId, nodeTableName, e);
+            return null;
+        }
+    }
 }
 }

+ 10 - 0
siwei-modules/siwei-apply/src/main/resources/mapper/NodeLandMapper.xml

@@ -52,4 +52,14 @@
         WHERE node_id = #{nodeId}
         WHERE node_id = #{nodeId}
     </delete>
     </delete>
 
 
+    <!-- 新增:根据projectId与nodeTableName查询项目流程表中的nodeId(唯一) -->
+    <select id="selectNodeIdsByProjectIdAndNodeTableName" parameterType="map" resultType="string">
+        SELECT node_id
+        FROM t_project_workflow
+        WHERE project_id = #{projectId}
+          AND node_table_name = #{nodeTableName}
+        ORDER BY created_at
+        LIMIT 1
+    </select>
+
 </mapper>
 </mapper>