|
|
@@ -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){
|