gushoubang hace 9 meses
padre
commit
9de556169c

+ 0 - 0
D/智能选址报告/7a7e94f94103445eaca6bf5eebc2983d/~$园(选址报告)_1721454669840.docx


+ 80 - 0
D/智能选址报告/7a7e94f94103445eaca6bf5eebc2983d/幼儿园(选址报告)_1721454669840.docx

@@ -0,0 +1,80 @@
+                             幼儿园选址报告
+                               2024年07月20日
+一、项目选址信息
+	项目名称:幼儿园	建设单位:四维	用地面积:10.0 - 100.0亩	用地性质:居住用地	影响因子:
+                           表1:选址影响因子
+                                 因子名称
+                                 影响条件
+                            约束范围值(M)
+幼儿园服务半径
+                                 距离小于
+                                      300
+二、选址范围分析
+	根据指定选址分析得出,所选范围共1415.21亩,其。详情如下:
+                         表2:地类分析统计表
+                                 地类编码
+                                 地类名称
+                           面积(平方千米)
+                                 占比(%)
+三、选址分析
+	按照项目选址要求和影响因子,经对所选范围内的所有居住用地进行分析,筛选出符合要求的方案共5个。
+1、方案一
+符合用地情况
+地类编码
+070102
+地类名称
+二类城镇住宅用地
+地块面积
+35.6亩
+土地位置
+地块位置信息
+分析结论
+
+2、方案二
+符合用地情况
+地类编码
+070102
+地类名称
+二类城镇住宅用地
+地块面积
+42.76亩
+土地位置
+地块位置信息
+分析结论
+
+3、方案三
+符合用地情况
+地类编码
+070102
+地类名称
+二类城镇住宅用地
+地块面积
+24.82亩
+土地位置
+地块位置信息
+分析结论
+
+4、方案四
+符合用地情况
+地类编码
+070102
+地类名称
+二类城镇住宅用地
+地块面积
+30.91亩
+土地位置
+地块位置信息
+分析结论
+
+5、方案五
+符合用地情况
+地类编码
+070102
+地类名称
+二类城镇住宅用地
+地块面积
+34.61亩
+土地位置
+地块位置信息
+分析结论
+

+ 84 - 0
D/智能选址报告/7a7e94f94103445eaca6bf5eebc2983d/幼儿园(选址报告)_1721454669840.pdf

@@ -0,0 +1,84 @@
+                 幼儿园选址报告
+
+                 2024 年 07 月 20 日
+
+一、项目选址信息
+
+项目名称:幼儿园
+建设单位:四维
+用地面积:10.0 - 100.0 亩
+用地性质:居住用地
+影响因子:
+
+           因子名称  表 1:选址影响因子        约束范围值(M)
+幼儿园服务半径                影响条件               300
+                       距离小于
+二、选址范围分析
+
+根据指定选址分析得出,所选范围共 1415.21 亩,其。详情如下:
+
+                 表 2:地类分析统计表
+
+      地类编码       地类名称  面积(平方千米)    占比(%)
+
+三、选址分析
+
+         按照项目选址要求和影响因子,经对所选范围内的所有居住用地进行分析,
+筛选出符合要求的方案共 5 个。
+1、方案一
+符合用地情况
+地类编码    070102   地类名称  二类城镇住宅用地
+                 土地位置
+地块面积    35.6 亩
+
+地块位置信息
+
+分析结论
+
+2、方案二
+
+符合用地情况
+
+地类编码    070102   地类名称  二类城镇住宅用地
+                 土地位置
+地块面积    42.76 亩
+
+地块位置信息
+
+分析结论
+
+3、方案三
+
+符合用地情况
+
+地类编码    070102   地类名称  二类城镇住宅用地
+                 土地位置
+地块面积    24.82 亩
+
+地块位置信息
+分析结论
+
+4、方案四
+
+符合用地情况
+
+地类编码    070102   地类名称  二类城镇住宅用地
+                 土地位置
+地块面积    30.91 亩
+
+地块位置信息
+
+分析结论
+
+5、方案五
+
+符合用地情况
+
+地类编码    070102   地类名称  二类城镇住宅用地
+                 土地位置
+地块面积    34.61 亩
+
+地块位置信息
+
+分析结论
+

+ 3 - 2
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FzxzEntityDTO.java

@@ -10,8 +10,8 @@ public class FzxzEntityDTO {
     private String sjymc;
     private String ydbsm;
     private String ydmc;
-    private String ydmjbegin;
-    private String ydmjend;
+    private Float ydmjbegin;
+    private Float ydmjend;
     private String xmmc = "";
     private String jsdw = "";
     private String fxbg = "";
@@ -19,4 +19,5 @@ public class FzxzEntityDTO {
     private Integer fwlx;
     private String xzfw;
     private String zip;
+    private String geomId;
 }

+ 1 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/IReportService.java

@@ -1,6 +1,7 @@
 package com.onemap.analyse.service;
 
 import com.onemap.analyse.domain.FzxzReport;
+import com.onemap.analyse.domain.res.GeomRes;
 
 import java.util.List;
 

+ 52 - 17
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ReportServiceImpl.java

@@ -3,14 +3,19 @@ package com.onemap.analyse.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.onemap.analyse.domain.*;
+import com.onemap.analyse.domain.res.GeomRes;
 import com.onemap.analyse.domain.vo.FactorSpatialVo;
 import com.onemap.analyse.mapper.FzxzMapper;
 import com.onemap.analyse.mapper.FactorUseMapper;
 import com.onemap.analyse.mapper.base.FzxzResMapper;
+import com.onemap.analyse.mapper.base.ShpFileMapper;
+import com.onemap.analyse.mapper.vector.GhdkaMapper;
 import com.onemap.analyse.service.ILogService;
 import com.onemap.analyse.service.IReportService;
+import com.onemap.analyse.utils.JsonUtils;
 import com.onemap.analyse.utils.NpoiHelper;
 import com.onemap.analyse.utils.NumberUtil;
+import com.onemap.analyse.utils.UnitsUtil;
 import com.onemap.common.core.utils.StringUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.poi.xwpf.usermodel.*;
@@ -41,11 +46,17 @@ public class ReportServiceImpl implements IReportService {
     @Resource
     private FactorUseMapper fzxzXzyzMapper;
 
+    @Resource
+    ShpFileMapper shpFileMapper;
+
     @Value("${Hgxfx.tempWin}")
     private String tempWin;
     @Value("${Hgxfx.tempLinux}")
     private String tempLinux;
 
+    @Resource
+    GhdkaMapper ghdkaMapper;
+
     // 根据选址任务生成报告
     public FzxzReport createReport(String bsm, List<String> xzbsmList) {
         String temp = tempLinux;
@@ -92,6 +103,8 @@ public class ReportServiceImpl implements IReportService {
      * @param xzbsmList  没有导出全部地块
      */
     private void createReport(FzxzEntityDTO res, String reportPath, List<String> xzbsmList) {
+        GeomRes geomRes = shpFileMapper.getOne(res.getGeomId());
+
         // List<String> imgList = ReportImg(res, xzbsmList);
         // 创建document文档对象对象实例
         XWPFDocument document = null;
@@ -108,15 +121,12 @@ public class ReportServiceImpl implements IReportService {
 
             // 1、项目选址信息
             NpoiHelper.catalog(document, "一、项目选址信息", pos++);
-            String ydmj = res.getYdmjbegin() + " - " + res.getYdmjend();
-            if (StringUtils.isEmpty(res.getYdmjbegin()) || Double.parseDouble(res.getYdmjbegin()) == 0)
-                ydmj = "≤" + res.getYdmjend();
-            else if (StringUtils.isEmpty(res.getYdmjend()) || Double.parseDouble(res.getYdmjend()) == 0)
-                ydmj = "≥" + res.getYdmjbegin();
+            String ydmj = NumberUtil.double2TwoDecimal(UnitsUtil.m2ToMu(res.getYdmjbegin())) +
+                    " - " + NumberUtil.double2TwoDecimal(UnitsUtil.m2ToMu(res.getYdmjend()));
             List<String> listTemp = new ArrayList<>();
             listTemp.add("\t项目名称:" + res.getXmmc());
             listTemp.add("\t建设单位:" + res.getJsdw());
-            listTemp.add("\t用地面积:" + ydmj + "平方米");
+            listTemp.add("\t用地面积:" + ydmj + "");
             listTemp.add("\t用地性质:" + res.getYdmc());
             listTemp.add("\t影响因子:");
             NpoiHelper.content(document, listTemp, pos++);
@@ -144,14 +154,17 @@ public class ReportServiceImpl implements IReportService {
             List<FactorUseDTO> fzxzXzyzDTOList = fzxzXzyzMapper.selectList(wrapper);
             List<Map<String, Object>> dataTablelist = new ArrayList<>();
             for (int i = 0; i < fzxzXzyzDTOList.size(); i++) {
+                FactorUseDTO fzxzXzyzDTO = fzxzXzyzDTOList.get(i);
+                FactorSpatialVo factorSpatialVo = JsonUtils.toObject(fzxzXzyzDTO.getConditionInfoStr(), FactorSpatialVo.class);
+                fzxzXzyzDTO.setConditionInfoObj(factorSpatialVo);
+
                 // 添加选址因子
                 Map<String, Object> map = new HashMap<>();
-                FactorUseDTO fzxzXzyzDTO = fzxzXzyzDTOList.get(i);
+                Map<String, String> factorMap = getFactorContent(factorSpatialVo);
                 map.put("YXYZMC", fzxzXzyzDTO.getFactorName());
-
-                Map<String, String> factorMap=   getFactorContent(fzxzXzyzDTO.getConditionInfoObj());
                 map.put("YZTJ_TEXT", factorMap.get("YZTJ_TEXT"));
                 map.put("YXZ", factorMap.get("YXZ"));
+
                 dataTablelist.add(map);
             }
             XWPFTable tableYz = NpoiHelper.setComTable(document, tabYzTitles, dataTablelist, "表1:选址影响因子", pos++);
@@ -172,7 +185,7 @@ public class ReportServiceImpl implements IReportService {
             // }
 
             // List<FzxzGeomInfoDTO> list = fzxzTbEntityDTOList.stream().sorted(Comparator.comparing(FzxzGeomInfoDTO::getSumMj).reversed()).collect(Collectors.toList());
-            String fwfx = "\t根据指定选址分析得出,所选范围共" + Math.round(sumcount) + "平方米,其中";
+            String fwfx = "\t根据指定选址分析得出,所选范围共" + NumberUtil.double2TwoDecimal(UnitsUtil.m2ToMu(geomRes.getArea())) + "亩,其中";
             List<Map<String, Object>> fztable = new ArrayList<>();
             // 生成地类分析统计表
             // TODO
@@ -244,6 +257,26 @@ public class ReportServiceImpl implements IReportService {
             optionIsBold.setBold(true);
             for (int i = 0; i < fzxzJgGisDTOList.size(); i++) {
                 SelectionResDTO item = fzxzJgGisDTOList.get(i);
+
+                // 查询地块信息
+                String rawTableName = item.getSjyb();
+                Integer rawItemId = item.getDkid();
+                List<String> columns = new ArrayList<>();
+                columns.add("kzxxgyddm");
+                columns.add("kzxxgydmc");
+                Map<String, Object> rawTable = ghdkaMapper.getInfoByColumn(rawTableName, rawItemId.toString(), columns);
+                String dkName = "";
+                String dkCode = "";
+                if (rawTable != null) {
+                    if (rawTable.containsKey("kzxxgydmc")) {
+                        dkName = rawTable.get("kzxxgydmc").toString();// 地块类型
+                    }
+                    if (rawTable.containsKey("kzxxgyddm")) {
+                        dkCode = rawTable.get("kzxxgyddm").toString();// 地块编码
+                    }
+                }
+
+
                 document.setParagraph(NpoiHelper.newParagraph(document, index + "、方案" + NumberUtil.int2chineseNum(index), optionIsBold), pos++);
                 XWPFTable table = document.createTable(7, 4);
                 table.setWidth(9000);// 总宽度
@@ -260,12 +293,13 @@ public class ReportServiceImpl implements IReportService {
                 table.getRow(0).getCell(0).setParagraph(NpoiHelper.setCellText(table, "符合用地情况", optionIsBold));
                 // Table 表格第二行
                 table.getRow(1).getCell(0).setParagraph(NpoiHelper.setCellText(table, "地类编码", optionIsBold));
-                // table.getRow(1).getCell(1).setParagraph(NpoiHelper.setCellText(table, item.getDlbm(), null));
+                table.getRow(1).getCell(1).setParagraph(NpoiHelper.setCellText(table, dkCode, null));
                 table.getRow(1).getCell(2).setParagraph(NpoiHelper.setCellText(table, "地类名称", optionIsBold));
-                // table.getRow(1).getCell(3).setParagraph(NpoiHelper.setCellText(table, item.getDlmc(), null));
+                table.getRow(1).getCell(3).setParagraph(NpoiHelper.setCellText(table, dkName, null));
                 // Table 表格第三行
                 table.getRow(2).getCell(0).setParagraph(NpoiHelper.setCellText(table, "地块面积", optionIsBold));
-                // table.getRow(2).getCell(1).setParagraph(NpoiHelper.setCellText(table, Math.round(item.getTbmj()) + "平方米", null));
+                table.getRow(2).getCell(1).setParagraph(NpoiHelper.setCellText(table,
+                        NumberUtil.double2TwoDecimal(UnitsUtil.m2ToMu(item.getArea())) + "亩", null));
                 table.getRow(2).getCell(2).setParagraph(NpoiHelper.setCellText(table, "土地位置", optionIsBold));
                 // table.getRow(2).getCell(3).setParagraph(NpoiHelper.setCellText(table, item.getXzqmc(), null));
                 // Table 表格第四行
@@ -420,6 +454,7 @@ public class ReportServiceImpl implements IReportService {
 
     /**
      * 获取因子内容
+     *
      * @param factorSpatialVo
      * @return
      */
@@ -435,13 +470,13 @@ public class ReportServiceImpl implements IReportService {
         } else if (factorSpatialVo.getDefaultType().equals("not_contain")) {
             spName = "不位于";
         } else if (factorSpatialVo.getDefaultType().equals("gt")) {
-            spName = "大于";
+            spName = "距离大于";
         } else if (factorSpatialVo.getDefaultType().equals("lt")) {
-            spName = "小于";
+            spName = "距离小于";
         } else if (factorSpatialVo.getDefaultType().equals("get")) {
-            spName = "大于等于";
+            spName = "距离大于等于";
         } else if (factorSpatialVo.getDefaultType().equals("let")) {
-            spName = "小于等于";
+            spName = "距离小于等于";
         }
         map.put("YZTJ_TEXT", spName);
         map.put("YXZ", factorSpatialVo.getDefaultValue().toString());

+ 2 - 1
onemap-modules/onemap-analyse/src/main/resources/mapper/oracle/fzss/FzxzMapper.xml

@@ -45,7 +45,8 @@
                t.xmmc                       as "xmmc",
                t.jsdw                       as "jsdw",
                t.fxbg                       as "fxbg",
-               t.rwzt                       as "rwzt"
+               t.rwzt                       as "rwzt",
+               t.geom_id                    as "geomId"
         from t_fzss_fzxz t
                  left join t_fzss_fzxz_sjy sjy on sjy.bsm = t.sjy
         where t.bsm = #{bsm}