|
@@ -0,0 +1,226 @@
|
|
|
+package com.onemap.apply.service.impl.qytdzz;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
+import com.onemap.apply.domain.config.fzss.FxrwrzDTO;
|
|
|
+import com.onemap.apply.domain.gdbh.*;
|
|
|
+import com.onemap.apply.domain.qytdzz.TTdzzyj;
|
|
|
+import com.onemap.apply.domain.qytdzz.TTdzzyjJg;
|
|
|
+import com.onemap.apply.mapper.fzss.FxrwrzMapper;
|
|
|
+import com.onemap.apply.mapper.gdbh.GdbhMapper;
|
|
|
+import com.onemap.apply.mapper.gdbh.GdbhRwJgMapper;
|
|
|
+import com.onemap.apply.mapper.gdbh.GdbhYzMapper;
|
|
|
+import com.onemap.apply.mapper.qytdzz.TTdzzyjJgMapper;
|
|
|
+import com.onemap.apply.mapper.qytdzz.TTdzzyjMapper;
|
|
|
+import com.onemap.apply.service.analyse.HttpAnalyseService;
|
|
|
+import com.onemap.apply.service.gdbh.impl.GdbhJgService;
|
|
|
+import com.onemap.common.core.utils.StringUtils;
|
|
|
+import com.onemap.common.core.web.domain.RequestResult;
|
|
|
+import com.onemap.system.api.AnalyseService;
|
|
|
+import com.onemap.system.api.domain.IntersectionTableWktVo;
|
|
|
+import com.onemap.system.api.domain.TablesAIdsVo;
|
|
|
+import com.onemap.system.api.domain.TargetTableVo;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class TdzzyjHandleService {
|
|
|
+ @Resource
|
|
|
+ private TTdzzyjMapper tTdzzyjMapper;
|
|
|
+ @Resource
|
|
|
+ private TTdzzyjJgMapper tTdzzyjJgMapper;
|
|
|
+ @Autowired
|
|
|
+ private HttpAnalyseService httpAnalyseService;
|
|
|
+ @Resource
|
|
|
+ private AnalyseService analyseService;
|
|
|
+ @Resource
|
|
|
+ private FxrwrzMapper fxrwrzMapper;
|
|
|
+
|
|
|
+ public void tdzzyjAnalysisHandle(TTdzzyj tTdzzyj) {
|
|
|
+ //获取范围
|
|
|
+ String d_RawTableName = tTdzzyj.getXzfwTbaleName();
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析开始。。。", "info");
|
|
|
+ updateTdzzyj(tTdzzyj.getBsm(), 1, new Date(), null, null);
|
|
|
+
|
|
|
+ //计算三调结果
|
|
|
+// List<String> columns3d = new ArrayList<String>();
|
|
|
+// columns3d.add("dlbm dlbmc,substr(a.dlbm,1,2) dlbm");
|
|
|
+// insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析三调数据分析开始。。。", "info");
|
|
|
+// intersectionDataStore(tTdzzyj.getGeom(), "TEMP_DLTU_BPQ", tTdzzyj.getBsm(), "3D", null, columns3d, "dlbm");
|
|
|
+// insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析三调数据分析结束。。。", "info");
|
|
|
+
|
|
|
+
|
|
|
+ //计算三线数据中的永久基本农田
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析永久基本农田分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "TB_YJJBNTBH", tTdzzyj.getBsm(), "SQSX", "YJJBNT", null, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析永久基本农田分析结束。。。", "info");
|
|
|
+
|
|
|
+
|
|
|
+ //计算三线数据中的生态保护红线
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析生态保护红线分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "TB_STBHHX", tTdzzyj.getBsm(), "SQSX", "STBHHX", null, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析生态保护红线分析结束。。。", "info");
|
|
|
+
|
|
|
+ //计算三线数据中的城市开发边界
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析城镇开发边界分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "TB_CZKFBJ", tTdzzyj.getBsm(), "SQSX", "CZKFBJ", null, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析城镇开发边界分析结束。。。", "info");
|
|
|
+
|
|
|
+ //计算新增耕地
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析新增耕地分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "t_qytdzz_xzgd", tTdzzyj.getBsm(), "XZGD", null, null, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析新增耕地分析结束。。。", "info");
|
|
|
+
|
|
|
+ //计算整治整治前土地利用结构
|
|
|
+ List<String> columnszzq = new ArrayList<String>();
|
|
|
+ columnszzq.add("dlbm");
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析整治前土地利用结构分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "tb_qytdzz_sd_zzq", tTdzzyj.getBsm(), "ZZQ", null, columnszzq, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析整治前土地利用结构分析结束。。。", "info");
|
|
|
+
|
|
|
+ //计算整治整治后土地利用结构
|
|
|
+ List<String> columnszzh = new ArrayList<String>();
|
|
|
+ columnszzh.add("zzhdlbm");
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析整治后土地利用结构分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "tb_qytdzz_sd_zzh", tTdzzyj.getBsm(), "ZZH", null, columnszzh, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析整治后土地利用结构分析结束。。。", "info");
|
|
|
+
|
|
|
+ //计算整治整治后土地利用结构
|
|
|
+ List<String> columnsghdk = new ArrayList<String>();
|
|
|
+ columnsghdk.add("lbmc");
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析规划地块分析开始。。。", "info");
|
|
|
+ intersectionDataStore(tTdzzyj.getGeom(), "TB_GHDK", tTdzzyj.getBsm(), "GHDK", null, columnsghdk, null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析规划地块分析结束。。。", "info");
|
|
|
+
|
|
|
+
|
|
|
+ updateTdzzyj(tTdzzyj.getBsm(), 2, null, new Date(), null);
|
|
|
+ insertFxrwrz(StringUtils.getUUID(), tTdzzyj.getBsm(), tTdzzyj.getXmmc(), "整治预判分析结束。。。", "info");
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public Map<String, Object> tdzzyjAnalysisJg(TTdzzyj tTdzzyj) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ retMap.put("SQSX", tdzzyjAnalysisJg(tTdzzyj.getBsm(), "SQSX", null));
|
|
|
+ retMap.put("GHDK", tdzzyjAnalysisJg(tTdzzyj.getBsm(), "GHDK", null));
|
|
|
+ retMap.put("XZGD", tdzzyjAnalysisJg(tTdzzyj.getBsm(), "XZGD", null));
|
|
|
+ List<TTdzzyjJg> zzqList = tdzzyjAnalysisJg(tTdzzyj.getBsm(), "ZZQ", null);
|
|
|
+ List<TTdzzyjJg> zzhList = tdzzyjAnalysisJg(tTdzzyj.getBsm(), "ZZH", null);
|
|
|
+ Map<String, TTdzzyjJg> zzqMap = new HashMap<>();
|
|
|
+ Map<String, TTdzzyjJg> zzhMap = new HashMap<>();
|
|
|
+ Set<String> sdset = new HashSet<>();
|
|
|
+ for (TTdzzyjJg obj : zzqList) {
|
|
|
+ sdset.add(obj.getGroupvalue());
|
|
|
+ zzqMap.put(obj.getGroupvalue(), obj);
|
|
|
+ }
|
|
|
+ for (TTdzzyjJg obj : zzhList) {
|
|
|
+ sdset.add(obj.getGroupvalue());
|
|
|
+ zzhMap.put(obj.getGroupvalue(), obj);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Map<String, Object>> sdList = new ArrayList<>();
|
|
|
+ for (String obj : sdset) {
|
|
|
+ TTdzzyjJg zzq = zzqMap.get(obj);
|
|
|
+ TTdzzyjJg zzh = zzqMap.get(obj);
|
|
|
+ Map<String, Object> objMap = new HashMap<>();
|
|
|
+ objMap.put("key", obj);
|
|
|
+ Double zzqarea = 0d;
|
|
|
+ Double zzharea = 0d;
|
|
|
+ if (null != zzq) {
|
|
|
+ zzqarea = Double.parseDouble(zzq.getSumvalue());
|
|
|
+ objMap.put("zzq_area", zzq.getSumvalue());
|
|
|
+ objMap.put("zzq_geom", zzq.getGeomvalue());
|
|
|
+ } else {
|
|
|
+ objMap.put("zzq_area", null);
|
|
|
+ objMap.put("zzq_geom", null);
|
|
|
+ }
|
|
|
+ if (null != zzh) {
|
|
|
+ zzharea = Double.parseDouble(zzh.getSumvalue());
|
|
|
+ objMap.put("zzh_area", zzh.getSumvalue());
|
|
|
+ objMap.put("zzh_geom", zzh.getGeomvalue());
|
|
|
+ } else {
|
|
|
+ objMap.put("zzh_area", null);
|
|
|
+ objMap.put("zzh_geom", null);
|
|
|
+ }
|
|
|
+ objMap.put("ce_area", zzqarea - zzharea);
|
|
|
+ sdList.add(objMap);
|
|
|
+ }
|
|
|
+ retMap.put("3D", sdList);
|
|
|
+ return retMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<TTdzzyjJg> tdzzyjAnalysisJg(String bsm, String mxBsm, String yzBsm) {
|
|
|
+ Map<String, Object> retMap = new HashMap<>();
|
|
|
+ TTdzzyjJg tTdzzyjJg = new TTdzzyjJg();
|
|
|
+ tTdzzyjJg.setRwbsm(bsm);
|
|
|
+ tTdzzyjJg.setMxBsm(mxBsm);
|
|
|
+ tTdzzyjJg.setYzBsm(yzBsm);
|
|
|
+ return tTdzzyjJgMapper.selectTTdzzyjJgSumByRwBsm(tTdzzyjJg);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //查询交集数据入库
|
|
|
+ public void intersectionDataStore(String suorceEWKT, String tablename, String rwbsm, String mxBsm, String yzBsm, List<String> columns, String getFields) {
|
|
|
+ //交集
|
|
|
+ IntersectionTableWktVo intersectionTableWktVo = new IntersectionTableWktVo();
|
|
|
+ intersectionTableWktVo.setTableName(tablename);
|
|
|
+ intersectionTableWktVo.setEwkt(suorceEWKT);
|
|
|
+ String tableName = httpAnalyseService.intersectionTableWkt(intersectionTableWktVo);
|
|
|
+
|
|
|
+ TargetTableVo targetTableVo = new TargetTableVo();
|
|
|
+ targetTableVo.setSrid(4525);
|
|
|
+ targetTableVo.setIsGeography(false);
|
|
|
+ targetTableVo.setSiweiArea(true);
|
|
|
+ targetTableVo.setTargetTableName(tableName);
|
|
|
+ targetTableVo.setRawTableName(tablename);
|
|
|
+ targetTableVo.setColumns(columns);
|
|
|
+ List<Map> map = httpAnalyseService.targetTable(targetTableVo);
|
|
|
+
|
|
|
+ for (Map map1 : map) {
|
|
|
+ TTdzzyjJg d_dto_0 = new TTdzzyjJg();
|
|
|
+ d_dto_0.setId(StringUtils.getUUID());
|
|
|
+ d_dto_0.setRwbsm(rwbsm);
|
|
|
+ d_dto_0.setMxBsm(mxBsm);
|
|
|
+ d_dto_0.setYzBsm(yzBsm);
|
|
|
+ if (null != columns && columns.size() >= 1) {
|
|
|
+ if (StringUtils.isNotEmpty(getFields)) {
|
|
|
+ d_dto_0.setGroupvalue((map1.get(getFields)).toString());
|
|
|
+ } else {
|
|
|
+ d_dto_0.setGroupvalue((map1.get(columns.get(0))).toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ d_dto_0.setSumvalue(String.valueOf(map1.get("siweiarea")));
|
|
|
+ d_dto_0.setGeomvalue((String) map1.get("geom"));
|
|
|
+ tTdzzyjJgMapper.insertTTdzzyjJg(d_dto_0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void insertFxrwrz(String bsm, String rwbsm, String scxName, String rznr, String rzlx) {
|
|
|
+ //添加记录
|
|
|
+ FxrwrzDTO fxrwrzDTO = new FxrwrzDTO();
|
|
|
+ fxrwrzDTO.setBsm(bsm);
|
|
|
+ fxrwrzDTO.setRwbsm(rwbsm);
|
|
|
+ fxrwrzDTO.setRwlx(scxName);
|
|
|
+ if (StringUtils.isNotEmpty(rznr)) {
|
|
|
+ fxrwrzDTO.setRzlr(rznr);
|
|
|
+ } else {
|
|
|
+ fxrwrzDTO.setRzlr(scxName + "完成");
|
|
|
+ }
|
|
|
+ fxrwrzDTO.setRzlx(rzlx);
|
|
|
+ fxrwrzDTO.setRzsj(new Date());
|
|
|
+ fxrwrzMapper.insert(fxrwrzDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void updateTdzzyj(String bsm, Integer rwzt, Date rwkssj, Date rwjzsj, String fxbg) {
|
|
|
+ //添加记录
|
|
|
+ TTdzzyj tdzzyjDto = new TTdzzyj();
|
|
|
+ tdzzyjDto.setRwzt(rwzt);
|
|
|
+ tdzzyjDto.setRwkssj(rwkssj);
|
|
|
+ tdzzyjDto.setRwjssj(rwjzsj);
|
|
|
+ tdzzyjDto.setFxbg(fxbg);
|
|
|
+ tdzzyjDto.setBsm(bsm);
|
|
|
+ tTdzzyjMapper.updateTTdzzyj(tdzzyjDto);
|
|
|
+ }
|
|
|
+}
|