|  | @@ -79,13 +79,16 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
 | 
	
		
			
				|  |  |                      RandomNumberHolder.setRandomTemplateType(1);
 | 
	
		
			
				|  |  |                      WbsTreePrivate wtp = this.wtpId(wtc.getPKeyId());
 | 
	
		
			
				|  |  |                      if(wtp!=null){
 | 
	
		
			
				|  |  | -                        /*优先取私有*/
 | 
	
		
			
				|  |  | -                        WbsParam wp = this.getOne(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, wtp.getPKeyId()).eq(WbsParam::getK, FILE_TITLE).last(" limit 1"));
 | 
	
		
			
				|  |  | +                        //优先使用文件题名全局配置里面的规则
 | 
	
		
			
				|  |  | +                        WbsParam wp=this.getPrivateNameRuleByPkeyId(wtc);
 | 
	
		
			
				|  |  |                          if (wp == null) {
 | 
	
		
			
				|  |  | -                            WbsTreePrivate publicWtp = this.getOriginWtp(wtp.getPKeyId());
 | 
	
		
			
				|  |  | -                            wp = this.getOne(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, publicWtp.getId()).eq(WbsParam::getK, FILE_TITLE).last(" limit 1 "));
 | 
	
		
			
				|  |  | +                            wp = this.getOne(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, wtp.getPKeyId()).eq(WbsParam::getK, FILE_TITLE).last(" limit 1"));
 | 
	
		
			
				|  |  |                              if(wp==null){
 | 
	
		
			
				|  |  | -                                wp = this.getOne(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, publicWtp.getTreePId()).eq(WbsParam::getK, FILE_TITLE).last(" limit 1 "));
 | 
	
		
			
				|  |  | +                                WbsTreePrivate publicWtp = this.getOriginWtp(wtp.getPKeyId());
 | 
	
		
			
				|  |  | +                                wp = this.getOne(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, publicWtp.getId()).eq(WbsParam::getK, FILE_TITLE).last(" limit 1 "));
 | 
	
		
			
				|  |  | +                                if(wp==null){
 | 
	
		
			
				|  |  | +                                    wp = this.getOne(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getNodeId, publicWtp.getTreePId()).eq(WbsParam::getK, FILE_TITLE).last(" limit 1 "));
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  |                              }
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                          if (Func.isNotEmpty(wp)) {
 | 
	
	
		
			
				|  | @@ -106,6 +109,9 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return "找不到节点";
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      //根据选择的文件题名规则,返回文件题名;
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public String createFileTitle1(WbsTreeContract wtc,String wp) {
 | 
	
	
		
			
				|  | @@ -270,6 +276,96 @@ public class WbsParamServiceImpl extends BaseServiceImpl<WbsParamMapper, WbsPara
 | 
	
		
			
				|  |  |          return R.success("暂无数据");
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    private WbsParam getPrivateNameRuleByPkeyId(WbsTreeContract wtc) {
 | 
	
		
			
				|  |  | +        WbsParam wp=null;
 | 
	
		
			
				|  |  | +        List<WbsParam> wbsParams = baseMapper.selectList(Wrappers.<WbsParam>lambdaQuery().eq(WbsParam::getProjectId, wtc.getProjectId()).eq(WbsParam::getK, FILE_TITLE));
 | 
	
		
			
				|  |  | +        String sql1="select * from m_wbs_tree_private where p_key_id="+wtc.getIsTypePrivatePid();
 | 
	
		
			
				|  |  | +        WbsTreePrivate wbsTreePrivate = jdbcTemplate.queryForObject(sql1,new BeanPropertyRowMapper<>(WbsTreePrivate.class));
 | 
	
		
			
				|  |  | +        if(wbsTreePrivate==null){
 | 
	
		
			
				|  |  | +            return null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //拿到引用项目级节点的祖级节点
 | 
	
		
			
				|  |  | +        String ancestor=wbsTreePrivate.getAncestorsPId()+","+wbsTreePrivate.getPKeyId();
 | 
	
		
			
				|  |  | +        String[] ancestors = ancestor.split(",");
 | 
	
		
			
				|  |  | +        List<Long> list2 = Arrays.stream(ancestors)
 | 
	
		
			
				|  |  | +                .map(Long::parseLong)
 | 
	
		
			
				|  |  | +                .collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        String join = String.join(",", list2.stream().map(String::valueOf).collect(Collectors.toList()));
 | 
	
		
			
				|  |  | +        String sql11 = "SELECT * FROM m_wbs_tree_private WHERE node_type=1  AND project_id="+wtc.getProjectId()+"  AND parent_id!=0 AND p_key_id IN (" + join + ")";
 | 
	
		
			
				|  |  | +        List<WbsTreePrivate> nodeList = jdbcTemplate.query(sql11, new BeanPropertyRowMapper<>(WbsTreePrivate.class));
 | 
	
		
			
				|  |  | +        //祖级节点的Id
 | 
	
		
			
				|  |  | +        List<Long> list3 = nodeList.stream().map(o -> o.getId()).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        List<WbsParam> result=new ArrayList<>();
 | 
	
		
			
				|  |  | +        if(list3.size()<0){
 | 
	
		
			
				|  |  | +            return null;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if(!wbsParams.isEmpty()){
 | 
	
		
			
				|  |  | +            for (WbsParam param : wbsParams) {
 | 
	
		
			
				|  |  | +                //祖级节点里有文件题名配置就加进去
 | 
	
		
			
				|  |  | +                if(list3.contains(param.getNodeId())){
 | 
	
		
			
				|  |  | +                    result.add(param);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //如果是所有的也加进去
 | 
	
		
			
				|  |  | +                if(param.getNameType()!=null&¶m.getNameType()==1){
 | 
	
		
			
				|  |  | +                    result.add(param);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(result.size()>0){
 | 
	
		
			
				|  |  | +                //如果有部分节点优先部分
 | 
	
		
			
				|  |  | +                List<WbsParam> collect1 = result.stream().filter(o -> o.getNameType() == 2).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                if(collect1.size()>0){
 | 
	
		
			
				|  |  | +                    //如果节点的资料类型不为null
 | 
	
		
			
				|  |  | +                    if(wtc.getMajorDataType()!=null){
 | 
	
		
			
				|  |  | +                        //如果与配置的文件题名资料类型一致
 | 
	
		
			
				|  |  | +                        List<WbsParam> data = collect1.stream().filter(o -> StringUtils.isNotEmpty(o.getRemark()) && o.getRemark().contains(wtc.getMajorDataType() + "")).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        if(data.size()>0){
 | 
	
		
			
				|  |  | +                            return data.get(0);
 | 
	
		
			
				|  |  | +                        }else {
 | 
	
		
			
				|  |  | +                            //与配置的文件题名类型不一致,就使用全部类型的文件题名规则
 | 
	
		
			
				|  |  | +                            List<WbsParam> data1 = collect1.stream().filter(o -> o.getRemark() != null && o.getRemark().equals("0")).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                            if(data1.size()>0){
 | 
	
		
			
				|  |  | +                                return data1.get(0);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }else {
 | 
	
		
			
				|  |  | +                        //如果节点的资料类型为null
 | 
	
		
			
				|  |  | +                        List<WbsParam> data1 = collect1.stream().filter(o -> o.getRemark() != null && o.getRemark().equals("0")).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        //使用全部类型的文件题名规则
 | 
	
		
			
				|  |  | +                        if(data1.size()>0){
 | 
	
		
			
				|  |  | +                            return data1.get(0);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                //没有部分节点用所有节点
 | 
	
		
			
				|  |  | +                List<WbsParam> collect2 = result.stream().filter(o -> o.getNameType() == 1).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                if(collect2.size()>0){
 | 
	
		
			
				|  |  | +                    //如果节点的资料类型不为null
 | 
	
		
			
				|  |  | +                    if(wtc.getMajorDataType()!=null){
 | 
	
		
			
				|  |  | +                        //如果与配置的文件题名资料类型一致
 | 
	
		
			
				|  |  | +                        List<WbsParam> data = collect2.stream().filter(o -> StringUtils.isNotEmpty(o.getRemark()) && o.getRemark().contains(wtc.getMajorDataType() + "")).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        if(data.size()>0){
 | 
	
		
			
				|  |  | +                            return data.get(0);
 | 
	
		
			
				|  |  | +                        }else {
 | 
	
		
			
				|  |  | +                            //与配置的文件题名类型不一致,就使用全部类型的文件题名规则
 | 
	
		
			
				|  |  | +                            List<WbsParam> data1 = collect2.stream().filter(o -> o.getRemark() != null && o.getRemark().equals("0")).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                            if(data1.size()>0){
 | 
	
		
			
				|  |  | +                                return data1.get(0);
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }else {
 | 
	
		
			
				|  |  | +                        //如果节点的资料类型为null
 | 
	
		
			
				|  |  | +                        List<WbsParam> data1 = collect2.stream().filter(o -> o.getRemark() != null && o.getRemark().equals("0")).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +                        //使用全部类型的文件题名规则
 | 
	
		
			
				|  |  | +                        if(data1.size()>0){
 | 
	
		
			
				|  |  | +                            return data1.get(0);
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return wp;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public List<WbsTreeContract> tracing(@NotNull Long pkeyId){
 |