feat:There is no way the

This commit is contained in:
super_liu
2021-08-09 17:31:32 +08:00
parent 04f0f1f3f8
commit 9c32571868
4 changed files with 109 additions and 35 deletions
@@ -3,6 +3,8 @@ package com.adc.da.search.service.impl;
import com.adc.da.search.entity.*;
import com.adc.da.search.service.SearchCenterService;
import com.adc.da.search.util.InitStandAttrSearchUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@@ -96,6 +98,8 @@ public class SearchCenterServiceImpl implements SearchCenterService {
.should(QueryBuilders.wildcardQuery("standEnName.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standNature.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("textStatus.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("numbershow.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("content.keyword", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("standSystem.keyword", "*"+searchInfoEO.getSelectValue()+"*"));
break;
case "laws":
@@ -217,6 +221,23 @@ public class SearchCenterServiceImpl implements SearchCenterService {
Map.Entry::getKey,
Map.Entry::getValue));
if(sarStandAttrEOStr == null){
collectAttrMap = new TreeMap<>();
if(searchInfoEO.getCYSD() != null && StringUtils.isNotBlank(searchInfoEO.getCYSD())){
List<String> fieldList = Arrays.asList(searchInfoEO.getCYSD() .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
JSONArray array= JSONArray.parseArray(JSON.toJSONString(fieldList));
collectAttrMap.put("CYSD",array);
}
if(searchInfoEO.getCLLX() != null && StringUtils.isNotBlank(searchInfoEO.getCLLX())){
List<String> fieldList = Arrays.asList(searchInfoEO.getCLLX() .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
JSONArray array= JSONArray.parseArray(JSON.toJSONString(fieldList));
collectAttrMap.put("CLLX",array);
}
}
String fieldInfo = InitStandAttrSearchUtil.queryField;
List<String> fieldInfoList = Arrays.asList(fieldInfo .split(",")).stream().map(s -> (s.trim())).collect(Collectors.toList());
@@ -224,8 +245,9 @@ public class SearchCenterServiceImpl implements SearchCenterService {
for (String field : fieldInfoList) {
// 关键字查询属性字段
String keyWordField = field + ".keyword";
String keyWordField2 = field + "Name.keyword";
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField, "*"+searchInfoEO.getSelectValue()+"*"));
boolQueryBuilderMust.should(QueryBuilders.wildcardQuery(keyWordField2, "*"+searchInfoEO.getSelectValue()+"*"));
}else {
if(collectAttrMap.containsKey(field)){
List<String> fields = new ArrayList<>();
@@ -1067,11 +1089,10 @@ public class SearchCenterServiceImpl implements SearchCenterService {
BoolQueryBuilder boolQueryMust = QueryBuilders.boolQuery();
QueryBuilder multiQueryBuilder;
multiQueryBuilder = QueryBuilders.multiMatchQuery(value,
"title","textContent","issue_time").minimumShouldMatch("100%").field("title",1f);
"title","textContent").minimumShouldMatch("100%").field("title",1f);
boolQueryMust.must(multiQueryBuilder);
boolQueryShould.should(QueryBuilders.wildcardQuery("title", "*"+searchInfoEO.getSelectValue()+"*").boost(10f))
.should(QueryBuilders.wildcardQuery("textContent", "*"+searchInfoEO.getSelectValue()+"*"))
.should(QueryBuilders.wildcardQuery("issue_time", "*"+searchInfoEO.getSelectValue()+"*"))
.should(multiQueryBuilder);
boolQueryBuilder.should(boolQueryShould);
//在结果中检索
@@ -164,48 +164,48 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
}else {
contentBuilder.append("标准体系:").append(attrInfoMap.get("standSystem")).append(" ");
if (StringUtils.isBlank(String.valueOf(attrInfoMap.get("BDTBH")))){
contentBuilder.append("被代替标准编号: ").append(attrInfoMap.get("BDTBH")).append(" ");
contentBuilder.append("被代替标准编号: ").append(attrInfoMap.get("BDTBHName")).append(" ");
}else {
contentBuilder.append("被代替标准编号: ").append(attrInfoMap.get("BDTBZBH")).append(" ");
contentBuilder.append("被代替标准编号: ").append(attrInfoMap.get("BDTBZBHName")).append(" ");
}
}
contentBuilder.append("实施日期(标准文本):").append(attrInfoMap.get("SSRQ")).append(" ");
contentBuilder.append("新车型实施日期(标准文本):").append(attrInfoMap.get("XCXSSRQ")).append(" ");
contentBuilder.append("在产车实施日期(标准文本):").append(attrInfoMap.get("ZCCSSRQ")).append(" ");
contentBuilder.append("实施日期(标准文本):").append(attrInfoMap.get("SSRQName")).append(" ");
contentBuilder.append("新车型实施日期(标准文本):").append(attrInfoMap.get("XCXSSRQName")).append(" ");
contentBuilder.append("在产车实施日期(标准文本):").append(attrInfoMap.get("ZCCSSRQName")).append(" ");
if (isForeign) {
contentBuilder.append("体系类别:").append(attrInfoMap.get("TXLB")).append(" ");
contentBuilder.append("体系类别:").append(attrInfoMap.get("TXLBName")).append(" ");
}else {
contentBuilder.append("归口管理部门:").append(attrInfoMap.get("GKDW")).append(" ");
contentBuilder.append("起草单位:").append(attrInfoMap.get("FBJG")).append(" ");
contentBuilder.append("我司署名人:").append(attrInfoMap.get("WSSMR")).append(" ");
contentBuilder.append("我司参与深度:").append(attrInfoMap.get("CYSD")).append(" ");
contentBuilder.append("我司参与制标排名:").append(attrInfoMap.get("CYZBPM")).append(" ");
contentBuilder.append("归口管理部门:").append(attrInfoMap.get("GKDWName")).append(" ");
contentBuilder.append("起草单位:").append(attrInfoMap.get("FBJGName")).append(" ");
contentBuilder.append("我司署名人:").append(attrInfoMap.get("WSSMRName")).append(" ");
contentBuilder.append("我司参与深度:").append(attrInfoMap.get("CYSDName")).append(" ");
contentBuilder.append("我司参与制标排名:").append(attrInfoMap.get("CYZBPMName")).append(" ");
}
contentBuilder.append("适用车型:").append(attrInfoMap.get("CLLX")).append(" ");
contentBuilder.append("能源类型:").append(attrInfoMap.get("NYLX")).append(" ");
contentBuilder.append("适用产品线:").append(attrInfoMap.get("SYCPX")).append(" ");
contentBuilder.append("适用认证:").append(attrInfoMap.get("SYRZ")).append(" ");
contentBuilder.append("责任部门:").append(attrInfoMap.get("ZRBM")).append(" ");
contentBuilder.append("责任工程师:").append(attrInfoMap.get("ZRGCS")).append(" ");
contentBuilder.append("关联模块--乘用车VPPS编码:").append(attrInfoMap.get("CYCVPPSBM")).append(" ");
contentBuilder.append("关联模块--乘用车vpps中文名称:").append(attrInfoMap.get("CYCVPPSCN")).append(" ");
contentBuilder.append("关联模块--卡车VPPS编码:").append(attrInfoMap.get("KCCVPPSBM")).append(" ");
contentBuilder.append("关联模块--卡车vpps中文名称:").append(attrInfoMap.get("KCCVPPSCN")).append(" ");
contentBuilder.append("模块结构单元变型号:").append(attrInfoMap.get("DYBXH")).append(" ");
contentBuilder.append("模块结构单元名称:").append(attrInfoMap.get("DYMC")).append(" ");
contentBuilder.append("适用车型:").append(attrInfoMap.get("CLLXName")).append(" ");
contentBuilder.append("能源类型:").append(attrInfoMap.get("NYLXName")).append(" ");
contentBuilder.append("适用产品线:").append(attrInfoMap.get("SYCPXName")).append(" ");
contentBuilder.append("适用认证:").append(attrInfoMap.get("SYRZName")).append(" ");
contentBuilder.append("责任部门:").append(attrInfoMap.get("ZRBMName")).append(" ");
contentBuilder.append("责任工程师:").append(attrInfoMap.get("ZRGCSName")).append(" ");
contentBuilder.append("关联模块--乘用车VPPS编码:").append(attrInfoMap.get("CYCVPPSBMName")).append(" ");
contentBuilder.append("关联模块--乘用车vpps中文名称:").append(attrInfoMap.get("CYCVPPSCNName")).append(" ");
contentBuilder.append("关联模块--卡车VPPS编码:").append(attrInfoMap.get("KCCVPPSBMName")).append(" ");
contentBuilder.append("关联模块--卡车vpps中文名称:").append(attrInfoMap.get("KCCVPPSCNName")).append(" ");
contentBuilder.append("模块结构单元变型号:").append(attrInfoMap.get("DYBXHName")).append(" ");
contentBuilder.append("模块结构单元名称:").append(attrInfoMap.get("DYMCName")).append(" ");
contentBuilder.append("代替标准号:").append(attrInfoMap.get("DTBJH")).append(" ");
contentBuilder.append("引用标准:").append(attrInfoMap.get("YYBJ")).append(" ");
contentBuilder.append("被引用标准:").append(attrInfoMap.get("BYYBJ")).append(" ");
contentBuilder.append("代替标准号:").append(attrInfoMap.get("DTBJHName")).append(" ");
contentBuilder.append("引用标准:").append(attrInfoMap.get("YYBJName")).append(" ");
contentBuilder.append("被引用标准:").append(attrInfoMap.get("BYYBJName")).append(" ");
if (isForeign) {
contentBuilder.append("体系类别:").append(attrInfoMap.get("TXLB")).append(" ");
contentBuilder.append("体系类别:").append(attrInfoMap.get("TXLBName")).append(" ");
}else {
contentBuilder.append("采标编号:").append(attrInfoMap.get("CBBH")).append(" ");
contentBuilder.append("采标程度:").append(attrInfoMap.get("CBCD")).append(" ");
contentBuilder.append("部分代替标准号:").append(attrInfoMap.get("BFDTBZ")).append(" ");
contentBuilder.append("被部分代替标准号:").append(attrInfoMap.get("BBFDTBZ")).append(" ");
contentBuilder.append("采标编号:").append(attrInfoMap.get("CBBHName")).append(" ");
contentBuilder.append("采标程度:").append(attrInfoMap.get("CBCDName")).append(" ");
contentBuilder.append("部分代替标准号:").append(attrInfoMap.get("BFDTBZName")).append(" ");
contentBuilder.append("被部分代替标准号:").append(attrInfoMap.get("BBFDTBZName")).append(" ");
}
if (attrInfoMap.containsKey("content")){
@@ -9,6 +9,7 @@ import com.adc.da.utils.util.InitStandAttrUtil;
import com.rabbitmq.client.Channel;
import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.json.JSONTokener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.annotation.Exchange;
@@ -72,6 +73,7 @@ public class SendStandMQService {
SarStandardsInfo infoEO = (SarStandardsInfo) JSONObject.toBean(jsonobject,SarStandardsInfo.class);
String sarStandAttrEOStr = infoEO.getSarStandAttrEOStr();
Map<String,Object> attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr);
Map<String,Object> infoMap = infoEO.getAttrInfoMap();
// 往索引表中插入数据
String getCodeName = "";
@@ -111,6 +113,7 @@ public class SendStandMQService {
}
saveMap.put("issueTime",dateFormatToStr(infoEO.getIssueTime()));
saveMap.put("standNature",infoEO.getStandNature());
saveMap.put("synopsis",infoEO.getSynopsis());
saveMap.put("standType",infoEO.getStandType());
saveMap.put("textStatus",infoEO.getTextStatus());
@@ -134,6 +137,12 @@ public class SendStandMQService {
// 动态存储属性字段
for (String field : fieldInfoList) {
saveMap.put(field,attrInfoMap.getOrDefault(field,""));
Object json= new JSONTokener(infoMap.get(field).toString()).nextValue();
String fieldValue = "";
if(!json.toString().equals("null")){
fieldValue = infoMap.get(field).toString();
}
saveMap.put(field+"Name",fieldValue);
}
@@ -382,6 +382,30 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
}
}
public void attrInfoSearchDetails(SarStandardsInfo row) throws Exception {
String fieldInfo = InitStandAttrUtil.queryField;
String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
row.setCollectId(collectId);
// 查询属性表数据
if (StringUtils.isNotBlank(fieldInfo)) {
Map<String, Object> getAttrMap = sarStandAttrInfoEODao.selectStandFieldAndData(fieldInfo, row.getId());
if (InitStandAttrUtil.clobFieldList != null && !InitStandAttrUtil.clobFieldList.isEmpty()) {
// 遍历修改所有clob类型的值
for (String clobField : InitStandAttrUtil.clobFieldList) {
Clob clobValue = (Clob) getAttrMap.get(clobField);
String fieldValue = FieldConvertUtil.ClobToString(clobValue);
getAttrMap.put(clobField, fieldValue);
}
}
if (getAttrMap != null && !getAttrMap.isEmpty()) {
row.setAttrInfoCaseMap(transformUpperCase(getAttrMap));
}
row.setAttrInfoMap(getAttrMap);
}
}
private Map<String, Object> transformUpperCase(Map<String, Object> orgMap) {
Map<String, Object> resultMap = new HashMap<>();
@@ -428,6 +452,25 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
}
}
public void attrInfoShowSearchDetails(SarStandardsInfo row) throws Exception {
if (row != null) {
attrInfoSearchDetails(row);
Map<String, Object> getAttrMap = row.getAttrInfoMap();
if (getAttrMap != null && getAttrMap.size() > 0) {
for (Map.Entry<String, Object> entry : getAttrMap.entrySet()) {
String name = entry.getKey();
String value = "";
if (entry.getValue() != null && InitStandAttrUtil.selectionFieldList != null && InitStandAttrUtil.selectionFieldList.size() > 0 && InitStandAttrUtil.selectionFieldList.contains(name)) {
value = entry.getValue().toString();
List<String> valArr = Arrays.asList(value.split(","));
value = dicTypeEODao.getDicNamesByCodes(valArr);
entry.setValue(value);
}
}
}
}
}
public void attrInfoShow(List<SarStandardsInfo> sarlist) throws Exception {
for (SarStandardsInfo row : sarlist) {
attrInfoDetails(row);
@@ -1099,7 +1142,8 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
// replaseStandState(sarStandardsInfoEO);
// 记录修改日志
saveUpdateLog(sarStandardsInfoEO, beforeSarStandardsInfo);
if(elasflag) {
if(elasflag) { //what?
attrInfoShowSearchDetails(sarStandardsInfoEO);
createStandMQService.sendStandMQ(sarStandardsInfoEO,"update");
List<String> bhs = new ArrayList<>(Arrays.asList(String.valueOf(map.get("DTBJH")).split(",")));
for (String bh :bhs) {