diff --git a/adc-da-convert/src/main/java/com/adc/da/convert/common/DocConverterPdf.java b/adc-da-convert/src/main/java/com/adc/da/convert/common/DocConverterPdf.java index 305981af..69558ac4 100644 --- a/adc-da-convert/src/main/java/com/adc/da/convert/common/DocConverterPdf.java +++ b/adc-da-convert/src/main/java/com/adc/da/convert/common/DocConverterPdf.java @@ -21,7 +21,7 @@ public class DocConverterPdf { * private String convertHost; * * - * fileString : 新替换的文件名 + * fileString : 文件全路径 * fileType : 文件后缀类型 * 调用方法如下 * DocConverterPdf d = new DocConverterPdf(fileString,fileType); 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 9302e1f1..ca267b3c 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 @@ -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(""); @@ -1083,6 +1085,19 @@ public class SearchCenterServiceImpl implements SearchCenterService { //高亮标题覆盖原标题 sourceAsMap.put("textContent",n_field); } + + // 条款内容 + Map 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 highlightFieldsDatehowStr = searchHit.getHighlightFields(); // HighlightField fieldDateshowStr= highlightFieldsDatehowStr.get("issue_time"); 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 fe9eca50..86d017ed 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 @@ -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 getFullTextSearchForMap(Map attrInfoMap){ boolean isForeign = false; Map fullTextSearchEO = new HashMap<>(); + Map 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("
"); + }); + 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 { 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 87e5343d..c14b0e49 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 @@ -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 attrInfoMap = JSONObject.fromObject(sarStandAttrEOStr); Map infoMap = infoEO.getAttrInfoMap(); + Map 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")))) { diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java index f37ea8b3..63a09bbd 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandItems/dao/SarStandItemsDao.java @@ -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 { List querySarItemAndInterpretation(FindSarItemsPageReqDTO page); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java index 9a84c0db..186be42a 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/controller/SarStandardsInfoController.java @@ -96,20 +96,23 @@ public class SarStandardsInfoController extends BaseController 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; diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java index dfcf8fca..291327f1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/entity/SarStandardsInfo.java @@ -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 itemsList = new ArrayList<>(); + @ApiModelProperty(value = "分解单条款内容") + @TableField(exist = false) + private Map mapItems = new TreeMap<>(); @TableField(exist = false) private String relateStand;//对应其他标准 @TableField(exist = false) 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 2eaa3968..b39f5d92 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 @@ -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 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 rowsStand = dao.selectStandardsInfoBynumber(page); - for (SarStandardsInfo sarStandardsInfo : rowsStand) { - List 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 sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo); + if(!sarItemVOS.isEmpty()){ + Map 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; }