From de8f5631c0c0a7efde2195ecc6dfcaa16b74f4d5 Mon Sep 17 00:00:00 2001
From: 2510220824 <2510220824@qq.com>
Date: Wed, 28 Jul 2021 15:35:45 +0800
Subject: [PATCH] =?UTF-8?q?add:=E5=8D=87=E7=BA=A7es=E5=88=B07.6.2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
adc-da-search/pom.xml | 8 +-
.../controller/SearchCenterController.java | 33 +-
.../impl/ElasticsearchServiceImpl.java | 26 +-
.../service/impl/SearchCenterServiceImpl.java | 6 +-
adc-da-slrs/pom.xml | 6 +
.../entity/SarStandardsInfo.java | 404 ++++++++++++++++++
.../impl/SarStandardsInfoServiceImpl.java | 130 +++++-
.../adc/da/slrs/search/SearchController.java | 27 ++
8 files changed, 609 insertions(+), 31 deletions(-)
create mode 100644 adc-da-slrs/src/main/java/com/adc/da/slrs/search/SearchController.java
diff --git a/adc-da-search/pom.xml b/adc-da-search/pom.xml
index 4c067f98..74c6571f 100644
--- a/adc-da-search/pom.xml
+++ b/adc-da-search/pom.xml
@@ -60,11 +60,11 @@
adc-da-base
3.0.0
-
+
com.adc
@@ -91,12 +91,12 @@
org.elasticsearch.client
transport
- 6.3.2
+ 7.6.2
org.elasticsearch
elasticsearch
- 6.3.2
+ 7.6.2
diff --git a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java
index d60a2cee..fb4b5ca4 100644
--- a/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java
+++ b/adc-da-search/src/main/java/com/adc/da/search/controller/SearchCenterController.java
@@ -4,21 +4,21 @@ import com.adc.da.base.web.BaseController;
import com.adc.da.excel.poi.excel.ExcelExportUtil;
import com.adc.da.excel.poi.excel.entity.ExportParams;
import com.adc.da.excel.poi.excel.entity.enums.ExcelType;
+import com.adc.da.exception.AdcDaBaseException;
import com.adc.da.http.PageInfo;
+import com.adc.da.http.ResponseMessage;
+import com.adc.da.http.Result;
import com.adc.da.person.service.IPersonCollectEOService;
-import com.adc.da.search.dto.*;
+import com.adc.da.search.dto.SearchBussExportDto;
+import com.adc.da.search.dto.SearchLawsExportDto;
+import com.adc.da.search.dto.SearchMsgExportDto;
+import com.adc.da.search.dto.SearchStandExportDto;
import com.adc.da.search.entity.CommonSearchInfoEO;
import com.adc.da.search.entity.SarAdvanceSearchVO;
import com.adc.da.search.entity.SeniorSearchInfoEO;
import com.adc.da.search.service.ElasticsearchService;
import com.adc.da.search.service.SearchCenterService;
-import com.adc.da.exception.AdcDaBaseException;
-import com.adc.da.http.ResponseMessage;
-import com.adc.da.http.Result;
-import com.adc.da.slrs.tsDictionaryType.entity.TsSearchMenu;
-import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService;
import com.adc.da.util.IOUtils;
-
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -26,14 +26,25 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.elasticsearch.client.transport.TransportClient;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.regex.Pattern;
+
import static com.adc.da.sys.common.ReadExcelName.encodeFileName;
@RestController
@@ -52,14 +63,14 @@ public class SearchCenterController extends BaseController
+
+ com.adc
+ adc-da-search
+ 1.0.0
+ compile
+
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 f61bd816..62c545e5 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
@@ -191,5 +191,409 @@ public class SarStandardsInfo extends BaseEntity {
@TableField(exist = false)
private String standSystemName;
+
+ public static long getSerialVersionUID() {
+ return serialVersionUID;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getStandType() {
+ return standType;
+ }
+
+ public void setStandType(String standType) {
+ this.standType = standType;
+ }
+
+ public String getCountry() {
+ return country;
+ }
+
+ public void setCountry(String country) {
+ this.country = country;
+ }
+
+ public String getStandSort() {
+ return standSort;
+ }
+
+ public void setStandSort(String standSort) {
+ this.standSort = standSort;
+ }
+
+ public String getStandNumber() {
+ return standNumber;
+ }
+
+ public void setStandNumber(String standNumber) {
+ this.standNumber = standNumber;
+ }
+
+ public String getStandYear() {
+ return standYear;
+ }
+
+ public void setStandYear(String standYear) {
+ this.standYear = standYear;
+ }
+
+ public String getStandName() {
+ return standName;
+ }
+
+ public void setStandName(String standName) {
+ this.standName = standName;
+ }
+
+ public String getStandEnName() {
+ return standEnName;
+ }
+
+ public void setStandEnName(String standEnName) {
+ this.standEnName = standEnName;
+ }
+
+ public String getStandState() {
+ return standState;
+ }
+
+ public void setStandState(String standState) {
+ this.standState = standState;
+ }
+
+ public String getStandNature() {
+ return standNature;
+ }
+
+ public void setStandNature(String standNature) {
+ this.standNature = standNature;
+ }
+
+ public String getIssueTime() {
+ return issueTime;
+ }
+
+ public void setIssueTime(String issueTime) {
+ this.issueTime = issueTime;
+ }
+
+ public Date getPutTime() {
+ return putTime;
+ }
+
+ public void setPutTime(Date putTime) {
+ this.putTime = putTime;
+ }
+
+ public String getSynopsis() {
+ return synopsis;
+ }
+
+ public void setSynopsis(String synopsis) {
+ this.synopsis = synopsis;
+ }
+
+ public String getReplaceStandNum() {
+ return replaceStandNum;
+ }
+
+ public void setReplaceStandNum(String replaceStandNum) {
+ this.replaceStandNum = replaceStandNum;
+ }
+
+ public String getReplacedStandNum() {
+ return replacedStandNum;
+ }
+
+ public void setReplacedStandNum(String replacedStandNum) {
+ this.replacedStandNum = replacedStandNum;
+ }
+
+ public String getCreationUser() {
+ return creationUser;
+ }
+
+ public void setCreationUser(String creationUser) {
+ this.creationUser = creationUser;
+ }
+
+ public String getValidFlag() {
+ return validFlag;
+ }
+
+ public void setValidFlag(String validFlag) {
+ this.validFlag = validFlag;
+ }
+
+ public Date getCreationTime() {
+ return creationTime;
+ }
+
+ public void setCreationTime(Date creationTime) {
+ this.creationTime = creationTime;
+ }
+
+ public Date getModifyTime() {
+ return modifyTime;
+ }
+
+ public void setModifyTime(Date modifyTime) {
+ this.modifyTime = modifyTime;
+ }
+
+ public String getIsRelateAccess() {
+ return isRelateAccess;
+ }
+
+ public void setIsRelateAccess(String isRelateAccess) {
+ this.isRelateAccess = isRelateAccess;
+ }
+
+ public String getCiteStand() {
+ return citeStand;
+ }
+
+ public void setCiteStand(String citeStand) {
+ this.citeStand = citeStand;
+ }
+
+ public String getCitedStand() {
+ return citedStand;
+ }
+
+ public void setCitedStand(String citedStand) {
+ this.citedStand = citedStand;
+ }
+
+ public String getTextStatus() {
+ return textStatus;
+ }
+
+ public void setTextStatus(String textStatus) {
+ this.textStatus = textStatus;
+ }
+
+ public String getStandSystem() {
+ return standSystem;
+ }
+
+ public void setStandSystem(String standSystem) {
+ this.standSystem = standSystem;
+ }
+
+ public String getCollectId() {
+ return collectId;
+ }
+
+ public void setCollectId(String collectId) {
+ this.collectId = collectId;
+ }
+
+ public String getCountryShow() {
+ return countryShow;
+ }
+
+ public void setCountryShow(String countryShow) {
+ this.countryShow = countryShow;
+ }
+
+ public String getStandSortShow() {
+ return standSortShow;
+ }
+
+ public void setStandSortShow(String standSortShow) {
+ this.standSortShow = standSortShow;
+ }
+
+ public String getStandStateShow() {
+ return standStateShow;
+ }
+
+ public void setStandStateShow(String standStateShow) {
+ this.standStateShow = standStateShow;
+ }
+
+ public String getStandNatureShow() {
+ return standNatureShow;
+ }
+
+ public void setStandNatureShow(String standNatureShow) {
+ this.standNatureShow = standNatureShow;
+ }
+
+ public String getSychronId() {
+ return sychronId;
+ }
+
+ public void setSychronId(String sychronId) {
+ this.sychronId = sychronId;
+ }
+
+ public List getDicTypeList() {
+ return dicTypeList;
+ }
+
+ public void setDicTypeList(List dicTypeList) {
+ this.dicTypeList = dicTypeList;
+ }
+
+ public List getAttrInfoList() {
+ return attrInfoList;
+ }
+
+ public void setAttrInfoList(List attrInfoList) {
+ this.attrInfoList = attrInfoList;
+ }
+
+ public Map getAttrInfoMap() {
+ return attrInfoMap;
+ }
+
+ public void setAttrInfoMap(Map attrInfoMap) {
+ this.attrInfoMap = attrInfoMap;
+ }
+
+ public Map getAttrInfoCaseMap() {
+ return attrInfoCaseMap;
+ }
+
+ public void setAttrInfoCaseMap(Map attrInfoCaseMap) {
+ this.attrInfoCaseMap = attrInfoCaseMap;
+ }
+
+ public String getSarStandAttrEOStr() {
+ return sarStandAttrEOStr;
+ }
+
+ public void setSarStandAttrEOStr(String sarStandAttrEOStr) {
+ this.sarStandAttrEOStr = sarStandAttrEOStr;
+ }
+
+ public String getMenuId() {
+ return menuId;
+ }
+
+ public void setMenuId(String menuId) {
+ this.menuId = menuId;
+ }
+
+ public int getUpReplaceNumFlag() {
+ return upReplaceNumFlag;
+ }
+
+ public void setUpReplaceNumFlag(int upReplaceNumFlag) {
+ this.upReplaceNumFlag = upReplaceNumFlag;
+ }
+
+ public int getUpNumFlag() {
+ return upNumFlag;
+ }
+
+ public void setUpNumFlag(int upNumFlag) {
+ this.upNumFlag = upNumFlag;
+ }
+
+ public String getFileIds() {
+ return fileIds;
+ }
+
+ public void setFileIds(String fileIds) {
+ this.fileIds = fileIds;
+ }
+
+ public Date getNewCarPutTime() {
+ return newCarPutTime;
+ }
+
+ public void setNewCarPutTime(Date newCarPutTime) {
+ this.newCarPutTime = newCarPutTime;
+ }
+
+ public List getItemsList() {
+ return itemsList;
+ }
+
+ public void setItemsList(List itemsList) {
+ this.itemsList = itemsList;
+ }
+
+ public String getRelateStand() {
+ return relateStand;
+ }
+
+ public void setRelateStand(String relateStand) {
+ this.relateStand = relateStand;
+ }
+
+ public String getAccessCountry() {
+ return accessCountry;
+ }
+
+ public void setAccessCountry(String accessCountry) {
+ this.accessCountry = accessCountry;
+ }
+
+ public String getProcessNum() {
+ return processNum;
+ }
+
+ public void setProcessNum(String processNum) {
+ this.processNum = processNum;
+ }
+
+ public String getMenuType() {
+ return menuType;
+ }
+
+ public void setMenuType(String menuType) {
+ this.menuType = menuType;
+ }
+
+ public String getAllPutTime() {
+ return allPutTime;
+ }
+
+ public void setAllPutTime(String allPutTime) {
+ this.allPutTime = allPutTime;
+ }
+
+ public String getJspg() {
+ return jspg;
+ }
+
+ public void setJspg(String jspg) {
+ this.jspg = jspg;
+ }
+
+ public String getCHJL() {
+ return CHJL;
+ }
+
+ public void setCHJL(String CHJL) {
+ this.CHJL = CHJL;
+ }
+
+ public String getPutTime2() {
+ return putTime2;
+ }
+
+ public void setPutTime2(String putTime2) {
+ this.putTime2 = putTime2;
+ }
+
+ public String getStandSystemName() {
+ return standSystemName;
+ }
+
+ public void setStandSystemName(String standSystemName) {
+ this.standSystemName = standSystemName;
+ }
}
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 0af77f7f..e567da74 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
@@ -11,6 +11,7 @@ import com.adc.da.person.dao.PersonCollectEODao;
import com.adc.da.person.dao.PersonShareEODao;
import com.adc.da.person.entity.PersonMsgEO;
import com.adc.da.person.service.IPersonCollectEOService;
+import com.adc.da.search.service.StandLawsSearchService;
import com.adc.da.slrs.sarLawsInfo.entity.SarLawsInfo;
import com.adc.da.slrs.sarLawsInfo.page.SarLawsInfoEOPage;
import com.adc.da.slrs.sarLawsInfo.page.SarLawsItemsEOPage;
@@ -60,6 +61,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.util.PDFTextStripper;
+import org.apache.pdfbox.util.PDFTextStripperByArea;
+import org.apache.poi.hwpf.extractor.WordExtractor;
+import org.apache.poi.openxml4j.opc.OPCPackage;
+import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -70,6 +78,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
+import java.io.FileInputStream;
import java.sql.Clob;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -175,6 +184,9 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl attrInfoMap) {
-
+ Set keys = attrInfoMap.keySet();
+ for (String key:keys) {
+ String value = String.valueOf(attrInfoMap.get(key));
+ if (com.adc.da.util.utils.StringUtils.isNotBlank(value) && !"null".equals(value) && !"SVPPS".equals(key)){
+ value = value.replace(" , ",",");
+ value = value.replace(","," , ");
+ attrInfoMap.put(key,value);
+ }
+ }
+ // 根据文件attid 读取文件内容
+ if (org.apache.commons.lang.StringUtils.isNotEmpty(String.valueOf(attrInfoMap.get("content")))) {
+ String[] attidlist = String.valueOf(attrInfoMap.get("content")).split(" , ");
+ StringBuilder content = new StringBuilder("");
+ for (int i = 0; i < attidlist.length; i++) {
+ if(org.apache.commons.lang.StringUtils.isNotEmpty(attidlist[i]) ){
+ AttFileEO attFileEO = attFileEOService.getFileInfo(attidlist[i]);
+ //String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName();
+ String readFilePath = "E:\\上汽企标流程总览.pdf";
+ try {
+ // 判断文件是docx还是PDF
+ if (null != attFileEO.getFileSuffix() && (attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("doc") || attFileEO.getFileSuffix().equals("ppt") || attFileEO.getFileSuffix().equals("pptx"))) {
+ if(attFileEO.getFileSuffix().equals("doc")){
+ FileInputStream fis = new FileInputStream(readFilePath);
+ WordExtractor wordExtractor = new WordExtractor(fis);
+ String txt = wordExtractor.getText();
+ content.append(txt);
+ }else {
+ OPCPackage opcPackage = XWPFDocument.openPackage(readFilePath);
+ XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage);
+ String txt = extractor.getText();
+ content.append(txt);
+ }
+ } else {
+ PDDocument document = PDDocument.load(new File(readFilePath));
+ document.getClass();
+ if (!document.isEncrypted()) {
+ PDFTextStripperByArea stripper = new PDFTextStripperByArea();
+ stripper.setSortByPosition(true);
+ PDFTextStripper tStripper = new PDFTextStripper();
+ String pdfFileInText = tStripper.getText(document);
+ // String[] lines = pdfFileInText.split("\\r?\\n");
+ content.append(pdfFileInText);
+ }
+ }
+ } catch (Exception e) {
+ logger.error("搜索中心新增数据读取文档内容时失败");
+ logger.error(e.getMessage(),e);
+ }
+ attrInfoMap.put("content",content.toString());
+ }
+ }
+ }
+ else{
+ attrInfoMap.put("content","");
+ }
+ standLawsSearchService.addStandLawsSearchForMap(attrInfoMap);
}
@Override
public void updateIntoIndexForMap(Map attrInfoMap) {
-
+ Set keys = attrInfoMap.keySet();
+ for (String key:keys) {
+ String value = String.valueOf(attrInfoMap.get(key));
+ if (com.adc.da.util.utils.StringUtils.isNotBlank(value) && !"null".equals(value) && !"SVPPS".equals(key) && !"content".equals(key)){
+ value = value.replace(" , ",",");
+ value = value.replace(","," , ");
+ attrInfoMap.put(key,value);
+ }
+ }
+ // 根据文件attid 读取文件内容
+ if (org.apache.commons.lang.StringUtils.isNotEmpty(String.valueOf(attrInfoMap.get("content")))) {
+ String[] attidlist = String.valueOf(attrInfoMap.get("content")).split(" , ");
+ StringBuilder content = new StringBuilder("");
+ for (int i = 0; i < attidlist.length; i++) {
+ if(org.apache.commons.lang.StringUtils.isNotEmpty(attidlist[i]) && !"null".equals(attidlist[i])){
+ AttFileEO attFileEO = attFileEOService.getFileInfo(attidlist[i]);
+ //String readFilePath = filePath + "/" + attFileEO.getFilePath() + attFileEO.getFileName();
+ try {
+ // 判断文件是docx还是PDF
+ /*if (attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("doc")) {
+ if(attFileEO.getFileSuffix().equals("doc")){
+ FileInputStream fis = new FileInputStream(readFilePath);
+ WordExtractor wordExtractor = new WordExtractor(fis);
+ String txt = wordExtractor.getText();
+ content.append(txt);
+ }else {
+ OPCPackage opcPackage = XWPFDocument.openPackage(readFilePath);
+ XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage);
+ String txt = extractor.getText();
+ content.append(txt);
+ }
+ } else if (attFileEO.getFileSuffix().equals("pdf")){
+ PDDocument document = PDDocument.load(new File(readFilePath));
+ document.getClass();
+ if (!document.isEncrypted()) {
+ PDFTextStripperByArea stripper = new PDFTextStripperByArea();
+ stripper.setSortByPosition(true);
+ PDFTextStripper tStripper = new PDFTextStripper();
+ String pdfFileInText = tStripper.getText(document);
+ // String[] lines = pdfFileInText.split("\\r?\\n");
+ content.append(pdfFileInText);
+ }
+ }*/
+ String readFilePath = "E:\\上汽企标流程总览.pdf";
+ FileInputStream fis = new FileInputStream(readFilePath);
+ WordExtractor wordExtractor = new WordExtractor(fis);
+ String txt = wordExtractor.getText();
+ content.append(txt);
+ } catch (Exception e) {
+ logger.error("搜索中心修改数据读取文档内容时失败");
+ logger.error(e.getMessage(),e);
+ }
+ attrInfoMap.put("content",content.toString());
+ }
+ }
+ }
+ else{
+ attrInfoMap.put("content","");
+ }
+ standLawsSearchService.updateStandLawsSearchForMap(attrInfoMap);
}
//
// @Override
diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/search/SearchController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/search/SearchController.java
new file mode 100644
index 00000000..1377523d
--- /dev/null
+++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/search/SearchController.java
@@ -0,0 +1,27 @@
+package com.adc.da.slrs.search;
+
+import com.adc.da.http.ResponseMessage;
+import com.adc.da.http.Result;
+import com.adc.da.slrs.tsDictionaryType.entity.TsSearchMenu;
+import com.adc.da.slrs.tsDictionaryType.service.ITsDicTypeService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/${restPath}/search")
+public class SearchController {
+
+ @Autowired
+ private ITsDicTypeService iTsDictypeService;
+
+ @ApiOperation("获取筛选条件")
+ @PostMapping("/getMenu")
+ public ResponseMessage> getSearchMenu(){
+ return Result.success(iTsDictypeService.getSearchMenu());
+ }
+}