package com.siwei.apply.controller; import com.siwei.apply.domain.NodeLand; import com.siwei.apply.domain.res.LandTypeTreeRes; import com.siwei.apply.domain.res.TdgyRes; import com.siwei.apply.domain.vo.TdgyUpdateVo; import com.siwei.apply.domain.vo.TdgyVo; import com.siwei.apply.service.LandOneCodeService; import com.siwei.apply.service.NodeLandService; import com.siwei.apply.service.ProjectService; import com.siwei.apply.service.TdgyService; import com.siwei.common.core.domain.R; import com.siwei.common.core.web.controller.BaseController; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; /** * 土地供应 控制器 * 单独选址第三步 * 批次跑批第二步 */ @RestController @RequestMapping("/tdgy") public class TdgyController extends BaseController { @Autowired private TdgyService tdgyService; @Autowired NodeLandService nodeLandService; @Autowired ProjectService projectService; @Autowired private LandOneCodeService landOneCodeService; /** * 添加土地供应 */ @PostMapping() public R Add(@RequestBody TdgyVo tdgyVo) { try { Boolean b = tdgyService.isExit(tdgyVo.getProjectId()); if (b == true) { return R.fail("此项目已添加土地供应"); } String id = tdgyService.add(tdgyVo); Map map = new HashMap<>(); map.put("id", id); return R.ok(map); } catch (Exception e) { return R.fail(e.getMessage()); } } /** * 获取土地供应 * * @param projectId 项目ID * @return 土地供应 */ @GetMapping("/{projectId}") public R Get(@PathVariable String projectId) { try { return R.ok(tdgyService.get(projectId)); } catch (Exception e) { return R.fail(e.getMessage()); } } /** * 通过主键id获取土地供应,返回结果与按projectId查询一致 */ @GetMapping("/id/{id}") public R GetById(@PathVariable String id) { try { return R.ok(tdgyService.getById(id)); } catch (Exception e) { return R.fail(e.getMessage()); } } /** * 更新土地供应 * * @param tdgyUpdateVo 土地供应 * @return 操作结果 */ @PutMapping() public R Update(@RequestBody TdgyUpdateVo tdgyUpdateVo) { try { tdgyService.update(tdgyUpdateVo); return R.ok(); } catch (Exception e) { return R.fail(e.getMessage()); } } /** * 查询地块类型树结构 */ @GetMapping("/landTypeTree") public R> getLandTypeTree() { try { List tree = tdgyService.getLandTypeTree(); return R.ok(tree); } catch (Exception e) { return R.fail(e.getMessage()); } } /** * 更新土地供应的上链状态 */ @PutMapping("/onchain") public R updateHasOnchain(@RequestBody Map params) { try { String id = (String) params.get("id"); String projectId = (String) params.get("projectId"); Boolean hasOnchain = (Boolean) params.get("hasOnchain"); if (StringUtils.isBlank(id)) { return R.fail("nodeId不能为空"); } if (StringUtils.isBlank(projectId)) { return R.fail("projectId不能为空"); } NodeLand nodeLand = nodeLandService.getNodeLandByNodeId(id); if(Objects.isNull(nodeLand)){ return R.fail(502,"数据空间信息不存在,请检查先导入空间数据"); } tdgyService.updateHasOnchain(id,projectId, hasOnchain); // 更新项目表的上链数量 projectService.countOnChinaNum(projectId); //这里进行预赋码逻辑 projectService.addPreAssignCode(id,projectId,nodeLand.getGeomDbId(),1); //这里生成资源吗 landOneCodeService.addOrUpdateLandOneCodeInfo(projectId,id); return R.ok(); } catch (Exception e) { return R.fail(502,e.getMessage()); //return R.fail(e.getMessage()); } } }