fix: 搜索中心标准类别查询修改
This commit is contained in:
+117
@@ -7,11 +7,15 @@ import com.adc.da.search.util.InitStandAttrSearchUtil;
|
|||||||
import com.adc.da.sys.dao.DicTypeEODao;
|
import com.adc.da.sys.dao.DicTypeEODao;
|
||||||
import com.adc.da.sys.entity.DicTypeEO;
|
import com.adc.da.sys.entity.DicTypeEO;
|
||||||
import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService;
|
import com.adc.da.sys.sarMenuStandard.service.ISarMenuStandardService;
|
||||||
|
import com.adc.da.sys.sarResource.entity.SysTsResource;
|
||||||
|
import com.adc.da.sys.sarResource.service.ISysTsResourceService;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.assertj.core.util.Lists;
|
||||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
import org.elasticsearch.action.search.SearchType;
|
import org.elasticsearch.action.search.SearchType;
|
||||||
@@ -54,6 +58,8 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISarMenuStandardService sarMenuStandardService;
|
private ISarMenuStandardService sarMenuStandardService;
|
||||||
|
@Resource
|
||||||
|
private ISysTsResourceService tsResourceService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -360,6 +366,64 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 处理菜单名称
|
||||||
|
List<String> menuNameList = new ArrayList<>();
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
|
||||||
|
ArrayList<String> menuIdList = new ArrayList<>();
|
||||||
|
Collections.addAll(menuIdList, searchInfoEO.getStandSystem().split(","));
|
||||||
|
// 如果是1,2,3 则代表顶级目录,无需特意查询
|
||||||
|
if (menuIdList.contains("1") || menuIdList.contains("2") || menuIdList.contains("3")) {
|
||||||
|
menuNameList = Lists.emptyList();
|
||||||
|
}else {
|
||||||
|
LambdaQueryWrapper<SysTsResource> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.in(SysTsResource::getId, menuIdList);
|
||||||
|
List<SysTsResource> tsResourceList = tsResourceService.list(wrapper);
|
||||||
|
List<SysTsResource> childTsResourceList = new ArrayList<>();
|
||||||
|
for (SysTsResource sysTsResource : tsResourceList) {
|
||||||
|
LambdaQueryWrapper<SysTsResource> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(SysTsResource::getParentId, sysTsResource.getId());
|
||||||
|
List<SysTsResource> TsResources=tsResourceService.list(queryWrapper);
|
||||||
|
for(SysTsResource tsResource : TsResources){
|
||||||
|
childTsResourceList.add(tsResource);
|
||||||
|
recursionGetChildren(tsResource, childTsResourceList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
tsResourceList.addAll(childTsResourceList);
|
||||||
|
Set<SysTsResource> tsResourceSet = new HashSet<>(tsResourceList);
|
||||||
|
|
||||||
|
List<String> tempList = tsResourceSet.stream().map(SysTsResource::getMenuName).collect(Collectors.toList());
|
||||||
|
if ("bussstand".equals(searchInfoEO.getSelectIndex())) {
|
||||||
|
// 和ES中的类别对应
|
||||||
|
for (String menuName : tempList) {
|
||||||
|
menuNameList.add(getReplaceStandSortStr(menuName));
|
||||||
|
}
|
||||||
|
} else if ("stand".equals(searchInfoEO.getSelectIndex())) {
|
||||||
|
if (StringUtils.isNotBlank(searchInfoEO.getStandSystem())) {
|
||||||
|
// 使用正则表达式提取括号内的内容
|
||||||
|
Pattern pattern = Pattern.compile("(([^()]+))");
|
||||||
|
for (String menuName : tempList) {
|
||||||
|
Matcher matcher = pattern.matcher(menuName);
|
||||||
|
if (matcher.find()) {
|
||||||
|
String contentInBrackets = matcher.group(1);
|
||||||
|
menuNameList.add(contentInBrackets);
|
||||||
|
} else {
|
||||||
|
menuNameList.add(menuName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if (!menuNameList.isEmpty()) {
|
||||||
|
// menuNameList.forEach(each -> boolQueryBuilder.must(QueryBuilders.matchQuery("standSort","*"+each+"*")));
|
||||||
|
// }
|
||||||
|
if (!menuNameList.isEmpty()) {
|
||||||
|
// 国标包含GB/T
|
||||||
|
if (menuNameList.contains("GB")) {
|
||||||
|
menuNameList.add("GB/T");
|
||||||
|
}
|
||||||
|
boolQueryBuilder.must(QueryBuilders.termsQuery("standSort.keyword", menuNameList));
|
||||||
|
}
|
||||||
searchRequestBuilder.setQuery(boolQueryBuilder).setTrackTotalHits(true);
|
searchRequestBuilder.setQuery(boolQueryBuilder).setTrackTotalHits(true);
|
||||||
|
|
||||||
// 获取查询到的结果
|
// 获取查询到的结果
|
||||||
@@ -2186,6 +2250,59 @@ public class SearchCenterServiceImpl implements SearchCenterService {
|
|||||||
log.info(response.getHits().toString());
|
log.info(response.getHits().toString());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void recursionGetChildren(SysTsResource parent, List<SysTsResource> childTsResourceList){
|
||||||
|
|
||||||
|
LambdaQueryWrapper<SysTsResource> tsResourceQueryWrapper=new LambdaQueryWrapper<>();
|
||||||
|
tsResourceQueryWrapper.eq(SysTsResource::getParentId,parent.getId());
|
||||||
|
List<SysTsResource> children=tsResourceService.list(tsResourceQueryWrapper);
|
||||||
|
for(SysTsResource tsResource:children){
|
||||||
|
childTsResourceList.add(tsResource);
|
||||||
|
recursionGetChildren(tsResource, childTsResourceList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReplaceStandSortStr(String standSort){
|
||||||
|
switch (standSort){
|
||||||
|
case "A类标准(技术条件)":
|
||||||
|
return "Q/FT A";
|
||||||
|
case "B类标准(技术基础)":
|
||||||
|
return "Q/FT B";
|
||||||
|
case "C类标准(产品标准)":
|
||||||
|
return "Q/FT C";
|
||||||
|
case "E类标准(发动机)":
|
||||||
|
return "Q/FT E";
|
||||||
|
case " F类标准(仿真分析)":
|
||||||
|
return "Q/FT F";
|
||||||
|
case "G类标准":
|
||||||
|
return "Q/FT G";
|
||||||
|
case "M类标准(工程机械)":
|
||||||
|
return "Q/FT M";
|
||||||
|
case "P类标准(工艺工装)":
|
||||||
|
return "Q/FT P";
|
||||||
|
case "Q类标准(质量评审)":
|
||||||
|
return "Q/FT Q";
|
||||||
|
case "T类标准(试验标准)":
|
||||||
|
return "Q/FT T";
|
||||||
|
case "R类标准(设计规范)":
|
||||||
|
return "Q/FT R";
|
||||||
|
case "V类标准(评价标准)":
|
||||||
|
return "Q/FT V";
|
||||||
|
case "X类标准(出口车)":
|
||||||
|
return "Q/FT X";
|
||||||
|
case "Z类标准(指导性技术文件)":
|
||||||
|
return "Q/FT Z";
|
||||||
|
case "S类标准(产品试制标准)":
|
||||||
|
return "Q/FT S";
|
||||||
|
case "Y类标准(标杆研究标准)":
|
||||||
|
return "Q/FT Y";
|
||||||
|
case "参考标准":
|
||||||
|
return "FT";
|
||||||
|
default:
|
||||||
|
return "其他企业标准";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -175,10 +175,10 @@ public class SendBussMQService {
|
|||||||
saveMap.put("id",infoEO.getId());
|
saveMap.put("id",infoEO.getId());
|
||||||
saveMap.put("standSortOrder",esStateOrder(String.valueOf(infoEO.getStandSort()),dicMap));
|
saveMap.put("standSortOrder",esStateOrder(String.valueOf(infoEO.getStandSort()),dicMap));
|
||||||
|
|
||||||
// saveMap.put("standSort",infoEO.getStandSort());
|
saveMap.put("standSort",infoEO.getStandSort());
|
||||||
// saveMap.put("stand_sort",infoEO.getStandSort());
|
saveMap.put("stand_sort",infoEO.getStandSort());
|
||||||
saveMap.put("standSort",convertStandSort(infoEO.getId()));
|
// saveMap.put("standSort",convertStandSort(infoEO.getId()));
|
||||||
saveMap.put("stand_sort",convertStandSort(infoEO.getId()));
|
// saveMap.put("stand_sort",convertStandSort(infoEO.getId()));
|
||||||
if(StringUtils.isNotEmpty(infoEO.getStandSort())){
|
if(StringUtils.isNotEmpty(infoEO.getStandSort())){
|
||||||
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandSort(),"JKSADFH564S");
|
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandSort(),"JKSADFH564S");
|
||||||
saveMap.put("standSortShow",codeName);
|
saveMap.put("standSortShow",codeName);
|
||||||
|
|||||||
@@ -132,10 +132,10 @@ public class SendStandMQService {
|
|||||||
saveMap.put("countryShow",codeName);
|
saveMap.put("countryShow",codeName);
|
||||||
}
|
}
|
||||||
saveMap.put("standSortOrder",esStateOrder(String.valueOf(infoEO.getStandSort()),dicMap));
|
saveMap.put("standSortOrder",esStateOrder(String.valueOf(infoEO.getStandSort()),dicMap));
|
||||||
// saveMap.put("standSort",infoEO.getStandSort());
|
saveMap.put("standSort",infoEO.getStandSort());
|
||||||
// saveMap.put("stand_sort",infoEO.getStandSort());
|
saveMap.put("stand_sort",infoEO.getStandSort());
|
||||||
saveMap.put("standSort",convertStandSort(infoEO.getId()));
|
// saveMap.put("standSort",convertStandSort(infoEO.getId()));
|
||||||
saveMap.put("stand_sort",convertStandSort(infoEO.getId()));
|
// saveMap.put("stand_sort",convertStandSort(infoEO.getId()));
|
||||||
if (StringUtils.isNotEmpty(infoEO.getStandSort())) {
|
if (StringUtils.isNotEmpty(infoEO.getStandSort())) {
|
||||||
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandSort(),"JKSADFH564S");
|
String codeName = sysInfoEOService.getDicNamesByCodes(infoEO.getStandSort(),"JKSADFH564S");
|
||||||
saveMap.put("standSortShow",codeName);
|
saveMap.put("standSortShow",codeName);
|
||||||
|
|||||||
Reference in New Issue
Block a user