| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- package com.siwei.apply.controller;
- import com.siwei.apply.domain.Project;
- import com.siwei.apply.service.NodeLandService;
- import com.siwei.apply.service.ProjectService;
- import com.siwei.common.core.domain.R;
- import com.siwei.common.core.web.controller.BaseController;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import java.math.BigDecimal;
- import java.util.LinkedHashMap;
- import java.util.Map;
- /**
- * 节点地块关联控制器
- */
- @RestController
- @RequestMapping("/nodeland")
- public class NodeLandController extends BaseController {
- @Autowired
- private NodeLandService nodeLandService;
- @Autowired
- private ProjectService projectService;
- /**
- * 根据nodeId和geomDbId创建节点地块关联记录
- *
- * @param requestBody 包含nodeId和geomDbId的请求体
- * @return 创建结果
- */
- @PostMapping("/create")
- public R<Map<String, Object>> createNodeLand(@RequestBody Map<String, String> requestBody) {
- try {
- String nodeId = requestBody.get("nodeId");
- String geomDbId = requestBody.get("geomDbId");
- if (nodeId == null || nodeId.trim().isEmpty()) {
- return R.fail("nodeId不能为空");
- }
- if (geomDbId == null || geomDbId.trim().isEmpty()) {
- return R.fail("geomDbId不能为空");
- }
- nodeLandService.createNodeLand(nodeId, geomDbId);
- return R.ok();
- } catch (Exception e) {
- logger.error("创建节点地块关联记录异常", e);
- return R.fail("创建节点地块关联记录异常:" + e.getMessage());
- }
- }
- /**
- * 根据nodeId查询地块几何信息
- *
- * @param nodeId 节点ID
- * @return 地块几何信息,包含geom_db_id和并集的外边框、中心点
- */
- @GetMapping("/geom/{nodeId}")
- public R<Map<String, Object>> getGeomByNodeId(@PathVariable String nodeId) {
- try {
- if (nodeId == null || nodeId.trim().isEmpty()) {
- return R.fail("nodeId不能为空");
- }
- Map<String, Object> geomInfo = nodeLandService.getGeomByNodeId(nodeId);
- return R.ok(geomInfo);
- } catch (Exception e) {
- logger.error("查询节点地块几何信息异常", e);
- return R.fail("查询节点地块几何信息异常:" + e.getMessage());
- }
- }
- /**
- * 根据项目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删除节点地块关联记录
- *
- * @param nodeId 节点ID
- * @return 删除结果
- */
- @DeleteMapping("/{nodeId}")
- public R<Map<String, Object>> deleteByNodeId(@PathVariable String nodeId) {
- try {
- if (nodeId == null || nodeId.trim().isEmpty()) {
- return R.fail("nodeId不能为空");
- }
- nodeLandService.deleteByNodeId(nodeId);
- return R.ok();
- } catch (Exception e) {
- logger.error("删除节点地块关联记录异常", e);
- return R.fail("删除节点地块关联记录异常:" + e.getMessage());
- }
- }
- @GetMapping("/projectGeomInfo")
- public R<Map<String, String>> getProjectGeomInfo(@RequestParam String projectId,
- @RequestParam String nodeId, @RequestParam String geomId) {
- try {
- if (projectId == null || projectId.trim().isEmpty()) {
- return R.fail(502,"projectId不能为空");
- }
- if (geomId == null || geomId.trim().isEmpty()) {
- return R.fail(502,"geomId不能为空");
- }
- Map<String, String> projectGeomInfo = new LinkedHashMap<>();
- Project project = projectService.get(projectId);
- Map<String, String> geomInfo = nodeLandService.selectGeomById(geomId);
- projectGeomInfo.put("projectId", project.getId());
- projectGeomInfo.put("name", project.getName());
- projectGeomInfo.put("code", project.getCode());
- projectGeomInfo.put("immobileCode", project.getId());
- projectGeomInfo.put("businessCode", project.getId());
- projectGeomInfo.put("area", String.format("%.1f", geomInfo.get("geom_area")));
- return R.ok(projectGeomInfo);
- } catch (Exception e) {
- logger.error("根据项目与节点表名查询地块几何信息异常", e);
- return R.fail("查询异常:" + e.getMessage());
- }
- }
- }
|