查询接口

This commit is contained in:
zhangjun
2022-09-21 00:50:32 +08:00
parent 0f3e60feb8
commit 13c8fb50b0
2 changed files with 486 additions and 0 deletions
@@ -71,6 +71,16 @@ public class ResetSearchCenterController extends BaseController<Map<String, Obje
return resetSearchCenterService.syncResetALLSearchCenter(searchCenter);
}
@ApiOperation(value = "|SearchCenter|手动重新创建 ALL标准数据索引(凌晨有自动程序会跑)")
@PostMapping(value="/manualResetALLSearchCenter1")
public ResponseMessage manualResetALLSearchCenter1(@RequestBody SearchCenter searchCenter) throws Exception{
ResponseMessage x = verifySearchCenter(searchCenter);
if (x != null){
return x;
}
return resetSearchCenterService.syncResetALLSearchCenter1(searchCenter);
}
private ResponseMessage verifySearchCenter(SearchCenter searchCenter) {
if(searchCenter.getExecType() == null || "".equals(searchCenter.getExecType())){
return Result.error("执行参数 ALL 存在更新 不存在新增 ,UPD 只 更新存在 es 里的标准 ,ADD 只新增不存在 es 的标准, DEL 只删除不存在标准库的数据");
@@ -297,6 +297,44 @@ public class ResetSearchCenterService {
return Result.success(res);
}
@Async
public ResponseMessage syncResetALLSearchCenter1(SearchCenter searchCenter) throws Exception{
Boolean getFulltextserchIndex = elasticsearchService.isIndexExist("fulltextserch");
SearchCenter standSearch = new SearchCenter();
standSearch.setExecType(searchCenter.getExecType());
SarStandardsInfoEOPage page = new SarStandardsInfoEOPage();
page.setSyncParam("sync");
ResponseMessage stand = resetStandSearchCenterId(page,standSearch);
List<String> r = new ArrayList<>();
if(stand.isOk() && StringUtils.isNotBlank(stand.getData().toString())){
r.add(stand.getData().toString());
}
SearchCenter lawsSearch = new SearchCenter();
lawsSearch.setExecType(searchCenter.getExecType());
SarLawsStandInfoPage lawsPage = new SarLawsStandInfoPage();
lawsPage.setSyncParam("sync");
ResponseMessage laws = resetLawsSearchCenterId(lawsPage,lawsSearch);
if(laws.isOk() && StringUtils.isNotBlank(laws.getData().toString())){
r.add(laws.getData().toString());
}
SearchCenter bussSearch = new SearchCenter();
bussSearch.setExecType(searchCenter.getExecType());
SarBussionessStandEOPage bussPage = new SarBussionessStandEOPage();
bussPage.setSyncParam("sync");
ResponseMessage buss = resetBussStandSearchCenterId(bussPage,bussSearch);
if(buss.isOk() && StringUtils.isNotBlank(buss.getData().toString())){
r.add(buss.getData().toString());
}
String res = String.join(", ", r);
logger.info(res);
return Result.success(res);
}
//重建国内外标准
@Async
public ResponseMessage resetStandSearchCenterToFields(List<String> esIdList,Map<String,Integer> dicMap) throws Exception {
@@ -584,6 +622,139 @@ public class ResetSearchCenterService {
}
//重建国内外标准
@Async
public ResponseMessage resetStandSearchCenterId(SarStandardsInfoEOPage page,SearchCenter searchCenter) throws Exception{
int countUpdateSuccess = 0;
int countAddSuccess = 0;
Boolean getStandIndex = elasticsearchService.isIndexExist("stand");
if(!getStandIndex){
logger.info("ES 不存在索引:stand");
return Result.error("ES 不存在索引:stand");
}
String search = getSearch(searchCenter);
List<Map<String, Object>> searchListData = elasticsearchService.searchAll("stand",search);
List<String> esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList());
page.setValidFlag("0");
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){
String[] result = searchCenter.getIdList().toArray(new String[0]);
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> insIdList = new ArrayList<>();
List<String> updIdList = new ArrayList<>();
List<String> delList = new ArrayList<>();
List<String> standIdList = rowsStand.stream().map(SarStandardsInfo::getId).collect(Collectors.toList());
if(!esIdList.isEmpty()){
// 差集 (list1 - list2) 新增
List<SarStandardsInfo> distinctByUniqueList = rowsStand.stream()
.filter(item -> !new ArrayList<>(esIdList)
.contains(item.getId()))
.collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){
List<SarStandardsInfo> collect = distinctByUniqueList.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
insList.addAll(collect);
for (SarStandardsInfo sarStandardsInfo : collect) {
insIdList.add(sarStandardsInfo.getId());
}
}else{
insList.addAll(distinctByUniqueList);
for (SarStandardsInfo sarStandardsInfo : distinctByUniqueList) {
insIdList.add(sarStandardsInfo.getId());
}
}
// 交集 更新
List<SarStandardsInfo> intersection = rowsStand.stream()
.filter(item -> new ArrayList<>(esIdList)
.contains(item.getId()))
.collect(Collectors.toList());
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);
for (SarStandardsInfo sarStandardsInfo : collect) {
updIdList.add(sarStandardsInfo.getId());
}
}else{
updList.addAll(intersection);
for (SarStandardsInfo sarStandardsInfo : intersection) {
updIdList.add(sarStandardsInfo.getId());
}
}
// 差集 (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);
for (SarStandardsInfo sarStandardsInfo : rowsStand) {
insIdList.add(sarStandardsInfo.getId());
}
}
if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarStandardsInfo sarStandardsInfoEO : updList){
countUpdateSuccess++;
standFunc(sarStandardsInfoEO);
// createStandMQService.sendStandMQ(sarStandardsInfoEO,"update");
}
}
if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarStandardsInfo sarStandardsInfoEO : insList){
countAddSuccess++;
standFunc(sarStandardsInfoEO);
if (sarStandardsInfoEO.getAttrInfoMap() != null) {
sarStandardsInfoEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarStandardsInfoEO.getAttrInfoMap()));
}
// createStandMQService.sendStandMQ(sarStandardsInfoEO,"add");
}
}
String a = "";
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()) && !"sync".equals(page.getSyncParam()))){
// elasticsearchService.deleteBatchId(delList,"stand");
// elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置国内外标准:删除-共"+delList.size()+"条数据");
a = "国内外政策:应删除-共"+delList.size()+"条数据:"+ String.join(",",delList);
}
String b = "国内外政策:新增-"+ String.join(",",insIdList);
String c = "国内外政策:修改-"+ String.join(",",updIdList);
logger.info("重置国内外标准:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外标准共:"+0+"条)删除-共"+delList.size()+"条数据");
return Result.success(a+b+c);
}else {
logger.info("未查询到标准数据");
return Result.error("未查询到标准数据");
}
}
private String getSearch(SearchCenter searchCenter) {
String search = "";
if(StringUtils.isNotBlank(searchCenter.getSearch())) {
@@ -980,6 +1151,173 @@ public class ResetSearchCenterService {
}
@Async
public ResponseMessage resetLawsSearchCenterId(SarLawsStandInfoPage sarLawsInfoEOPage,SearchCenter searchCenter) throws Exception{
Boolean getLawsIndex = elasticsearchService.isIndexExist("laws");
if(!getLawsIndex){
logger.info("ES 不存在索引:laws");
return Result.error("ES 不存在索引:laws");
}
String search = getSearch(searchCenter);
List<Map<String, Object>> searchListData = elasticsearchService.searchAll("laws",search);
List<String> esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList());
sarLawsInfoEOPage.setLawsType("FOREIGN");
// page idlist 赋值
idListFunc(sarLawsInfoEOPage, searchCenter);
int countUpdateSuccess = 0;
int countAddSuccess = 0;
QueryWrapper qw2 = new QueryWrapper();
qw2.eq("VALID_FLAG","0");
int count2 = iSarLawsStandInfoService.count(qw2);
if(count2 > 0){
sarLawsInfoEOPage.setPageSize(count2);
List<SarLawsStandInfo> rowsStand = iSarLawsStandInfoService.getSarStandardsInfoPage(sarLawsInfoEOPage);
List<SarLawsStandInfo> insList = new ArrayList<>();
List<SarLawsStandInfo> updList = new ArrayList<>();
List<String> insIdList = new ArrayList<>();
List<String> updIdList = new ArrayList<>();
List<String> delList = new ArrayList<>();
List<String> standIdList = rowsStand.stream().map(SarLawsStandInfo::getId).collect(Collectors.toList());
if(!esIdList.isEmpty()){
// 差集 (list1 - list2) 新增
List<SarLawsStandInfo> distinctByUniqueList = rowsStand.stream()
.filter(item -> !new ArrayList<>(esIdList)
.contains(item.getId()))
.collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !distinctByUniqueList.isEmpty()){
List<SarLawsStandInfo> collect = distinctByUniqueList.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
insList.addAll(collect);
for (SarLawsStandInfo sarLawsStandInfo : insList) {
insIdList.add(sarLawsStandInfo.getId());
}
}else{
insList.addAll(distinctByUniqueList);
for (SarLawsStandInfo sarLawsStandInfo : distinctByUniqueList) {
insIdList.add(sarLawsStandInfo.getId());
}
}
// 交集 更新
List<SarLawsStandInfo> intersection = rowsStand.stream()
.filter(item -> new ArrayList<>(esIdList)
.contains(item.getId()))
.collect(Collectors.toList());
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty() && !intersection.isEmpty()){
List<SarLawsStandInfo> collect = intersection.stream()
.filter(item -> searchCenter.getIdList().contains(item.getId())).collect(Collectors.toList());
updList.addAll(collect);
for (SarLawsStandInfo sarLawsStandInfo : collect) {
updIdList.add(sarLawsStandInfo.getId());
}
}else{
updList.addAll(intersection);
for (SarLawsStandInfo sarLawsStandInfo : intersection) {
updIdList.add(sarLawsStandInfo.getId());
}
}
// 差集 (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);
for (SarLawsStandInfo sarLawsStandInfo : rowsStand) {
insIdList.add(sarLawsStandInfo.getId());
}
}
if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarLawsStandInfo sarLawsInfoEO : updList){
countUpdateSuccess++;
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()));
}
// createStandMQService.sendLawsMQ(sarLawsInfoEO,"update");
}
}
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");
}
}
String rett = "";
String a = "";
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()) && !"sync".equals(sarLawsInfoEOPage.getSyncParam()))){
// elasticsearchService.deleteBatchId(delList,"laws");
// elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("国内外政策:应删除-共"+delList.size()+"条数据:"+ String.join(",",delList));
a = "国内外政策:应删除-共"+delList.size()+"条数据:"+ String.join(",",delList);
}
String b = "国内外政策:新增-"+ String.join(",",insIdList);
String c = "国内外政策:修改-"+ String.join(",",updIdList);
logger.info("重置国内外政策:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(国内外政策共:"+rowsStand.size()+"条)数据");
return Result.success(a+b+c);
}else {
logger.info("未查询到国内外政策数据");
return Result.error("未查询到国内外政策数据");
}
}
public void lawsAttrInfoSearchDetails(SarLawsStandInfo row) throws Exception {
String fieldInfo = InitStandAttrUtil.queryFieldLaws;
String collectId = personCollectEOService.queryCollectByUserAndId(row.getId());
@@ -1359,6 +1697,144 @@ public class ResetSearchCenterService {
}
@Async
public ResponseMessage resetBussStandSearchCenterId(SarBussionessStandEOPage sarBussionessStandEOPage,SearchCenter searchCenter) throws Exception{
Boolean getbussstandIndex = elasticsearchService.isIndexExist("bussstand");
if(!getbussstandIndex){
logger.info("ES 不存在索引:bussstand");
return Result.error("ES 不存在索引:bussstand");
}
String search = getSearch(searchCenter);
List<Map<String, Object>> searchListData = elasticsearchService.searchAll("bussstand",search);
List<String> esIdList = searchListData.stream().map(stringObjectMap -> stringObjectMap.get("id").toString()).collect(Collectors.toList());
sarBussionessStandEOPage.setValidFlag("0");
sarBussionessStandEOPage.setOrderBy("SAR_BUSSIONESS_STAND.issue_time is null,SAR_BUSSIONESS_STAND.issue_time desc,SAR_BUSSIONESS_STAND.id");
sarBussionessStandEOPage.setMenuRoleList(null);
if(searchCenter.getIdList() != null && !searchCenter.getIdList().isEmpty()){
String[] result = searchCenter.getIdList().toArray(new String[0]);
sarBussionessStandEOPage.setIdlist(result);
}
int countUpdateSuccess = 0;
int countAddSuccess = 0;
sarBussionessStandEOPage.setMenuId("0");
QueryWrapper qw3 = new QueryWrapper();
qw3.eq("VALID_FLAG","0");
int count3 = iSarBussionessStandService.count(qw3);
if(count3 > 0){
sarBussionessStandEOPage.setPageSize(count3);
List<SarBussionessStand> rowsStand = iSarBussionessStandService.getSarBussionStandPage(sarBussionessStandEOPage);
List<SarBussionessStand> insList = new ArrayList<>();
List<SarBussionessStand> updList = new ArrayList<>();
List<String> insIdList = new ArrayList<>();
List<String> updIdList = new ArrayList<>();
List<String> delList = new ArrayList<>();
List<String> standIdList = rowsStand.stream().map(SarBussionessStand::getId).collect(Collectors.toList());
if(!esIdList.isEmpty()){
// 差集 (list1 - list2) 新增
List<SarBussionessStand> distinctByUniqueList = rowsStand.stream()
.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);
for (SarBussionessStand sarBussionessStand : collect) {
insIdList.add(sarBussionessStand.getId());
}
}else{
insList.addAll(distinctByUniqueList);
for (SarBussionessStand sarBussionessStand : distinctByUniqueList) {
insIdList.add(sarBussionessStand.getId());
}
}
// 交集 更新
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);
for (SarBussionessStand sarBussionessStand : collect) {
updIdList.add(sarBussionessStand.getId());
}
}else{
updList.addAll(intersection);
for (SarBussionessStand sarBussionessStand : intersection) {
updIdList.add(sarBussionessStand.getId());
}
}
// 差集 (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);
for (SarBussionessStand sarBussionessStand : rowsStand) {
insIdList.add(sarBussionessStand.getId());
}
}
if(!updList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "UPD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarBussionessStand sarBussionessStandEO : updList){
countUpdateSuccess++;
bussAttrInfoShowSearchDetails(sarBussionessStandEO);
if (sarBussionessStandEO.getAttrInfoMap() != null) {
sarBussionessStandEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarBussionessStandEO.getAttrInfoMap()));
}
// createStandMQService.sendBussStandMQ(sarBussionessStandEO,"update");
}
}
if(!insList.isEmpty() && ("ALL".equals(searchCenter.getExecType().toUpperCase()) || "ADD".equals(searchCenter.getExecType().toUpperCase()))){
for(SarBussionessStand sarBussionessStandEO : insList){
countAddSuccess++;
bussAttrInfoShowSearchDetails(sarBussionessStandEO);
if (sarBussionessStandEO.getAttrInfoMap() != null) {
sarBussionessStandEO.setSarStandAttrEOStr(JSONObject.toJSONString(sarBussionessStandEO.getAttrInfoMap()));
}
// createStandMQService.sendBussStandMQ(sarBussionessStandEO,"add");
}
}
String a = "";
if(!delList.isEmpty() && ("DEL".equals(searchCenter.getExecType().toUpperCase()) && !"sync".equals(sarBussionessStandEOPage.getSyncParam()))){
// elasticsearchService.deleteBatchId(delList,"bussstand");
// elasticsearchService.deleteBatchId(delList,"fulltextserch");
logger.info("重置企标:删除-共"+delList.size()+"条数据");
a = "国内外政策:应删除-共"+delList.size()+"条数据:"+ String.join(",",delList);
}
String b = "国内外政策:新增-"+ String.join(",",insIdList);
String c = "国内外政策:修改-"+ String.join(",",updIdList);
logger.info("重置企标:新增-"+ countAddSuccess + "条 更新-"+countUpdateSuccess+"条(企标共:"+rowsStand.size()+"条)数据");
return Result.success(a+b+c);
}else {
logger.info("未查询到企标数据");
return Result.error("未查询到企标数据");
}
}
public void bussAttrInfoShowSearchDetails(SarBussionessStand row) throws Exception {
if (row != null) {
bussAttrInfoSearchDetails(row);