fix: 国内海外企标修改页面,标准体系级联方式显示

This commit is contained in:
wxyclub
2023-11-28 11:40:29 +08:00
parent c53476bc57
commit d772a25971
2 changed files with 79 additions and 26 deletions
@@ -1417,6 +1417,14 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
newStandList.add(sarBussionessStandlist.get(0));
attrInfo(newStandList);
sarBussionessStandEO = newStandList.get(0);
// 处理标准体系字段
Object txlbbuss = sarBussionessStandEO.getAttrInfoMap().get("TXLBBUSS");
if (txlbbuss != null && !Objects.equals(txlbbuss.toString(), "")) {
// 配置体系类别
String txlbBussLevel = getParentNodePathRecursive((String) txlbbuss);
sarBussionessStandEO.getAttrInfoCaseMap().put("txlbbuss",txlbBussLevel);
sarBussionessStandEO.getAttrInfoMap().put("TXLBBUSS",txlbBussLevel);
}
}
return sarBussionessStandEO;
}
@@ -87,6 +87,7 @@ import com.adc.da.util.UUIDUtils;
import com.adc.da.utils.util.*;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.SneakyThrows;
@@ -3183,34 +3184,45 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
}
String accessCountry = sarSarAccessEOService.getCountryByRes(sarStandardsInfoEO.getId(), sarStandardsInfoEO.getStandType() + "_STAND");
sarStandardsInfoEO.setAccessCountry(accessCountry);
}
QueryWrapper<SarMenuStandard> wrapper=new QueryWrapper<>();
wrapper.in("MENU_NAME",sarStandardsInfoEO.getStandSystem());
wrapper.eq("DIC_ID","9m4qqqaansxmox5e82zm");
wrapper.orderByDesc("length(PARENT_IDS)");
List<SarMenuStandard> standards=iSarMenuStandardService.list(wrapper);
if (null!=standards && standards.size() == 1) {
List<String> ids=new ArrayList<>();
if (StringUtils.isNotBlank(standards.get(0).getParentIds())){
if (standards.get(0).getParentIds().contains(",")){
ids=new ArrayList<>(Arrays.asList(standards.get(0).getParentIds().split(",")));
}else {
ids.add(standards.get(0).getParentIds());
}
QueryWrapper<SarMenuStandard> wrapper1 = new QueryWrapper<>();
wrapper1.in("id", ids);
List<SarMenuStandard> res = iSarMenuStandardService.list(wrapper1);
if (null!=res && res.size()>0){
Map<String,String> map=new HashMap<>();
res.forEach(sarMenuStandard -> {map.put(sarMenuStandard.getId(),sarMenuStandard.getMenuName());});
String result="";
for (String s:ids) {
result +="/"+map.get(s);
}
sarStandardsInfoEO.setStandSystem(result.substring(1,result.length()));
}
// 处理标准体系字段
String standSystem = sarStandardsInfoEO.getStandSystem();
if (StringUtils.isNotBlank(standSystem)) {
List<String> list = Arrays.asList(standSystem.split("/"));
standSystem = list.get(list.size() - 1);
// 配置体系类别
String txlbBussLevel = getParentNodePathRecursive(standSystem);
sarStandardsInfoEO.setStandSystem(txlbBussLevel);
}
}
// 之前的处理有问题
// QueryWrapper<SarMenuStandard> wrapper=new QueryWrapper<>();
// wrapper.in("MENU_NAME",sarStandardsInfoEO.getStandSystem());
// wrapper.eq("DIC_ID","9m4qqqaansxmox5e82zm");
// wrapper.orderByDesc("length(PARENT_IDS)");
// List<SarMenuStandard> standards=iSarMenuStandardService.list(wrapper);
// if (null!=standards && standards.size() == 1) {
// List<String> ids=new ArrayList<>();
// if (StringUtils.isNotBlank(standards.get(0).getParentIds())){
// if (standards.get(0).getParentIds().contains(",")){
// ids=new ArrayList<>(Arrays.asList(standards.get(0).getParentIds().split(",")));
// }else {
// ids.add(standards.get(0).getParentIds());
// }
// QueryWrapper<SarMenuStandard> wrapper1 = new QueryWrapper<>();
// wrapper1.in("id", ids);
// List<SarMenuStandard> res = iSarMenuStandardService.list(wrapper1);
// if (null!=res && res.size()>0){
// Map<String,String> map=new HashMap<>();
// res.forEach(sarMenuStandard -> {map.put(sarMenuStandard.getId(),sarMenuStandard.getMenuName());});
// String result="";
// for (String s:ids) {
// result +="/"+map.get(s);
// }
// sarStandardsInfoEO.setStandSystem(result.substring(1,result.length()));
// }
// }
// }
return sarStandardsInfoEO;
@@ -3236,6 +3248,15 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
}
String accessCountry = sarSarAccessEOService.getCountryByRes(sarStandardsInfoEO.getId(), sarStandardsInfoEO.getStandType() + "_STAND");
sarStandardsInfoEO.setAccessCountry(accessCountry);
// 处理标准体系字段
String standSystem = sarStandardsInfoEO.getStandSystem();
if (StringUtils.isNotBlank(standSystem)) {
List<String> list = Arrays.asList(standSystem.split("/"));
standSystem = list.get(list.size() - 1);
// 配置体系类别
String txlbBussLevel = getParentNodePathRecursive(standSystem);
sarStandardsInfoEO.setStandSystem(txlbBussLevel);
}
}
return sarStandardsInfoEO;
}
@@ -3934,5 +3955,29 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
return sarlist;
}
/**
* 查询标准体系
* @param nodeName 标准体系节点名称
* @return
*/
public String getParentNodePathRecursive(String nodeName) {
LambdaQueryWrapper<SarMenuStandard> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SarMenuStandard::getMenuName, nodeName);
SarMenuStandard node = sarMenuStandardService.list(wrapper).get(0); // 根据 txlbBuss 查询节点
if (node == null) {
return nodeName; // 未找到节点,返回空路径
}
if (org.apache.commons.lang.StringUtils.isBlank(node.getParentId())) {
return nodeName;
}
SarMenuStandard sarMenuStandard = sarMenuStandardService.selectMenuById(node.getParentId());
String parentNodePath = getParentNodePathRecursive(sarMenuStandard.getMenuName()); // 递归获取父节点路径
if (parentNodePath.isEmpty()) {
return nodeName; // 如果父节点路径为空,直接返回当前节点的 txlbBuss
} else {
return parentNodePath + "/" + nodeName; // 否则,拼接当前节点的 txlbBuss 到父节点路径
}
}
}