|
@@ -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;
|
|
@@ -184,23 +185,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;
|
|
|
}
|
|
|
|