Răsfoiți Sursa

合同段归档树

huangtf 2 ani în urmă
părinte
comite
f41e201742

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

@@ -155,8 +155,11 @@ public class ArchiveTreeContract extends BaseEntity {
 	 */
 	private Integer archiveAutoGroupSelect;
 
+//
+//	//系统级模板Id
+//	private Long originId;
 	/**
-	 * 来源id,用于后续同步更新
+	 * 来源id,项目级,用于后续同步更新
 	 */
 	private Long fromId;
 	/**
@@ -169,6 +172,10 @@ public class ArchiveTreeContract extends BaseEntity {
 	 */
 	private String expDataType;
 
+	//权限编码
+	private String treeCode;
+
+
 
 	public ArchiveTreeContract() {
 	}

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

@@ -203,6 +203,7 @@ public class ArchiveTreeContractController extends BladeController {
 	})
 	public R<List<ArchiveTreeContractVO2>> tree(Integer disPlayTree, Integer nodeType,Long projectId){
 
+
 		List<ArchiveTreeContractVO2> tree = archiveTreeContractService.tree2(AuthUtil.getTenantId(), disPlayTree, nodeType,projectId);
 		if (tree != null && tree.size() > 0) {
 			return R.data(tree);

+ 11 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveTreeContractMapper.java

@@ -44,13 +44,21 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 	 * @return
 	 */
 	List<ArchiveTreeContractVO> selectArchiveTreeContractPage(IPage page, ArchiveTreeContractVO archiveTreeContract);
+	List<ArchiveTreeContractVO> tree(@Param("tenantId") String tenantId, @Param("disPlayTree") Integer disPlayTree, @Param("nodeType") Integer nodeType, @Param("projectId") Long projectId);
+
 	List<ArchiveTreeContractVO> lazyTree(@Param("tenantId") String tenantId, @Param("parentId") Long parentId, @Param("projectId") Long projectId);
 
-	List<ArchiveTreeContractVO> tree(@Param("tenantId") String tenantId, @Param("disPlayTree") Integer disPlayTree, @Param("nodeType") Integer nodeType, @Param("projectId") Long projectId);
 
-	List<ArchiveTreeContractVO2> lazyTree2(@Param("tenantId") String tenantId, @Param("parentId") Long parentId, @Param("projectId") Long projectId);
 
-	List<ArchiveTreeContractVO2> tree2(@Param("tenantId") String tenantId, @Param("disPlayTree") Integer disPlayTree, @Param("nodeType") Integer nodeType, @Param("projectId") Long projectId);
+	List<ArchiveTreeContractVO2> lazyTree2(@Param("tenantId") String tenantId, @Param("parentId") Long parentId, @Param("projectId") Long projectId
+			, @Param("code") String code, @Param("contractId") String contractId);
+
+	List<ArchiveTreeContractVO2> tree2(@Param("tenantId") String tenantId, @Param("disPlayTree") Integer disPlayTree, @Param("nodeType") Integer nodeType, @Param("projectId") Long projectId
+			, @Param("code") String code, @Param("contractId") String contractId);
+
+	List<ArchiveTreeContractVO2> lazyTree3(@Param("tenantId") String tenantId, @Param("parentId") Long parentId, @Param("projectId") Long projectId, @Param("treeCode") Long treeCode);
+
+	List<ArchiveTreeContractVO2> tree3(@Param("tenantId") String tenantId, @Param("disPlayTree") Integer disPlayTree, @Param("nodeType") Integer nodeType, @Param("projectId") Long projectId, @Param("treeCode") Long treeCode);
 	/**
 	 * 自动组卷规则设置节点下所有子节点
 	 * @param treeContract

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

@@ -195,6 +195,9 @@
         <if test="tenantId!=null and tenantId!=''">
             AND d.tenant_id = #{tenantId}
         </if>
+        <if test="code!=null and code!=''">
+            AND (d.tree_code = #{code} or d.tree_code = #{contractId} or d.parent_id = 0)
+        </if>
         ORDER BY d.sort
     </select>
 
@@ -231,6 +234,9 @@
             /*根节点=0 关联电子原生文件=1 数字化上传文件=2*/
             AND node_type in (0,#{nodeType})
         </if>
+        <if test="code!=null and code!=''">
+            AND (d.tree_code = #{code} or d.tree_code = #{contractId} or d.parent_id = 0)
+        </if>
         OR ( parent_id = 0 AND project_id = #{projectId} )
         ORDER BY sort
     </select>

+ 2 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IArchiveTreeContractService.java

@@ -55,9 +55,8 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 	 * 初始化项目级归档树
 	 * @param tenantId
 	 * @param projectId
-	 * @return
-	 */
-	boolean initTree(String tenantId, Long projectId, List<ArchiveTree> trees);
+	 * @return*/
+
 
 	boolean initTree2(String tenantId, Long projectId);
 

+ 15 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArTreeContractInitServiceImpl.java

@@ -68,7 +68,17 @@ public class ArTreeContractInitServiceImpl {
         //拷贝第一层
         copyChild(tenantId,projectId,null,archiveTreeContract.getId(),tree.getChildren(),archiveTreeContracts,oldNewMap);
 
-        //拷贝
+        //遍历打
+        for (ArchiveTreeContract ar:archiveTreeContracts) {
+            if (ar.getNodeName().indexOf("施工") >= 0) {
+                ar.setTreeCode("C");
+            }else if (ar.getNodeName().indexOf("监理") >= 0) {
+                ar.setTreeCode("S");
+            }
+        }
+
+
+        //拷贝建设,施工,监理下的树
         for (ArchiveTreeVO2 child: tree.getChildren()) {
             if (child.getTitle().indexOf("施工") >= 0 && bHasCon) {
                 for (ContractInfo contractInfo:contracts) {
@@ -89,11 +99,10 @@ public class ArTreeContractInitServiceImpl {
             }
         }
 
+
         //设置祖先id
         InitAncestors(archiveTreeContracts);
 
-        //todo 复制组卷信息
-
         return;
 
     }
@@ -121,6 +130,8 @@ public class ArTreeContractInitServiceImpl {
         contractNode.setParentId(newRootId);
         contractNode.setProjectId(projectId);
         contractNode.setContractId(contractInfo.getId());
+        //设置权限编码
+        contractNode.setTreeCode(contractInfo.getId().toString());
         contractNode.setIsDeleted(0);
         archiveTreeContracts.add(contractNode);
 
@@ -200,6 +211,7 @@ public class ArTreeContractInitServiceImpl {
 
             if (contractId != null ) {
                 archiveTreeContract.setContractId(contractId);
+                archiveTreeContract.setTreeCode(contractId.toString());
             }
 
             archiveTreeContracts.add(archiveTreeContract);

+ 27 - 92
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -23,6 +23,7 @@ import com.mixsmart.utils.StringUtils;
 import lombok.AllArgsConstructor;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
@@ -76,90 +77,6 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	public IPage<ArchiveTreeContractVO> selectArchiveTreeContractPage(IPage<ArchiveTreeContractVO> page, ArchiveTreeContractVO archiveTreeContract) {
 		return page.setRecords(baseMapper.selectArchiveTreeContractPage(page, archiveTreeContract));
 	}
-	@Override
-	public boolean initTree(String tenantId, Long projectId, List<ArchiveTree> trees){
-		boolean bCreate = false;
-		QueryWrapper<ArchiveTreeContract> queryWrapper = new QueryWrapper<>();
-		queryWrapper.eq("parent_id", 0);
-		queryWrapper.eq("ancestors", 0);
-		queryWrapper.eq("tenant_id", tenantId);
-		queryWrapper.eq("project_id", projectId);
-
-		queryWrapper.eq("status", 1);
-		queryWrapper.eq("is_deleted", 0);
-		ArchiveTreeContract archiveTreeContract = archiveTreeContractMapper.selectOne(queryWrapper);
-		if (archiveTreeContract == null) {
-			bCreate = true;
-		}
-
-
-		//todo 同步新增节点
-
-
-
-		//系统模板的
-		List<ArchiveTreeContract> archiveTreeContracts = new ArrayList<>();
-		Map<Long,Long> oldNewMap = new LinkedHashMap<>();
-
-		Map<Long,ArchiveTree> archiveMap = new LinkedHashMap<>();
-
-		for (ArchiveTree archiveTreeVO :trees) {
-			oldNewMap.put(archiveTreeVO.getId(), SnowFlakeUtil.getId());
-			archiveMap.put(archiveTreeVO.getId(), archiveTreeVO);
-		}
-		oldNewMap.put(0L,0L);
-
-		for (ArchiveTree archiveTreeVO :trees) {
-
-			ArchiveTreeContract archiveTree = new ArchiveTreeContract(archiveTreeVO);
-			archiveTree.setId(oldNewMap.get(archiveTreeVO.getId()));
-			archiveTree.setParentId(oldNewMap.get(archiveTreeVO.getParentId()));
-			archiveTree.setCreateUser(AuthUtil.getUserId());
-			archiveTree.setProjectId(projectId);
-
-			String anCenstors = archiveTreeVO.getAncestors();
-			if (StringUtils.isNotEmpty(anCenstors)) {
-				String newAnCenstors = "";
-				String arrAnCenstor[] = anCenstors.split(",");
-				if (arrAnCenstor.length > 0) {
-
-					for (String anCenstor: arrAnCenstor) {
-						Long anCenstorId = Long.parseLong(anCenstor);
-						Long newAnCenstorId = oldNewMap.get(anCenstorId);
-						if (newAnCenstorId!= null) {
-							if (newAnCenstors.length() == 0) {
-								newAnCenstors += newAnCenstorId;
-							}else {
-								newAnCenstors += (","+ newAnCenstorId);
-							}
-						}
-					}
-				}
-				archiveTree.setAncestors(newAnCenstors);
-			}
-
-			archiveTreeContracts.add(archiveTree);
-		}
-
-		//todo 同步合同划分
-
-		//todo 生成动态节点
-		List<ArchiveTreeContractVO2> archiveTreeContractVO2List = this.tree2(tenantId,1,null,projectId);
-
-		//todo 遍历找到关联质检资料的节点,取出合同段
-
-		//todo 处理文件提名
-
-		//todo 立卷规则
-
-		//todo 同步划分树节点到案卷列表
-
-
-
-		this.saveBatch(archiveTreeContracts);
-		return true;
-	}
-
 
 	@Override
 	public boolean initTree2(String tenantId, Long projectId){
@@ -178,13 +95,9 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 		arTreeContractInitService.copyTree(tenantId,projectId,projectInfo.getProjectName(),tree.get(0),archiveTreeContracts,contractInfoVOS);
 
-	    //todo 同步动态节点
-
-		//todo 遍历找到关联质检资料的节点,取出合同段
-
-		//todo 处理文件提名
+	    //todo 同步质检资料动态节点,处理文件提名
 
-		//todo 立卷规则
+		//todo 同步立卷规则
 
 		//todo 同步划分树节点到案卷列表
 
@@ -211,12 +124,13 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		if (AuthUtil.isAdministrator()) {
 			tenantId = StringPool.EMPTY;
 		}
-		return ForestNodeMerger.merge(baseMapper.lazyTree2(tenantId, parentId,projectId));
+		return ForestNodeMerger.merge(baseMapper.lazyTree2(tenantId, parentId,projectId,getAuthCode(),getAuthContractId()));
 	}
 
 	@Override
 	public List<ArchiveTreeContractVO2> tree2(String tenantId, Integer disPlayTree, Integer nodeType, Long projectId) {
-		return ForestNodeMerger.merge(baseMapper.tree2(tenantId, disPlayTree, nodeType,projectId));
+
+		return ForestNodeMerger.merge(baseMapper.tree2(tenantId, disPlayTree, nodeType,projectId,getAuthCode(),getAuthContractId()));
 	}
 
 	/**
@@ -509,4 +423,25 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 		}
 	}
 
+	/**
+	 * 返回所属的合同段,没有则范围“”
+	 * @return
+	 */
+	public String getAuthContractId() {
+		String contractId ="";
+		BladeUser bladeUser = AuthUtil.getUser();
+
+		return contractId;
+	}
+
+	/**
+	 * 施工则返回“C”,监理则返回“S”,其他返回“”
+	 * @return
+	 */
+	public String getAuthCode() {
+		String code ="";
+		BladeUser bladeUser = AuthUtil.getUser();
+		return code;
+	}
+
 }