Browse Source

新增归档树、文件上传显示树后台接口

liuyc 3 years ago
parent
commit
11b837ac58
22 changed files with 609 additions and 228 deletions
  1. 19 3
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/ArchiveTreeDTO.java
  2. 43 25
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java
  3. 30 5
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO.java
  4. 174 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO2.java
  5. 1 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeVO.java
  6. 92 52
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeController.java
  7. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java
  8. 3 6
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java
  9. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreePrivateController.java
  10. 0 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/excel/WbsExcelBatchUtil.java
  11. 0 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/excel/WbsFormElementImporter.java
  12. 24 11
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.java
  13. 57 26
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml
  14. 28 8
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeService.java
  15. 123 18
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java
  16. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsFormElementServiceImpl.java
  17. 0 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsInfoServiceImpl.java
  18. 0 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java
  19. 0 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java
  20. 1 61
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java
  21. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/ArchiveTreeWrapper.java
  22. 10 0
      blade-service/blade-manager/src/main/java/sql/archivetree.menu.sql

+ 19 - 3
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/dto/ArchiveTreeDTO.java

@@ -1,3 +1,19 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
 package org.springblade.manager.dto;
 
 import lombok.Data;
@@ -5,14 +21,14 @@ import lombok.EqualsAndHashCode;
 import org.springblade.manager.entity.ArchiveTree;
 
 /**
- * 归档树节点表数据传输对象实体类
+ * 数据传输对象实体类
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class ArchiveTreeDTO extends ArchiveTree {
-    private static final long serialVersionUID = 1L;
+	private static final long serialVersionUID = 1L;
 
 }

+ 43 - 25
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/ArchiveTree.java

@@ -1,105 +1,123 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
 package org.springblade.manager.entity;
 
-
 import com.baomidou.mybatisplus.annotation.TableName;
-import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.core.mp.base.BaseEntity;
 
 /**
- * 归档树节点表实体类
+ * 实体类
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 @Data
 @TableName("m_archive_tree")
 @EqualsAndHashCode(callSuper = true)
 public class ArchiveTree extends BaseEntity {
+
     private static final long serialVersionUID = 1L;
 
     /**
-     * 租户id
+     * 租户Id
      */
-    @ApiModelProperty(value = "租户id")
     private String tenantId;
 
     /**
      * 父主键
      */
-    @ApiModelProperty(value = "父主键id")
     private Long parentId;
 
-
     /**
      * 祖级列表
      */
-    @ApiModelProperty(value = "祖级id列表")
     private String ancestors;
 
-
     /**
-     * 节点名
+     * 节点名
      */
-    @ApiModelProperty(value = "nodeName")
     private String nodeName;
 
     /**
      * 节点全称
      */
-    @ApiModelProperty(value = "节点全称")
     private String fullName;
 
     /**
-     * 角色类型
+     * 节点类型
+     */
+    private Integer nodeType;
+
+    /**
+     * 岗位类型
      */
-    @ApiModelProperty(value = "岗位类型")
     private Integer postType;
 
     /**
-     * 节点类型
+     * 关联类型
      */
-    @ApiModelProperty(value = "节点类型")
-    private Integer nodeType;
+    private Integer associationType;
+
+    /**
+     * 内业资料类型
+     */
+    private String majorDataType;
+
+    /**
+     * 显示层级
+     */
+    private String displayHierarchy;
 
     /**
      * 是否为存储节点 '0'否 '1'是
      */
-    @ApiModelProperty(value = "是否为存储节点 '0'否 '1'是")
     private Integer isStorageNode;
 
     /**
      * 是否为竣工图 '0'否 '1'是
      */
-    @ApiModelProperty(value = "是否为竣工图 '0'否 '1'是")
     private Integer isBuiltDrawing;
 
     /**
      * 是否为接口节点 '0'否 '1'是
      */
-    @ApiModelProperty(value = "是否为接口节点 '0'否 '1'是")
     private Integer isInterfaceNode;
 
     /**
      * 接口类型
      */
-    @ApiModelProperty(value = "接口类型")
     private Integer interfaceType;
 
-
     /**
      * 排序
      */
-    @ApiModelProperty(value = "排序")
     private Integer sort;
 
     /**
      * 备注
      */
-    @ApiModelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 是否配置到上传文件显示配置树 '0'否 '1'是
+     */
+    private Integer isUploadFileDisplayConfigurationTree;
 
 
 }

+ 30 - 5
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeVO.java

@@ -1,3 +1,19 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
 package org.springblade.manager.vo;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
@@ -11,19 +27,17 @@ import org.springblade.manager.entity.ArchiveTree;
 import java.util.ArrayList;
 import java.util.List;
 
-
 /**
- * 归档树节点表视图实体类
+ * 视图实体类
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-public class ArchiveTreeVO extends ArchiveTree  implements INode<ArchiveTreeVO> {
+public class ArchiveTreeVO extends ArchiveTree implements INode<ArchiveTreeVO> {
     private static final long serialVersionUID = 1L;
 
-
     /**
      * 主键ID
      */
@@ -56,4 +70,15 @@ public class ArchiveTreeVO extends ArchiveTree  implements INode<ArchiveTreeVO>
         return this.children;
     }
 
+    /**
+     * 内业资料类型(用于显示控制)
+     */
+    private String majorDataType;
+
+    /**
+     * 显示层级(用于显示控制)
+     */
+    private String displayHierarchy;
+
+
 }

+ 174 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO2.java

@@ -0,0 +1,174 @@
+package org.springblade.manager.vo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springblade.core.tool.node.BaseNode;
+import org.springblade.core.tool.node.TreeNode;
+
+
+/**
+ * 重写了TreeNode实体,增加了字段
+ */
+public class TreeNodeVO2 extends BaseNode<TreeNode> {
+    private static final long serialVersionUID = 1L;
+    private String title;
+    @JsonSerialize(
+            using = ToStringSerializer.class
+    )
+    private Long key;
+    @JsonSerialize(
+            using = ToStringSerializer.class
+    )
+    private Long value;
+
+    private String tenantId;
+
+    private String ancestors;
+
+    /**
+     * 内业资料类型(用于显示控制)
+     */
+    private String majorDataType;
+
+    /**
+     * 显示层级(用于显示控制)
+     */
+    private String displayHierarchy;
+
+
+
+    public TreeNodeVO2() {
+    }
+
+    public String getMajorDataType() {
+        return majorDataType;
+    }
+
+    public void setMajorDataType(String majorDataType) {
+        this.majorDataType = majorDataType;
+    }
+
+    public String getDisplayHierarchy() {
+        return displayHierarchy;
+    }
+
+    public void setDisplayHierarchy(String displayHierarchy) {
+        this.displayHierarchy = displayHierarchy;
+    }
+
+    public String getAncestors() {
+        return ancestors;
+    }
+
+    public void setAncestors(String ancestors) {
+        this.ancestors = ancestors;
+    }
+
+
+    public String getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(String tenantId) {
+        this.tenantId = tenantId;
+    }
+
+
+    public String getTitle() {
+        return this.title;
+    }
+
+    public Long getKey() {
+        return this.key;
+    }
+
+    public Long getValue() {
+        return this.value;
+    }
+
+    public void setTitle(final String title) {
+        this.title = title;
+    }
+
+    public void setKey(final Long key) {
+        this.key = key;
+    }
+
+    public void setValue(final Long value) {
+        this.value = value;
+    }
+
+    public String toString() {
+        return "TreeNode(tenantId=" + this.getTenantId()
+                + ",ancestors" + this.getAncestors()
+                + ",majorDataType" + this.getMajorDataType()
+                + ",displayHierarchy" + this.getDisplayHierarchy()
+                + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
+    }
+
+    public boolean equals(final Object o) {
+        if (o == this) {
+            return true;
+        } else if (!(o instanceof TreeNode)) {
+            return false;
+        } else {
+            TreeNodeVO2 other = (TreeNodeVO2) o;
+            if (!other.canEqual(this)) {
+                return false;
+            } else {
+                label47:
+                {
+                    Object this$key = this.getKey();
+                    Object other$key = other.getKey();
+                    if (this$key == null) {
+                        if (other$key == null) {
+                            break label47;
+                        }
+                    } else if (this$key.equals(other$key)) {
+                        break label47;
+                    }
+
+                    return false;
+                }
+
+                Object this$value = this.getValue();
+                Object other$value = other.getValue();
+                if (this$value == null) {
+                    if (other$value != null) {
+                        return false;
+                    }
+                } else if (!this$value.equals(other$value)) {
+                    return false;
+                }
+
+                Object this$title = this.getTitle();
+                Object other$title = other.getTitle();
+                if (this$title == null) {
+                    if (other$title != null) {
+                        return false;
+                    }
+                } else if (!this$title.equals(other$title)) {
+                    return false;
+                }
+
+                return true;
+            }
+        }
+    }
+
+    protected boolean canEqual(final Object other) {
+        return other instanceof TreeNode;
+    }
+
+    public int hashCode() {
+        boolean PRIME = true;
+        int result = 1;
+        Object $key = this.getKey();
+        result = result * 59 + ($key == null ? 43 : $key.hashCode());
+        Object $value = this.getValue();
+        result = result * 59 + ($value == null ? 43 : $value.hashCode());
+        Object $title = this.getTitle();
+        result = result * 59 + ($title == null ? 43 : $title.hashCode());
+        return result;
+    }
+}

+ 1 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreeVO.java

@@ -71,7 +71,7 @@ public class WbsTreeVO extends WbsTree implements INode<WbsTreeVO> {
 	}
 
 	/**
-	 * 上级节点
+	 * 上级节点名称
 	 */
 	private String parentName;
 

+ 92 - 52
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeController.java

@@ -1,78 +1,121 @@
 package org.springblade.manager.controller;
 
+import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springblade.core.boot.ctrl.BladeController;
+
+import javax.validation.Valid;
+
 import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.ArchiveTreeDTO;
-import org.springblade.manager.dto.WbsTreeDTO;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springblade.manager.entity.ArchiveTree;
-import org.springblade.manager.entity.WbsTree;
-import org.springblade.manager.service.IArchiveTreeService;
 import org.springblade.manager.vo.ArchiveTreeVO;
-import org.springblade.manager.vo.WbsTreeVO;
-import org.springblade.manager.wrapper.ArchiveTreeWrapper;
-import org.springblade.manager.wrapper.WbsTreeWrapper;
-import org.springblade.system.cache.DictCache;
-import org.springblade.system.enums.DictEnum;
-import org.springframework.web.bind.annotation.*;
+import org.springblade.manager.service.IArchiveTreeService;
+import org.springblade.core.boot.ctrl.BladeController;
 
-import javax.validation.Valid;
 import java.util.List;
 
 import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 
 /**
- * 归档树节点控制层
+ * 归档树 控制器
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 @RestController
 @AllArgsConstructor
 @RequestMapping("/archiveTree")
-@Api(value = "归档树配置", tags = "归档树配置接口")
+@Api(value = "归档树管理", tags = "归档树管理接口")
 public class ArchiveTreeController extends BladeController {
 
     private final IArchiveTreeService archiveTreeService;
 
+    /**
+     * 初始化归档树根节点
+     */
+    @PostMapping("/init")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "初始化归档树根节点")
+    public R<ArchiveTree> init() {
+        boolean b = archiveTreeService.initArchiveTree();
+        if (b) {
+            return R.success("初始化创建成功");
+        }
+        return R.fail(200, "初始化创建失败");
+    }
+
     /**
      * 详情
      */
     @GetMapping("/detail")
-    @ApiOperationSupport(order = 1)
-    @ApiOperation(value = "详情", notes = "传入ArchiveTree,请求头token")
-    @ApiImplicitParam(name = "id", value = "id", required = true)
-    public R<ArchiveTreeVO> detail(ArchiveTree archiveTree) {
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "详情", notes = "传入archiveTree")
+    public R<ArchiveTree> detail(ArchiveTree archiveTree) {
         ArchiveTree detail = archiveTreeService.getOne(Condition.getQueryWrapper(archiveTree));
-        if (detail != null) {
-            return R.data(ArchiveTreeWrapper.build().entityVO(detail));
+        return R.data(detail);
+    }
+
+    /**
+     * 新增
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "新增", notes = "传入ArchiveTreeDTO")
+    public R submit(@Valid @RequestBody ArchiveTreeDTO archiveTreeDTO) {
+        if (archiveTreeService.submit(archiveTreeDTO)) {
+            CacheUtil.clear(SYS_CACHE);
+            return R.data(archiveTreeDTO);
         }
-        return R.fail(200, "未查询到信息");
+        return R.fail(200, "操作失败");
+    }
+
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "修改", notes = "传入ArchiveTree")
+    public R update(@Valid @RequestBody ArchiveTree archiveTree) {
+        return R.status(archiveTreeService.updateById(archiveTree));
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "逻辑删除", notes = "传入id")
+    public R remove(@ApiParam(value = "id", required = true) @RequestParam String id) {
+        List<ArchiveTree> archiveTrees = archiveTreeService.selectByParentId(id);
+        archiveTrees.stream().forEach(archiveTree -> {
+            if (archiveTree.getParentId() == Long.parseLong(id)) {
+                throw new ServiceException("当前节点下存在子节点,删除失败");
+            }
+        });
+        return R.status(archiveTreeService.deleteLogic(Func.toLongList(id)));
     }
 
     /**
-     * 懒加载获取项目节点树形结构
+     * 懒加载树形结构
      */
     @GetMapping("/lazy-tree")
-    @ApiOperationSupport(order = 1)
-    @ApiOperation(value = "懒加载归档节点树形结构", notes = "传入角色类型roleTypeNum,父级parentId,请求头token")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "懒加载树形结构", notes = "传入父级id,租户id,token")
     @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "roleTypeNum", value = "角色类型", required = true),
             @ApiImplicitParam(name = "parentId", value = "父级id", required = true),
             @ApiImplicitParam(name = "tenantId", value = "租户id", required = true),
+            @ApiImplicitParam(name = "token", value = "token", required = true)
     })
-    public R<List<ArchiveTreeVO>> lazyTree(String roleTypeNum, Long parentId, BladeUser bladeUser, String tenantId) {
-        List<ArchiveTreeVO> tree = archiveTreeService.lazyTree(roleTypeNum, Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+    public R<List<ArchiveTreeVO>> lazyTree(Long parentId, BladeUser bladeUser, String tenantId) {
+        List<ArchiveTreeVO> tree = archiveTreeService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
         if (tree != null && tree.size() > 0) {
             return R.data(tree);
         }
@@ -80,19 +123,19 @@ public class ArchiveTreeController extends BladeController {
     }
 
     /**
-     * 获取项目节点树形结构 (新增、修改加载、分配合同wbs树加载type=1)
-     *
-     * @return
+     * 全加载树形结构/显示树
      */
     @GetMapping("/tree")
-    @ApiOperationSupport(order = 2)
-    @ApiOperation(value = "归档节点树形结构", notes = "传入租户Id、roleTypeNum、请求头token")
+    @ApiOperationSupport(order = 7)
+    @ApiOperation(value = "全加载树形结构/显示树", notes = "传入租户id、token、或disPlayTree=1加载显示树、nodeType")
     @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "token", value = "token", required = true),
             @ApiImplicitParam(name = "tenantId", value = "租户id", required = true),
-            @ApiImplicitParam(name = "roleTypeNum", value = "角色类型", required = true)
+            @ApiImplicitParam(name = "disPlayTree", value = "是否加载显示树 'null'=不加载 '1'=加载"),
+            @ApiImplicitParam(name = "nodeType", value = "'null'=全加载 '1'=关联电子原生文件类型树 '2'=文件上传类型树")
     })
-    public R<List<ArchiveTreeVO>> tree(String roleTypeNum, String tenantId, BladeUser bladeUser) {
-        List<ArchiveTreeVO> tree = archiveTreeService.tree(roleTypeNum , Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+    public R<List<ArchiveTreeVO>> tree(String tenantId, BladeUser bladeUser, Integer disPlayTree, Integer nodeType) {
+        List<ArchiveTreeVO> tree = archiveTreeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), disPlayTree, nodeType);
         if (tree != null && tree.size() > 0) {
             return R.data(tree);
         }
@@ -100,19 +143,16 @@ public class ArchiveTreeController extends BladeController {
     }
 
     /**
-     * 新增或修改
+     * 保存/修改上传文件显示配置树
      */
-    @PostMapping("/submit")
-    @ApiOperationSupport(order = 4)
-    @ApiOperation(value = "归档树新增或修改", notes = "WbsTreeDTO")
-    public R submit(@Valid @RequestBody ArchiveTreeDTO archiveTreeDTO) {
-        if (archiveTreeService.submit(archiveTreeDTO)) {
-            CacheUtil.clear(SYS_CACHE);
-            // 返回懒加载树更新节点所需字段
-            Kv kv = Kv.create().set("id", String.valueOf(archiveTreeDTO.getId())).set("tenantId", archiveTreeDTO.getTenantId());
-            return R.data(kv);
-        }
-        return R.fail("操作失败");
+    @PostMapping("/submitDisplayConfigTree")
+    @ApiOperationSupport(order = 8)
+    @ApiOperation(value = "保存/修改上传文件显示配置树", notes = "传入ids")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "ids", value = "ids", required = true)
+    })
+    public R<List<ArchiveTreeVO>> submitDisplayConfigTree(@RequestBody String ids) {
+        return R.status(archiveTreeService.submitDisplayConfigTree(ids));
     }
 
 

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

@@ -16,7 +16,7 @@ import java.util.List;
 
 
 /**
- * 控制器
+ * 合同段wbs树 控制器
  *
  * @author liuyc
  * @since 2022-06-28

+ 3 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeController.java

@@ -17,7 +17,7 @@
 package org.springblade.manager.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -27,16 +27,13 @@ import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.BladeUser;
-import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.support.Kv;
-import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.*;
 import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
-import org.springblade.manager.excel.WbsExcelUtil;
 import org.springblade.manager.excel.WbsFormElementBatchExcel;
 import org.springblade.manager.excel.WbsTreeExcel;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
@@ -56,14 +53,14 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.io.File;
+
 import java.io.IOException;
 import java.util.*;
 
 import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 
 /**
- * 控制器
+ * 公有Wbs树 控制器
  *
  * @author liuyc
  * @since 2022-04-25

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

@@ -36,7 +36,7 @@ import java.util.List;
 import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 
 /**
- * 控制器
+ * 项目级wbs树 控制器
  *
  * @author liuyc
  */

+ 0 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/excel/WbsExcelBatchUtil.java

@@ -24,7 +24,6 @@ public class WbsExcelBatchUtil {
 
 
     /**
-     * 深拷贝List
      * @param src
      * @throws IOException
      * @throws ClassNotFoundException

+ 0 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/excel/WbsFormElementImporter.java

@@ -19,7 +19,6 @@ public class WbsFormElementImporter implements ExcelImporter<WbsFormElementExcel
 
     @Override
     public void save(List<WbsFormElementExcel> data) {
-//        data.forEach(System.out::print);
         service.importElement(data, isCovered, tableId);
     }
 }

+ 24 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.java

@@ -1,29 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
 package org.springblade.manager.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Param;
+import feign.Param;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.vo.ArchiveTreeVO;
-import org.springblade.manager.vo.WbsTreeVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.List;
 
-
 /**
  * Mapper 接口
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 public interface ArchiveTreeMapper extends BaseMapper<ArchiveTree> {
 
+    List<ArchiveTreeVO> lazyTree(@Param("tenantId") String tenantId, @Param("parentId") Long parentId);
 
-    List<ArchiveTreeVO> lazyTree(@Param("roleTypeNum") String wbsId,
-                                 @Param("tenantId") String tenantId,
-                                 @Param("parentId") Long parentId);
-
-    List<ArchiveTreeVO> tree(@Param("roleTypeNum") String roleTypeNum,
-                             @Param("tenantId") String tenantId);
+    List<ArchiveTreeVO> tree(@Param("tenantId") String tenantId, @Param("disPlayTree") Integer disPlayTree, @Param("nodeType") Integer nodeType);
 
+    int updateBatch(@Param("diffRent") List<String> diffRent);
 
+    int updateBatch2(@Param("diffRent") List<String> diffRent);
 }

+ 57 - 26
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -2,41 +2,66 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.springblade.manager.mapper.ArchiveTreeMapper">
 
-
     <!-- 通用查询映射结果 -->
-    <resultMap id="contractInfoResultMap" type="org.springblade.manager.entity.ArchiveTree">
+    <resultMap id="archiveTreeResultMap" type="org.springblade.manager.entity.ArchiveTree">
         <result column="id" property="id"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="status" property="status"/>
         <result column="create_time" property="createTime"/>
         <result column="create_user" property="createUser"/>
         <result column="create_dept" property="createDept"/>
         <result column="update_user" property="updateUser"/>
         <result column="update_time" property="updateTime"/>
-        <result column="tenant_id" property="tenantId"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
         <result column="parent_id" property="parentId"/>
         <result column="ancestors" property="ancestors"/>
         <result column="node_name" property="nodeName"/>
         <result column="full_name" property="fullName"/>
-        <result column="role_type" property="roleType"/>
         <result column="node_type" property="nodeType"/>
+        <result column="post_type" property="postType"/>
+        <result column="association_type" property="associationType"/>
+        <result column="major_data_type" property="majorDataType"/>
+        <result column="display_hierarchy" property="displayHierarchy"/>
         <result column="is_storage_node" property="isStorageNode"/>
         <result column="is_built_drawing" property="isBuiltDrawing"/>
         <result column="is_interface_node" property="isInterfaceNode"/>
         <result column="interface_type" property="interfaceType"/>
         <result column="sort" property="sort"/>
         <result column="remark" property="remark"/>
+        <result column="is_upload_file_display_configuration_tree" property="isUploadFileDisplayConfigurationTree"/>
     </resultMap>
-
-    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+    <resultMap id="treeNodeResultMap" type="org.springblade.manager.vo.TreeNodeVO2">
         <id column="id" property="id"/>
         <result column="parent_id" property="parentId"/>
         <result column="title" property="title"/>
         <result column="value" property="value"/>
         <result column="key" property="key"/>
         <result column="has_children" property="hasChildren"/>
+        <result column="displayHierarchy" property="displayHierarchy"/>
+        <result column="majorDataType" property="majorDataType"/>
     </resultMap>
 
+    <update id="updateBatch">
+        UPDATE m_archive_tree
+        SET is_upload_file_display_configuration_tree = 1
+        WHERE id IN
+        <foreach item="diffRent" collection="diffRent" open="(" close=")" separator=",">
+            #{diffRent}
+        </foreach>
+        AND is_deleted = 0
+        AND status = 1
+    </update>
+
+    <update id="updateBatch2">
+        UPDATE m_archive_tree
+        SET is_upload_file_display_configuration_tree = 0
+        WHERE id IN
+        <foreach item="diffRent" collection="diffRent" open="(" close=")" separator=",">
+            #{diffRent}
+        </foreach>
+        AND is_deleted = 0
+        AND status = 1
+    </update>
+
     <select id="lazyTree" resultMap="treeNodeResultMap">
         SELECT
         d.id,
@@ -44,36 +69,42 @@
         d.node_name AS title,
         d.id AS "value",
         d.id AS "key",
-        (
-        SELECT
-        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
-        FROM
-        m_archive_tree
-        WHERE
-        parent_id = d.id and is_deleted = 0
-        ) AS "has_children"
+        d.major_data_type AS "majorDataType",
+        d.display_hierarchy AS "displayHierarchy",
+        (SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM m_archive_tree WHERE parent_id = d.id and is_deleted = 0)
+        AS "has_children"
         FROM
         m_archive_tree d
         WHERE
         d.parent_id = #{parentId} AND d.is_deleted = 0
         <if test="tenantId!=null and tenantId!=''">
-            and d.tenant_id = #{tenantId}
-        </if>
-        <if test="roleTypeNum!=null and roleTypeNum!=''">
-            AND d.role_type = #{roleTypeNum}
+            AND d.tenant_id = #{tenantId}
         </if>
         ORDER BY d.sort
     </select>
+
     <select id="tree" resultMap="treeNodeResultMap">
-        select id, parent_id,node_name as title, id as "value", id as "key" from m_archive_tree where is_deleted = 0
-        <if test="tenantId!=null and tenantId!=''">
-            and tenant_id = #{tenantId}
+        SELECT
+        id,
+        parent_id,
+        node_name AS title,
+        id AS "value",
+        id AS "key",
+        major_data_type AS "majorDataType",
+        display_hierarchy AS "displayHierarchy"
+        FROM m_archive_tree
+        WHERE is_deleted = 0
+        <if test=" tenantId!=null and tenantId!='' ">
+            AND tenant_id = #{tenantId}
         </if>
-        <if test="roleTypeNum!=null and roleTypeNum!=''">
-            and `role_type` = #{roleTypeNum}
+        <if test=" disPlayTree!=null and disPlayTree!='' ">
+            AND is_upload_file_display_configuration_tree = 1
+        </if>
+        <if test=" nodeType !=null and nodeType !='' ">
+            /*根节点=0 关联电子原生文件=1 数字化上传文件=2*/
+            AND node_type in (0,#{nodeType})
         </if>
         ORDER BY sort
     </select>
 
-
 </mapper>

+ 28 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeService.java

@@ -1,26 +1,46 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
 package org.springblade.manager.service;
 
-import org.springblade.core.mp.base.BaseService;
 import org.springblade.manager.dto.ArchiveTreeDTO;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.vo.ArchiveTreeVO;
-import org.springblade.manager.vo.WbsTreeVO;
+import org.springblade.core.mp.base.BaseService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.List;
 
-
 /**
- * ArchiveTree服务类
+ *  服务类
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 public interface IArchiveTreeService extends BaseService<ArchiveTree> {
 
-    List<ArchiveTreeVO> lazyTree(String roleTypeNum, String tenantId, Long parentId);
+	boolean initArchiveTree();
+
+	boolean submit(ArchiveTreeDTO archiveTreeDTO);
+
+	List<ArchiveTreeVO> lazyTree(String tenantId, Long parentId);
 
-    List<ArchiveTreeVO> tree(String roleTypeNum, String tenantI);
+	List<ArchiveTreeVO> tree(String tenantI,Integer disPlayTree,Integer nodeType);
 
-    boolean submit(ArchiveTreeDTO archiveTreeDTO);
+	List<ArchiveTree> selectByParentId(String id);
 
+    boolean submitDisplayConfigTree(String ids);
 }

+ 123 - 18
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -1,52 +1,153 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
 package org.springblade.manager.service.impl;
 
-
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
 import org.springblade.core.log.exception.ServiceException;
-import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.dto.ArchiveTreeDTO;
 import org.springblade.manager.entity.ArchiveTree;
-import org.springblade.manager.entity.WbsTree;
+import org.springblade.manager.vo.ArchiveTreeVO;
 import org.springblade.manager.mapper.ArchiveTreeMapper;
 import org.springblade.manager.service.IArchiveTreeService;
-import org.springblade.manager.vo.ArchiveTreeVO;
-import org.springblade.manager.vo.WbsTreeVO;
+import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 服务实现类
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 @Service
-public class ArchiveTreeServiceImpl
-        extends BaseServiceImpl<ArchiveTreeMapper, ArchiveTree>
-        implements IArchiveTreeService {
+@AllArgsConstructor
+public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, ArchiveTree> implements IArchiveTreeService {
+
+    private final ArchiveTreeMapper archiveTreeMapper;
+
+    private static List<String> getDiffrent(List<String> list1, List<String> list2) {
+        List<String> diff = new ArrayList<String>();
+        List<String> maxList = list1;
+        List<String> minList = list2;
+        if (list2.size() > list1.size()) {
+            maxList = list2;
+            minList = list1;
+        }
+        Map<String, Integer> map = new HashMap<String, Integer>(maxList.size());
+        for (String string : maxList) {
+            map.put(string, 1);
+        }
+        for (String string : minList) {
+            if (map.get(string) != null) {
+                map.put(string, 2);
+                continue;
+            }
+            diff.add(string);
+        }
+        for (Map.Entry<String, Integer> entry : map.entrySet()) {
+            if (entry.getValue() == 1) {
+                diff.add(entry.getKey());
+            }
+        }
+        return diff;
+    }
+
+    @Override
+    public boolean initArchiveTree() {
+        QueryWrapper<ArchiveTree> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("parent_id", 0);
+        queryWrapper.eq("ancestors", 0);
+        queryWrapper.eq("status", 1);
+        ArchiveTree archiveTree1 = archiveTreeMapper.selectOne(queryWrapper);
+        if (archiveTree1 != null) {
+            throw new ServiceException("根节点已存在,请先删除后再进行初始化");
+        }
+        ArchiveTree archiveTree = new ArchiveTree();
+        archiveTree.setTenantId(AuthUtil.getTenantId());
+        archiveTree.setParentId(0L);
+        archiveTree.setAncestors(String.valueOf(0));
+        archiveTree.setNodeName("系统级归档树");
+        archiveTree.setFullName("系统级归档树");
+        if (AuthUtil.getUserId() != null && AuthUtil.getDeptId() != null) {
+            archiveTree.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+            archiveTree.setCreateUser(AuthUtil.getUserId());
+        }
+        return this.save(archiveTree);
+    }
 
 
     @Override
-    public List<ArchiveTreeVO> lazyTree(String roleTypeNum, String tenantId, Long parentId) {
+    public List<ArchiveTreeVO> lazyTree(String tenantId, Long parentId) {
         if (AuthUtil.isAdministrator()) {
             tenantId = StringPool.EMPTY;
         }
-        return ForestNodeMerger.merge(baseMapper.lazyTree(roleTypeNum, tenantId, parentId));
+        return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
+    }
+
+    @Override
+    public List<ArchiveTreeVO> tree(String tenantId, Integer disPlayTree, Integer nodeType) {
+        return ForestNodeMerger.merge(baseMapper.tree(tenantId, disPlayTree, nodeType));
+    }
+
+    @Override
+    public List<ArchiveTree> selectByParentId(String id) {
+        return baseMapper.selectList(Wrappers.<ArchiveTree>query().lambda().eq(ArchiveTree::getParentId, id));
     }
 
     @Override
-    public List<ArchiveTreeVO> tree(String roleTypeNum, String tenantId) {
-        return ForestNodeMerger.merge(baseMapper.tree(roleTypeNum, tenantId));
+    public boolean submitDisplayConfigTree(String ids) {
+        //获取当前已配置的显示树
+        List<ArchiveTree> archiveTrees = baseMapper.selectList(Wrappers.<ArchiveTree>query().lambda()
+                .eq(ArchiveTree::getIsUploadFileDisplayConfigurationTree, 1));
+        String[] idList = ids.split(",");
+        List<String> idQ = Arrays.asList(idList);
+        List<String> idList1 = idQ.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
+        List<String> idList2 = new ArrayList<>();
+        archiveTrees.stream().forEach(id -> {
+            idList2.add(String.valueOf(id.getId()));
+        });
+        List<String> diffRent = getDiffrent(idList1, idList2);
+        if (diffRent.size() == 0) {
+            return true;
+        } else {
+            int row;
+            if (idList1.size() > idList2.size()) {
+                //新增
+                row = baseMapper.updateBatch(diffRent);
+            } else {
+                //删除
+                row = baseMapper.updateBatch2(diffRent);
+            }
+            return row > 0;
+        }
     }
 
     @Override
     public boolean submit(ArchiveTreeDTO archiveTreeDTO) {
-        //TODO 条件判断有误,当parentId=0时,Ancestors为null
         if (Func.isEmpty(archiveTreeDTO.getParentId())) {
             archiveTreeDTO.setTenantId(AuthUtil.getTenantId());
             archiveTreeDTO.setParentId(BladeConstant.TOP_PARENT_ID);
@@ -61,9 +162,13 @@ public class ArchiveTreeServiceImpl
             String ancestors = parent.getAncestors() + StringPool.COMMA + archiveTreeDTO.getParentId();
             archiveTreeDTO.setAncestors(ancestors);
         }
+        if (AuthUtil.getUserId() != null && StringUtils.isNotEmpty(AuthUtil.getDeptId())) {
+            archiveTreeDTO.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
+            archiveTreeDTO.setCreateUser(AuthUtil.getUserId());
+        }
         archiveTreeDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
-        return saveOrUpdate(archiveTreeDTO);
+        archiveTreeDTO.setFullName(archiveTreeDTO.getNodeName());
+        return save(archiveTreeDTO);
     }
 
-
 }

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

@@ -142,7 +142,7 @@ public class WbsFormElementServiceImpl extends BaseServiceImpl<WbsFormElementMap
     @Override
     public void importElement(List<WbsFormElementExcel> data, Boolean isCovered, String tableId) {
         List<WbsFormElement> list = new ArrayList<>();
-        data.forEach(excel -> {
+        data.stream().forEach(excel -> {
             WbsFormElement wbsFormElement = new WbsFormElement();
             wbsFormElement.setEName(excel.getElementName());
             wbsFormElement.setEType(Integer.valueOf(excel.getElementType()));

+ 0 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsInfoServiceImpl.java

@@ -61,7 +61,6 @@ public class WbsInfoServiceImpl extends BaseServiceImpl<WbsInfoMapper, WbsInfo>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean submit(WbsInfoDTO wbsInfo) {
-        //先查找树下是否有根节点
         WbsTree wbsTree1 = wbsTreeService.selectGenNodeByWbsId(wbsInfo.getId());
         if (wbsTree1 != null) {
             //修改WbsInfo树信息

+ 0 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -42,8 +42,6 @@ public class WbsTreeContractServiceImpl
         extends BaseServiceImpl<WbsTreeContractMapper, WbsTreeContract>
         implements IWbsTreeContractService {
 
-    private final BladeLogger logger;
-    private final WbsTreePrivateServiceImpl wbsTreePrivateService;
     private final ConstructionLedgerFeign constructionLedgerFeign;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
     private final WbsInfoMapper wbsInfoMapper;

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

@@ -92,7 +92,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
 
     @Override
     public List<WbsNodeTableVO> selectByNodeTable(String id, String wbsId, String projectId) {
-        //查询节点下的所有表单
         List<WbsNodeTableVO> wbsNodeTableVOS = baseMapper.selectByNodeTable(id, wbsId, projectId);
         return wbsNodeTableVOS;
     }
@@ -124,7 +123,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         int number = 1;
         for (WbsTreePrivateDTO2 wbsTree : wbsTreeDTO) {
             wbsTree.setSort(number);
-            //修改sort
             baseMapper.updateSortById(wbsTree.getPKeyId(), wbsTree.getSort());
             number++;
         }
@@ -136,7 +134,6 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
         int number = 1;
         for (WbsTreePrivateDTO2 wbsTree : wbsTreeDTO) {
             wbsTree.setSort(number);
-            //修改sort
             baseMapper.updateSortById2(wbsTree.getPKeyId(), wbsTree.getSort());
             number++;
         }

+ 1 - 61
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -70,7 +70,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
     private final WbsTreeMapper wbsTreeMapper;
     private final IWbsFormElementService wbsFormElementService;
     private final WbsInfoMapper wbsInfoMapper;
-    private final WbsTreeContractMapper wbsTreeContractMapper;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
     private final WbsTreePrivateServiceImpl wbsTreePrivateService;
     private final ProjectInfoMapper projectInfoMapper;
@@ -153,10 +152,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
     /**
      * wbs元素表、元素批量导入
-     *
-     * @param excelFile
-     * @param wbsTree
-     * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -376,12 +371,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
     /**
      * wbs公有树节点excel导入
-     *
-     * @param excelFile
-     * @param wbsTreeFu
-     * @param wbsTree1
-     * @return
-     * @throws IOException
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -442,39 +431,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
             });
         });
 
-        /*for (Map<String, String> map : result) {
-            map.forEach((nodeType, nodeName) -> {
-                WbsTree wbsTreeZi = new WbsTree();
-                if (StringUtils.isNotEmpty(nodeName)) {
-                    //初始化
-                    wbsTreeZi.setTenantId(AuthUtil.getTenantId());
-                    wbsTreeZi.setDeptName(nodeName);
-                    wbsTreeZi.setDeptCategory(Integer.valueOf(nodeType));
-                    wbsTreeZi.setWbsId(wbsTreeFu.getWbsId());
-                    wbsTreeZi.setParentId(wbsTreeFu.getParentId());
-                    wbsTreeZi.setAncestors(wbsTreeFu.getAncestors());
-                    wbsTreeZi.setProjectNodeId(wbsTree1.getProjectNodeId());
-                    //新增节点返回未创建成功查询出来的wbsTree对象、创建成功后的wbsTreeZi对象
-                    WbsTree wbsTree = importTree(wbsTreeZi);
-                    //后置初始化
-                    if (wbsTree == null) {
-                        Long id = wbsTreeZi.getId();
-                        //初始化ancestors
-                        StringBuilder stringBuffer = new StringBuilder();
-                        StringBuilder appendStr = stringBuffer.append(",").append(wbsTreeZi.getParentId());
-                        String ancestors = wbsTreeZi.getAncestors() + appendStr;
-                        //修改ancestors
-                        updateData(ancestors, id);
-                        wbsTreeFu.setParentId(id);
-                        wbsTreeFu.setAncestors(ancestors);
-                    } else {
-                        wbsTreeFu.setParentId(wbsTree.getId());
-                        wbsTreeFu.setAncestors(wbsTree.getAncestors());
-                    }
-                }
-            });
-        }*/
-
         //修改ProjectNodeId
         int i = baseMapper.updateById(wbsTree1);
         return i > 0;
@@ -569,10 +525,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
 
 
     /**
-     * 项目级wbs树保存
-     *
-     * @param pawDTO
-     * @return
+     * 项目级wbs树保存/修改
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -863,12 +816,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         }
     }
 
-    /**
-     * 获取汉字串拼音首字母,英文字符不变
-     *
-     * @param chinese 汉字串
-     * @return 汉语拼音首字母
-     */
     public static String getFirstSpell(String chinese) {
         StringBuffer pybf = new StringBuffer();
         char[] arr = chinese.toCharArray();
@@ -892,13 +839,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         return pybf.toString().replaceAll("\\W", "").trim();
     }
 
-    /**
-     * 汉字转拼音,英文字符不变
-     *
-     * @param text
-     * @param separator
-     * @return
-     */
     public static String getPinyin(String text, String separator) {
         //text 文本, separator 转换后添加的分隔符
         char[] chars = text.toCharArray();

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

@@ -14,7 +14,7 @@ import java.util.Objects;
  * Warpper
  *
  * @author liuyc
- * @since 2022-05-16
+ * @since 2022-06-29
  */
 public class ArchiveTreeWrapper extends BaseEntityWrapper<ArchiveTree, ArchiveTreeVO> {
 

+ 10 - 0
blade-service/blade-manager/src/main/java/sql/archivetree.menu.sql

@@ -0,0 +1,10 @@
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1541959017824165889', 1123598815738675201, 'archivetree', '归档树管理', 'menu', '/manager/archivetree', NULL, 1, 1, 0, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1541959017824165890', '1541959017824165889', 'archivetree_add', '新增', 'add', '/manager/archivetree/add', 'plus', 1, 2, 1, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1541959017824165891', '1541959017824165889', 'archivetree_edit', '修改', 'edit', '/manager/archivetree/edit', 'form', 2, 2, 2, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1541959017824165892', '1541959017824165889', 'archivetree_delete', '删除', 'delete', '/api/blade-manager/archivetree/remove', 'delete', 3, 2, 3, 1, NULL, 0);
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`)
+VALUES ('1541959017824165893', '1541959017824165889', 'archivetree_view', '查看', 'view', '/manager/archivetree/view', 'file-text', 4, 2, 2, 1, NULL, 0);