diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java index c3fe3dbe..c2677851 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/SearchCenterServiceImpl.java @@ -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 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 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 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 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); //在结果中检索 diff --git a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java index ad72d012..dde8aed7 100644 --- a/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java +++ b/adc-da-search/src/main/java/com/adc/da/search/service/impl/StandLawsSearchServiceImpl.java @@ -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")){ diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java index 16cb5288..f6660306 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/service/SendStandMQService.java @@ -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 attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr); + Map 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); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index f939742f..ea59b101 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -382,6 +382,30 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl 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 transformUpperCase(Map orgMap) { Map resultMap = new HashMap<>(); @@ -428,6 +452,25 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl getAttrMap = row.getAttrInfoMap(); + if (getAttrMap != null && getAttrMap.size() > 0) { + for (Map.Entry 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 valArr = Arrays.asList(value.split(",")); + value = dicTypeEODao.getDicNamesByCodes(valArr); + entry.setValue(value); + } + } + } + } + } + public void attrInfoShow(List sarlist) throws Exception { for (SarStandardsInfo row : sarlist) { attrInfoDetails(row); @@ -1099,7 +1142,8 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl bhs = new ArrayList<>(Arrays.asList(String.valueOf(map.get("DTBJH")).split(","))); for (String bh :bhs) {