Jelajahi Sumber

项目级增删改

huangtf 2 tahun lalu
induk
melakukan
430e138e17

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

@@ -145,11 +145,16 @@ public class ArchiveTree extends BaseEntity {
     @ApiModelProperty(value = "自动立卷设置的节点ID")
     private Long archiveAutoNodeId;
 
+    /**
+     * 分类并卷的分类ID,当archiveAutoType=2时,用来确定同一类型。新增时随机生成,一同提交设置的节点都是同一类。 编辑时 采用已有的
+     */
+    private Long archiveAutoGroupId;
+
     /**
      * 是否自动立卷规则选择设置的节点 选中的节点设为1 方便页面显示列表
      */
     @ApiModelProperty(value = "是否为设置的节点")
-    private Integer archiveAutoSelect;
+    private Integer archiveAutoGroupSelect;
 
     /**
      * 试验资料类型

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

@@ -41,6 +41,12 @@ public class ArchiveTreeContract extends BaseEntity {
 
 	private static final long serialVersionUID = 1L;
 
+	/**
+	 * 租户Id
+	 */
+	@ApiModelProperty(value = "租户id")
+	private String tenantId;
+
 	/**
 	* 项目ID
 	*/

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

@@ -141,8 +141,15 @@ public class ArchiveTreeVO2 implements INode<ArchiveTreeVO2> {
     @ApiModelProperty(value = "自动立卷关联Id")
     private Long archiveAutoNodeId;
 
+
+    /**
+     * 分类并卷的分类ID,当archiveAutoType=2时,用来确定同一类型。新增时随机生成,一同提交设置的节点都是同一类。 编辑时 采用已有的
+     */
+    @ApiModelProperty(value = "分类并卷的分类ID")
+    private Long archiveAutoGroupId;
+
     @ApiModelProperty(value = "是否为设置的节点")
-    private Integer archiveAutoSelect;
+    private Integer archiveAutoGroupSelect;
 
     /**
      * 是否为接口节点 '0'否 '1'是

+ 79 - 18
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ArchiveTreeContractController.java

@@ -24,12 +24,17 @@ import javax.validation.Valid;
 
 import org.checkerframework.checker.units.qual.A;
 import org.springblade.common.utils.SnowFlakeUtil;
+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.mp.support.Query;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.ArchiveTreeContractAutoRuleMapDTO;
+import org.springblade.manager.dto.ArchiveTreeContractDTO;
+import org.springblade.manager.dto.ArchiveTreeDTO;
+import org.springblade.manager.dto.ArchiveTreeSortDTO;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.service.IArchiveTreeService;
 import org.springblade.manager.vo.ArchiveTreeContractAutoRuleVO;
@@ -49,6 +54,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
 /**
  *  控制器
  *
@@ -71,9 +78,9 @@ public class ArchiveTreeContractController extends BladeController {
 	@GetMapping("/detail")
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入archiveTreeContract")
-	public R<ArchiveTreeContractVO> detail(ArchiveTreeContract archiveTreeContract) {
+	public R<ArchiveTreeContract> detail(ArchiveTreeContract archiveTreeContract) {
 		ArchiveTreeContract detail = archiveTreeContractService.getOne(Condition.getQueryWrapper(archiveTreeContract));
-		return R.data(ArchiveTreeContractWrapper.build().entityVO(detail));
+		return R.data(detail);
 	}
 
 	/**
@@ -82,7 +89,7 @@ public class ArchiveTreeContractController extends BladeController {
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入archiveTreeContract")
-	public R<IPage<ArchiveTreeContractVO>> list(ArchiveTreeContract archiveTreeContract, Query query) {
+	public R<IPage<ArchiveTreeContractVO2>> list(ArchiveTreeContract archiveTreeContract, Query query) {
 		IPage<ArchiveTreeContract> pages = archiveTreeContractService.page(Condition.getPage(query), Condition.getQueryWrapper(archiveTreeContract));
 		return R.data(ArchiveTreeContractWrapper.build().pageVO(pages));
 	}
@@ -104,9 +111,18 @@ public class ArchiveTreeContractController extends BladeController {
 	 */
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
-	@ApiOperation(value = "新增", notes = "传入archiveTreeContract")
-	public R save(@Valid @RequestBody ArchiveTreeContract archiveTreeContract) {
-		return R.status(archiveTreeContractService.save(archiveTreeContract));
+	@ApiOperation(value = "新增", notes = "传入archiveTreeContractDTO")
+	public R save(@Valid @RequestBody ArchiveTreeContractDTO archiveTreeContractDTO) {
+
+		if (archiveTreeContractDTO.getProjectId() == null) {
+			archiveTreeContractDTO.setProjectId(1578599210897772545L);
+		}
+
+		if (archiveTreeContractService.submit(archiveTreeContractDTO)) {
+			CacheUtil.clear(SYS_CACHE);
+			return R.data(archiveTreeContractDTO);
+		}
+		return R.fail(200, "操作失败");
 	}
 
 	/**
@@ -116,6 +132,7 @@ public class ArchiveTreeContractController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入archiveTreeContract")
 	public R update(@Valid @RequestBody ArchiveTreeContract archiveTreeContract) {
+		archiveTreeContract.setFullName(archiveTreeContract.getNodeName());
 		return R.status(archiveTreeContractService.updateById(archiveTreeContract));
 	}
 
@@ -135,9 +152,19 @@ public class ArchiveTreeContractController extends BladeController {
 	 */
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
-	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-		return R.status(archiveTreeContractService.deleteLogic(Func.toLongList(ids)));
+	@ApiOperation(value = "逻辑删除", notes = "传入id")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String id) {
+		List<ArchiveTreeContract> archiveTrees = archiveTreeContractService.selectByParentIdOrId(id);
+		archiveTrees.forEach(archiveTree -> {
+			if (archiveTree.getParentId() == Long.parseLong(id)) {
+				throw new ServiceException("当前节点下存在子节点,删除失败");
+			}
+			if (archiveTree.getIsUploadFileDisplayConfigurationTree() == 1) {
+				throw new ServiceException("当前节点被引用中,删除失败");
+			}
+		});
+
+		return R.status(archiveTreeContractService.deleteLogic(Func.toLongList(id)));
 	}
 
 
@@ -152,10 +179,9 @@ public class ArchiveTreeContractController extends BladeController {
 			@ApiImplicitParam(name = "projectId", value = "项目id", required = true)
 	})
 	public R<List<ArchiveTreeContractVO2>> lazyTree(Long parentId,Long projectId) {
-		if (projectId == null) {
-			projectId = 1578599210897772545L;
-		}
-
+//		if (projectId == null) {
+//			projectId = 1578599210897772545L;
+//		}
 		List<ArchiveTreeContractVO2> tree = archiveTreeContractService.lazyTree2(AuthUtil.getTenantId(), parentId,projectId);
 		if (tree != null && tree.size() > 0) {
 			return R.data(tree);
@@ -176,9 +202,6 @@ public class ArchiveTreeContractController extends BladeController {
 			@ApiImplicitParam(name = "projectId", value = "项目id", required = true)
 	})
 	public R<List<ArchiveTreeContractVO2>> tree(Integer disPlayTree, Integer nodeType,Long projectId){
-		if (projectId == null) {
-			projectId = 1578599210897772545L;
-		}
 
 		List<ArchiveTreeContractVO2> tree = archiveTreeContractService.tree2(AuthUtil.getTenantId(), disPlayTree, nodeType,projectId);
 		if (tree != null && tree.size() > 0) {
@@ -190,6 +213,11 @@ public class ArchiveTreeContractController extends BladeController {
 
 
 
+
+
+
+
+
 	@GetMapping("/test")
 	public R test(){
 		Long projectId = 1578599210897772545L;
@@ -243,8 +271,41 @@ public class ArchiveTreeContractController extends BladeController {
 			@ApiImplicitParam(name = "projectId", value = "项目id", required = true)
 	})
 	public R<ArchiveTree> initTree(Long projectId) {
-		List<ArchiveTree> trees = archiveTreeService.treeList(AuthUtil.getTenantId(), null, null);
-		archiveTreeContractService.initTree(AuthUtil.getTenantId(), projectId,trees);
+		archiveTreeContractService.initTree2(AuthUtil.getTenantId(), projectId);
 		return R.fail(200, "初始化创建成功");
 	}
+
+	/**
+	 * 保存/修改上传文件显示配置树
+	 */
+	@PostMapping("/submit-display-config-tree")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "保存/修改上传文件显示配置树", notes = "传入ids")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "ids", value = "ids字符串拼接 ',' ", required = true)
+	})
+	public R<List<ArchiveTreeContractVO2>> submitDisplayConfigTree(@RequestParam String ids) {
+		return R.status(archiveTreeContractService.submitDisplayConfigTree(ids));
+	}
+
+	/**
+	 * 获取归档树同级节点
+	 */
+	@GetMapping("/get-same-grade-node")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "获取归档树同级节点", notes = "传入节点id")
+	public R<List<ArchiveTreeContract>> getSameGradeNode(@RequestParam String id) {
+		return R.data(archiveTreeContractService.getSameGradeNode(id));
+	}
+
+	/**
+	 * 提交归档树手动排序
+	 */
+	@PostMapping("/submit-tree-sort")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "提交归档树手动排序", notes = "List<ArchiveTreeContractDTO>集合")
+	public R submitArchiveTreeSort(@RequestBody List<ArchiveTreeContractDTO> listSort) {
+		return R.status(archiveTreeContractService.submitArchiveTreeSort(listSort));
+	}
+
 }

+ 6 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -74,4 +74,10 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 	 * @return
 	 */
 	List<ArchiveTreeContractAutoRuleVO> getAllSonNodeforGroupView(@Param("ancestors")String ancestors, @Param("groupId")Long groupId);
+
+	int updateBatch(@Param("diffRent") List<String> diffRent);
+
+	int updateBatch2(@Param("diffRent") List<String> diffRent);
+
+	int updateBatch3();
 }

+ 30 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.xml

@@ -340,4 +340,34 @@
         order by ancestors asc,sort asc
     </select>
 
+    <update id="updateBatch">
+        UPDATE m_archive_tree_contract
+        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_contract
+        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>
+    <update id="updateBatch3">
+        UPDATE m_archive_tree_contract
+        SET is_upload_file_display_configuration_tree = 0
+        WHERE
+        node_type = 2
+        AND is_deleted = 0
+        AND status = 1
+    </update>
+
 </mapper>

+ 8 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeMapper.xml

@@ -34,7 +34,8 @@
         <result column="exp_data_type" property="expDataType"/>
         <result column="archive_auto_type" property="archiveAutoType"/>
         <result column="archive_auto_node_id" property="archiveAutoNodeId"/>
-        <result column="archive_auto_select" property="archiveAutoSelect"/>
+        <result column="archive_auto_group_select" property="archiveAutoGroupSelect"/>
+        <result column="archive_auto_group_id" property="archiveAutoGroupId"/>
         <result column="is_upload_file_display_configuration_tree" property="isUploadFileDisplayConfigurationTree"/>
     </resultMap>
 
@@ -60,7 +61,8 @@
         <result column="ext_id" property="extId"/>
         <result column="archive_auto_type" property="archiveAutoType"/>
         <result column="archive_auto_node_id" property="archiveAutoNodeId"/>
-        <result column="archive_auto_select" property="archiveAutoSelect"/>
+        <result column="archive_auto_group_id" property="archiveAutoGroupId"/>
+        <result column="archive_auto_group_select" property="archiveAutoGroupSelect"/>
         <result column="is_interface_node" property="isInterfaceNode"/>
         <result column="interface_type" property="interfaceType"/>
         <result column="sort" property="sort"/>
@@ -201,7 +203,8 @@
         d.exp_data_type,
         d.archive_auto_type,
         d.archive_auto_node_id,
-        d.archive_auto_select,
+        d.archive_auto_group_select,
+        d.archive_auto_group_id,
         d.is_interface_node,
         d.interface_type,
         d.sort,
@@ -238,7 +241,8 @@
         exp_data_type,
         archive_auto_type,
         archive_auto_node_id,
-        archive_auto_select,
+        archive_auto_group_select,
+        archive_auto_group_id,
         is_interface_node,
         interface_type,
         sort

+ 12 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java

@@ -18,6 +18,8 @@ package org.springblade.manager.service;
 
 import feign.Param;
 import org.springblade.manager.dto.ArchiveTreeContractAutoRuleMapDTO;
+import org.springblade.manager.dto.ArchiveTreeContractDTO;
+import org.springblade.manager.dto.ArchiveTreeDTO;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ArchiveTreeContract;
 import org.springblade.manager.vo.ArchiveTreeContractAutoRuleVO;
@@ -83,5 +85,15 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 	 */
 	boolean updateArchiveAutoRule(ArchiveTreeContractAutoRuleMapDTO dto);
 
+	List<ArchiveTreeContract> selectByParentIdOrId(String id);
+
+	boolean submit(ArchiveTreeContractDTO archiveTreeDTO);
+
+	List<ArchiveTreeContract> getSameGradeNode(String id);
+
+	boolean submitArchiveTreeSort(List<ArchiveTreeContractDTO> listSort);
+
+	boolean submitDisplayConfigTree(String ids);
+
 
 }

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

@@ -151,6 +151,7 @@ public class ArTreeContractInitServiceImpl {
         contractNode.setExtType(2);
         contractNode.setNodeType(0);
         contractNode.setIsUploadFileDisplayConfigurationTree(1);
+        contractNode.setTenantId(tenantId);
         contractNode.setParentId(newRootId);
         contractNode.setProjectId(projectId);
         contractNode.setContractId(contractInfo.getId());

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

@@ -24,8 +24,13 @@ import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 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.manager.dto.ArchiveTreeContractAutoRuleMapDTO;
+import org.springblade.manager.dto.ArchiveTreeContractDTO;
+import org.springblade.manager.dto.ArchiveTreeDTO;
+import org.springblade.manager.dto.ArchiveTreeSortDTO;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ArchiveTreeContract;
 import org.springblade.manager.entity.ContractInfo;
@@ -34,6 +39,7 @@ import org.springblade.manager.mapper.ArchiveTreeMapper;
 import org.springblade.manager.service.IArchiveTreeService;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IProjectInfoService;
+import org.springblade.manager.utils.DiffListUtil;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.mapper.ArchiveTreeContractMapper;
 import org.springblade.manager.service.IArchiveTreeContractService;
@@ -43,6 +49,7 @@ import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  *  服务实现类
@@ -400,13 +407,106 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		return false;
 	}
 
-	/**
-	 * 清理旧的项目归档树
-	 * @param tenantId
-	 * @param projectId
-	 */
-	void clearProjectTree(String tenantId, Long projectId){
+	@Override
+	public List<ArchiveTreeContract> selectByParentIdOrId(String id) {
+		return baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::getId, id)
+				.or()
+				.eq(ArchiveTreeContract::getParentId, id)
+		);
+	}
+
+	@Override
+	public boolean submit(ArchiveTreeContractDTO archiveTreeContractDTO) {
+		if (Func.isEmpty(archiveTreeContractDTO.getParentId())) {
+			archiveTreeContractDTO.setTenantId(AuthUtil.getTenantId());
+			archiveTreeContractDTO.setParentId(BladeConstant.TOP_PARENT_ID);
+			archiveTreeContractDTO.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+		}
+		if (archiveTreeContractDTO.getParentId() > 0) {
+			ArchiveTreeContract parent = getById(archiveTreeContractDTO.getParentId());
+			if (Func.toLong(archiveTreeContractDTO.getParentId()) == Func.toLong(archiveTreeContractDTO.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			archiveTreeContractDTO.setTenantId(parent.getTenantId());
+			String ancestors = parent.getAncestors() + StringPool.COMMA + archiveTreeContractDTO.getParentId();
+			archiveTreeContractDTO.setAncestors(ancestors);
+		}
+
+		archiveTreeContractDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		archiveTreeContractDTO.setFullName(archiveTreeContractDTO.getNodeName());
+		if (archiveTreeContractDTO.getNodeType() == 1) {
+			archiveTreeContractDTO.setIsStorageNode(1);
+		}
+		if (archiveTreeContractDTO.getId() == null) {
+			List<ArchiveTreeContract> trees = baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+					.eq(ArchiveTreeContract::getParentId, archiveTreeContractDTO.getParentId())
+			);
+
+			List<ArchiveTreeContract> collect = trees.stream().filter(f -> {
+				if (f.getSort() == null) {
+					f.setSort(0);
+				}
+				return true;
+			}).collect(Collectors.toList());
+			Optional<ArchiveTreeContract> max = collect.stream().max(Comparator.comparingInt(ArchiveTreeContract::getSort));
+			Integer sort = 0;
+			if (max.isPresent()) {
+				sort = max.get().getSort();
+			}
+			archiveTreeContractDTO.setSort(sort + 1);
+		}
+
+		return save(archiveTreeContractDTO);
+	}
 
+	@Override
+	public List<ArchiveTreeContract> getSameGradeNode(String id) {
+		ArchiveTreeContract archiveTree = baseMapper.selectById(id);
+		return baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::getParentId, archiveTree.getParentId())
+				.orderByAsc(ArchiveTreeContract::getSort));
+	}
+
+
+	@Override
+	public boolean submitArchiveTreeSort(List<ArchiveTreeContractDTO> listSort) {
+		int sortNumber = 1;
+		for (ArchiveTreeContractDTO archiveTreeSortDTO : listSort) {
+			archiveTreeSortDTO.setSort(sortNumber);
+			sortNumber++;
+			baseMapper.updateById(archiveTreeSortDTO);
+		}
+		return true;
+	}
+
+	@Override
+	public boolean submitDisplayConfigTree(String ids) {
+		if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isEmpty(ids)) {
+			baseMapper.updateBatch3();
+			return true;
+		}
+		List<ArchiveTreeContract> archiveTrees = baseMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda()
+				.eq(ArchiveTreeContract::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.forEach(id -> {
+			idList2.add(String.valueOf(id.getId()));
+		});
+		List<String> diffRent = DiffListUtil.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;
+		}
 	}
 
 }

+ 6 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/wrapper/ArchiveTreeContractWrapper.java

@@ -20,6 +20,8 @@ import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.manager.entity.ArchiveTreeContract;
 import org.springblade.manager.vo.ArchiveTreeContractVO;
+import org.springblade.manager.vo.ArchiveTreeContractVO2;
+
 import java.util.Objects;
 
 /**
@@ -28,16 +30,16 @@ import java.util.Objects;
  * @author 00
  * @since 2023-02-18
  */
-public class ArchiveTreeContractWrapper extends BaseEntityWrapper<ArchiveTreeContract, ArchiveTreeContractVO>  {
+public class ArchiveTreeContractWrapper extends BaseEntityWrapper<ArchiveTreeContract, ArchiveTreeContractVO2>  {
 
 	public static ArchiveTreeContractWrapper build() {
 		return new ArchiveTreeContractWrapper();
  	}
 
 	@Override
-	public ArchiveTreeContractVO entityVO(ArchiveTreeContract archiveTreeContract) {
-		ArchiveTreeContractVO archiveTreeContractVO = Objects.requireNonNull(BeanUtil.copy(archiveTreeContract, ArchiveTreeContractVO.class));
-
+	public ArchiveTreeContractVO2 entityVO(ArchiveTreeContract archiveTreeContract) {
+		ArchiveTreeContractVO2 archiveTreeContractVO = Objects.requireNonNull(BeanUtil.copy(archiveTreeContract, ArchiveTreeContractVO2.class));
+		archiveTreeContractVO.setTitle(archiveTreeContract.getNodeName());
 		//User createUser = UserCache.getUser(archiveTreeContract.getCreateUser());
 		//User updateUser = UserCache.getUser(archiveTreeContract.getUpdateUser());
 		//archiveTreeContractVO.setCreateUserName(createUser.getName());