Selaa lähdekoodia

ITP地图模板3级引用2级的直接覆盖更新

fangpy 1 vuosi sitten
vanhempi
commit
e3c379ce71

+ 47 - 25
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxItpTemplateServiceImpl.java

@@ -167,34 +167,16 @@ public class ZhcxItpTemplateServiceImpl extends ServiceImpl<ZhcxItpTemplateDao,
             }
         }else{
             if(copyAddTemplate.getTmpIds() != null && copyAddTemplate.getTmpIds().size()>0){
+                ZhcxItpTemplateDo itpTemplateDo = this.getById(copyAddTemplate.getTargetTmpId());
                 // 查询所有引用子节点,复制给新的ITP地图
                 List<ZhcxItpTemplateNodesDo> copyNodesDos = zhcxItpTemplateNodesService.list(
                         new LambdaQueryWrapper<ZhcxItpTemplateNodesDo>().in(ZhcxItpTemplateNodesDo::getItpid,copyAddTemplate.getTmpIds()));
-                if(copyNodesDos != null && copyNodesDos.size()>0){
-                    // 获取当前ITP地图模板所有子节点
-                    List<ZhcxItpTemplateNodesDo> targetNodesDos = zhcxItpTemplateNodesService.list(
-                            new LambdaQueryWrapper<ZhcxItpTemplateNodesDo>().eq(ZhcxItpTemplateNodesDo::getItpid,copyAddTemplate.getTargetTmpId()));
-                    // 过滤出当前ITP地图模板所有根节点
-                    List<ZhcxItpTemplateNodesDo> rootTargetNodes = targetNodesDos.stream().filter(v -> v.getPid().equals("-1")).collect(Collectors.toList());
-                    // 存放老ID和新ID的Map,方便后面的归属大构件ID替换
-                    Map<String,String> oldNewId = new HashMap<>();
-                    for (ZhcxItpTemplateNodesDo copyNodesDo : copyNodesDos) {
-                        // 重复的已存在的根节点
-                        ZhcxItpTemplateNodesDo repeatNode = null;
-                        if(copyNodesDo.getPid().equals("-1") && copyNodesDo.getNodename() != null){
-                            for (ZhcxItpTemplateNodesDo rootTargetNode : rootTargetNodes) {
-                                if(rootTargetNode.getNodename() != null && copyNodesDo.getNodename().equals(rootTargetNode.getNodename())){
-                                    repeatNode = rootTargetNode;
-                                    break;
-                                }
-                            }
-                        }
-                        // 重复的阶段(即根节点),则不需要插入,只需要插入当前根节点所有子节点
-                        if(repeatNode != null){
-                            oldNewId.put(copyNodesDo.getId(),repeatNode.getId());
-                        }
-                        // 无重复的设置新ID,并加入待保存的列表
-                        else{
+                // 存放老ID和新ID的Map,方便后面的归属大构件ID替换
+                Map<String,String> oldNewId = new HashMap<>();
+                // 3级引用二级节点直接覆盖
+                if("3".equals(copyAddTemplate.getTargetTemplate().getTmplevel())){
+                    if(copyNodesDos != null && copyNodesDos.size()>0){
+                        for (ZhcxItpTemplateNodesDo copyNodesDo : copyNodesDos) {
                             String newId = SecurityUtil.getUUID();
                             oldNewId.put(copyNodesDo.getId(),newId);
                             // 先设置引用节点为原节点ID,再设置新的ID
@@ -203,6 +185,46 @@ public class ZhcxItpTemplateServiceImpl extends ServiceImpl<ZhcxItpTemplateDao,
                             toCopySaveNodes.add(copyNodesDo);
                         }
                     }
+                }else{
+                    if(copyNodesDos != null && copyNodesDos.size()>0){
+                        // 获取当前ITP地图模板所有子节点
+                        List<ZhcxItpTemplateNodesDo> targetNodesDos = zhcxItpTemplateNodesService.list(
+                                new LambdaQueryWrapper<ZhcxItpTemplateNodesDo>().eq(ZhcxItpTemplateNodesDo::getItpid,copyAddTemplate.getTargetTmpId()));
+                        // 过滤出当前ITP地图模板所有根节点
+                        List<ZhcxItpTemplateNodesDo> rootTargetNodes = targetNodesDos.stream().filter(v -> v.getPid().equals("-1")).collect(Collectors.toList());
+                        for (ZhcxItpTemplateNodesDo copyNodesDo : copyNodesDos) {
+                            // 重复的已存在的根节点
+                            ZhcxItpTemplateNodesDo repeatNode = null;
+                            if(copyNodesDo.getPid().equals("-1") && copyNodesDo.getNodename() != null){
+                                for (ZhcxItpTemplateNodesDo rootTargetNode : rootTargetNodes) {
+                                    if(rootTargetNode.getNodename() != null && copyNodesDo.getNodename().equals(rootTargetNode.getNodename())){
+                                        repeatNode = rootTargetNode;
+                                        break;
+                                    }
+                                }
+                            }
+                            // 重复的阶段(即根节点),则不需要插入,只需要插入当前根节点所有子节点
+                            if(repeatNode != null){
+                                oldNewId.put(copyNodesDo.getId(),repeatNode.getId());
+                            }
+                            // 无重复的设置新ID,并加入待保存的列表
+                            else{
+                                String newId = SecurityUtil.getUUID();
+                                oldNewId.put(copyNodesDo.getId(),newId);
+                                // 先设置引用节点为原节点ID,再设置新的ID
+                                copyNodesDo.setRefnodeid(copyNodesDo.getId());
+                                copyNodesDo.setId(newId);
+                                toCopySaveNodes.add(copyNodesDo);
+                            }
+                        }
+                    }
+                }
+                if(toCopySaveNodes != null && toCopySaveNodes.size()>0){
+                    // 3级引用2级清空数据
+                    if("3".equals(copyAddTemplate.getTargetTemplate().getTmplevel())){
+                        zhcxItpTemplateNodesService.remove(new LambdaQueryWrapper<ZhcxItpTemplateNodesDo>().
+                                eq(ZhcxItpTemplateNodesDo::getItpid,copyAddTemplate.getTargetTmpId()));
+                    }
                     // 替换相关ID
                     for (ZhcxItpTemplateNodesDo copyNodesDo : toCopySaveNodes) {
                         // 设置新的ITP地图ID

+ 1 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxOutsideInspectionItpServiceImpl.java

@@ -81,7 +81,7 @@ public class ZhcxOutsideInspectionItpServiceImpl extends ServiceImpl<ZhcxOutside
 
     @Autowired
     private SysNotifyFeginService notifyFeginService;
-    @Value("${temp.filepath}")
+    @Value("${temp.filepath:#{null}}")
     private String filepath;
 
     /**

+ 4 - 0
business-entity/src/main/java/com/rongwei/bsentity/vo/CopyAddTemplateVo.java

@@ -1,5 +1,7 @@
 package com.rongwei.bsentity.vo;
 
+import com.rongwei.bsentity.domain.ZhcxItpTemplateDo;
+import com.rongwei.bsentity.domain.ZhcxItpTemplateNodesDo;
 import lombok.Data;
 import java.util.List;
 
@@ -13,4 +15,6 @@ public class CopyAddTemplateVo {
     private List<String> tmpNodeIds;
 
     private List<String> tmpNames;
+
+    private ZhcxItpTemplateDo targetTemplate;
 }