Merge branch 'develop_master' into FOTON

This commit is contained in:
super_liu
2022-05-01 02:49:41 +08:00
5 changed files with 483 additions and 216 deletions
@@ -131,7 +131,12 @@ public class SendBussMQService {
} }
saveMap.put("standYear",infoEO.getStandYear()); saveMap.put("standYear",infoEO.getStandYear());
saveMap.put("stand_year",infoEO.getStandYear()); saveMap.put("stand_year",infoEO.getStandYear());
saveMap.put("standNumber",infoEO.getStandNumber()); if(jsonobject.get("standNumber") != null){
saveMap.put("standNumber",jsonobject.get("standNumber"));
}else {
saveMap.put("standNumber","");
}
saveMap.put("stand_code",infoEO.getStandCode()); saveMap.put("stand_code",infoEO.getStandCode());
saveMap = dealNumberMsg(saveMap,infoEO,infoEO.getStandSort()); saveMap = dealNumberMsg(saveMap,infoEO,infoEO.getStandSort());
saveMap.put("nameshow",infoEO.getStandName()); saveMap.put("nameshow",infoEO.getStandName());
@@ -15,8 +15,8 @@ import java.util.List;
@Data @Data
public class SearchCenter { public class SearchCenter {
@ApiModelProperty(value = "分页查询总数 可不填 自动带入总数") // @ApiModelProperty(value = "分页查询总数 可不填 自动带入总数")
private Integer countStand; // private Integer countStand;
@NotNull @NotNull
@ApiModelProperty(value = "执行参数 ALL 存在更新 不存在新增 ,UPD 只 更新存在 es 里的标准 ,ADD 只新增不存在 es 的标准, DEL 只删除不存在标准库的数据(删除只能用DEL 减少自动错删)") @ApiModelProperty(value = "执行参数 ALL 存在更新 不存在新增 ,UPD 只 更新存在 es 里的标准 ,ADD 只新增不存在 es 的标准, DEL 只删除不存在标准库的数据(删除只能用DEL 减少自动错删)")
@@ -1,27 +1,42 @@
package com.adc.da.search.server; package com.adc.da.search.server;
import com.adc.da.att.entity.AttFileEO;
import com.adc.da.att.service.IAttFileEOService;
import com.adc.da.mq.CreateStandMQService; import com.adc.da.mq.CreateStandMQService;
import com.adc.da.person.service.IPersonCollectEOService;
import com.adc.da.search.bean.SearchCenter; import com.adc.da.search.bean.SearchCenter;
import com.adc.da.search.service.ElasticsearchService; import com.adc.da.search.service.ElasticsearchService;
import com.adc.da.slrs.sarBussStandAttrInfo.dao.SarBussStandAttrInfoDao;
import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand;
import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService; import com.adc.da.slrs.sarBussionessStand.service.ISarBussionessStandService;
import com.adc.da.slrs.sarLawsAttrInfo.dao.SarLawsAttrInfoDao;
import com.adc.da.slrs.sarLawsInfo.entity.SarLawsInfo; import com.adc.da.slrs.sarLawsInfo.entity.SarLawsInfo;
import com.adc.da.slrs.sarLawsInfo.page.SarLawsInfoEOPage; import com.adc.da.slrs.sarLawsInfo.page.SarLawsInfoEOPage;
import com.adc.da.slrs.sarLawsItems.dao.SarLawsItemsDao;
import com.adc.da.slrs.sarLawsItems.entity.SarLawsItems;
import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo;
import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage; import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfoPage;
import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService;
import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao;
import com.adc.da.slrs.sarStandItems.dao.SarStandItemsDao;
import com.adc.da.slrs.sarStandItems.entity.FindSarItemsPageReqDTO;
import com.adc.da.slrs.sarStandItems.entity.SarStandItems;
import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage; import com.adc.da.slrs.sarStandardsInfo.entity.SarBussionessStandEOPage;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo;
import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage; import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfoEOPage;
import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService;
import com.adc.da.sys.dao.DicTypeEODao;
import com.adc.da.util.http.ResponseMessage; import com.adc.da.util.http.ResponseMessage;
import com.adc.da.util.http.Result; import com.adc.da.util.http.Result;
import com.adc.da.utils.util.DateUtil; import com.adc.da.utils.util.DateUtil;
import com.adc.da.utils.util.FieldConvertUtil;
import com.adc.da.utils.util.InitStandAttrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.client.transport.TransportClient;
import org.json.JSONTokener;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -31,6 +46,7 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.sql.Clob;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -48,6 +64,21 @@ public class ResetSearchCenterService {
@Autowired @Autowired
private TransportClient client; private TransportClient client;
@Autowired
private DicTypeEODao dicTypeEODao;
@Autowired
private SarStandItemsDao standItemsDao;
@Autowired
private SarLawsItemsDao sarLawsItemsDao;
@Autowired
private IAttFileEOService attFileEOService;
@Autowired
private SarLawsAttrInfoDao sarLawsAttrInfoDao;
@Autowired @Autowired
private ISarStandardsInfoService iSarStandardsInfoService; private ISarStandardsInfoService iSarStandardsInfoService;
@@ -60,6 +91,15 @@ public class ResetSearchCenterService {
@Autowired @Autowired
private CreateStandMQService createStandMQService; private CreateStandMQService createStandMQService;
@Autowired
private IPersonCollectEOService personCollectEOService;
@Autowired
private SarStandAttrInfoDao sarStandAttrInfoEODao;
@Autowired
private SarBussStandAttrInfoDao sarBussStandAttrInfoEODao;
@PostConstruct @PostConstruct
public void init() { public void init() {
@@ -70,11 +110,7 @@ public class ResetSearchCenterService {
public ResponseMessage resetALLSearchCenter(SearchCenter searchCenter) throws Exception{ public ResponseMessage resetALLSearchCenter(SearchCenter searchCenter) throws Exception{
Boolean getFulltextserchIndex = elasticsearchService.isIndexExist("fulltextserch"); Boolean getFulltextserchIndex = elasticsearchService.isIndexExist("fulltextserch");
SearchCenter standSearch = new SearchCenter(); SearchCenter standSearch = new SearchCenter();
QueryWrapper qw = new QueryWrapper();
qw.eq("VALID_FLAG","0");
int count = iSarStandardsInfoService.count(qw);
standSearch.setExecType(searchCenter.getExecType()); standSearch.setExecType(searchCenter.getExecType());
standSearch.setCountStand(count);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){ if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){
standSearch.setIdList(searchCenter.getIdList()); standSearch.setIdList(searchCenter.getIdList());
} }
@@ -86,11 +122,7 @@ public class ResetSearchCenterService {
} }
SearchCenter lawsSearch = new SearchCenter(); SearchCenter lawsSearch = new SearchCenter();
QueryWrapper qw2 = new QueryWrapper();
qw2.eq("VALID_FLAG","0");
int count2 = iSarLawsStandInfoService.count(qw2);
lawsSearch.setExecType(searchCenter.getExecType()); lawsSearch.setExecType(searchCenter.getExecType());
lawsSearch.setCountStand(count2);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){ if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){
lawsSearch.setIdList(searchCenter.getIdList()); lawsSearch.setIdList(searchCenter.getIdList());
} }
@@ -101,11 +133,7 @@ public class ResetSearchCenterService {
} }
SearchCenter bussSearch = new SearchCenter(); SearchCenter bussSearch = new SearchCenter();
QueryWrapper qw3 = new QueryWrapper();
qw3.eq("VALID_FLAG","0");
int count3 = iSarBussionessStandService.count(qw3);
bussSearch.setExecType(searchCenter.getExecType()); bussSearch.setExecType(searchCenter.getExecType());
bussSearch.setCountStand(count3);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){ if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){
bussSearch.setIdList(searchCenter.getIdList()); bussSearch.setIdList(searchCenter.getIdList());
} }
@@ -125,11 +153,7 @@ public class ResetSearchCenterService {
public ResponseMessage syncResetALLSearchCenter(SearchCenter searchCenter) throws Exception{ public ResponseMessage syncResetALLSearchCenter(SearchCenter searchCenter) throws Exception{
Boolean getFulltextserchIndex = elasticsearchService.isIndexExist("fulltextserch"); Boolean getFulltextserchIndex = elasticsearchService.isIndexExist("fulltextserch");
SearchCenter standSearch = new SearchCenter(); SearchCenter standSearch = new SearchCenter();
QueryWrapper qw = new QueryWrapper();
qw.eq("VALID_FLAG","0");
int count = iSarStandardsInfoService.count(qw);
standSearch.setExecType(searchCenter.getExecType()); standSearch.setExecType(searchCenter.getExecType());
standSearch.setCountStand(count);
SarStandardsInfoEOPage page = new SarStandardsInfoEOPage(); SarStandardsInfoEOPage page = new SarStandardsInfoEOPage();
page.setSyncParam("sync"); page.setSyncParam("sync");
ResponseMessage stand = resetStandSearchCenter(page,standSearch); ResponseMessage stand = resetStandSearchCenter(page,standSearch);
@@ -139,11 +163,7 @@ public class ResetSearchCenterService {
} }
SearchCenter lawsSearch = new SearchCenter(); SearchCenter lawsSearch = new SearchCenter();
QueryWrapper qw2 = new QueryWrapper();
qw2.eq("VALID_FLAG","0");
int count2 = iSarLawsStandInfoService.count(qw2);
lawsSearch.setExecType(searchCenter.getExecType()); lawsSearch.setExecType(searchCenter.getExecType());
lawsSearch.setCountStand(count2);
SarLawsStandInfoPage lawsPage = new SarLawsStandInfoPage(); SarLawsStandInfoPage lawsPage = new SarLawsStandInfoPage();
page.setSyncParam("sync"); page.setSyncParam("sync");
ResponseMessage laws = resetLawsSearchCenter(lawsPage,lawsSearch); ResponseMessage laws = resetLawsSearchCenter(lawsPage,lawsSearch);
@@ -152,11 +172,7 @@ public class ResetSearchCenterService {
} }
SearchCenter bussSearch = new SearchCenter(); SearchCenter bussSearch = new SearchCenter();
QueryWrapper qw3 = new QueryWrapper();
qw3.eq("VALID_FLAG","0");
int count3 = iSarBussionessStandService.count(qw3);
bussSearch.setExecType(searchCenter.getExecType()); bussSearch.setExecType(searchCenter.getExecType());
bussSearch.setCountStand(count3);
SarBussionessStandEOPage bussPage = new SarBussionessStandEOPage(); SarBussionessStandEOPage bussPage = new SarBussionessStandEOPage();
page.setSyncParam("sync"); page.setSyncParam("sync");
ResponseMessage buss = resetBussStandSearchCenter(bussPage,bussSearch); ResponseMessage buss = resetBussStandSearchCenter(bussPage,bussSearch);
@@ -193,85 +209,161 @@ public class ResetSearchCenterService {
String[] result = searchCenter.getIdList().toArray(new String[0]); String[] result = searchCenter.getIdList().toArray(new String[0]);
page.setIdlist(result); page.setIdlist(result);
} }
QueryWrapper qw = new QueryWrapper();
qw.eq("VALID_FLAG","0");
int count = iSarStandardsInfoService.count(qw);
if(count > 0){
page.setPageSize(count);
page.setMenuId("nomenu");
page.setStandType("ALL");
List<SarStandardsInfo> rowsStand = iSarStandardsInfoService.getSarStandardsInfoPage(page);
List<SarStandardsInfo> insList = new ArrayList<>();
List<SarStandardsInfo> updList = new ArrayList<>();
List<String> delList = new ArrayList<>();
List<String> standIdList = rowsStand.stream().map(SarStandardsInfo::getId).collect(Collectors.toList());
if(!esIdList.isEmpty()){
page.setPageSize(searchCenter.getCountStand()); // 差集 (list1 - list2) 新增
page.setMenuId("nomenu"); List<SarStandardsInfo> distinctByUniqueList = rowsStand.stream()
page.setStandType("ALL"); .filter(item -> !new ArrayList<>(esIdList)
List<SarStandardsInfo> rowsStand = iSarStandardsInfoService.getSarStandardsInfoPage(page); .contains(item.getId()))
List<SarStandardsInfo> insList = new ArrayList<>(); .collect(Collectors.toList());
List<SarStandardsInfo> updList = new ArrayList<>(); if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){
List<String> delList = new ArrayList<>(); List<SarStandardsInfo> collect = distinctByUniqueList.stream()
List<String> standIdList = rowsStand.stream().map(SarStandardsInfo::getId).collect(Collectors.toList()); .filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
if(!esIdList.isEmpty()){ insList.addAll(collect);
}else{
insList.addAll(distinctByUniqueList);
}
// 差集 (list1 - list2) 新增 // 交集 更新
List<SarStandardsInfo> distinctByUniqueList = rowsStand.stream() List<SarStandardsInfo> intersection = rowsStand.stream()
.filter(item -> !new ArrayList<>(esIdList) .filter(item -> new ArrayList<>(esIdList)
.contains(item.getId())) .contains(item.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){ if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){
List<SarStandardsInfo> collect = distinctByUniqueList.stream() List<SarStandardsInfo> collect = intersection.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList()); .filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
insList.addAll(collect); updList.addAll(collect);
}else{ }else{
insList.addAll(distinctByUniqueList); updList.addAll(intersection);
}
// 差集 (list2 - list1) 删除
List<String> delDataList = esIdList.stream().filter(num -> !standIdList.contains(num))
.collect(Collectors.toList());
// 可以更新IDLIST 删除 ES
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && "DEL".equals(searchCenter.getExecType().toUpperCase())){
delList.addAll(searchCenter.getIdList());
}else{
delList.addAll(delDataList);
}
}else {
// 新增
insList.addAll(rowsStand);
} }
// 交集 更新 if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){
List<SarStandardsInfo> intersection = rowsStand.stream() for(SarStandardsInfo sarStandardsInfoEO : updList){
.filter(item -> new ArrayList<>(esIdList) countUpdateSuccess++;
.contains(item.getId())) standFunc(sarStandardsInfoEO);
.collect(Collectors.toList()); createStandMQService.sendStandMQ(sarStandardsInfoEO,"update");
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){ }
List<SarStandardsInfo> collect = intersection.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
updList.addAll(collect);
}else{
updList.addAll(intersection);
} }
// 差集 (list2 - list1) 删除 if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){
List<String> delDataList = esIdList.stream().filter(num -> !standIdList.contains(num)) for(SarStandardsInfo sarStandardsInfoEO : insList){
.collect(Collectors.toList()); countAddSuccess++;
// 可以更新IDLIST 删除 ES standFunc(sarStandardsInfoEO);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && "DEL".equals(searchCenter.getExecType().toUpperCase())){ if (sarStandardsInfoEO.getAttrInfoMap() != null) {
delList.addAll(searchCenter.getIdList()); sarStandardsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarStandardsInfoEO.getAttrInfoMap()));
}else{ }
delList.addAll(delDataList); createStandMQService.sendStandMQ(sarStandardsInfoEO,"add");
}
} }
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()))){
elasticsearchService.deleteBatchId(delList,"stand");
elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置国内外标准:删除-共"+delList.size()+"条数据");
}
logger.info("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据");
return Result.success("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据");
}else { }else {
// 新增 logger.info("未查询到标准数据");
insList.addAll(rowsStand); return Result.error("未查询到标准数据");
} }
if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){ }
for(SarStandardsInfo sarStandardsInfoEO : updList){
countUpdateSuccess++; private void standFunc(SarStandardsInfo sarStandardsInfoEO) throws Exception {
if (sarStandardsInfoEO.getAttrInfoMap() != null) { attrInfoSearchDetails(sarStandardsInfoEO);
sarStandardsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarStandardsInfoEO.getAttrInfoMap())); FindSarItemsPageReqDTO pageInfo = new FindSarItemsPageReqDTO();
pageInfo.setStandId(sarStandardsInfoEO.getId());
pageInfo.setFileType("FBGBJBD");
/**
* SarItemVO换为sarItemVOS
* List<SarItemVO> sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo);
* .collect(Collectors.toMap(SarItemVO::getItemsNum, SarItemVO::getItemsName));
*/
List<SarStandItems> sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo);
if (!sarItemVOS.isEmpty()) {
Map<String, String> collectMap = sarItemVOS.stream().filter((e) -> e.getItemsNum() != null && e.getItemsName() != null)
.collect(Collectors.toMap(SarStandItems::getItemsNum, SarStandItems::getTermsConditions));
sarStandardsInfoEO.setMapItems(collectMap);
}
if (sarStandardsInfoEO.getAttrInfoMap() != null) {
sarStandardsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarStandardsInfoEO.getAttrInfoMap()));
}
}
public void attrInfoSearchDetails(SarStandardsInfo row) throws Exception {
if (row != null) {
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);
}
}
row.setAttrInfoMap(getAttrMap);
}
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 = "";
List<String> valArr = new ArrayList<>();
if (entry.getValue() != null && InitStandAttrUtil.selectionFieldList != null && InitStandAttrUtil.selectionFieldList.size() > 0 && InitStandAttrUtil.selectionFieldList.contains(name)) {
if (StringUtils.isNotBlank(entry.getValue().toString())) {
Object json = new JSONTokener(entry.getValue().toString()).nextValue();
if (json instanceof org.json.JSONArray) {
valArr = com.alibaba.fastjson.JSONObject.parseArray(entry.getValue().toString(), String.class);
} else {
value = entry.getValue().toString();
valArr = Arrays.asList(value.split(","));
}
if (!valArr.isEmpty()) {
value = dicTypeEODao.getDicNamesByCodes(valArr, "");
}
}
entry.setValue(value);
}
} }
createStandMQService.sendStandMQ(sarStandardsInfoEO,"update");
} }
} }
if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarStandardsInfo sarStandardsInfoEO : insList){
countAddSuccess++;
if (sarStandardsInfoEO.getAttrInfoMap() != null) {
sarStandardsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarStandardsInfoEO.getAttrInfoMap()));
}
createStandMQService.sendStandMQ(sarStandardsInfoEO,"add");
}
}
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()))){
elasticsearchService.deleteBatchId(delList,"stand");
elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置国内外标准:删除-共"+delList.size()+"条数据");
}
logger.info("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据");
return Result.success("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据");
} }
@Async @Async
@@ -294,83 +386,183 @@ public class ResetSearchCenterService {
int countUpdateSuccess = 0; int countUpdateSuccess = 0;
int countAddSuccess = 0; int countAddSuccess = 0;
sarLawsInfoEOPage.setPageSize(searchCenter.getCountStand()); QueryWrapper qw2 = new QueryWrapper();
List<SarLawsStandInfo> rowsStand = iSarLawsStandInfoService.getSarStandardsInfoPage(sarLawsInfoEOPage); qw2.eq("VALID_FLAG","0");
List<SarLawsStandInfo> insList = new ArrayList<>(); int count2 = iSarLawsStandInfoService.count(qw2);
List<SarLawsStandInfo> updList = new ArrayList<>(); if(count2 > 0){
List<String> delList = new ArrayList<>(); sarLawsInfoEOPage.setPageSize(count2);
List<String> standIdList = rowsStand.stream().map(SarLawsStandInfo::getId).collect(Collectors.toList()); List<SarLawsStandInfo> rowsStand = iSarLawsStandInfoService.getSarStandardsInfoPage(sarLawsInfoEOPage);
List<SarLawsStandInfo> insList = new ArrayList<>();
List<SarLawsStandInfo> updList = new ArrayList<>();
List<String> delList = new ArrayList<>();
List<String> standIdList = rowsStand.stream().map(SarLawsStandInfo::getId).collect(Collectors.toList());
if(!esIdList.isEmpty()){ if(!esIdList.isEmpty()){
// 差集 (list1 - list2) 新增 // 差集 (list1 - list2) 新增
List<SarLawsStandInfo> distinctByUniqueList = rowsStand.stream() List<SarLawsStandInfo> distinctByUniqueList = rowsStand.stream()
.filter(item -> !new ArrayList<>(esIdList) .filter(item -> !new ArrayList<>(esIdList)
.contains(item.getId())) .contains(item.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){ if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){
List<SarLawsStandInfo> collect = distinctByUniqueList.stream() List<SarLawsStandInfo> collect = distinctByUniqueList.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList()); .filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
insList.addAll(collect); insList.addAll(collect);
}else{ }else{
insList.addAll(distinctByUniqueList); insList.addAll(distinctByUniqueList);
} }
// 交集 更新 // 交集 更新
List<SarLawsStandInfo> intersection = rowsStand.stream() List<SarLawsStandInfo> intersection = rowsStand.stream()
.filter(item -> new ArrayList<>(esIdList) .filter(item -> new ArrayList<>(esIdList)
.contains(item.getId())) .contains(item.getId()))
.collect(Collectors.toList()); .collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){ if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){
List<SarLawsStandInfo> collect = intersection.stream() List<SarLawsStandInfo> collect = intersection.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList()); .filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
updList.addAll(collect); updList.addAll(collect);
}else{ }else{
updList.addAll(intersection); updList.addAll(intersection);
}
// 差集 (list2 - list1) 删除
List<String> delDataList = esIdList.stream().filter(num -> !standIdList.contains(num))
.collect(Collectors.toList());
// 可以更新IDLIST 删除 ES
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && "DEL".equals(searchCenter.getExecType().toUpperCase())){
delList.addAll(searchCenter.getIdList());
}else{
delList.addAll(delDataList);
}
}else {
// 新增
insList.addAll(rowsStand);
} }
// 差集 (list2 - list1) 删除 if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){
List<String> delDataList = esIdList.stream().filter(num -> !standIdList.contains(num)) for(SarLawsStandInfo sarLawsInfoEO : updList){
.collect(Collectors.toList()); countUpdateSuccess++;
// 可以更新IDLIST 删除 ES lawsAttrInfoShowSearchDetails(sarLawsInfoEO);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && "DEL".equals(searchCenter.getExecType().toUpperCase())){ createStandMQService.sendLawsMQ(sarLawsInfoEO,"update");
delList.addAll(searchCenter.getIdList()); }
}else{
delList.addAll(delDataList);
} }
if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarLawsStandInfo sarLawsInfoEO : insList){
countAddSuccess++;
lawsAttrInfoShowSearchDetails(sarLawsInfoEO);
FindSarItemsPageReqDTO pageInfo = new FindSarItemsPageReqDTO();
pageInfo.setStandId(sarLawsInfoEO.getId());
pageInfo.setFileType("FBGBJBD");
/**
* SarItemVO换为sarItemVOS
* List<SarItemVO> sarItemVOS = standItemsDao.querySarItemAndInterpretation(pageInfo);
* .collect(Collectors.toMap(SarItemVO::getItemsNum, SarItemVO::getItemsName));
*/
List<SarLawsItems> sarItemVOS = sarLawsItemsDao.querySarItemAndInterpretation(pageInfo);
if(!sarItemVOS.isEmpty()){
Map<String,String> collectMap = sarItemVOS.stream().filter((e) -> e.getItemsNum() != null && e.getItemsName() != null)
.collect(Collectors.toMap(SarLawsItems::getItemsNum, SarLawsItems::getTermsConditions));
sarLawsInfoEO.setMapItems(collectMap);
}
if (sarLawsInfoEO.getAttrInfoMap() != null) {
sarLawsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarLawsInfoEO.getAttrInfoMap()));
}
if (sarLawsInfoEO.getAttrInfoMap() != null) {
sarLawsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarLawsInfoEO.getAttrInfoMap()));
}
createStandMQService.sendLawsMQ(sarLawsInfoEO,"add");
}
}
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()))){
elasticsearchService.deleteBatchId(delList,"laws");
elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置国内外政策:删除-共"+delList.size()+"条数据");
}
logger.info("重置国内外政策:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外政策共:"+rowsStand.size()+"条)数据");
return Result.success("");
}else { }else {
// 新增 logger.info("未查询到国内外政策数据");
insList.addAll(rowsStand); return Result.error("未查询到国内外政策数据");
} }
if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){ }
for(SarLawsStandInfo sarLawsInfoEO : updList){
countUpdateSuccess++; public void lawsAttrInfoSearchDetails(SarLawsStandInfo row) throws Exception {
if (sarLawsInfoEO.getAttrInfoMap() != null) { String fieldInfo = InitStandAttrUtil.queryFieldLaws;
sarLawsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarLawsInfoEO.getAttrInfoMap())); String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
row.setCollectId(collectId);
// 查询属性表数据
if (org.apache.commons.lang.StringUtils.isNotBlank(fieldInfo)) {
Map<String, Object> getAttrMap = sarLawsAttrInfoDao.selectLawsFieldAndData(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<>();
for (Map.Entry<String, Object> entry : orgMap.entrySet()) {
String newKey = entry.getKey().toLowerCase();
resultMap.put(newKey, orgMap.get(entry.getKey()));
if (entry.getValue() != null && InitStandAttrUtil.fileFieldListLaws != null && !InitStandAttrUtil.fileFieldListLaws.isEmpty() && InitStandAttrUtil.fileFieldListLaws.contains(entry.getKey())) {
String value = entry.getValue().toString();
if (org.apache.commons.lang.StringUtils.isNotBlank(value)) {
List<AttFileEO> fileObj = attFileEOService.getMultiFileInfos(value);
if(!fileObj.isEmpty()){
resultMap.put(newKey + "Name", fileObj.get(0).getOldFileName());
}
} }
createStandMQService.sendLawsMQ(sarLawsInfoEO,"update");
} }
} }
if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){ return resultMap;
for(SarLawsStandInfo sarLawsInfoEO : insList){ }
countAddSuccess++;
if (sarLawsInfoEO.getAttrInfoMap() != null) { public void lawsAttrInfoShowSearchDetails(SarLawsStandInfo row) throws Exception {
sarLawsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarLawsInfoEO.getAttrInfoMap())); if (row != null) {
lawsAttrInfoSearchDetails(row);
Map<String, Object> getAttrMap = row.getAttrInfoCaseMap();
if (getAttrMap != null && getAttrMap.size() > 0) {
for (Map.Entry<String, Object> entry : getAttrMap.entrySet()) {
String name = entry.getKey().toUpperCase();
String value = "";
List<String> valArr = new ArrayList<>();
if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListLaws != null && InitStandAttrUtil.selectionFieldListLaws.size() > 0 && InitStandAttrUtil.selectionFieldListLaws.contains(name)) {
if(org.apache.commons.lang.StringUtils.isNotBlank(entry.getValue().toString())){
Object json= new JSONTokener(entry.getValue().toString()).nextValue();
if(json instanceof org.json.JSONArray){
valArr = com.alibaba.fastjson.JSONObject.parseArray(entry.getValue().toString(),String.class);
}else {
value = entry.getValue().toString();
valArr = Arrays.asList(value.split(","));
}
if(!valArr.isEmpty()){
value = dicTypeEODao.getDicNamesByCodes(valArr,"");
}
}
entry.setValue(value);
}
} }
createStandMQService.sendLawsMQ(sarLawsInfoEO,"add");
} }
} }
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()))){
elasticsearchService.deleteBatchId(delList,"laws");
elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置国内外政策:删除-共"+delList.size()+"条数据");
}
logger.info("重置国内外政策:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外政策共:"+rowsStand.size()+"条)数据");
return Result.success("");
} }
private void idListFunc(SarLawsStandInfoPage sarLawsInfoEOPage, SearchCenter searchCenter) { private void idListFunc(SarLawsStandInfoPage sarLawsInfoEOPage, SearchCenter searchCenter) {
@@ -404,83 +596,145 @@ public class ResetSearchCenterService {
int countUpdateSuccess = 0; int countUpdateSuccess = 0;
int countAddSuccess = 0; int countAddSuccess = 0;
sarBussionessStandEOPage.setMenuId("0"); sarBussionessStandEOPage.setMenuId("0");
sarBussionessStandEOPage.setPageSize(searchCenter.getCountStand());
List<SarBussionessStand> rowsStand = iSarBussionessStandService.getSarBussionStandPage(sarBussionessStandEOPage); QueryWrapper qw3 = new QueryWrapper();
List<SarBussionessStand> insList = new ArrayList<>(); qw3.eq("VALID_FLAG","0");
List<SarBussionessStand> updList = new ArrayList<>(); int count3 = iSarBussionessStandService.count(qw3);
List<String> delList = new ArrayList<>();
List<String> standIdList = rowsStand.stream().map(SarBussionessStand::getId).collect(Collectors.toList());
if(!esIdList.isEmpty()){ if(count3 > 0){
sarBussionessStandEOPage.setPageSize(count3);
// 差集 (list1 - list2) 新增 List<SarBussionessStand> rowsStand = iSarBussionessStandService.getSarBussionStandPage(sarBussionessStandEOPage);
List<SarBussionessStand> distinctByUniqueList = rowsStand.stream() List<SarBussionessStand> insList = new ArrayList<>();
.filter(item -> !new ArrayList<>(esIdList) List<SarBussionessStand> updList = new ArrayList<>();
.contains(item.getId())) List<String> delList = new ArrayList<>();
.collect(Collectors.toList()); List<String> standIdList = rowsStand.stream().map(SarBussionessStand::getId).collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){
List<SarBussionessStand> collect = distinctByUniqueList.stream() if(!esIdList.isEmpty()){
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
insList.addAll(collect); // 差集 (list1 - list2) 新增
}else{ List<SarBussionessStand> distinctByUniqueList = rowsStand.stream()
insList.addAll(distinctByUniqueList); .filter(item -> !new ArrayList<>(esIdList)
.contains(item.getId()))
.collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){
List<SarBussionessStand> collect = distinctByUniqueList.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
insList.addAll(collect);
}else{
insList.addAll(distinctByUniqueList);
}
// 交集 更新
List<SarBussionessStand> intersection = rowsStand.stream()
.filter(item -> new ArrayList<>(esIdList)
.contains(item.getId()))
.collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){
List<SarBussionessStand> collect = intersection.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
updList.addAll(collect);
}else{
updList.addAll(intersection);
}
// 差集 (list2 - list1) 删除
List<String> delDataList = esIdList.stream().filter(num -> !standIdList.contains(num))
.collect(Collectors.toList());
// 可以更新IDLIST 删除 ES
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && "DEL".equals(searchCenter.getExecType().toUpperCase())){
delList.addAll(searchCenter.getIdList());
}else{
delList.addAll(delDataList);
}
}else {
// 新增
insList.addAll(rowsStand);
} }
// 交集 更新 if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){
List<SarBussionessStand> intersection = rowsStand.stream() for(SarBussionessStand sarBussionessStandEO : updList){
.filter(item -> new ArrayList<>(esIdList) countUpdateSuccess++;
.contains(item.getId())) bussAttrInfoShowSearchDetails(sarBussionessStandEO);
.collect(Collectors.toList()); if (sarBussionessStandEO.getAttrInfoMap() != null) {
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){ sarBussionessStandEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarBussionessStandEO.getAttrInfoMap()));
List<SarBussionessStand> collect = intersection.stream() }
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList()); createStandMQService.sendBussStandMQ(sarBussionessStandEO,"update");
updList.addAll(collect); }
}else{
updList.addAll(intersection);
} }
// 差集 (list2 - list1) 删除 if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){
List<String> delDataList = esIdList.stream().filter(num -> !standIdList.contains(num)) for(SarBussionessStand sarBussionessStandEO : insList){
.collect(Collectors.toList()); countAddSuccess++;
// 可以更新IDLIST 删除 ES bussAttrInfoShowSearchDetails(sarBussionessStandEO);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && "DEL".equals(searchCenter.getExecType().toUpperCase())){ if (sarBussionessStandEO.getAttrInfoMap() != null) {
delList.addAll(searchCenter.getIdList()); sarBussionessStandEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarBussionessStandEO.getAttrInfoMap()));
}else{ }
delList.addAll(delDataList); createStandMQService.sendBussStandMQ(sarBussionessStandEO,"add");
}
} }
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()))){
elasticsearchService.deleteBatchId(delList,"bussstand");
elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置企标:删除-共"+delList.size()+"条数据");
}
logger.info("重置企标:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(企标共:"+rowsStand.size()+"条)数据");
return Result.success("");
}else { }else {
// 新增 logger.info("未查询到企标数据");
insList.addAll(rowsStand); return Result.error("未查询到企标数据");
} }
if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){ }
for(SarBussionessStand sarBussionessStandEO : updList){
countUpdateSuccess++; public void bussAttrInfoShowSearchDetails(SarBussionessStand row) throws Exception {
if (sarBussionessStandEO.getAttrInfoMap() != null) { if (row != null) {
sarBussionessStandEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarBussionessStandEO.getAttrInfoMap())); bussAttrInfoSearchDetails(row);
Map<String, Object> getAttrMap = row.getAttrInfoCaseMap();
if (getAttrMap != null && getAttrMap.size() > 0) {
for (Map.Entry<String, Object> entry : getAttrMap.entrySet()) {
String name = entry.getKey().toUpperCase();
String value = "";
List<String> valArr = new ArrayList<>();
if (entry.getValue() != null && InitStandAttrUtil.selectionFieldListBuss != null && InitStandAttrUtil.selectionFieldListBuss.size() > 0 && InitStandAttrUtil.selectionFieldListBuss.contains(name)) {
if(org.apache.commons.lang.StringUtils.isNotBlank(entry.getValue().toString())){
Object json= new JSONTokener(entry.getValue().toString()).nextValue();
if(json instanceof org.json.JSONArray){
valArr = com.alibaba.fastjson.JSONObject.parseArray(entry.getValue().toString(),String.class);
}else {
value = entry.getValue().toString();
valArr = Arrays.asList(value.split(","));
}
if(!valArr.isEmpty()){
value = dicTypeEODao.getDicNamesByCodes(valArr,"");
}
}
entry.setValue(value);
}
} }
createStandMQService.sendBussStandMQ(sarBussionessStandEO,"update");
} }
} }
}
if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){ public void bussAttrInfoSearchDetails(SarBussionessStand row) throws Exception {
for(SarBussionessStand sarBussionessStandEO : insList){ String fieldInfo = InitStandAttrUtil.queryFieldBuss;
countAddSuccess++; String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
if (sarBussionessStandEO.getAttrInfoMap() != null) { row.setCollectId(collectId);
sarBussionessStandEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarBussionessStandEO.getAttrInfoMap())); // 查询属性表数据
if (org.apache.commons.lang.StringUtils.isNotBlank(fieldInfo)) {
Map<String, Object> getAttrMap = sarBussStandAttrInfoEODao.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);
} }
createStandMQService.sendBussStandMQ(sarBussionessStandEO,"add");
} }
}
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()))){ row.setAttrInfoMap(getAttrMap);
elasticsearchService.deleteBatchId(delList,"bussstand");
elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置企标:删除-共"+delList.size()+"条数据");
} }
logger.info("重置企标:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(企标共:"+rowsStand.size()+"条)数据");
return Result.success("");
} }
/** /**
@@ -1404,7 +1404,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
} }
public void attrInfoSearchDetails(SarBussionessStand row,String type) throws Exception { public void attrInfoSearchDetails(SarBussionessStand row,String type) throws Exception {
String fieldInfo = InitStandAttrUtil.queryField; String fieldInfo = InitStandAttrUtil.queryFieldBuss;
String collectId = personCollectEOService.queryCollectByUserAndId(row.getId()); String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
row.setCollectId(collectId); row.setCollectId(collectId);
// 查询属性表数据 // 查询属性表数据
@@ -1414,7 +1414,7 @@ public class SarBussionessStandServiceImpl extends ServiceImpl<SarBussionessStan
String sarStandAttrEOStr = row.getSarStandAttrEOStr(); String sarStandAttrEOStr = row.getSarStandAttrEOStr();
getAttrMap = JSONObject.fromObject(sarStandAttrEOStr); getAttrMap = JSONObject.fromObject(sarStandAttrEOStr);
}else { }else {
getAttrMap = sarStandAttrInfoEODao.selectStandFieldAndData(fieldInfo, row.getId()); getAttrMap = sarBussStandAttrInfoEODao.selectStandFieldAndData(fieldInfo, row.getId());
} }
if (InitStandAttrUtil.clobFieldList != null && !InitStandAttrUtil.clobFieldList.isEmpty()) { if (InitStandAttrUtil.clobFieldList != null && !InitStandAttrUtil.clobFieldList.isEmpty()) {
// 遍历修改所有clob类型的值 // 遍历修改所有clob类型的值
@@ -98,6 +98,7 @@ import org.apache.pdfbox.util.PDFTextStripper;
import org.apache.pdfbox.util.PDFTextStripperByArea; import org.apache.pdfbox.util.PDFTextStripperByArea;
import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.FileMagic;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.json.JSONTokener; import org.json.JSONTokener;
@@ -2973,9 +2974,16 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
if (null != attFileEO.getFileSuffix() && (attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("doc") || attFileEO.getFileSuffix().equals("DOC") || attFileEO.getFileSuffix().equals("DOCX") || attFileEO.getFileSuffix().equals("ppt") || attFileEO.getFileSuffix().equals("pptx"))) { if (null != attFileEO.getFileSuffix() && (attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("doc") || attFileEO.getFileSuffix().equals("DOC") || attFileEO.getFileSuffix().equals("DOCX") || attFileEO.getFileSuffix().equals("ppt") || attFileEO.getFileSuffix().equals("pptx"))) {
if (attFileEO.getFileSuffix().equals("doc") || attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("DOC") || attFileEO.getFileSuffix().equals("DOCX")) { if (attFileEO.getFileSuffix().equals("doc") || attFileEO.getFileSuffix().equals("docx") || attFileEO.getFileSuffix().equals("DOC") || attFileEO.getFileSuffix().equals("DOCX")) {
FileInputStream fis = new FileInputStream(readFilePath); FileInputStream fis = new FileInputStream(readFilePath);
WordExtractor wordExtractor = new WordExtractor(fis); if (FileMagic.valueOf(fis) == FileMagic.OOXML) {
String txt = wordExtractor.getText(); XWPFDocument doc = new XWPFDocument(fis);
content.append(txt); XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
String txt = extractor.getText();
content.append(txt);
}else {
WordExtractor wordExtractor = new WordExtractor(fis);
String txt = wordExtractor.getText();
content.append(txt);
}
} else { } else {
OPCPackage opcPackage = XWPFDocument.openPackage(readFilePath); OPCPackage opcPackage = XWPFDocument.openPackage(readFilePath);
XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage); XWPFWordExtractor extractor = new XWPFWordExtractor(opcPackage);