Forráskód Böngészése

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf 2 éve
szülő
commit
0a941864e0
15 módosított fájl, 245 hozzáadás és 155 törlés
  1. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java
  2. 8 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTreeContract.java
  3. 12 12
      blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java
  4. 112 107
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  5. 0 6
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml
  6. 20 20
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FirstController.java
  7. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java
  8. 2 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  9. 2 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.java
  10. 18 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml
  11. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java
  12. 3 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveAutoRuleSyncImpl.java
  13. 6 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java
  14. 10 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java
  15. 44 6
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java

@@ -1,5 +1,7 @@
 package org.springblade.manager.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -144,22 +146,26 @@ public class ArchiveTree extends BaseEntity {
 	* 自动立卷类型 1最高 2分类并卷 3单独并卷
 	*/
     @ApiModelProperty(value = "自动立卷类型")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Integer archiveAutoType;
 	/**
 	* 自动立卷设置的节点ID
 	*/
     @ApiModelProperty(value = "自动立卷设置的节点ID")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long archiveAutoNodeId;
 
     /**
      * 分类并卷的分类ID,当archiveAutoType=2时,用来确定同一类型。新增时随机生成,一同提交设置的节点都是同一类。 编辑时 采用已有的
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Long archiveAutoGroupId;
 
     /**
      * 是否自动立卷规则选择设置的节点 选中的节点设为1 方便页面显示列表,方便同步判断
      */
     @ApiModelProperty(value = "是否为设置的节点")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Integer archiveAutoGroupSelect;
 
     private Long fromId;

+ 8 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTreeContract.java

@@ -16,9 +16,13 @@
  */
 package org.springblade.manager.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.core.mp.base.BaseEntity;
@@ -142,20 +146,24 @@ public class ArchiveTreeContract extends BaseEntity {
 	/**
 	* 自动立卷类型 1最高 2分类并卷 3单独组卷   说明:1规则下可以有2或3;2和3两种规则互斥,2下不能有3,3下不能有2;
 	*/
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Integer archiveAutoType;
 	/**
 	* 默认组卷设置的最高并卷节点Id  当archiveAutoType不为2,和3时用来限制范围
 	*/
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long archiveAutoNodeId;
 
 	/**
 	 * 分类并卷的分类ID,当archiveAutoType=2时,用来确定同一类型。新增时随机生成,一同提交设置的节点都是同一类。 编辑时 采用已有的
 	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Long archiveAutoGroupId;
 
 	/**
 	 * 设置分类并卷选择的节点设为1,其下范围内节点设为0
 	 */
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
 	private Integer archiveAutoGroupSelect;
 
 

+ 12 - 12
blade-service/blade-archive/src/main/java/org/springblade/archive/utils/FileUtils.java

@@ -688,16 +688,16 @@ public class FileUtils {
         return ossPath;
     }
 
-    public static void main(String[] args) {
-
-        System.out.println(getOssPath(null,"12344555",12424445L));
-        System.out.println(getOssPath(OssConstant.TEMP_DIRECTORY,"12344555",12424445L));
-        System.out.println(getOssPath(OssConstant.ARCHIVE_DIRECTORY,"12344555",12424445L));
-        System.out.println(getOssPath("","12344555",null));
-        String url = "https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/1578599210897772545/archive/ed4305eb971b062046c1ffd4e2da3c32-page1-1.pdf";
-        String url1 = "https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/ed4305eb971b062046c1ffd4e2da3c32-page1-1.pdf";
-
-        System.out.println(getAliYunSubUrl(url));
-        System.out.println(getAliYunSubUrl(url1));
-    }
+//    public static void main(String[] args) {
+//
+//        System.out.println(getOssPath(null,"12344555",12424445L));
+//        System.out.println(getOssPath(OssConstant.TEMP_DIRECTORY,"12344555",12424445L));
+//        System.out.println(getOssPath(OssConstant.ARCHIVE_DIRECTORY,"12344555",12424445L));
+//        System.out.println(getOssPath("","12344555",null));
+//        String url = "https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/1578599210897772545/archive/ed4305eb971b062046c1ffd4e2da3c32-page1-1.pdf";
+//        String url1 = "https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com/upload/ed4305eb971b062046c1ffd4e2da3c32-page1-1.pdf";
+//
+//        System.out.println(getAliYunSubUrl(url));
+//        System.out.println(getAliYunSubUrl(url1));
+//    }
 }

+ 112 - 107
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -579,7 +579,7 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperation(value = "单个废除")
     public R<Boolean> abolishOne(@RequestParam String primaryKeyId, @RequestParam String classify) {
         //查询填报状态
-        InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, primaryKeyId).eq(InformationQuery::getClassify, classify).eq(InformationQuery::getType,1));
+        InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, primaryKeyId).eq(InformationQuery::getClassify, classify).eq(InformationQuery::getType, 1));
         if (businessData != null) {
             //使用批量废除接口
             return this.batchAbolish(businessData.getId().toString(), primaryKeyId);
@@ -863,7 +863,7 @@ public class InformationWriteQueryController extends BladeController {
     @ApiOperation(value = "填报页单个上报")
     public R<Boolean> taskOne(@RequestBody StartTaskVO startTaskVO) throws IOException {
         //此时的ids是当前节点的primaryKeyId但并不是业务数据ID,需要根据ids和classify去查询具体的业务ID
-        InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, startTaskVO.getIds().replaceAll(",", "")).eq(InformationQuery::getClassify, startTaskVO.getClassify().toString()).eq(InformationQuery::getType,1));
+        InformationQuery businessData = this.informationQueryService.getOne(Wrappers.<InformationQuery>lambdaQuery().eq(InformationQuery::getWbsId, startTaskVO.getIds().replaceAll(",", "")).eq(InformationQuery::getClassify, startTaskVO.getClassify().toString()).eq(InformationQuery::getType, 1));
 
         //处理上报信息
         if (businessData != null) {
@@ -1449,7 +1449,7 @@ public class InformationWriteQueryController extends BladeController {
             //复制元素表附件信息
             List<WbsTreeContract> newTabs = saveList.stream().filter(f -> (new Integer(2).equals(f.getType()))).collect(Collectors.toList());
             if (newTabs.size() > 0 && oldTabs.size() > 0 && vo.getIsCopyData() == 1) {
-                this.addCopyTabFile(newTabs, oldTabs);
+                this.addCopyTabFile(new HashSet<>(newTabs), oldTabs);
             }
 
             //复制表单数据
@@ -1508,99 +1508,94 @@ public class InformationWriteQueryController extends BladeController {
                     //结果集
                     List<WbsTreeContract> addNodeList = new ArrayList<>();//新增节点
                     List<WbsTreeContract> addTabList = new ArrayList<>(); //新增表单
-                    //List<WbsTreeContract> asyncWbsTreeNodes = new ArrayList<>(); //redis同步节点
                     Set<WbsTreeContract> addChildNodesTablesOldAll = new HashSet<>(addChildNodesTables);//数据源表附件
-                    Set<WbsTreeContract> addNewFileTabs = new HashSet<>(addChildNodesTables);//新增到目标表附件
+                    Set<WbsTreeContract> addNewFileTabs = new HashSet<>();//新增到目标表附件
                     List<String> resultTablesData = new ArrayList<>();//表单数据
 
-                    //创建线程池,默认设置4个线程
-                    ExecutorService executor = Executors.newFixedThreadPool(4);
-                    try {
-                        //解析位置信息,进行复制数据构造
-                        if (toCopyNodes.size() == copyBatches.size()) {
-                            for (int i = 0; i < toCopyNodes.size(); i++) {
-                                WbsTreeContract needCopyNode = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getNeedCopyPrimaryKeyId());
-                                //首先查询需要复制的节点的信息
-                                WbsTreeContract toCopyNode = toCopyNodes.get(i);
-                                CopyContractTreeNodeVO.CopyBatch toCopyVO = copyBatches.get(i);
-                                //asyncWbsTreeNodes.add(toCopyNode);
-                                String finalTabOwner = tabOwner;
-                                executor.submit(() -> {
-                                    if (toCopyNode != null && toCopyVO != null && needCopyNodeAndTabMap.size() > 0) {
-                                        //TODO 同节点复制
-                                        if (new Integer(1).equals(toCopyVO.getIsSameNode())) {
-                                            //1.1 选择当前节点的父级节点,新增
-                                            if (needCopyNode.getParentId().equals(toCopyNode.getId())) {
-                                                toCopyNode.setNodeName(toCopyVO.getNodeName());
-                                                toCopyNode.setPartitionCode(toCopyVO.getPartitionCode());
-
-                                                //获取缓存节点、表信息
-                                                List<WbsTreeContract> needCopyNodes = needCopyNodeAndTabMap.get("node:" + needCopyNodeRoot.getPKeyId());
-                                                List<WbsTreeContract> needCopyTab = needCopyNodeAndTabMap.get("tab:" + needCopyNodeRoot.getPKeyId());
-
-                                                //构造新的节点、表、数据
-                                                this.addCopyNodesAndTabsBuildData(addNodeList, addTabList, needCopyNodes, needCopyTab, needCopyNode, toCopyNode, resultTablesData, 1, finalTabOwner, vo.getIsCopyData());
-
-                                                //1.2 选择同父级的同级节点,只复制数据
-                                            } else if (needCopyNode.getParentId().equals(toCopyNode.getParentId())) {
-                                                //构造数据
-                                                this.addCopyTabData(needCopyNode, toCopyNode, finalTabOwner, resultTablesData, addTabList, vo.getIsCopyData(), addNewFileTabs);
-                                            }
+                    //解析位置信息,进行复制数据构造
+                    if (toCopyNodes.size() == copyBatches.size()) {
+                        for (int i = 0; i < toCopyNodes.size(); i++) {
+                            WbsTreeContract needCopyNode = this.wbsTreeContractClient.getContractNodeByPrimaryKeyId(vo.getNeedCopyPrimaryKeyId());
+                            //首先查询需要复制的节点的信息
+                            WbsTreeContract toCopyNode = toCopyNodes.get(i);
+                            CopyContractTreeNodeVO.CopyBatch toCopyVO = copyBatches.get(i);
+
+                            if (toCopyNode != null && toCopyVO != null && needCopyNodeAndTabMap.size() > 0) {
+                                //TODO 同节点复制
+                                if (new Integer(1).equals(toCopyVO.getIsSameNode())) {
+                                    //1.1 选择当前节点的父级节点,新增
+                                    if (needCopyNode.getParentId().equals(toCopyNode.getId())) {
+                                        toCopyNode.setNodeName(toCopyVO.getNodeName());
+                                        toCopyNode.setPartitionCode(toCopyVO.getPartitionCode());
+
+                                        //获取缓存节点、表信息
+                                        List<WbsTreeContract> needCopyNodes = needCopyNodeAndTabMap.get("node:" + needCopyNodeRoot.getPKeyId());
+                                        List<WbsTreeContract> needCopyTab = needCopyNodeAndTabMap.get("tab:" + needCopyNodeRoot.getPKeyId());
+
+                                        //构造新的节点、表、数据
+                                        this.addCopyNodesAndTabsBuildData(addNodeList, addTabList, needCopyNodes, needCopyTab, needCopyNode, toCopyNode, resultTablesData, 1, tabOwner, vo.getIsCopyData());
+
+                                        //附件
+                                        addNewFileTabs.addAll(addTabList);
+
+                                        //1.2 选择同父级的同级节点,只复制数据
+                                    } else if (needCopyNode.getParentId().equals(toCopyNode.getParentId())) {
+                                        //构造数据
+                                        this.addCopyTabData(needCopyNode, toCopyNode, tabOwner, resultTablesData, addTabList, vo.getIsCopyData(), addNewFileTabs);
+                                    }
 
-                                            //TODO 跨节点复制
-                                        } else if (new Integer(0).equals(toCopyVO.getIsSameNode())) {
-                                            //获取需要复制节点的上级
-                                            WbsTreeContract parentNodeNeed = wbsTreeContractClient.getContractWbsTreeByContractIdAndId(needCopyNode.getParentId(), Long.parseLong(needCopyNode.getContractId()));
-
-                                            boolean var = false;
-                                            //2.1 选择的父级的同级的父级节点,新增(当复制节点父级与选择复制到的位置节点的父级id相同时,表示跨节点新增)
-                                            if (parentNodeNeed != null) {
-                                                //2.1.1 如果是跨一级的情况下:parentNodeNeed.getParentId() == toCopyNode.getParentId() ,且 parentNodeNeed.getAncestors() == toCopyNode.getAncestors() ,且节点类型必须一样
-                                                if (parentNodeNeed.getParentId().equals(toCopyNode.getParentId()) && parentNodeNeed.getAncestors().equals(toCopyNode.getAncestors()) && parentNodeNeed.getNodeType().equals(toCopyNode.getNodeType())) {
-                                                    toCopyNode.setNodeName(toCopyVO.getNodeName());
-                                                    toCopyNode.setPartitionCode(toCopyVO.getPartitionCode());
-
-                                                    //获取缓存节点、表信息
-                                                    List<WbsTreeContract> needCopyNodes = needCopyNodeAndTabMap.get("node:" + needCopyNodeRoot.getPKeyId());
-                                                    List<WbsTreeContract> needCopyTab = needCopyNodeAndTabMap.get("tab:" + needCopyNodeRoot.getPKeyId());
-
-                                                    //构造新的节点、表、数据
-                                                    this.addCopyNodesAndTabsBuildData(addNodeList, addTabList, needCopyNodes, needCopyTab, needCopyNode, toCopyNode, resultTablesData, 0, finalTabOwner, vo.getIsCopyData());
-                                                    var = true;
-
-                                                } else if (!parentNodeNeed.getParentId().equals(toCopyNode.getParentId()) && !parentNodeNeed.getAncestors().equals(toCopyNode.getAncestors()) && parentNodeNeed.getNodeType().equals(toCopyNode.getNodeType())) {
-                                                    //2.1.2 如果跨多级的情况下父级id不相同 parentNodeNeed.getParentId() != toCopyNode.getParentId() ,且 parentNodeNeed.getAncestors() != toCopyNode.getAncestors() ,且节点类型必须一样
-                                                    toCopyNode.setNodeName(toCopyVO.getNodeName());
-                                                    toCopyNode.setPartitionCode(toCopyVO.getPartitionCode());
-
-                                                    //获取缓存节点、表信息
-                                                    List<WbsTreeContract> needCopyNodes = needCopyNodeAndTabMap.get("node:" + needCopyNodeRoot.getPKeyId());
-                                                    List<WbsTreeContract> needCopyTab = needCopyNodeAndTabMap.get("tab:" + needCopyNodeRoot.getPKeyId());
-
-                                                    //构造新的节点、表、数据
-                                                    this.addCopyNodesAndTabsBuildData(addNodeList, addTabList, needCopyNodes, needCopyTab, needCopyNode, toCopyNode, resultTablesData, 0, finalTabOwner, vo.getIsCopyData());
-                                                    var = true;
-                                                }
-                                            }
+                                    //TODO 跨节点复制
+                                } else if (new Integer(0).equals(toCopyVO.getIsSameNode())) {
+                                    //获取需要复制节点的上级
+                                    WbsTreeContract parentNodeNeed = wbsTreeContractClient.getContractWbsTreeByContractIdAndId(needCopyNode.getParentId(), Long.parseLong(needCopyNode.getContractId()));
 
-                                            //2.2 如果点击选择的是当前复制节点本身的同等级节点,那么就只复制数据。(如果是跨节点,类型相同的情况下,只复制数据),且var=false,表示没有进行到跨节点新增的逻辑,只是跨节点复制数据
-                                            if (needCopyNode.getNodeType().equals(toCopyNode.getNodeType()) && !needCopyNode.getParentId().equals(toCopyNode.getParentId()) && !var) {
-                                                //构造数据
-                                                this.addCopyTabData(needCopyNode, toCopyNode, finalTabOwner, resultTablesData, addTabList, vo.getIsCopyData(), addNewFileTabs);
-                                            }
+                                    boolean var = false;
+                                    //2.1 选择的父级的同级的父级节点,新增(当复制节点父级与选择复制到的位置节点的父级id相同时,表示跨节点新增)
+                                    if (parentNodeNeed != null) {
+                                        //2.1.1 如果是跨一级的情况下:parentNodeNeed.getParentId() == toCopyNode.getParentId() ,且 parentNodeNeed.getAncestors() == toCopyNode.getAncestors() ,且节点类型必须一样
+                                        if (parentNodeNeed.getParentId().equals(toCopyNode.getParentId()) && parentNodeNeed.getAncestors().equals(toCopyNode.getAncestors()) && parentNodeNeed.getNodeType().equals(toCopyNode.getNodeType())) {
+                                            toCopyNode.setNodeName(toCopyVO.getNodeName());
+                                            toCopyNode.setPartitionCode(toCopyVO.getPartitionCode());
+
+                                            //获取缓存节点、表信息
+                                            List<WbsTreeContract> needCopyNodes = needCopyNodeAndTabMap.get("node:" + needCopyNodeRoot.getPKeyId());
+                                            List<WbsTreeContract> needCopyTab = needCopyNodeAndTabMap.get("tab:" + needCopyNodeRoot.getPKeyId());
+
+                                            //构造新的节点、表、数据
+                                            this.addCopyNodesAndTabsBuildData(addNodeList, addTabList, needCopyNodes, needCopyTab, needCopyNode, toCopyNode, resultTablesData, 0, tabOwner, vo.getIsCopyData());
+
+                                            //附件
+                                            addNewFileTabs.addAll(addTabList);
+
+                                            var = true;
+
+                                        } else if (!parentNodeNeed.getParentId().equals(toCopyNode.getParentId()) && !parentNodeNeed.getAncestors().equals(toCopyNode.getAncestors()) && parentNodeNeed.getNodeType().equals(toCopyNode.getNodeType())) {
+                                            //2.1.2 如果跨多级的情况下父级id不相同 parentNodeNeed.getParentId() != toCopyNode.getParentId() ,且 parentNodeNeed.getAncestors() != toCopyNode.getAncestors() ,且节点类型必须一样
+                                            toCopyNode.setNodeName(toCopyVO.getNodeName());
+                                            toCopyNode.setPartitionCode(toCopyVO.getPartitionCode());
+
+                                            //获取缓存节点、表信息
+                                            List<WbsTreeContract> needCopyNodes = needCopyNodeAndTabMap.get("node:" + needCopyNodeRoot.getPKeyId());
+                                            List<WbsTreeContract> needCopyTab = needCopyNodeAndTabMap.get("tab:" + needCopyNodeRoot.getPKeyId());
+
+                                            //构造新的节点、表、数据
+                                            this.addCopyNodesAndTabsBuildData(addNodeList, addTabList, needCopyNodes, needCopyTab, needCopyNode, toCopyNode, resultTablesData, 0, tabOwner, vo.getIsCopyData());
+
+                                            //附件
+                                            addNewFileTabs.addAll(addTabList);
+
+                                            var = true;
                                         }
                                     }
-                                });
+
+                                    //2.2 如果点击选择的是当前复制节点本身的同等级节点,那么就只复制数据。(如果是跨节点,类型相同的情况下,只复制数据),且var=false,表示没有进行到跨节点新增的逻辑,只是跨节点复制数据
+                                    if (needCopyNode.getNodeType().equals(toCopyNode.getNodeType()) && !needCopyNode.getParentId().equals(toCopyNode.getParentId()) && !var) {
+                                        //构造数据
+                                        this.addCopyTabData(needCopyNode, toCopyNode, tabOwner, resultTablesData, addTabList, vo.getIsCopyData(), addNewFileTabs);
+                                    }
+                                }
                             }
                         }
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    } finally {
-                        //关闭线程池
-                        executor.shutdown();
-                        //等待所有线程执行完毕
-                        while (!executor.isTerminated()) {
-                        }
                     }
 
                     //重构祖级id
@@ -1625,7 +1620,7 @@ public class InformationWriteQueryController extends BladeController {
 
                     if (addNewFileTabs.size() > 0 && addChildNodesTablesOldAll.size() > 0 && vo.getIsCopyData() == 1) {
                         //复制新增表附件
-                        this.addCopyTabFile(tabs, addChildNodesTablesOldAll);
+                        this.addCopyTabFile(addNewFileTabs, addChildNodesTablesOldAll);
                     }
 
                     if (resultTablesData.size() > 0 && vo.getIsCopyData() == 1) {
@@ -1635,15 +1630,12 @@ public class InformationWriteQueryController extends BladeController {
                             jdbcTemplate.execute(StringUtils.join(strings, ""));
                         }
                     }
+
                     if (row) {
                         //更新redis缓存
                         informationQueryService.delAsyncWbsTree(contractId);
-                        /*List<WbsTreeContract> collect = asyncWbsTreeNodes.stream().distinct().collect(Collectors.toList());
-                        for (WbsTreeContract asyncWbsTreeNode : collect) {
-                            informationQueryService.AsyncWbsTree("", asyncWbsTreeNode.getId() + "", contractId, "", "1");
-                            informationQueryService.AsyncWbsTree("", asyncWbsTreeNode.getParentId() + "", contractId, "", "1");
-                        }*/
                     }
+
                     return R.success("操作成功");
                 } else {
                     throw new ServiceException("没有找到需要复制的节点信息,请联系管理员");
@@ -1685,25 +1677,37 @@ public class InformationWriteQueryController extends BladeController {
      * 新增复制的表单文件
      */
     @Async
-    public void addCopyTabFile(List<WbsTreeContract> addChildNodesTables, Set<WbsTreeContract> addChildNodesTablesOld) {
+    public void addCopyTabFile(Set<WbsTreeContract> addChildNodesTables, Set<WbsTreeContract> addChildNodesTablesOld) {
         //获取所有数据源附件文件
         List<Long> tabFileIds = addChildNodesTablesOld.stream().distinct().map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
         Map<String, List<TableFile>> tableFileOldMap = tableFileClient.getTabFilesByTabIds(StringUtils.join(tabFileIds, ",")).stream().collect(Collectors.groupingBy(TableFile::getTabId));
         if (tableFileOldMap != null && tableFileOldMap.size() > 0) {
             List<TableFile> resultFileData = new ArrayList<>();
-            List<Long> updatePKeyIds = new ArrayList<>();
-            for (WbsTreeContract tabOld : addChildNodesTablesOld) {
-                for (WbsTreeContract tabNew : addChildNodesTables) {
-                    //获取对应表
-                    if (tabOld.getNodeName().equals(tabNew.getNodeName()) && (ObjectUtil.isNotEmpty(tabOld.getHtmlUrl()) && ObjectUtil.isNotEmpty(tabNew.getHtmlUrl()) && tabOld.getHtmlUrl().equals(tabNew.getHtmlUrl()))) {
-                        //构建文件数据
+            Set<Long> updatePKeyIds = new HashSet<>();
+
+            Map<String, WbsTreeContract> addChildNodesTablesOldMap = new HashMap<>();
+            for (WbsTreeContract node : addChildNodesTablesOld) {
+                if (StringUtils.isNotBlank(node.getHtmlUrl())) {
+                    String key = node.getNodeName() + node.getHtmlUrl();
+                    addChildNodesTablesOldMap.put(key, node);
+                }
+            }
+
+            for (WbsTreeContract tabNew : addChildNodesTables) {
+                if (StringUtils.isNotBlank(tabNew.getHtmlUrl())) {
+                    String key = tabNew.getNodeName() + tabNew.getHtmlUrl();
+                    WbsTreeContract tabOld = addChildNodesTablesOldMap.get(key);
+                    if (tabOld != null) {
                         List<TableFile> tab = tableFileOldMap.get(tabOld.getPKeyId() + "");
                         if (tab != null && tab.size() > 0) {
-                            tab.forEach(file -> {
-                                file.setTabId(tabNew.getPKeyId() + "");
-                                file.setId(SnowFlakeUtil.getId());
-                            });
-                            resultFileData.addAll(tab);
+                            for (TableFile tableFile : tab) {
+                                TableFile obj = BeanUtil.copyProperties(tableFile, TableFile.class);
+                                if (obj != null) {
+                                    obj.setTabId(tabNew.getPKeyId() + "");
+                                    obj.setId(SnowFlakeUtil.getId());
+                                    resultFileData.add(obj);
+                                }
+                            }
                             if (ObjectUtil.isNotEmpty(tabOld) && tabOld.getTabFileType() == 2) {
                                 updatePKeyIds.add(tabNew.getPKeyId());
                             }
@@ -1711,11 +1715,12 @@ public class InformationWriteQueryController extends BladeController {
                     }
                 }
             }
+
             if (resultFileData.size() > 0) {
                 //入库
                 if (tableFileClient.saveBatch(resultFileData) && updatePKeyIds.size() > 0) {
                     //修改表的文件按钮状态
-                    wbsTreeContractClient.updateTabFileTypeByPkeyIds(updatePKeyIds);
+                    wbsTreeContractClient.updateTabFileTypeByPkeyIds(new ArrayList<>(updatePKeyIds));
                 }
             }
         }
@@ -3099,7 +3104,7 @@ public class InformationWriteQueryController extends BladeController {
             vo.setContractId(Long.valueOf(vo.getContractIdRelation()));
         }
 
-        return R.data(this.informationQueryService.selectInformationQueryPage(Condition.getPage(query), vo,node));
+        return R.data(this.informationQueryService.selectInformationQueryPage(Condition.getPage(query), vo, node));
     }
 
     /**

+ 0 - 6
blade-service/blade-business/src/main/java/org/springblade/business/mapper/ArchiveFileMapper.xml

@@ -77,9 +77,6 @@
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
         </if>
-        <if test="vo.contractId != null and vo.contractId != ''">
-            and contract_id = #{vo.contractId}
-        </if>
         <if test="vo.archiveId != null and vo.archiveId != ''">
             and archive_id = #{vo.archiveId}
         </if>
@@ -120,9 +117,6 @@
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
         </if>
-        <if test="vo.contractId != null and vo.contractId != ''">
-            and contract_id = #{vo.contractId}
-        </if>
         <if test="vo.archiveId != null and vo.archiveId != ''">
             and archive_id = #{vo.archiveId}
         </if>

+ 20 - 20
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FirstController.java

@@ -278,26 +278,26 @@ public class FirstController extends BladeController {
                                                         x1 = 1;
                                                     }
                                                     String myData = dataMap.get(val) + "";
-                                                    if (myData.indexOf("T") >= 0 && myData.indexOf("-") >= 0) {
-                                                        if (myData.indexOf(",") >= 0 && myData.indexOf("]") >= 0) {
-                                                            myData = myData.replace("[", "").replace("]", "");
-                                                            String[] dataVal = myData.split(",");
-                                                            String[] Start_dataStr = dataVal[0].split("T")[0].split("-");
-                                                            String StartDate = StringUtil.format("{}年{}月{}日", Start_dataStr[0], Start_dataStr[1], Integer.parseInt(Start_dataStr[2]) + 1);
-
-                                                            String[] end_dataStr = dataVal[1].split("T")[0].split("-");
-                                                            String endDate = StringUtil.format("{}年{}月{}日", end_dataStr[0], end_dataStr[1], Integer.parseInt(end_dataStr[2]) + 1);
-
-                                                            if (StartDate.equals(endDate)) {
-                                                                myData = StartDate;
-                                                            } else {
-                                                                myData = StartDate + "-" + endDate;
-                                                            }
-                                                        } else {
-                                                            String[] dataStr = myData.split("T")[0].split("-");
-                                                            myData = StringUtil.format("{}年{}月{}日", dataStr[0], dataStr[1], Integer.parseInt(dataStr[2]) + 1);
-                                                        }
-                                                    }
+//                                                    if (myData.indexOf("T") >= 0 && myData.indexOf("-") >= 0) {
+//                                                        if (myData.indexOf(",") >= 0 && myData.indexOf("]") >= 0) {
+//                                                            myData = myData.replace("[", "").replace("]", "");
+//                                                            String[] dataVal = myData.split(",");
+//                                                            String[] Start_dataStr = dataVal[0].split("T")[0].split("-");
+//                                                            String StartDate = StringUtil.format("{}年{}月{}日", Start_dataStr[0], Start_dataStr[1], Integer.parseInt(Start_dataStr[2]) + 1);
+//
+//                                                            String[] end_dataStr = dataVal[1].split("T")[0].split("-");
+//                                                            String endDate = StringUtil.format("{}年{}月{}日", end_dataStr[0], end_dataStr[1], Integer.parseInt(end_dataStr[2]) + 1);
+//
+//                                                            if (StartDate.equals(endDate)) {
+//                                                                myData = StartDate;
+//                                                            } else {
+//                                                                myData = StartDate + "-" + endDate;
+//                                                            }
+//                                                        } else {
+//                                                            String[] dataStr = myData.split("T")[0].split("-");
+//                                                            myData = StringUtil.format("{}年{}月{}日", dataStr[0], dataStr[1], Integer.parseInt(dataStr[2]) + 1);
+//                                                        }
+//                                                    }
 
                                                     if (myData.indexOf("https") >= 0 && myData.indexOf("aliyuncs") >= 0) {
                                                         Element element = trs.get(y1).select("td").get(x1);

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -575,6 +575,7 @@ public class TextdictInfoController extends BladeController {
         List<Long> cIdsList = wbsTreePrivatesEqual.stream().map(WbsTreePrivate::getId).distinct().collect(Collectors.toList());
         if(cIdsList!=null && cIdsList.size()>=1){
             List<Long> cPkeyIds = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>lambdaQuery()
+                    .select(WbsTreeContract::getPKeyId)
                     .eq(WbsTreeContract::getProjectId, wbsTreePrivate.getProjectId())
                     .eq(WbsTreeContract::getExcelId, wbsTreePrivate.getExcelId())
                     .eq(WbsTreeContract::getStatus, 1)

+ 2 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java

@@ -35,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.*;
 import java.util.function.Function;
@@ -507,7 +508,7 @@ public class WbsTreePrivateController extends BladeController {
     @ApiOperationSupport(order = 14)
     @ApiOperation(value = "同步项目下所有节点的电签默认信息", notes = "传入项目projectId、节点pKeyId")
     @RequestMapping(value = "/sync-project-eVisa", method = RequestMethod.POST)
-    public R syncProjectEVisa(@RequestParam String projectId, @RequestParam String pKeyId) {
+    public R syncProjectEVisa(@RequestParam String projectId, @RequestParam String pKeyId) throws FileNotFoundException {
         return R.status(wbsTreePrivateService.syncProjectEVisa(projectId, pKeyId));
     }
 

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.java

@@ -47,6 +47,8 @@ public interface ArchiveTreeMapper extends BaseMapper<ArchiveTree> {
     int removeAllSonNodeIdsForArchiveAutoRule_3(@Param("archiveAutoType") Integer archiveAutoType,
                                                 @Param("ancestors") String ancestors,
                                                 @Param("nodeId") Long nodeId);
+
+    int removeAllSonNodeforTypeIsNUll(@Param("ancestors") String ancestors,@Param("nodeId") Long nodeId);
     int removeNodeForArchiveAutoRule_Group(@Param("archiveAutoGroupId") Long archiveAutoGroupId);
     /**
      * 查看分类并卷规则-获取大类所有节点

+ 18 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -310,6 +310,20 @@
         </if>
     </update>
 
+
+    <update id="removeAllSonNodeforTypeIsNUll">
+        update m_archive_tree
+        set
+            archive_auto_type = null,
+            archive_auto_group_select =NULL
+        where
+           is_deleted = 0
+           and ancestors like concat('', #{ancestors}, '%')
+           and archive_auto_type = 1
+           and archive_auto_node_id is NULL
+           or id=#{nodeId} ;
+    </update>
+
     <update id="removeAllSonNodeIdsForArchiveAutoRule_1">
         update m_archive_tree
         set
@@ -322,7 +336,8 @@
 
         update m_archive_tree
         set
-            archive_auto_type = NULL
+            archive_auto_type = NULL,
+            archive_auto_group_select =NULL
         where
             is_deleted = 0
           and ancestors like concat('', #{ancestors}, '%')
@@ -335,7 +350,8 @@
         update m_archive_tree
         set
             /*取消规则 恢复默认规则 不需要设置为null,如果最高并卷节点取消规则,archive_auto_node_id会为空,相当于无规则不会进到自动组卷流程*/
-            archive_auto_type = 1
+            archive_auto_type = 1,
+            archive_auto_group_select =NULL
         where
             is_deleted = 0
           and ancestors like concat('', #{ancestors}, '%')

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IWbsTreePrivateService.java

@@ -58,7 +58,7 @@ public interface IWbsTreePrivateService extends BaseService<WbsTreePrivate> {
 
     boolean syncNodeParam(String projectId, String pKeyId);
 
-    boolean syncProjectEVisa(String projectId, String pKeyId);
+    boolean syncProjectEVisa(String projectId, String pKeyId) throws FileNotFoundException;
 
     void eVisInfoRepeatDel(String pid);
 

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveAutoRuleSyncImpl.java

@@ -353,6 +353,9 @@ public class ArchiveAutoRuleSyncImpl {
                             //已经是客户级了不用理
                         }
                     }
+                }else{
+                    //type为null的,也要更新 防止在项目级取消规则了
+                    contractVO2.setFlag(1);
                 }
             }
             //archiveAutoType  与项目级一致  不用处理

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -214,6 +214,11 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 			archiveTreeContractDTO.setTreeSort(parent.getTreeSort());
 			archiveTreeContractDTO.setContractId(parent.getContractId());
 			archiveTreeContractDTO.setTreeCode(parent.getTreeCode());
+
+			archiveTreeContractDTO.setArchiveAutoNodeId(parent.getArchiveAutoNodeId());
+			archiveTreeContractDTO.setArchiveAutoType(parent.getArchiveAutoType());
+			archiveTreeContractDTO.setArchiveAutoGroupId(parent.getArchiveAutoGroupId());
+			archiveTreeContractDTO.setArchiveAutoGroupSelect(0);
 		}
 
 		archiveTreeContractDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
@@ -456,6 +461,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 		this.saveBatch(saveList);
 		this.updateBatchById(upList);
+
 		return true;
 	}
 

+ 10 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -317,6 +317,11 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
             archiveTreeDTO.setTenantId(parent.getTenantId());
             String ancestors = parent.getAncestors() + StringPool.COMMA + archiveTreeDTO.getParentId();
             archiveTreeDTO.setAncestors(ancestors);
+
+            archiveTreeDTO.setArchiveAutoType(parent.getArchiveAutoType());
+            archiveTreeDTO.setArchiveAutoNodeId(parent.getArchiveAutoNodeId());
+            archiveTreeDTO.setArchiveAutoGroupId(parent.getArchiveAutoGroupId());
+            archiveTreeDTO.setArchiveAutoGroupSelect(0);
         }
 
         archiveTreeDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
@@ -670,6 +675,11 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
                         String ancestors = node.getAncestors()+","+nodeId;
                         baseMapper.removeAllSonNodeIdsForArchiveAutoRule_3(node.getArchiveAutoType(),ancestors,nodeId);
                     }
+                }else{
+                    //为null的话 主要是出现脏数据。当做维护处理
+                    //可以把当前节点下的archive_auto_type=1,archive_auto_node_id为null的 数据archive_auto_type改为null
+                    String ancestors = node.getAncestors()+","+nodeId;
+                    baseMapper.removeAllSonNodeforTypeIsNUll(ancestors,nodeId);
                 }
             }
         }catch (Exception e){

+ 44 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -40,14 +40,14 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.*;
-import java.util.concurrent.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 @AllArgsConstructor
@@ -802,7 +802,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                 List<Long> wbsTreeIds = new ArrayList<>(map.values());
                 List<List<Long>> partition = Lists.partition(wbsTreeIds, 1000);
                 for (List<Long> ids : partition) {
-                    String sql = "select id,name,k,v,node_id,remark from m_wbs_param where node_id in (" + org.apache.commons.lang.StringUtils.join(ids, ",") + ")";
+                    String sql = "select id,name,k,v,node_id,remark from m_wbs_param where is_deleted = 0 and status = 1 and node_id in (" + org.apache.commons.lang.StringUtils.join(ids, ",") + ")";
                     List<WbsParam> wbsParams = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(WbsParam.class));
                     wbsParamOldList.addAll(wbsParams);
                 }
@@ -835,7 +835,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             //当前引用模板的节点参数,数据源Map
             Map<Long, WbsParam> paramOldDataMap = wbsParamOldList.stream().collect(Collectors.toMap(WbsParam::getId, Function.identity()));
             //获取当前项目的选择的该节点的节点、以及子节点下的参数信息
-            List<WbsParam> paramListNow = wbsParamMapper.selectList(Wrappers.<WbsParam>lambdaQuery().select(WbsParam::getK, WbsParam::getV, WbsParam::getName, WbsParam::getId, WbsParam::getRemark, WbsParam::getNodeId).eq(WbsParam::getProjectId, Long.parseLong(projectId)).in(WbsParam::getNodeId, privateNodePKeyIds));
+            List<WbsParam> paramListNow = wbsParamMapper.selectList(Wrappers.<WbsParam>lambdaQuery().select(WbsParam::getK, WbsParam::getV, WbsParam::getName, WbsParam::getId, WbsParam::getRemark, WbsParam::getNodeId).eq(WbsParam::getStatus, 1).eq(WbsParam::getProjectId, Long.parseLong(projectId)).in(WbsParam::getNodeId, privateNodePKeyIds));
             //将参数名称、K和nodeId作为唯一标识存储到一个Map中
             Map<String, WbsParam> paramMap = new HashMap<>();
             for (WbsParam nowObj : paramListNow) {
@@ -911,7 +911,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     private void recursionGetChildNodesAndTabs(List<WbsTreePrivate> list, List<WbsTreePrivate> result, WbsTreePrivate obj) {
         List<Long> ids = list.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
         if (ids.size() > 0) {
-            List<WbsTreePrivate> query = jdbcTemplate.query("select p_key_id,id,type,parent_id,html_url from m_wbs_tree_private where parent_id in(" + org.apache.commons.lang.StringUtils.join(ids, ",") + ") and status = 1 and is_deleted = 0 and project_id = " + obj.getProjectId(), new BeanPropertyRowMapper<>(WbsTreePrivate.class));
+            List<WbsTreePrivate> query = jdbcTemplate.query("select p_key_id,id,type,parent_id,html_url,project_id,excel_id from m_wbs_tree_private where parent_id in(" + org.apache.commons.lang.StringUtils.join(ids, ",") + ") and status = 1 and is_deleted = 0 and project_id = " + obj.getProjectId(), new BeanPropertyRowMapper<>(WbsTreePrivate.class));
             if (query.size() > 0) {
                 result.addAll(query);
                 recursionGetChildNodesAndTabs(query, result, obj);
@@ -920,12 +920,13 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     }
 
     @Override
-    public boolean syncProjectEVisa(String projectId, String pKeyId) {
+    public boolean syncProjectEVisa(String projectId, String pKeyId) throws FileNotFoundException {
         if (StringUtils.isNotEmpty(projectId) && StringUtils.isNotEmpty(pKeyId)) {
             ProjectInfo projectInfo = projectInfoMapper.selectById(projectId);
             if (projectInfo != null && ("private").equals(projectInfo.getReferenceWbsTemplateType()) && ObjectUtils.isNotEmpty(projectInfo.getReferenceWbsTemplateId())) {
                 //构造参数集合
                 List<TextdictInfo> insertData = new ArrayList<>();
+                List<WbsTreePrivate> privateList = new ArrayList<>();
                 Map<Long, List<TextdictInfo>> textDictInfoData = new HashMap<>();
 
                 //获取当前选择的节点下的所有节点、表、独立表
@@ -1006,6 +1007,8 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                                 insertData.add(obj);
                             }
                         }
+                        //表信息
+                        privateList.add(tree);
                     }
                 });
 
@@ -1026,6 +1029,12 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                         textDictInfoService.insertBatch(addList, 1000);
                     }
                 }
+
+                //修改合同段html样式
+                if (privateList.size() > 0) {
+                    this.syncEVisaDefaultInfo(privateList, projectId);
+                }
+
             }
             return true;
         } else {
@@ -1033,6 +1042,35 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         }
     }
 
+    @Async
+    public void syncEVisaDefaultInfo(List<WbsTreePrivate> list, String projectId) {
+        List<Long> ids = list.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
+        List<WbsTreeContract> contractList = wbsTreeContractService.getBaseMapper().selectList(Wrappers.<WbsTreeContract>lambdaQuery()
+                .select(WbsTreeContract::getPKeyId, WbsTreeContract::getExcelId)
+                .eq(WbsTreeContract::getProjectId, projectId)
+                .eq(WbsTreeContract::getStatus, 1)
+                .isNotNull(WbsTreeContract::getExcelId)
+                .in(WbsTreeContract::getId, ids));
+
+        Map<Long, List<WbsTreeContract>> contractMap = contractList.stream().collect(Collectors.groupingBy(WbsTreeContract::getExcelId));
+
+        List<String> updateSQLList = new ArrayList<>();
+        for (WbsTreePrivate wbsTreePrivate : list) {
+            List<WbsTreeContract> wbsTreeContractList = contractMap.get(wbsTreePrivate.getExcelId());
+            if (wbsTreeContractList != null) {
+                String cPkeyIdsStr = org.apache.commons.lang.StringUtils.join(wbsTreeContractList.stream().map(WbsTreeContract::getPKeyId).collect(Collectors.toList()), ",");
+                String updateSql = "update m_wbs_tree_contract set html_url = '" + wbsTreePrivate.getHtmlUrl() + "' where p_key_id in (" + cPkeyIdsStr + ")";
+                updateSQLList.add(updateSql);
+            }
+        }
+        if (updateSQLList.size() > 0) {
+            List<List<String>> partition = Lists.partition(updateSQLList, 100);
+            for (List<String> sqlList : partition) {
+                jdbcTemplate.execute(org.apache.commons.lang.StringUtils.join(sqlList, "; "));
+            }
+        }
+    }
+
     @Override
     public boolean syncNodeTable(String primaryKeyId) {
         if (StringUtils.isNotEmpty(primaryKeyId)) {