Quellcode durchsuchen

Merge branch 'lk'

luok vor 2 Jahren
Ursprung
Commit
270f6c552f

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

@@ -140,6 +140,8 @@ public class ArchiveTreeContract extends BaseEntity {
 	 * 是否自动立卷规则选择设置的节点 选中的节点设为1 方便页面显示列表
 	 */
 	private Integer archiveAutoSelect;
+
+
 	public ArchiveTreeContract() {
 	}
 

+ 27 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractAutoRuleVO.java

@@ -0,0 +1,27 @@
+package org.springblade.manager.vo;
+
+import lombok.Data;
+import org.springblade.manager.entity.ArchiveTreeContract;
+
+@Data
+public class ArchiveTreeContractAutoRuleVO implements Cloneable {
+
+    private Long nodeId;//节点id
+
+    private String allName; //全路经名
+
+    private Integer selectVo; //页面勾选标志 0未勾选  1勾选
+
+
+    @Override
+    public ArchiveTreeContractAutoRuleVO clone() {
+        try {
+            ArchiveTreeContractAutoRuleVO vo = (ArchiveTreeContractAutoRuleVO) super.clone();
+            return vo;
+        } catch (CloneNotSupportedException e) {
+            throw new AssertionError();
+        }
+    }
+
+
+}

+ 0 - 2
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/ArchiveTreeContractVO.java

@@ -142,6 +142,4 @@ public class ArchiveTreeContractVO extends ArchiveTreeContract implements INode<
 	@ApiModelProperty(value = "自动立卷关联Id")
 	private Long archiveAutoNodeId;
 
-	private String allName; //全路经名
-
 }

+ 8 - 0
blade-service/blade-archive/pom.xml

@@ -14,6 +14,14 @@
     <version>${bladex.project.version}</version>
     <packaging>jar</packaging>
 
+    <repositories>
+        <repository>
+            <id>com.e-iceblue</id>
+            <name>e-iceblue</name>
+            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
+        </repository>
+    </repositories>
+
     <dependencies>
         <dependency>
             <groupId>org.springblade</groupId>

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

@@ -31,6 +31,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.service.IArchiveTreeService;
+import org.springblade.manager.vo.ArchiveTreeContractAutoRuleVO;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
 import org.springblade.manager.vo.ArchiveTreeVO;
 import org.springframework.web.bind.annotation.*;
@@ -239,7 +240,7 @@ public class ArchiveTreeContractController extends BladeController {
 	@ApiOperationSupport(order = 9)
 	@ApiOperation(value = "修改立卷规则设置", notes = "传入节点id")
 	public R getArchiveAutoRule(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
-		Map<String, List<ArchiveTreeContractVO>> ruleMap=archiveTreeContractService.getArchiveAutoRule(id);
+		Map<Integer, List<ArchiveTreeContractAutoRuleVO>> ruleMap=archiveTreeContractService.getArchiveAutoRule(id);
 		return R.data(ruleMap);
 	}
 

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

@@ -62,5 +62,5 @@ public interface ArchiveTreeContractMapper extends BaseMapper<ArchiveTreeContrac
 	 * @param treeContract
 	 * @return
 	 */
-	List<ArchiveTreeContractVO> getAllSonNodeIdsForArchiveAutoRuleSelected(@Param("treeContract")ArchiveTreeContract treeContract);
+	List<ArchiveTreeContract> getAllSonNodeIdsForArchiveAutoRuleSelected(@Param("treeContract")ArchiveTreeContract treeContract);
 }

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

@@ -19,6 +19,7 @@ package org.springblade.manager.service;
 import feign.Param;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.manager.vo.ArchiveTreeContractAutoRuleVO;
 import org.springblade.manager.vo.ArchiveTreeContractVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -71,7 +72,7 @@ public interface IArchiveTreeContractService extends BaseService<ArchiveTreeCont
 
 
 
-	Map<String, List<ArchiveTreeContractVO>> getArchiveAutoRule(Long id);
+	Map<Integer, List<ArchiveTreeContractAutoRuleVO>> getArchiveAutoRule(Long id);
 
 	/**
 	 *项目级立卷规则更新

+ 81 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -24,6 +24,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.manager.entity.ArchiveTree;
 import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.manager.vo.ArchiveTreeContractAutoRuleVO;
 import org.springblade.manager.vo.ArchiveTreeContractVO;
 import org.springblade.manager.mapper.ArchiveTreeContractMapper;
 import org.springblade.manager.service.IArchiveTreeContractService;
@@ -176,23 +177,95 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	 * @return
 	 */
 	@Override
-	public Map<String, List<ArchiveTreeContractVO>> getArchiveAutoRule(Long id) {
-
-		Map<String, List<ArchiveTreeContractVO>> map= new HashMap<>();
-		List<ArchiveTreeContractVO> voList_1_3 = new ArrayList<>();//最高规则和单独组卷的tab显示节点及节点下有设置的节点(archive_auto_select=1)
-		List<ArchiveTreeContractVO> voList_2 = new ArrayList<>();//分类并卷的tab显示当前节点的相同分类节点
+	public Map<Integer, List<ArchiveTreeContractAutoRuleVO>> getArchiveAutoRule(Long id) {
 
+		Map<Integer, List<ArchiveTreeContractAutoRuleVO>> map= new HashMap<>();
+		List<ArchiveTreeContractAutoRuleVO> voList_1 = new ArrayList<>();//最高规则显示节点及节点下有设置的节点(archive_auto_select=1)
+		List<ArchiveTreeContractAutoRuleVO> voList_2 = new ArrayList<>();//分类并卷的tab显示当前节点的相同分类节点
+		List<ArchiveTreeContractAutoRuleVO> voList_3 = new ArrayList<>();//单独组卷的显示节点及节点下有设置的节点(archive_auto_select=1)
 
 		ArchiveTreeContract archiveTreeContract = baseMapper.selectById(id);
 
+		Map<Long,String> nodeNameMap = new HashMap<>();//单个节点名称缓存
+
 		//获取当前节点下所有设置的节点
-		List<ArchiveTreeContractVO> list=baseMapper.getAllSonNodeIdsForArchiveAutoRuleSelected(archiveTreeContract);
-		for(ArchiveTreeContractVO vo:list){
+		List<ArchiveTreeContract> list=baseMapper.getAllSonNodeIdsForArchiveAutoRuleSelected(archiveTreeContract);
+		//找出最高规则和单独规则列表
+		for(ArchiveTreeContract node:list){
+			Integer archiveAutoType = node.getArchiveAutoType();
+			if(archiveAutoType !=null && archiveAutoType!=2){
+				ArchiveTreeContractAutoRuleVO vo = new ArchiveTreeContractAutoRuleVO();
+				vo.setNodeId(node.getId());
+				StringBuffer allName= new StringBuffer();
+				String ancestors = node.getAncestors();
+				String[] ancestorssplit = ancestors.split(",");//全路径ID
+				for(String pId:ancestorssplit){
+					long pIdLong = Long.parseLong(pId);
+					if(nodeNameMap.containsKey(pIdLong)){
+						allName.append(nodeNameMap.get(pIdLong)+"/");
+					}else{
+						ArchiveTreeContract pIdNode = baseMapper.selectById(pIdLong);
+						nodeNameMap.put(pIdNode.getId(),pIdNode.getNodeName());
+						allName.append(pIdNode.getNodeName()+"/");
+					}
+				}
+				allName.append(node.getNodeName());
+				vo.setAllName(allName.toString());
 
-		}
+				if(archiveAutoType==3){
+					vo.setSelectVo(1);
+					voList_3.add(vo);
+
+					ArchiveTreeContractAutoRuleVO vo1 = vo.clone();
+					vo1.setSelectVo(0);
+					voList_1.add(vo1);
+				}
+
+				if(archiveAutoType==1){
+					vo.setSelectVo(0);
+					voList_3.add(vo);
+
+					ArchiveTreeContractAutoRuleVO vo1 = vo.clone();
+					vo1.setSelectVo(1);
+					voList_1.add(vo1);
+				}
 
 
+			}
+		}
+		//找出分类并卷规则 与当前节点同一分类的节点
+		if(archiveTreeContract.getArchiveAutoType()!=null && archiveTreeContract.getArchiveAutoType()==2){
+
+			//设置同一分类的节点 archiveAutoSelect=1的,不是范围内的所有子节点
+			List<ArchiveTreeContract> list2= baseMapper.selectList(Wrappers.<ArchiveTreeContract>lambdaQuery()
+					.eq(ArchiveTreeContract::getArchiveAutoNodeId, archiveTreeContract.getArchiveAutoNodeId())
+					.eq(ArchiveTreeContract::getArchiveAutoSelect, 1).orderByAsc(ArchiveTreeContract::getSort));
+			for(ArchiveTreeContract node:list2){
+				ArchiveTreeContractAutoRuleVO vo = new ArchiveTreeContractAutoRuleVO();
+				vo.setNodeId(node.getId());
+				StringBuffer allName= new StringBuffer();
+				String ancestors = node.getAncestors();
+				String[] ancestorssplit = ancestors.split(",");//全路径ID
+				for(String pId:ancestorssplit){
+					long pIdLong = Long.parseLong(pId);
+					if(nodeNameMap.containsKey(pIdLong)){
+						allName.append(nodeNameMap.get(pIdLong)+"/");
+					}else{
+						ArchiveTreeContract pIdNode = baseMapper.selectById(pIdLong);
+						nodeNameMap.put(pIdNode.getId(),pIdNode.getNodeName());
+						allName.append(pIdNode.getNodeName()+"/");
+					}
+				}
+				allName.append(node.getNodeName());
+				vo.setAllName(allName.toString());
+				vo.setSelectVo(1);
+				voList_2.add(vo);
+			}
+		}
 
+		map.put(1,voList_1);
+		map.put(2,voList_2);
+		map.put(3,voList_3);
 		return map;
 	}