Merge remote-tracking branch 'origin/develop_master' into develop_master

This commit is contained in:
yuezhihang
2021-08-13 16:44:17 +08:00
8 changed files with 70 additions and 40 deletions
@@ -21,7 +21,7 @@ public class DocConverterPdf {
* private String convertHost;
*
*
* fileString 新替换的文件名
* fileString 文件全路径
* fileType 文件后缀类型
* 调用方法如下
* DocConverterPdf d = new DocConverterPdf(fileString,fileType);
@@ -1026,7 +1026,7 @@ public class SearchCenterServiceImpl implements SearchCenterService {
if(StringUtils.isNotEmpty(searchInfoEO.getSelectValue())){
QueryBuilder multiQueryBuilder = QueryBuilders.multiMatchQuery("");
multiQueryBuilder = QueryBuilders.multiMatchQuery(searchInfoEO.getSelectValue(),
"title","textContent"
"title","textContent","textItems"
).minimumShouldMatch("100%").field("title",10f);
boolQueryBuilder.must(multiQueryBuilder);
// boolQueryBuilder.should()
@@ -1041,6 +1041,8 @@ public class SearchCenterServiceImpl implements SearchCenterService {
hiBuilder.field(highlightTitle);
HighlightBuilder.Field highlightUser = new HighlightBuilder.Field("textContent");
hiBuilder.field(highlightUser);
HighlightBuilder.Field highlightItem = new HighlightBuilder.Field("textItems");
hiBuilder.field(highlightItem);
HighlightBuilder.Field highlightDate = new HighlightBuilder.Field("issue_time");
hiBuilder.field(highlightDate);
hiBuilder.preTags("<span class='highlight-class'>");
@@ -1083,6 +1085,19 @@ public class SearchCenterServiceImpl implements SearchCenterService {
//高亮标题覆盖原标题
sourceAsMap.put("textContent",n_field);
}
// 条款内容
Map<String, HighlightField> highlightFieldItemStr = searchHit.getHighlightFields();
HighlightField fieldItemStr= highlightFieldItemStr.get("textItems");
if(fieldItemStr!= null){
Text[] fragments = fieldItemStr.fragments();
String n_field = "";
for (Text fragment : fragments) {
n_field += fragment;
}
//高亮标题覆盖原标题
sourceAsMap.put("textItems",n_field);
}
//发布日期添加高亮
// Map<String, HighlightField> highlightFieldsDatehowStr = searchHit.getHighlightFields();
// HighlightField fieldDateshowStr= highlightFieldsDatehowStr.get("issue_time");
@@ -17,10 +17,7 @@ import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.*;
@Component
public class StandLawsSearchServiceImpl implements StandLawsSearchService {
@@ -129,6 +126,8 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
Map<String,Object> getFullTextSearchForMap(Map<String,Object> attrInfoMap){
boolean isForeign = false;
Map<String,Object> fullTextSearchEO = new HashMap<>();
Map<String,String> mapItems = new TreeMap<>();
mapItems = net.sf.json.JSONObject.fromObject(attrInfoMap.get("mapItems").toString());
fullTextSearchEO.put("id",String.valueOf(attrInfoMap.get("id")));
if ("FOREIGN".equals(String.valueOf(attrInfoMap.get("standType")))){
fullTextSearchEO.put("indexType",String.valueOf(attrInfoMap.get("standType")));
@@ -220,6 +219,18 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" ");
StringBuilder textContent = replaceAll(contentBuilder, "null", "--");
fullTextSearchEO.put("textContent",textContent.toString());
// 全文检索 加入 发布稿 分解单条款内容逻辑
StringBuilder itemBuilder = new StringBuilder();
mapItems.forEach((s, s2) -> {
itemBuilder.append(s+" ").append("(模拟数据)-本标准规定了机动车的整车及主要总成、安全防护装置等有关运行安全的基本技术要求,以及消防车、救护车、" +
"工程救险车和警车及残疾人专用汽车的附加要求。本标准适用于在我国道路上行驶的所有机动车,但不适用于有轨电车及并非为在道路上行驶和使用而设计和制造、" +
"主要用于封闭道路和场所作业施工的轮式专用机械车。 注:有轨电车是指以电机驱动,架线供电,有轨道承载的道路车辆。").append("</br>");
});
StringBuilder textItemContent = replaceAll(itemBuilder, "null", "--");
fullTextSearchEO.put("textItems",textItemContent.toString());
if (null != attrInfoMap.get("issueTime") && !"".equals(attrInfoMap.get("issueTime")) && !"null".equals(attrInfoMap.get("issueTime"))) {
fullTextSearchEO.put("issue_time", attrInfoMap.get("issueTime"));
}else {
@@ -273,6 +284,7 @@ public class StandLawsSearchServiceImpl implements StandLawsSearchService {
contentBuilder.append("标准文本: ").append(attrInfoMap.get("content")).append(" ");
StringBuilder textContent = replaceAll(contentBuilder, "null", "--");
fullTextSearchEO.put("textContent",textContent.toString());
if (null != attrInfoMap.get("issue_time") && !"".equals(attrInfoMap.get("issue_time")) && !"null".equals(attrInfoMap.get("issue_time"))) {
fullTextSearchEO.put("issue_time", attrInfoMap.get("issue_time"));
}else {
@@ -75,9 +75,15 @@ public class SendStandMQService {
String sarStandards = standMap.get("sarStandards").toString();
JSONObject jsonobject = JSONObject.fromObject(sarStandards);
SarStandardsInfo infoEO = (SarStandardsInfo) JSONObject.toBean(jsonobject,SarStandardsInfo.class);
if(infoEO.getMapItems() == null || infoEO.getMapItems().isEmpty()){
if(jsonobject.get("mapItems") != null){
infoEO.setMapItems(net.sf.json.JSONObject.fromObject(jsonobject.get("mapItems")));
}
}
String sarStandAttrEOStr = infoEO.getSarStandAttrEOStr();
Map<String,Object> attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr);
Map<String,Object> infoMap = infoEO.getAttrInfoMap();
Map<String,String> infoEOMapItems = infoEO.getMapItems();
// 往索引表中插入数据
String getCodeName = "";
@@ -182,6 +188,10 @@ public class SendStandMQService {
saveMap.put(field+"Name",fieldValue);
}
if(infoEOMapItems != null && !infoEOMapItems.isEmpty()){
saveMap.put("mapItems",infoEOMapItems);
}
//当建立代替时,产生的没有文件的问题
if (StringUtils.isBlank(String.valueOf(saveMap.get("content")))) {
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Set;
@@ -20,6 +21,7 @@ import java.util.Set;
* @since 2021-06-01
*/
@Mapper
@Repository
public interface SarStandItemsDao extends BaseMapper<SarStandItems> {
List<SarItemVO> querySarItemAndInterpretation(FindSarItemsPageReqDTO page);
@@ -96,20 +96,23 @@ public class SarStandardsInfoController extends BaseController<SarStandardsInfo>
if (null != page.getNowOrderBy()) {
switch (page.getNowOrderBy()) {
case 1:
page.setOrderBy1("issueTime");
page.setOrderBy1("issueTime");//发布日期
break;
case 2:
page.setOrderBy1("XCXSSRQPAIXU");
page.setOrderBy1("SAR_STAND_ATTR_INFO.ZCCSSRQ");//新车型实施日期
break;
case 3:
page.setOrderBy1("ZCCSSRQPAIXU");
page.setOrderBy1("SAR_STAND_ATTR_INFO.XCXSSRQ");//在产车实施日期
break;
case 4:
page.setOrderBy1("standStateShow");
page.setOrderBy1("SAR_STANDARDS_INFO.text_status");//文本状态
break;
case 5:
page.setOrderBy1("paixu");
break;
case 6:
page.setOrderBy1("SAR_STAND_ATTR_INFO.SSRQ");
break;
default:
page.setNowOrder(null);
break;
@@ -2,6 +2,7 @@ package com.adc.da.slrs.sarStandardsInfo.entity;
import com.adc.da.base.entity.BaseEntity;
import com.adc.da.slrs.sarStandAttrDetails.entity.SarStandAttrDetails;
import com.adc.da.slrs.sarStandItems.entity.SarItemVO;
import com.adc.da.slrs.sarStandItems.entity.SarStandItems;
import com.adc.da.sys.entity.DicTypeEO;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -178,6 +179,9 @@ public class SarStandardsInfo extends BaseEntity {
private Date newCarPutTime;
@TableField(exist = false)
private List<SarStandItems> itemsList = new ArrayList<>();
@ApiModelProperty(value = "分解单条款内容")
@TableField(exist = false)
private Map<String,String> mapItems = new TreeMap<>();
@TableField(exist = false)
private String relateStand;//对应其他标准
@TableField(exist = false)
@@ -28,6 +28,8 @@ import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo;
import com.adc.da.slrs.sarStandFile.dao.SarStandFileDao;
import com.adc.da.slrs.sarStandFile.entity.SarStandFile;
import com.adc.da.slrs.sarStandItems.dao.SarStandItemsDao;
import com.adc.da.slrs.sarStandItems.entity.FindSarItemsPageReqDTO;
import com.adc.da.slrs.sarStandItems.entity.SarItemVO;
import com.adc.da.slrs.sarStandItems.entity.SarStandItems;
import com.adc.da.slrs.sarStandItems.page.SarStandItemsEOPage;
import com.adc.da.slrs.sarStandItems.service.ISarStandItemsService;
@@ -116,6 +118,9 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
@Autowired
private SarStandardsInfoDao dao;
@Autowired
private SarStandItemsDao standItemsDao;
@Autowired
private ITsResourceService sarMenuEOService;
@@ -1144,37 +1149,16 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
saveUpdateLog(sarStandardsInfoEO, beforeSarStandardsInfo);
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) {
SarStandardsInfoEOPage page = new SarStandardsInfoEOPage();
int countStand = 10000;
int countSuccess = 0;
page.setValidFlag("0");
page.setPageSize(countStand);
page.setMenuId("nomenu");
page.setStandType("ALL");
page.setStandNumber(bh);
List<SarStandardsInfo> rowsStand = dao.selectStandardsInfoBynumber(page);
for (SarStandardsInfo sarStandardsInfo : rowsStand) {
List<SarStandardsInfo> sarStandardsInfoEOS = new ArrayList<>();
sarStandardsInfoEOS.add(sarStandardsInfo);
attrInfo(sarStandardsInfoEOS);
if (sarStandardsInfoEOS.size()>0) {
sarStandardsInfo = sarStandardsInfoEOS.get(0);
countSuccess++;
if (sarStandardsInfo.getAttrInfoMap() != null) {
if (sarStandardsInfo.getAttrInfoMap().containsKey("BDTBZBH")){
String bdtbh = String.valueOf(sarStandardsInfo.getAttrInfoMap().get("BDTBZBH"));
sarStandardsInfo.getAttrInfoMap().put("BDTBH", bdtbh);
sarStandardsInfo.setSarStandAttrEOStr(com.alibaba.fastjson.JSONObject.toJSONString(sarStandardsInfo.getAttrInfoMap()));
}
}
createStandMQService.sendStandMQ(sarStandardsInfo, "update");
}
}
FindSarItemsPageReqDTO pageInfo = new FindSarItemsPageReqDTO();
pageInfo.setStandId(sarStandardsInfoEO.getId());
pageInfo.setFileType("FBGBJBD");
List<SarItemVO> sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo);
if(!sarItemVOS.isEmpty()){
Map<String,String> collectMap = sarItemVOS.stream().filter((e) -> e.getItemsNum() != null && e.getItemsName() != null)
.collect(Collectors.toMap(SarItemVO::getItemsNum, SarItemVO::getItemsName));
sarStandardsInfoEO.setMapItems(collectMap);
}
createStandMQService.sendStandMQ(sarStandardsInfoEO,"update");
}
return result;
}