gushoubang пре 8 месеци
родитељ
комит
a5eb21768f

+ 3 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FactorUseDTO.java

@@ -27,6 +27,9 @@ public class FactorUseDTO {
     @TableField("factor_bsm")
     private String factorBsm;
 
+    @TableField("factor_id")
+    private String factorId;
+
     @JsonProperty("name")
     @TableField("factor_name")
     private String factorName;

+ 12 - 21
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/FzxzFactorDTO.java

@@ -36,34 +36,25 @@ public class FzxzFactorDTO {
 
     // 查找每个最后一级节点与根节点的对应关系
     public static Map<String, FzxzFactorDTO> getLastLevelToRootMapping(List<FzxzFactorDTO> allNodes) {
-        Map<String, FzxzFactorDTO> nodeMap = new HashMap<>();
-        Map<String, FzxzFactorDTO> result = new HashMap<>();
+        Map<String, FzxzFactorDTO> resultMap = new HashMap<>();
 
-        // 构建节点ID映射
-        for (FzxzFactorDTO node : allNodes) {
-            nodeMap.put(node.id, node);
+        Map<String, FzxzFactorDTO> allFactorMap = new HashMap<>();
+        for (FzxzFactorDTO allNode : allNodes) {
+            allFactorMap.put(allNode.id, allNode);
         }
 
-        // 查找最后一级节点与根节点的对应关系
-        for (FzxzFactorDTO node : allNodes) {
-            if (isLastLevelNode(node, nodeMap)) {
-                FzxzFactorDTO rootNode = findRootNode(node, nodeMap);
-                result.put(node.id, rootNode);
-            }
+        for (FzxzFactorDTO allNode : allNodes) {
+            resultMap.put(allNode.id, getRootNode(allNode, allFactorMap));
         }
-        return result;
+        return resultMap;
     }
 
     // 判断是否为最后一级节点(没有子节点)
-    private static boolean isLastLevelNode(FzxzFactorDTO node, Map<String, FzxzFactorDTO> nodeMap) {
-        return nodeMap.values().stream().noneMatch(child -> node.id.equals(child.parent_id));
-    }
-
-    // 递归查找根节点
-    private static FzxzFactorDTO findRootNode(FzxzFactorDTO node, Map<String, FzxzFactorDTO> nodeMap) {
-        while (node.level != 0) {
-            node = nodeMap.get(node.parent_id);
+    private static FzxzFactorDTO getRootNode(FzxzFactorDTO node, Map<String, FzxzFactorDTO> nodeMap) {
+        if (node.getParent_id() != null && node.getParent_id() != "") {
+            return nodeMap.get(node.getParent_id());
+        } else {
+            return node;
         }
-        return node;
     }
 }

+ 2 - 0
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/domain/vo/SelectPilotVo.java

@@ -1,5 +1,6 @@
 package com.onemap.analyse.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.onemap.analyse.domain.FactorUseDTO;
 import com.onemap.analyse.domain.SelectionDTO;
@@ -11,6 +12,7 @@ import java.util.List;
  * 选址请求参数
  */
 @Data
+@JsonIgnoreProperties(ignoreUnknown = true)
 public class SelectPilotVo extends SelectionDTO {
     @JsonProperty("yxyz")
     private List<FactorUseDTO> factorList;

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

@@ -105,6 +105,7 @@ public class FzssServiceImpl implements IFzssService {
         List<FactorUseDTO> factorUseDTOS = selectPilotVo.getFactorList();
         for (int i = 0; i < factorUseDTOS.size(); i++) {
             FactorUseDTO factorUseDTO = factorUseDTOS.get(i);
+            factorUseDTO.setFactorId(factorUseDTO.getId());
             factorUseDTO.setId(StringUtils.getUUID());
             factorUseDTO.setTaskId(fzxzDTO.getBsm());
 

+ 8 - 11
onemap-modules/onemap-analyse/src/main/java/com/onemap/analyse/service/impl/ReportServiceImpl.java

@@ -130,9 +130,6 @@ public class ReportServiceImpl implements IReportService {
             // 0、文本标题
             NpoiHelper.title(document, "选址报告", pos++);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
-            // NpoiHelper.Option optionCENTER = new NpoiHelper.Option();
-            // optionCENTER.setAlign(ParagraphAlignment.CENTER);
-            // document.setParagraph(NpoiHelper.newParagraph(document, sdf.format(new Date()), optionCENTER), pos++);
 
             // 一、项目选址信息
             NpoiHelper.catalog(document, "一、项目选址信息", pos++);
@@ -185,25 +182,25 @@ 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);
+                FactorUseDTO factorUseDTO = fzxzXzyzDTOList.get(i);
+                FactorSpatialVo factorSpatialVo = JsonUtils.toObject(factorUseDTO.getConditionInfoStr(), FactorSpatialVo.class);
+                factorUseDTO.setConditionInfoObj(factorSpatialVo);
 
                 // 添加选址因子
                 Map<String, Object> map = new HashMap<>();
                 Map<String, String> factorMap = getFactorContent(factorSpatialVo);
-                map.put("YXYZMC", fzxzXzyzDTO.getFactorName());
+                map.put("YXYZMC", factorUseDTO.getFactorName());
                 map.put("YZTJ_TEXT", factorMap.get("YZTJ_TEXT"));
                 map.put("YXZ", factorMap.get("YXZ"));
                 dataTablelist.add(map);
 
                 // 添加因子图片
-                FzxzFactorDTO factorRoot = rootMap.get(fzxzXzyzDTO.getFactorBsm());
+                FzxzFactorDTO factorRoot = rootMap.get(factorUseDTO.getFactorId());
                 if (factorImageMap.containsKey(factorRoot.getId())) {
-                    factorImageMap.get(factorRoot.getId()).add(fzxzXzyzDTO);
+                    factorImageMap.get(factorRoot.getId()).add(factorUseDTO);
                 } else {
                     List<FactorUseDTO> factorUseDTOS = new ArrayList<>();
-                    factorUseDTOS.add(fzxzXzyzDTO);
+                    factorUseDTOS.add(factorUseDTO);
                     factorImageMap.put(factorRoot.getId(), factorUseDTOS);
                 }
             }
@@ -230,7 +227,7 @@ public class ReportServiceImpl implements IReportService {
                         wktInfos.add(wktInfo);
                     }
 
-                    reportImg(wktInfos);
+                    String imagePath = reportImg(wktInfos);
                 }
             }
 

+ 1 - 0
sql/pgsql/0_init.sql

@@ -87,3 +87,4 @@ values('3029','表与服务关联管理导出', '3024', '5',  '#', '', 1, 0, 'F'
 -- base.t_fzss_fzxz_sjy
 -- base.t_fzss_fzxz_factor_temp
 -- base.t_fzss_fzxz_factor
+-- base.t_fzss_fzxz_factor_use