From fe4c47936cebc944881999bc07ff1c93cd9b22c7 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Sat, 31 Aug 2024 18:41:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=A8=E6=96=87=E6=A3=80=E7=B4=A2file?= =?UTF-8?q?Id=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/LawsHomeSearchServiceImpl.java | 790 +++++++++--------- 1 file changed, 417 insertions(+), 373 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java index e352afbc..acec6174 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/service/impl/LawsHomeSearchServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.base.CaseFormat; import com.jero.common.api.CommonAPI; import com.jero.common.api.vo.ResultCommon; +import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.es.JeroElasticsearchTemplate; import com.jero.common.exception.JeroBootException; import com.jero.common.system.api.ISysBaseAPI; @@ -118,48 +119,46 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { public static final String STANDARD_PROPERTY = "standard_property"; public static final String CONTENT = "content"; public static final String SYNC_ES_ERR = "同步ES数据异常:"; - public static final String YYYY_MM_DD = "yyyy-MM-dd"; - public static final String IMPLEMENTATION_DATE = "implementation_date"; + public static final String YYYY_MM_DD = "yyyy-MM-dd"; + public static final String IMPLEMENTATION_DATE = "implementation_date"; - public static final String SPAN_CLASS = ""; - public static final String SPAN = ""; + public static final String SPAN_CLASS = ""; + public static final String SPAN = ""; - public static final String BLANK_SPACE = "\\s+"; + public static final String BLANK_SPACE = "\\s+"; - public static final String FILE_TYPE = "pdf,PDF,doc,DOC,docx,DOCX"; - public static final String RELEASE_STATUS = "release_status"; + public static final String FILE_TYPE = "pdf,PDF,doc,DOC,docx,DOCX"; + public static final String RELEASE_STATUS = "release_status"; - public static final String QUERY = "query"; - - public static final String MATCH = "match"; - - public static final String KEYWORD = ".keyword"; + public static final String QUERY = "query"; + public static final String MATCH = "match"; + public static final String KEYWORD = ".keyword"; @Override @Transactional(rollbackFor = JeroBootException.class) public IPage getNormalSearchTitlePage(LawsHomeNormalSearchDTO lawsHomeNormalSearchDTO, - Integer pageNo,Integer pageSize) { + Integer pageNo, Integer pageSize) { String searchContent = lawsHomeNormalSearchDTO.getSearchContent(); if (StringUtils.isBlank(searchContent)) { return new Page<>(pageNo, pageSize); } - if(StringUtils.isBlank(lawsHomeNormalSearchDTO.getStandardStateSet())){ + if (StringUtils.isBlank(lawsHomeNormalSearchDTO.getStandardStateSet())) { // 默认不包含 废止状态 lawsHomeNormalSearchDTO.setStandardStateSet("1"); } // 添加检索历史 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LawsHomeNormalSearchHistory lawsHomeNormalSearchHistory = new LawsHomeNormalSearchHistory(); - BeanUtils.copyProperties(lawsHomeNormalSearchDTO,lawsHomeNormalSearchHistory); + BeanUtils.copyProperties(lawsHomeNormalSearchDTO, lawsHomeNormalSearchHistory); lawsHomeNormalSearchHistory.setUserId(loginUser.getId()); lawsHomeNormalSearchHistoryService.save(lawsHomeNormalSearchHistory); QueryWrapper queryWrapper = getQueryWrapperNormal(lawsHomeNormalSearchDTO); Page page = new Page<>(pageNo, pageSize); - IPage pageList = lawsHomeSearchMapper.getPage(page,queryWrapper,loginUser.getId(),lawsHomeNormalSearchDTO.getStandardStateSet()); + IPage pageList = lawsHomeSearchMapper.getPage(page, queryWrapper, loginUser.getId(), lawsHomeNormalSearchDTO.getStandardStateSet()); addContent(searchContent, pageList); return pageList; } @@ -174,10 +173,10 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { for (int i = 0; i < searchContent.length; i++) { regexp.append(searchContent[i]); StringBuilder ss = new StringBuilder(); - if(isNumericAndAlphabetic(searchContent[i])){ + if (isNumericAndAlphabetic(searchContent[i])) { // 英文 数字 replaceLength(searchContent, i, ss, " "); - }else{ + } else { // 中文 replaceLength(searchContent, i, ss, " "); ss.append(" "); @@ -185,7 +184,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { String str = ss.toString(); select.append(" LENGTH(standard_name) - LENGTH(REPLACE(standard_name, '").append(searchContent[i]) .append("',").append(" '").append(str).append("')) "); - if(i != searchContent.length - 1){ + if (i != searchContent.length - 1) { regexp.append("|"); select.append("+"); } @@ -197,25 +196,25 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { "dynamic_type,applicable_vehicle,standard_property," + "standard_state,standard_code,grade_classification,implementation_date, " + select); - queryWrapper.and(s->s.apply("standard_name REGEXP '" + regexp.toString() + "'")); - queryWrapper.eq(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getResourceType()),RESOURCE_TYPE,lawsHomeNormalSearchDTO.getResourceType()); + queryWrapper.and(s -> s.apply("standard_name REGEXP '" + regexp.toString() + "'")); + queryWrapper.eq(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getResourceType()), RESOURCE_TYPE, lawsHomeNormalSearchDTO.getResourceType()); String str = "',','))"; - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardClass()),"instr(concat(',',standard_class,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardClass() + str,0); - if(Objects.equals("暂未分类",lawsHomeNormalSearchDTO.getDynamicType())){ - queryWrapper.and(o->o.isNull("dynamic_type").or().eq("dynamic_type","")); - }else{ - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getDynamicType()),"instr(concat(',',dynamic_type,','),concat(',','" + lawsHomeNormalSearchDTO.getDynamicType() + str,0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardClass()), "instr(concat(',',standard_class,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardClass() + str, 0); + if (Objects.equals("暂未分类", lawsHomeNormalSearchDTO.getDynamicType())) { + queryWrapper.and(o -> o.isNull("dynamic_type").or().eq("dynamic_type", "")); + } else { + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getDynamicType()), "instr(concat(',',dynamic_type,','),concat(',','" + lawsHomeNormalSearchDTO.getDynamicType() + str, 0); } - if(Objects.equals("暂未分类",lawsHomeNormalSearchDTO.getApplicableVehicle())){ - queryWrapper.and(o->o.isNull("applicable_vehicle").or().eq("applicable_vehicle","")); - }else{ - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getApplicableVehicle()),"instr(concat(',',applicable_vehicle,','),concat(',','" + lawsHomeNormalSearchDTO.getApplicableVehicle() + str,0); + if (Objects.equals("暂未分类", lawsHomeNormalSearchDTO.getApplicableVehicle())) { + queryWrapper.and(o -> o.isNull("applicable_vehicle").or().eq("applicable_vehicle", "")); + } else { + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getApplicableVehicle()), "instr(concat(',',applicable_vehicle,','),concat(',','" + lawsHomeNormalSearchDTO.getApplicableVehicle() + str, 0); } - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardProperty()),"instr(concat(',',standard_property,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardProperty() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardState()),"instr(concat(',',standard_state,','), concat(',','" + lawsHomeNormalSearchDTO.getStandardState() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardCode()),"instr(concat(',',standard_code,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardCode() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getEnterpriseStandardState()),"instr(concat(',',standard_state,','), concat(',','" + lawsHomeNormalSearchDTO.getEnterpriseStandardState() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getGradeClassification()),"instr(concat(',',grade_classification,','),concat(',','" + lawsHomeNormalSearchDTO.getGradeClassification() + str,0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardProperty()), "instr(concat(',',standard_property,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardProperty() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardState()), "instr(concat(',',standard_state,','), concat(',','" + lawsHomeNormalSearchDTO.getStandardState() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardCode()), "instr(concat(',',standard_code,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardCode() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getEnterpriseStandardState()), "instr(concat(',',standard_state,','), concat(',','" + lawsHomeNormalSearchDTO.getEnterpriseStandardState() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getGradeClassification()), "instr(concat(',',grade_classification,','),concat(',','" + lawsHomeNormalSearchDTO.getGradeClassification() + str, 0); queryWrapper.orderByDesc("sort_index"); queryWrapper.orderByAsc("standard_type_order"); @@ -238,6 +237,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { /** * 判断字符串是否全部由数字和英文字符组成 + * * @param str 输入的字符串 * @return 如果字符串只包含数字和英文字符,则返回true,否则返回false */ @@ -248,7 +248,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } private void addContent(String searchContent, IPage pageList) { - if(CollectionUtils.isEmpty(pageList.getRecords())) { + if (CollectionUtils.isEmpty(pageList.getRecords())) { return; } List list = pageList.getRecords(); @@ -257,11 +257,19 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { List lawsEnterpriseStandardIds = new ArrayList<>(); List lawsNewsFeedIds = new ArrayList<>(); for (LawsHomeNormalSearchVO obj : list) { - switch (obj.getResourceType()){ - case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: lawsDomesticStandardIds.add(obj.getId());break; - case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: lawsOverseasStandardIds.add(obj.getId());break; - case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: lawsEnterpriseStandardIds.add(obj.getId());break; - default:lawsNewsFeedIds.add(obj.getId());break; + switch (obj.getResourceType()) { + case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: + lawsDomesticStandardIds.add(obj.getId()); + break; + case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: + lawsOverseasStandardIds.add(obj.getId()); + break; + case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: + lawsEnterpriseStandardIds.add(obj.getId()); + break; + default: + lawsNewsFeedIds.add(obj.getId()); + break; } } List listLawsDomesticStandard = listLawsDomesticStandard(lawsDomesticStandardIds); @@ -270,16 +278,16 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { List listLawsNewsFeed = listLawsNewsFeed(lawsNewsFeedIds); LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.select(LawsTag::getTableName,LawsTag::getDbFieldName,LawsTag::getDbFieldTxt, LawsTag::getDbType,LawsTag::getDictFieldSearch,LawsTag::getDictTableSearch,LawsTag::getDictTextSearch,LawsTag::getHomeSearchContextOrder); + query.select(LawsTag::getTableName, LawsTag::getDbFieldName, LawsTag::getDbFieldTxt, LawsTag::getDbType, LawsTag::getDictFieldSearch, LawsTag::getDictTableSearch, LawsTag::getDictTextSearch, LawsTag::getHomeSearchContextOrder); query.in(LawsTag::getTableName, Arrays.asList(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD_TABLE_NAME, - LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD_TABLE_NAME,LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD_TABLE_NAME)); + LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD_TABLE_NAME, LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD_TABLE_NAME)); query.isNotNull(LawsTag::getHomeSearchContextOrder); query.orderByAsc(LawsTag::getHomeSearchContextOrder); List listLawsTag = lawsTagService.list(query); long l = System.currentTimeMillis(); - list.parallelStream().forEach(p->{ - switch (p.getResourceType()){ + list.parallelStream().forEach(p -> { + switch (p.getResourceType()) { case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: addLawsDomesticStandard(searchContent, listLawsDomesticStandard, listLawsTag, p); break; @@ -300,13 +308,13 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } private void addLawsNewsFeed(String searchContent, List listLawsNewsFeed, LawsHomeNormalSearchVO p) { - if(!CollectionUtils.isEmpty(listLawsNewsFeed)){ - Optional op = listLawsNewsFeed.stream().filter(o-> Objects.equals(o.getId(),p.getId())).findFirst(); - if(op.isPresent()){ + if (!CollectionUtils.isEmpty(listLawsNewsFeed)) { + Optional op = listLawsNewsFeed.stream().filter(o -> Objects.equals(o.getId(), p.getId())).findFirst(); + if (op.isPresent()) { LawsNewsFeed obj = op.get(); String[] text = searchContent.split(BLANK_SPACE); String content = obj.getDynamicHeading(); - content = HighlightUtil.highlightKeywords(content, text, SPAN_CLASS,SPAN); + content = HighlightUtil.highlightKeywords(content, text, SPAN_CLASS, SPAN); p.setTitle(content); p.setReleaseDate(obj.getReleaseTime()); // 生成正文 @@ -316,16 +324,16 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } private void addLawsEnterpriseStandard(String searchContent, List listLawsEnterpriseStandard, List listLawsTag, LawsHomeNormalSearchVO p) { - if(!CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ - Optional op = listLawsEnterpriseStandard.stream().filter(o-> Objects.equals(o.getId(),p.getId())).findFirst(); - if(op.isPresent()){ + if (!CollectionUtils.isEmpty(listLawsEnterpriseStandard)) { + Optional op = listLawsEnterpriseStandard.stream().filter(o -> Objects.equals(o.getId(), p.getId())).findFirst(); + if (op.isPresent()) { LawsEnterpriseStandard obj = op.get(); String content = getString(searchContent, obj.getStandardNumber(), obj.getStandardName()); p.setTitle(content); p.setReleaseDate(obj.getReleaseDate()); // 生成正文 - JSONObject json = JSON.parseObject(JSON.toJSONStringWithDateFormat(obj,YYYY_MM_DD)); - addContent(p,json, obj, LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD_TABLE_NAME,listLawsTag); + JSONObject json = JSON.parseObject(JSON.toJSONStringWithDateFormat(obj, YYYY_MM_DD)); + addContent(p, json, obj, LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD_TABLE_NAME, listLawsTag); } } } @@ -334,43 +342,43 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private String getString(String searchContent, String standardNumber, String standardName) { String[] text = searchContent.split(BLANK_SPACE); String content = standardNumber + " " + standardName; - content = HighlightUtil.highlightKeywords(content, text, SPAN_CLASS,SPAN); + content = HighlightUtil.highlightKeywords(content, text, SPAN_CLASS, SPAN); return content; } private void addLawsOverseasStandard(String searchContent, List listLawsOverseasStandard, List listLawsTag, LawsHomeNormalSearchVO p) { - if(!CollectionUtils.isEmpty(listLawsOverseasStandard)){ - Optional op = listLawsOverseasStandard.stream().filter(o-> Objects.equals(o.getId(),p.getId())).findFirst(); - if(op.isPresent()){ + if (!CollectionUtils.isEmpty(listLawsOverseasStandard)) { + Optional op = listLawsOverseasStandard.stream().filter(o -> Objects.equals(o.getId(), p.getId())).findFirst(); + if (op.isPresent()) { LawsOverseasStandard obj = op.get(); String content = getString(searchContent, obj.getStandardNumber(), obj.getStandardName()); p.setTitle(content); p.setReleaseDate(obj.getReleaseDate()); // 生成正文 - JSONObject json = JSON.parseObject(JSON.toJSONStringWithDateFormat(obj,YYYY_MM_DD)); - addContent(p, json,obj, LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD_TABLE_NAME,listLawsTag); + JSONObject json = JSON.parseObject(JSON.toJSONStringWithDateFormat(obj, YYYY_MM_DD)); + addContent(p, json, obj, LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD_TABLE_NAME, listLawsTag); } } } private void addLawsDomesticStandard(String searchContent, List listLawsDomesticStandard, List listLawsTag, LawsHomeNormalSearchVO p) { - if(!CollectionUtils.isEmpty(listLawsDomesticStandard)){ - Optional op = listLawsDomesticStandard.stream().filter(o-> Objects.equals(o.getId(),p.getId())).findFirst(); - if(op.isPresent()){ + if (!CollectionUtils.isEmpty(listLawsDomesticStandard)) { + Optional op = listLawsDomesticStandard.stream().filter(o -> Objects.equals(o.getId(), p.getId())).findFirst(); + if (op.isPresent()) { LawsDomesticStandard obj = op.get(); String content = getString(searchContent, obj.getStandardNumber(), obj.getStandardName()); p.setTitle(content); p.setReleaseDate(obj.getReleaseDate()); // 生成正文 - JSONObject json = JSON.parseObject(JSON.toJSONStringWithDateFormat(obj,YYYY_MM_DD)); - addContent(p, json,obj, LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD_TABLE_NAME,listLawsTag); + JSONObject json = JSON.parseObject(JSON.toJSONStringWithDateFormat(obj, YYYY_MM_DD)); + addContent(p, json, obj, LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD_TABLE_NAME, listLawsTag); } } } private List listLawsNewsFeed(List lawsNewsFeedIds) { List listLawsNewsFeed = new ArrayList<>(); - if(!CollectionUtils.isEmpty(lawsNewsFeedIds)){ + if (!CollectionUtils.isEmpty(lawsNewsFeedIds)) { listLawsNewsFeed = lawsNewsFeedService.listByIds(lawsNewsFeedIds); } return listLawsNewsFeed; @@ -378,7 +386,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private List listLawsEnterpriseStandard(List lawsEnterpriseStandardIds) { List listLawsEnterpriseStandard = new ArrayList<>(); - if(!CollectionUtils.isEmpty(lawsEnterpriseStandardIds)){ + if (!CollectionUtils.isEmpty(lawsEnterpriseStandardIds)) { listLawsEnterpriseStandard = lawsEnterpriseStandardService.listByIds(lawsEnterpriseStandardIds); } return listLawsEnterpriseStandard; @@ -386,7 +394,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private List listLawsOverseasStandard(List lawsOverseasStandardIds) { List listLawsOverseasStandard = new ArrayList<>(); - if(!CollectionUtils.isEmpty(lawsOverseasStandardIds)){ + if (!CollectionUtils.isEmpty(lawsOverseasStandardIds)) { listLawsOverseasStandard = lawsOverseasStandardService.listByIds(lawsOverseasStandardIds); } return listLawsOverseasStandard; @@ -394,18 +402,18 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private List listLawsDomesticStandard(List lawsDomesticStandardIds) { List listLawsDomesticStandard = new ArrayList<>(); - if(!CollectionUtils.isEmpty(lawsDomesticStandardIds)){ + if (!CollectionUtils.isEmpty(lawsDomesticStandardIds)) { listLawsDomesticStandard = lawsDomesticStandardService.listByIds(lawsDomesticStandardIds); } return listLawsDomesticStandard; } - private void addContent(LawsHomeNormalSearchVO p, JSONObject json,Object object,String tableName, List listLawsTagAll) { + private void addContent(LawsHomeNormalSearchVO p, JSONObject json, Object object, String tableName, List listLawsTagAll) { if (CollectionUtils.isEmpty(listLawsTagAll)) { return; } - List listLawsTag = listLawsTagAll.stream().filter(o->Objects.equals(o.getTableName(),tableName)).collect(Collectors.toList()); - if(CollectionUtils.isEmpty(listLawsTag)){ + List listLawsTag = listLawsTagAll.stream().filter(o -> Objects.equals(o.getTableName(), tableName)).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(listLawsTag)) { return; } listLawsTag = listLawsTag.stream().sorted(Comparator.comparing(LawsTag::getHomeSearchContextOrder)).collect(Collectors.toList()); @@ -426,7 +434,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 需要翻译 if (!StringUtils.isBlank(code) && !StringUtils.isBlank(key)) { textValue = translateDictValue(code, text, table, key); - }else{ + } else { // 不需要翻译,直接取值 textValue = getString(object, type, fieldName, textValue); } @@ -441,19 +449,19 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private String getString(Object object, String type, String fieldName, String textValue) { for (Field field : oConvertUtils.getAllFields(object)) { - if(Objects.equals(field.getName(),fieldName)){ + if (Objects.equals(field.getName(), fieldName)) { try { ReflectionUtils.makeAccessible(field); - Object obj = ReflectionUtils.getField(field,object); - if(Objects.isNull(obj)){ + Object obj = ReflectionUtils.getField(field, object); + if (Objects.isNull(obj)) { continue; } - if(Objects.equals(type,"Date")){ + if (Objects.equals(type, "Date")) { textValue = new SimpleDateFormat(YYYY_MM_DD).format(obj); - }else{ + } else { textValue = String.valueOf(obj); } - } catch (Exception e){ + } catch (Exception e) { log.error("异常", e); } } @@ -462,14 +470,15 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } /** - * 翻译字典文本 - * @param code 编码 - * @param text 值 + * 翻译字典文本 + * + * @param code 编码 + * @param text 值 * @param table 表名 - * @param key 键 + * @param key 键 */ private String translateDictValue(String code, String text, String table, String key) { - if(oConvertUtils.isEmpty(key)) { + if (oConvertUtils.isEmpty(key)) { return null; } StringBuilder textValue = new StringBuilder(); @@ -487,7 +496,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { textValue.append(tmpValue); } } - if(StringUtils.isBlank(textValue)){ + if (StringUtils.isBlank(textValue)) { return null; } return textValue.toString(); @@ -495,9 +504,9 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private String getTmpValue(String code, String text, String table, String k) { String tmpValue; - if (!StringUtils.isEmpty(table)){ - tmpValue = commonAPI.queryTableDictTextByKey(table,text,code,k.trim()); - }else { + if (!StringUtils.isEmpty(table)) { + tmpValue = commonAPI.queryTableDictTextByKey(table, text, code, k.trim()); + } else { tmpValue = commonAPI.translateDict(code, k.trim()); } return tmpValue; @@ -510,7 +519,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { if (StringUtils.isBlank(searchContent)) { return obj; } - if(StringUtils.isBlank(lawsHomeNormalSearchDTO.getStandardStateSet())){ + if (StringUtils.isBlank(lawsHomeNormalSearchDTO.getStandardStateSet())) { // 默认不包含 废止状态 lawsHomeNormalSearchDTO.setStandardStateSet("1"); } @@ -520,51 +529,52 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { StringBuilder regexp = new StringBuilder(); for (int i = 0; i < text.length; i++) { regexp.append(text[i]); - if(i != text.length - 1){ + if (i != text.length - 1) { regexp.append("|"); } } - queryWrapper.and(s->s.apply("CONCAT_WS(' ',standard_number,standard_name) REGEXP '" + regexp + "'")); - queryWrapper.eq("del_flag",0); + queryWrapper.and(s -> s.apply("CONCAT_WS(' ',standard_number,standard_name) REGEXP '" + regexp + "'")); + queryWrapper.eq("del_flag", 0); String str = "',','))"; - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardClass()),"instr(concat(',',standard_class,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardClass() + str,0); - if(Objects.equals("暂未分类",lawsHomeNormalSearchDTO.getDynamicType())){ - queryWrapper.and(o->o.isNull("dynamic_type").or().eq("dynamic_type","")); - }else{ - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getDynamicType()),"instr(concat(',',dynamic_type,','),concat(',','" + lawsHomeNormalSearchDTO.getDynamicType() + str,0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardClass()), "instr(concat(',',standard_class,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardClass() + str, 0); + if (Objects.equals("暂未分类", lawsHomeNormalSearchDTO.getDynamicType())) { + queryWrapper.and(o -> o.isNull("dynamic_type").or().eq("dynamic_type", "")); + } else { + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getDynamicType()), "instr(concat(',',dynamic_type,','),concat(',','" + lawsHomeNormalSearchDTO.getDynamicType() + str, 0); } - if(Objects.equals("暂未分类",lawsHomeNormalSearchDTO.getApplicableVehicle())){ - queryWrapper.and(o->o.isNull("applicable_vehicle").or().eq("applicable_vehicle","")); - }else{ - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getApplicableVehicle()),"instr(concat(',',applicable_vehicle,','),concat(',','" + lawsHomeNormalSearchDTO.getApplicableVehicle() + str,0); + if (Objects.equals("暂未分类", lawsHomeNormalSearchDTO.getApplicableVehicle())) { + queryWrapper.and(o -> o.isNull("applicable_vehicle").or().eq("applicable_vehicle", "")); + } else { + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getApplicableVehicle()), "instr(concat(',',applicable_vehicle,','),concat(',','" + lawsHomeNormalSearchDTO.getApplicableVehicle() + str, 0); } - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardProperty()),"instr(concat(',',standard_property,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardProperty() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardState()),"instr(concat(',',standard_state,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardState() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardCode()),"instr(concat(',',standard_code,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardCode() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getEnterpriseStandardState()),"instr(concat(',',standard_state,','),concat(',','" + lawsHomeNormalSearchDTO.getEnterpriseStandardState() + str,0); - queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getGradeClassification()),"instr(concat(',',grade_classification,','),concat(',','" + lawsHomeNormalSearchDTO.getGradeClassification() + str,0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardProperty()), "instr(concat(',',standard_property,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardProperty() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardState()), "instr(concat(',',standard_state,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardState() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getStandardCode()), "instr(concat(',',standard_code,','),concat(',','" + lawsHomeNormalSearchDTO.getStandardCode() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getEnterpriseStandardState()), "instr(concat(',',standard_state,','),concat(',','" + lawsHomeNormalSearchDTO.getEnterpriseStandardState() + str, 0); + queryWrapper.gt(!StringUtils.isEmpty(lawsHomeNormalSearchDTO.getGradeClassification()), "instr(concat(',',grade_classification,','),concat(',','" + lawsHomeNormalSearchDTO.getGradeClassification() + str, 0); - switch (lawsHomeNormalSearchDTO.getResourceType()){ + switch (lawsHomeNormalSearchDTO.getResourceType()) { case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: - queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(),"1"),"standard_state",7); + queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(), "1"), "standard_state", 7); List list1 = lawsHomeSearchMapper.getCount1(queryWrapper); setDict(list1); - count1(list1,obj); + count1(list1, obj); break; case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: - queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(),"1"),"standard_state",7); + queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(), "1"), "standard_state", 7); List list2 = lawsHomeSearchMapper.getCount2(queryWrapper); setDict(list2); - count2(list2,obj); + count2(list2, obj); break; case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: - queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(),"1"),"standard_state",9); + queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(), "1"), "standard_state", 9); List list3 = lawsHomeSearchMapper.getCount3(queryWrapper); setDict(list3); - count3(list3,obj); + count3(list3, obj); + break; + default: break; - default:break; } return obj; } @@ -575,40 +585,40 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } } - private void count3(List list,LawsHomeNormalSearchStatisticsVO obj) { + private void count3(List list, LawsHomeNormalSearchStatisticsVO obj) { // 企业标准代号 List list1 = addLawsHomeNormalSearchStatistics(list, "enterprise_standard_code", STANDARD_CODE); - if(!CollectionUtils.isEmpty(list1)){ + if (!CollectionUtils.isEmpty(list1)) { obj.setStandardCode(list1); } // 标准状态 List list2 = addLawsHomeNormalSearchStatistics(list, ENTERPRISE_STANDARD_STATE, STANDARD_STATE); - if(!CollectionUtils.isEmpty(list2)){ + if (!CollectionUtils.isEmpty(list2)) { obj.setEnterpriseStandardState(list2); } // 标准等级分类 - List list3 = addLawsHomeNormalSearchStatistics(list,"standard_grade_classify", GRADE_CLASSIFICATION); - if(!CollectionUtils.isEmpty(list3)){ + List list3 = addLawsHomeNormalSearchStatistics(list, "standard_grade_classify", GRADE_CLASSIFICATION); + if (!CollectionUtils.isEmpty(list3)) { obj.setGradeClassification(list3); } } - private void count2(List list,LawsHomeNormalSearchStatisticsVO obj) { + private void count2(List list, LawsHomeNormalSearchStatisticsVO obj) { // 标准类别 List list1 = addLawsHomeNormalSearchStatistics(list, "standard_type_overseas", STANDARD_CLASS); - if(!CollectionUtils.isEmpty(list1)){ + if (!CollectionUtils.isEmpty(list1)) { obj.setStandardClass(list1); } // 适用车辆类型 List list2 = addLawsHomeNormalSearchStatistics(list, "APPLICATIONS_OVERSEAS", APPLICABLE_VEHICLE); // 添加暂未分类 list2 = addOther(list, list2, APPLICABLE_VEHICLE); - if(!CollectionUtils.isEmpty(list2)){ + if (!CollectionUtils.isEmpty(list2)) { obj.setApplicableVehicle(list2); } // 状态 List list3 = addLawsHomeNormalSearchStatistics(list, STANDARD_STATE, STANDARD_STATE); - if(!CollectionUtils.isEmpty(list3)){ + if (!CollectionUtils.isEmpty(list3)) { obj.setStandardState(list3); } } @@ -637,31 +647,31 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { private void count1(List list, LawsHomeNormalSearchStatisticsVO obj) { // 标准类别 - List list1 = addLawsHomeNormalSearchStatistics(list,STANDARD_TYPE, STANDARD_CLASS); - if(!CollectionUtils.isEmpty(list1)){ + List list1 = addLawsHomeNormalSearchStatistics(list, STANDARD_TYPE, STANDARD_CLASS); + if (!CollectionUtils.isEmpty(list1)) { obj.setStandardClass(list1); } // 动力类型 List list2 = addLawsHomeNormalSearchStatistics(list, "POWER_TYPE_DOMESTIC", DYNAMIC_TYPE); // 添加暂未分类 list2 = addOther(list, list2, DYNAMIC_TYPE); - if(!CollectionUtils.isEmpty(list2)){ + if (!CollectionUtils.isEmpty(list2)) { obj.setDynamicType(list2); } // 适用车辆类型 - List list3 = addLawsHomeNormalSearchStatistics(list,"APPLICATIONS_DOMESTIC", APPLICABLE_VEHICLE); + List list3 = addLawsHomeNormalSearchStatistics(list, "APPLICATIONS_DOMESTIC", APPLICABLE_VEHICLE); list3 = addOther(list, list3, APPLICABLE_VEHICLE); - if(!CollectionUtils.isEmpty(list3)){ + if (!CollectionUtils.isEmpty(list3)) { obj.setApplicableVehicle(list3); } // 标准类型 List list4 = addLawsHomeNormalSearchStatistics(list, STANDARD_PROPERTY, STANDARD_PROPERTY); - if(!CollectionUtils.isEmpty(list4)){ + if (!CollectionUtils.isEmpty(list4)) { obj.setStandardProperty(list4); } // 状态 - List list5 = addLawsHomeNormalSearchStatistics(list,STANDARD_STATE, STANDARD_STATE); - if(!CollectionUtils.isEmpty(list5)){ + List list5 = addLawsHomeNormalSearchStatistics(list, STANDARD_STATE, STANDARD_STATE); + if (!CollectionUtils.isEmpty(list5)) { obj.setStandardState(list5); } } @@ -673,18 +683,18 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { LawsHomeNormalSearchStatisticsObjVO objVO = new LawsHomeNormalSearchStatisticsObjVO(); objVO.setItemText(dict.getText()); objVO.setItemValue(dict.getValue()); - if(!CollectionUtils.isEmpty(list)){ - List opList = list.stream().filter(o -> !StringUtils.isBlank(o.getDict()) && o.getDict().contains("," + dict.getValue() + ",") && Objects.equals(o.getFieldName(),data)).collect(Collectors.toList()); - if(!CollectionUtils.isEmpty(opList)){ - Optional str = opList.stream().map(o->Integer.parseInt(StringUtils.isBlank(o.getCount()) ? "0" : o.getCount())).reduce((x,y) ->x+y); + if (!CollectionUtils.isEmpty(list)) { + List opList = list.stream().filter(o -> !StringUtils.isBlank(o.getDict()) && o.getDict().contains("," + dict.getValue() + ",") && Objects.equals(o.getFieldName(), data)).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(opList)) { + Optional str = opList.stream().map(o -> Integer.parseInt(StringUtils.isBlank(o.getCount()) ? "0" : o.getCount())).reduce((x, y) -> x + y); str.ifPresent(integer -> objVO.setStatisticsCount(String.valueOf(integer))); - }else{ + } else { objVO.setStatisticsCount("0"); } - }else{ + } else { objVO.setStatisticsCount("0"); } - if(!Objects.equals(objVO.getStatisticsCount(),"0")){ + if (!Objects.equals(objVO.getStatisticsCount(), "0")) { listDict.add(objVO); } } @@ -692,7 +702,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } @Override - public IPage getNormalSearchAllPage(LawsHomeNormalSearchDTO homeNormalSearchDTO,Integer pageNo,Integer pageSize) { + public IPage getNormalSearchAllPage(LawsHomeNormalSearchDTO homeNormalSearchDTO, Integer pageNo, Integer pageSize) { String searchContent = homeNormalSearchDTO.getSearchContent(); if (StringUtils.isBlank(searchContent)) { return new Page<>(pageNo, pageSize); @@ -700,11 +710,11 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 添加检索历史 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LawsHomeNormalSearchHistory lawsHomeNormalSearchHistory = new LawsHomeNormalSearchHistory(); - BeanUtils.copyProperties(homeNormalSearchDTO,lawsHomeNormalSearchHistory); + BeanUtils.copyProperties(homeNormalSearchDTO, lawsHomeNormalSearchHistory); lawsHomeNormalSearchHistory.setUserId(loginUser.getId()); lawsHomeNormalSearchHistoryService.save(lawsHomeNormalSearchHistory); - if(StringUtils.isBlank(searchContent)){ + if (StringUtils.isBlank(searchContent)) { searchContent = SEARCH_FLAG; } @@ -716,78 +726,78 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } - Map mapDict = new HashMap<>(); - if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardClass())){ - mapDict.put(STANDARD_CLASS,homeNormalSearchDTO.getStandardClass()); + Map mapDict = new HashMap<>(); + if (!StringUtils.isBlank(homeNormalSearchDTO.getStandardClass())) { + mapDict.put(STANDARD_CLASS, homeNormalSearchDTO.getStandardClass()); } - if(Objects.equals("暂未分类",homeNormalSearchDTO.getDynamicType())){ - mapDict.put(DYNAMIC_TYPE,"暂未分类"); - }else{ - if(!StringUtils.isBlank(homeNormalSearchDTO.getDynamicType())){ - mapDict.put(DYNAMIC_TYPE,homeNormalSearchDTO.getDynamicType()); + if (Objects.equals("暂未分类", homeNormalSearchDTO.getDynamicType())) { + mapDict.put(DYNAMIC_TYPE, "暂未分类"); + } else { + if (!StringUtils.isBlank(homeNormalSearchDTO.getDynamicType())) { + mapDict.put(DYNAMIC_TYPE, homeNormalSearchDTO.getDynamicType()); } } - if(Objects.equals("暂未分类",homeNormalSearchDTO.getApplicableVehicle())){ - mapDict.put(APPLICABLE_VEHICLE,"暂未分类"); - }else{ - if(!StringUtils.isBlank(homeNormalSearchDTO.getApplicableVehicle())){ - mapDict.put(APPLICABLE_VEHICLE,homeNormalSearchDTO.getApplicableVehicle()); + if (Objects.equals("暂未分类", homeNormalSearchDTO.getApplicableVehicle())) { + mapDict.put(APPLICABLE_VEHICLE, "暂未分类"); + } else { + if (!StringUtils.isBlank(homeNormalSearchDTO.getApplicableVehicle())) { + mapDict.put(APPLICABLE_VEHICLE, homeNormalSearchDTO.getApplicableVehicle()); } } - if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardProperty())){ - mapDict.put(STANDARD_PROPERTY,homeNormalSearchDTO.getStandardProperty()); + if (!StringUtils.isBlank(homeNormalSearchDTO.getStandardProperty())) { + mapDict.put(STANDARD_PROPERTY, homeNormalSearchDTO.getStandardProperty()); } - if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardState())){ - mapDict.put(STANDARD_STATE,homeNormalSearchDTO.getStandardState()); + if (!StringUtils.isBlank(homeNormalSearchDTO.getStandardState())) { + mapDict.put(STANDARD_STATE, homeNormalSearchDTO.getStandardState()); } - if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardCode())){ - mapDict.put(STANDARD_CODE,homeNormalSearchDTO.getStandardCode()); + if (!StringUtils.isBlank(homeNormalSearchDTO.getStandardCode())) { + mapDict.put(STANDARD_CODE, homeNormalSearchDTO.getStandardCode()); } - if(!StringUtils.isBlank(homeNormalSearchDTO.getEnterpriseStandardState())){ - mapDict.put(ENTERPRISE_STANDARD_STATE,homeNormalSearchDTO.getEnterpriseStandardState()); + if (!StringUtils.isBlank(homeNormalSearchDTO.getEnterpriseStandardState())) { + mapDict.put(ENTERPRISE_STANDARD_STATE, homeNormalSearchDTO.getEnterpriseStandardState()); } - if(!StringUtils.isBlank(homeNormalSearchDTO.getGradeClassification())){ - mapDict.put(GRADE_CLASSIFICATION,homeNormalSearchDTO.getGradeClassification()); + if (!StringUtils.isBlank(homeNormalSearchDTO.getGradeClassification())) { + mapDict.put(GRADE_CLASSIFICATION, homeNormalSearchDTO.getGradeClassification()); } JSONObject jsonAll = new JSONObject(); JSONArray queryMapJsonAll = new JSONArray(); JSONArray queryMapJsonDict = new JSONArray(); - if(!StringUtils.isBlank(homeNormalSearchDTO.getResourceType())){ + if (!StringUtils.isBlank(homeNormalSearchDTO.getResourceType())) { Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); - map2.put(RESOURCE_TYPE + KEYWORD,homeNormalSearchDTO.getResourceType()); - map1.put("term",map2); + map2.put(RESOURCE_TYPE + KEYWORD, homeNormalSearchDTO.getResourceType()); + map1.put("term", map2); queryMapJsonDict.add(map1); } - mapDict.forEach((k,v)->{ - if((Objects.equals(k,"dynamic_type") && Objects.equals(v,"暂未分类")) || - (Objects.equals(k,"applicable_vehicle") && Objects.equals(v,"暂未分类"))){ + mapDict.forEach((k, v) -> { + if ((Objects.equals(k, "dynamic_type") && Objects.equals(v, "暂未分类")) || + (Objects.equals(k, "applicable_vehicle") && Objects.equals(v, "暂未分类"))) { Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); - map2.put(k + KEYWORD,",,"); - map1.put("term",map2); + map2.put(k + KEYWORD, ",,"); + map1.put("term", map2); queryMapJsonDict.add(map1); - }else{ + } else { Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); - map2.put(k ,"," + v + ","); - map1.put("match_phrase",map2); + map2.put(k, "," + v + ","); + map1.put("match_phrase", map2); queryMapJsonDict.add(map1); } }); JSONArray queryMapJson = new JSONArray(); - Map mapHighlight = new HashMap<>(); - Map mapHighlight1 = new HashMap<>(); + Map mapHighlight = new HashMap<>(); + Map mapHighlight1 = new HashMap<>(); // 封装首次的条件 if (StringUtils.isNotBlank(searchContent)) { searchContent = searchContent.toLowerCase(); addSearchContent(searchContent, queryMapJson); //高亮 highlight(mapHighlight, CONTENT); - mapHighlight1.put("fields",mapHighlight); + mapHighlight1.put("fields", mapHighlight); } - if(CollectionUtils.isNotEmpty(queryMapJson)){ + if (CollectionUtils.isNotEmpty(queryMapJson)) { JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson); queryMapJsonDict.add(jsonObject); } @@ -795,81 +805,81 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { JSONObject jsonObjectShould = getJsonObject(loginUser); queryMapJsonDict.add(jsonObjectShould); - if(StringUtils.isBlank(homeNormalSearchDTO.getStandardStateSet()) || Objects.equals(homeNormalSearchDTO.getStandardStateSet(),"1")){ + if (StringUtils.isBlank(homeNormalSearchDTO.getStandardStateSet()) || Objects.equals(homeNormalSearchDTO.getStandardStateSet(), "1")) { // 默认不包含 废止状态 JSONArray query = new JSONArray(); - query.add(getJSON("1",",7,")); - query.add(getJSON("2",",7,")); - query.add(getJSON("3",",9,")); + query.add(getJSON("1", ",7,")); + query.add(getJSON("2", ",7,")); + query.add(getJSON("3", ",9,")); JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, query); queryMapJsonDict.add(jsonObject); } - if(CollectionUtils.isNotEmpty(queryMapJsonDict)){ - jsonAll.put("must",queryMapJsonDict); + if (CollectionUtils.isNotEmpty(queryMapJsonDict)) { + jsonAll.put("must", queryMapJsonDict); JSONObject all = new JSONObject(); - all.put("bool",jsonAll); + all.put("bool", jsonAll); queryMapJsonAll.add(all); } String order = "order"; JSONArray sort = new JSONArray(); - Map m1 = new HashMap<>(); - Map mDesc1 = new HashMap<>(); - mDesc1.put(order,"desc"); - m1.put("_score",mDesc1); + Map m1 = new HashMap<>(); + Map mDesc1 = new HashMap<>(); + mDesc1.put(order, "desc"); + m1.put("_score", mDesc1); sort.add(m1); - Map m2 = new HashMap<>(); - Map mAsc2 = new HashMap<>(); - mAsc2.put(order,"asc"); - m2.put("standard_type_order.keyword",mAsc2); + Map m2 = new HashMap<>(); + Map mAsc2 = new HashMap<>(); + mAsc2.put(order, "asc"); + m2.put("standard_type_order.keyword", mAsc2); sort.add(m2); - Map m3 = new HashMap<>(); - Map mAsc3 = new HashMap<>(); - mAsc3.put(order,"asc"); - m3.put("standard_state_order.keyword",mAsc3); + Map m3 = new HashMap<>(); + Map mAsc3 = new HashMap<>(); + mAsc3.put(order, "asc"); + m3.put("standard_state_order.keyword", mAsc3); sort.add(m3); - Map m4 = new HashMap<>(); - Map mDesc4 = new HashMap<>(); - mDesc4.put(order,"desc"); - m4.put(IMPLEMENTATION_DATE,mDesc4); + Map m4 = new HashMap<>(); + Map mDesc4 = new HashMap<>(); + mDesc4.put(order, "desc"); + m4.put(IMPLEMENTATION_DATE, mDesc4); sort.add(m4); - Map m5 = new HashMap<>(); - Map mDesc5 = new HashMap<>(); - mDesc5.put(order,"desc"); - m5.put("create_time_c",mDesc5); + Map m5 = new HashMap<>(); + Map mDesc5 = new HashMap<>(); + mDesc5.put(order, "desc"); + m5.put("create_time_c", mDesc5); sort.add(m5); // 查询字段 - List arr = Arrays.asList(CONTENT,"title",RESOURCE_TYPE,"id","release_date","file_id"); + List arr = Arrays.asList(CONTENT, "title", RESOURCE_TYPE, "id", "release_date", "file_id"); IPage page = getIPage(queryMapJsonAll, mapHighlight1, - pageNo, pageSize, sort,arr); + pageNo, pageSize, sort, arr); getRecords(page); return page; } - private JSONObject getJSON(String s1,String s2){ + private JSONObject getJSON(String s1, String s2) { JSONObject json1 = new JSONObject(); JSONObject json2 = new JSONObject(); - Map map11 = new HashMap<>(); - Map map12 = new HashMap<>(); - map11.put("resource_type",s1); - map12.put("standard_state",s2); + Map map11 = new HashMap<>(); + Map map12 = new HashMap<>(); + map11.put("resource_type", s1); + map12.put("standard_state", s2); JSONObject match11 = new JSONObject(); JSONObject match12 = new JSONObject(); - match11.put("match",map11); - match12.put("match",map12); + match11.put("match", map11); + match12.put("match", map12); JSONArray json11 = new JSONArray(); JSONArray json12 = new JSONArray(); json11.add(match11); json12.add(match12); - json1.put("must",json11); - json1.put("must_not",json12); - json2.put("bool",json1); + json1.put("must", json11); + json1.put("must_not", json12); + json2.put("bool", json1); return json2; } @@ -881,40 +891,36 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } private void getRecords(IPage page) { - if(!CollectionUtils.isEmpty(page.getRecords())){ + if (!CollectionUtils.isEmpty(page.getRecords())) { // 下划线转驼峰 List> listNew = new ArrayList<>(); List> list = page.getRecords(); - list.forEach(p->{ + list.forEach(p -> { Map map = getStringObjectMap(p); String releaseDate = "releaseDate"; - if(map.containsKey(releaseDate) && !Objects.isNull(map.get(releaseDate))){ - map.put(releaseDate,new SimpleDateFormat(YYYY_MM_DD).format(Long.parseLong(map.get(releaseDate).toString()))); + if (map.containsKey(releaseDate) && !Objects.isNull(map.get(releaseDate))) { + map.put(releaseDate, new SimpleDateFormat(YYYY_MM_DD).format(Long.parseLong(map.get(releaseDate).toString()))); } String createTime = "createTime"; - if(map.containsKey(createTime) && !Objects.isNull(map.get(createTime))){ - map.put(createTime,new SimpleDateFormat(YYYY_MM_DD).format(Long.parseLong(map.get(createTime).toString()))); + if (map.containsKey(createTime) && !Objects.isNull(map.get(createTime))) { + map.put(createTime, new SimpleDateFormat(YYYY_MM_DD).format(Long.parseLong(map.get(createTime).toString()))); } // 添加文档拆分id String splitId = "splitId"; - String resourceType = map.getOrDefault("resourceType","100").toString(); - if(Objects.equals(resourceType,LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD) || - Objects.equals(resourceType,LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD) || - Objects.equals(resourceType,LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD)){ - String fileId = "fileId"; - if(map.containsKey(fileId) && !Objects.isNull(map.get(fileId))){ - LambdaQueryWrapper querySarFileSplitInfoEO = new LambdaQueryWrapper<>(); - querySarFileSplitInfoEO.eq(SarFileSplitInfoEO::getStandardId,map.get("id")); - querySarFileSplitInfoEO.eq(SarFileSplitInfoEO::getSplitStatus,"2"); - querySarFileSplitInfoEO.isNull(SarFileSplitInfoEO::getPublishBeforeId); - querySarFileSplitInfoEO.in(SarFileSplitInfoEO::getFileId, - Arrays.asList(map.get(fileId).toString().split(","))); - SarFileSplitInfoEO sarFileSplitInfoEO = sarFileSplitInfoService.getOne(querySarFileSplitInfoEO,false); - if(!Objects.isNull(sarFileSplitInfoEO)){ - map.put(splitId,sarFileSplitInfoEO.getId()); - }else{ - map.put(splitId,""); - } + String resourceType = map.getOrDefault("resourceType", "100").toString(); + if (Objects.equals(resourceType, LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD) || + Objects.equals(resourceType, LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD) || + Objects.equals(resourceType, LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD)) { + LambdaQueryWrapper querySarFileSplitInfoEO = new LambdaQueryWrapper<>(); + querySarFileSplitInfoEO.eq(SarFileSplitInfoEO::getStandardId, map.get("id")); + querySarFileSplitInfoEO.eq(SarFileSplitInfoEO::getSplitStatus, "2"); + querySarFileSplitInfoEO.isNull(SarFileSplitInfoEO::getPublishBeforeId); + querySarFileSplitInfoEO.eq(SarFileSplitInfoEO::getDelFlag, YesOrNoEnum.NO.getValue()); + List sarFileSplitInfoEO = sarFileSplitInfoService.list(querySarFileSplitInfoEO); + if (!Objects.isNull(sarFileSplitInfoEO) && !sarFileSplitInfoEO.isEmpty()) { + map.put(splitId, sarFileSplitInfoEO.get(0).getId()); + } else { + map.put(splitId, ""); } } listNew.add(map); @@ -925,18 +931,18 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { @NotNull private Map getStringObjectMap(Map p) { - Map map = new HashMap<>(); - p.forEach((k,v)->{ + Map map = new HashMap<>(); + p.forEach((k, v) -> { String resultStr = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, k); - map.put(resultStr,v); + map.put(resultStr, v); }); return map; } @NotNull - private IPage getIPage(JSONArray queryMapJson,Map highlightMap, Integer pageNo, Integer pageSize, - JSONArray jsonArraySort,List source) { + private IPage getIPage(JSONArray queryMapJson, Map highlightMap, Integer pageNo, Integer pageSize, + JSONArray jsonArraySort, List source) { JSONObject jsonObject; //基础添加封装 jsonObject = jeroElasticsearchTemplate.buildBoolQuery(queryMapJson, null, null); @@ -950,11 +956,11 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { for (Map map : list) { Map mapSource = (Map) map.get("_source"); Map mapHighlight = (Map) map.get("highlight"); - if(ObjectUtils.isNotEmpty(mapHighlight)){ + if (ObjectUtils.isNotEmpty(mapHighlight)) { for (Map.Entry entry : mapHighlight.entrySet()) { String key = entry.getKey(); List value = (List) entry.getValue(); - StringBuilder fieldConyent= new StringBuilder(); + StringBuilder fieldConyent = new StringBuilder(); for (String s : value) { fieldConyent.append(s); } @@ -1040,8 +1046,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { Map map25 = new HashMap<>(); Map map35 = new HashMap<>(); Map map45 = new HashMap<>(); - if(CONTENT.equals(field)){ - map35.put(boost,0.01); + if (CONTENT.equals(field)) { + map35.put(boost, 0.01); } map35.put(QUERY, selectValue); map25.put(field, map35); @@ -1081,13 +1087,13 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { for (String s : listField) { Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); - map1.put("field",s + KEYWORD); + map1.put("field", s + KEYWORD); map1.put("size", 100); - map2.put("terms",map1); - map.put(s + "_aggs",map2); + map2.put("terms", map1); + map.put(s + "_aggs", map2); } - jsonObject.put("aggs",map); - jsonObject.put("size",0); + jsonObject.put("aggs", map); + jsonObject.put("size", 0); JSONArray queryAll = new JSONArray(); JSONArray queryMapJson = new JSONArray(); @@ -1095,41 +1101,41 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { if (StringUtils.isNotBlank(searchContent)) { addSearchContent(searchContent, queryMapJson); } - if(!StringUtils.isBlank(homeNormalSearchDTO.getResourceType())){ + if (!StringUtils.isBlank(homeNormalSearchDTO.getResourceType())) { JSONArray queryResourceType = new JSONArray(); Map map1 = new HashMap<>(); Map map2 = new HashMap<>(); - map1.put(RESOURCE_TYPE + KEYWORD,homeNormalSearchDTO.getResourceType()); - map2.put("term",map1); + map1.put(RESOURCE_TYPE + KEYWORD, homeNormalSearchDTO.getResourceType()); + map2.put("term", map1); queryResourceType.add(map2); - JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(queryResourceType,null,null); + JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(queryResourceType, null, null); queryAll.add(object); } - if(CollectionUtils.isNotEmpty(queryMapJson)){ - JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(null,null,queryMapJson); + if (CollectionUtils.isNotEmpty(queryMapJson)) { + JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(null, null, queryMapJson); queryAll.add(object); } - if(StringUtils.isBlank(homeNormalSearchDTO.getStandardStateSet()) || Objects.equals(homeNormalSearchDTO.getStandardStateSet(),"1")){ + if (StringUtils.isBlank(homeNormalSearchDTO.getStandardStateSet()) || Objects.equals(homeNormalSearchDTO.getStandardStateSet(), "1")) { // 默认不包含 废止状态 JSONArray query = new JSONArray(); - query.add(getJSON("1",",7,")); - query.add(getJSON("2",",7,")); - query.add(getJSON("3",",9,")); + query.add(getJSON("1", ",7,")); + query.add(getJSON("2", ",7,")); + query.add(getJSON("3", ",9,")); JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(null, null, query); queryAll.add(object); } LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); JSONObject object = getJsonObject(loginUser); queryAll.add(object); - JSONObject objectAll = jeroElasticsearchTemplate.buildBoolQuery(queryAll,null,null); - jsonObject.put(QUERY,objectAll); + JSONObject objectAll = jeroElasticsearchTemplate.buildBoolQuery(queryAll, null, null); + jsonObject.put(QUERY, objectAll); //2. 数据查询 JSONObject search = jeroElasticsearchTemplate.search(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), jsonObject); LawsHomeNormalSearchStatisticsVO objVo = new LawsHomeNormalSearchStatisticsVO(); String standardStateAggs = "standard_state_aggs"; - switch (homeNormalSearchDTO.getResourceType()){ + switch (homeNormalSearchDTO.getResourceType()) { case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: List list1 = new ArrayList<>(); addVo(search, list1, "standard_class_aggs", STANDARD_CLASS); @@ -1137,23 +1143,24 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { addVo(search, list1, "applicable_vehicle_aggs", APPLICABLE_VEHICLE); addVo(search, list1, "standard_property_aggs", STANDARD_PROPERTY); addVo(search, list1, standardStateAggs, STANDARD_STATE); - count1(list1,objVo); + count1(list1, objVo); break; case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: List list2 = new ArrayList<>(); addVo(search, list2, "standard_class_aggs", STANDARD_CLASS); addVo(search, list2, "applicable_vehicle_aggs", APPLICABLE_VEHICLE); addVo(search, list2, standardStateAggs, STANDARD_STATE); - count2(list2,objVo); + count2(list2, objVo); break; case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: List list3 = new ArrayList<>(); addVo(search, list3, "standard_code_aggs", STANDARD_CODE); addVo(search, list3, standardStateAggs, STANDARD_STATE); addVo(search, list3, "grade_classification_aggs", GRADE_CLASSIFICATION); - count3(list3,objVo); + count3(list3, objVo); + break; + default: break; - default:break; } return objVo; } @@ -1177,12 +1184,12 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { JSONArray queryMapMust = new JSONArray(); Map status4 = new HashMap<>(); Map status4Val = new HashMap<>(); - status4Val.put(pushRangeFlag,1); + status4Val.put(pushRangeFlag, 1); status4.put(MATCH, status4Val); queryMapMust.add(status4); List listIds = lawsHomeSearchMapper.getHomeSearchData(loginUser.getId()); - if(CollectionUtils.isEmpty(listIds)){ + if (CollectionUtils.isEmpty(listIds)) { listIds.add(1L); } Map status3 = new HashMap<>(); @@ -1214,48 +1221,49 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { @Override public void updateEsData(String resourceType, String ids, String opType) { - if(StringUtils.isBlank(resourceType) || StringUtils.isBlank(ids) || StringUtils.isBlank(opType)){ + if (StringUtils.isBlank(resourceType) || StringUtils.isBlank(ids) || StringUtils.isBlank(opType)) { throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED); } log.info("================ES更新数据开始================="); ForkJoinPool pool = new ForkJoinPool(); - CompletableFuture.runAsync(()->{ + CompletableFuture.runAsync(() -> { try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); Thread.currentThread().interrupt(); } - try{ - switch (resourceType){ + try { + switch (resourceType) { case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: - updateLawsDomesticStandardToEs(resourceType,ids,opType); + updateLawsDomesticStandardToEs(resourceType, ids, opType); break; case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: - updateLawsOverseasStandardToEs(resourceType,ids,opType); + updateLawsOverseasStandardToEs(resourceType, ids, opType); break; case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: - updateLawsEnterpriseStandardToEs(resourceType,ids,opType); + updateLawsEnterpriseStandardToEs(resourceType, ids, opType); break; case LawsHomeSearchCommon.LAWS_NEWS_FEED: - updateLawsNewsFeedToEs(resourceType,ids,opType); + updateLawsNewsFeedToEs(resourceType, ids, opType); + break; + default: break; - default:break; } - }catch (Exception e){ - log.error("ES同步异常",e.getMessage()); + } catch (Exception e) { + log.error("ES同步异常", e.getMessage()); } - },pool); + }, pool); log.info("================ES更新数据结束================="); } - private boolean updateLawsDomesticStandardToEs(String resourceType, String ids,String opType) { + private boolean updateLawsDomesticStandardToEs(String resourceType, String ids, String opType) { // 批量操作 // 从第0个下标开始 int startIndex = 0; int batchCount = 500; List listIds = Arrays.asList(ids.split(",")); - if(CollectionUtils.isEmpty(listIds)) { + if (CollectionUtils.isEmpty(listIds)) { return true; } // 异步执行 @@ -1263,7 +1271,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { int endIndex = getEndIndex(startIndex, batchCount, listIds); List listIdsSub = listIds.subList(startIndex, endIndex); List listLawsDomesticStandard = lawsDomesticStandardService.listByIds(listIdsSub); - if(CollectionUtils.isEmpty(listLawsDomesticStandard)){ + if (CollectionUtils.isEmpty(listLawsDomesticStandard)) { break; } for (LawsDomesticStandard lawsDomesticStandard : listLawsDomesticStandard) { @@ -1281,19 +1289,39 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setId(lawsDomesticStandard.getId()); obj.setTitle(lawsDomesticStandard.getStandardNumber() + " " + lawsDomesticStandard.getStandardName()); obj.setResourceType(resourceType); - switch (lawsDomesticStandard.getStandardClass()){ - case "GB": obj.setStandardTypeOrder("1");break; - case "GB/T": obj.setStandardTypeOrder("2");break; - case "JT": obj.setStandardTypeOrder("3");break; - case "QC/T": obj.setStandardTypeOrder("4");break; - case "HJ": obj.setStandardTypeOrder("5");break; - default: obj.setStandardTypeOrder("8");break; + switch (lawsDomesticStandard.getStandardClass()) { + case "GB": + obj.setStandardTypeOrder("1"); + break; + case "GB/T": + obj.setStandardTypeOrder("2"); + break; + case "JT": + obj.setStandardTypeOrder("3"); + break; + case "QC/T": + obj.setStandardTypeOrder("4"); + break; + case "HJ": + obj.setStandardTypeOrder("5"); + break; + default: + obj.setStandardTypeOrder("8"); + break; } - switch (lawsDomesticStandard.getStandardState()){ - case "5": obj.setStandardStateOrder("2");break; - case "6": obj.setStandardStateOrder("1");break; - case "7": obj.setStandardStateOrder("3");break; - default: obj.setStandardStateOrder("4");break; + switch (lawsDomesticStandard.getStandardState()) { + case "5": + obj.setStandardStateOrder("2"); + break; + case "6": + obj.setStandardStateOrder("1"); + break; + case "7": + obj.setStandardStateOrder("3"); + break; + default: + obj.setStandardStateOrder("4"); + break; } obj.setImplementationDate(lawsDomesticStandard.getImplementationDate()); obj.setCreateTime(lawsDomesticStandard.getCreateTime()); @@ -1307,8 +1335,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setReleaseStatus("1"); List listFile = getOssFilesLawsDomesticStandard(lawsDomesticStandard); updateES(opType, obj, listFile, lawsDomesticStandard.getId()); - }catch (Exception e){ - log.error(SYNC_ES_ERR,e.getMessage()); + } catch (Exception e) { + log.error(SYNC_ES_ERR, e.getMessage()); } } @@ -1317,18 +1345,18 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 从过程稿件从上到下顺序检索;如果文档里有发布稿,只检索发布稿 List list = getOssFiles(lawsDomesticStandard.getId()); List listFile = new ArrayList<>(); - if(!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(LawsTag::getTableName,LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD_TABLE_NAME); + query.eq(LawsTag::getTableName, LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD_TABLE_NAME); query.isNotNull(LawsTag::getHomeSearchFileOrder); query.orderByAsc(LawsTag::getHomeSearchFileOrder); List listLawsTag = lawsTagService.list(query); - if(!CollectionUtils.isEmpty(listLawsTag)){ - List op = list.stream().filter(o-> Objects.equals(o.getStandardFileType(),listLawsTag.get(0).getDbFieldName())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listLawsTag)) { + List op = list.stream().filter(o -> Objects.equals(o.getStandardFileType(), listLawsTag.get(0).getDbFieldName())).collect(Collectors.toList()); // 有发布稿 - if(!CollectionUtils.isEmpty(op)){ + if (!CollectionUtils.isEmpty(op)) { listFile.addAll(op); - }else{ + } else { for (int i = 1; i < listLawsTag.size(); i++) { getOp(list, listFile, listLawsTag.get(i).getDbFieldName()); } @@ -1365,7 +1393,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } } - private void updateLawsOverseasStandardToEs(String resourceType, String ids,String opType) { + private void updateLawsOverseasStandardToEs(String resourceType, String ids, String opType) { // 批量操作 // 从第0个下标开始 int startIndex = 0; @@ -1375,7 +1403,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { int endIndex = getEndIndex(startIndex, batchCount, listIds); List listIdsSub = listIds.subList(startIndex, endIndex); List listLawsOverseasStandard = lawsOverseasStandardService.listByIds(listIdsSub); - if(CollectionUtils.isEmpty(listLawsOverseasStandard)){ + if (CollectionUtils.isEmpty(listLawsOverseasStandard)) { break; } for (LawsOverseasStandard lawsOverseasStandard : listLawsOverseasStandard) { @@ -1385,11 +1413,19 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setTitle(lawsOverseasStandard.getStandardNumber() + " " + lawsOverseasStandard.getStandardName()); obj.setResourceType(resourceType); obj.setStandardTypeOrder("7"); - switch (lawsOverseasStandard.getStandardState()){ - case "5": obj.setStandardStateOrder("2");break; - case "6": obj.setStandardStateOrder("1");break; - case "7": obj.setStandardStateOrder("3");break; - default: obj.setStandardStateOrder("4");break; + switch (lawsOverseasStandard.getStandardState()) { + case "5": + obj.setStandardStateOrder("2"); + break; + case "6": + obj.setStandardStateOrder("1"); + break; + case "7": + obj.setStandardStateOrder("3"); + break; + default: + obj.setStandardStateOrder("4"); + break; } obj.setImplementationDate(lawsOverseasStandard.getImplementationDate()); obj.setCreateTime(lawsOverseasStandard.getCreateTime()); @@ -1401,8 +1437,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setReleaseStatus("1"); List listFile = getOssFilesLawsOverseasStandard(lawsOverseasStandard); updateES(opType, obj, listFile, lawsOverseasStandard.getId()); - }catch (Exception e){ - log.error(SYNC_ES_ERR,e.getMessage()); + } catch (Exception e) { + log.error(SYNC_ES_ERR, e.getMessage()); } } startIndex = startIndex + batchCount; // 下一批 @@ -1414,26 +1450,26 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 从过程稿件从上到下顺序检索;如果文档里有发布稿,只检索发布稿 List list = getOssFiles(lawsOverseasStandard.getId()); List listFile = new ArrayList<>(); - if(CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { return listFile; } LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(LawsTag::getTableName,LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD_TABLE_NAME); + query.eq(LawsTag::getTableName, LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD_TABLE_NAME); query.isNotNull(LawsTag::getHomeSearchFileOrder); query.orderByAsc(LawsTag::getHomeSearchFileOrder); List listLawsTag = lawsTagService.list(query); - if(!CollectionUtils.isEmpty(listLawsTag)){ - List op = list.stream().filter(o-> Objects.equals(o.getStandardFileType(),listLawsTag.get(0).getDbFieldName())).collect(Collectors.toList()); - List opTr = list.stream().filter(o-> Objects.equals(o.getStandardFileType(),listLawsTag.get(1).getDbFieldName())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listLawsTag)) { + List op = list.stream().filter(o -> Objects.equals(o.getStandardFileType(), listLawsTag.get(0).getDbFieldName())).collect(Collectors.toList()); + List opTr = list.stream().filter(o -> Objects.equals(o.getStandardFileType(), listLawsTag.get(1).getDbFieldName())).collect(Collectors.toList()); // 有发布稿 - if(!CollectionUtils.isEmpty(op) || !CollectionUtils.isEmpty(opTr)){ - if(!CollectionUtils.isEmpty(op)){ + if (!CollectionUtils.isEmpty(op) || !CollectionUtils.isEmpty(opTr)) { + if (!CollectionUtils.isEmpty(op)) { listFile.addAll(op); } - if(!CollectionUtils.isEmpty(opTr)){ + if (!CollectionUtils.isEmpty(opTr)) { listFile.addAll(opTr); } - }else{ + } else { for (int i = 2; i < listLawsTag.size(); i++) { getOp(list, listFile, listLawsTag.get(i).getDbFieldName()); } @@ -1449,7 +1485,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } } - private void updateLawsEnterpriseStandardToEs(String resourceType, String ids,String opType) { + private void updateLawsEnterpriseStandardToEs(String resourceType, String ids, String opType) { // 批量操作 // 从第0个下标开始 int startIndex = 0; @@ -1459,7 +1495,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { int endIndex = getEndIndex(startIndex, batchCount, listIds); List listIdsSub = listIds.subList(startIndex, endIndex); List listLawsEnterpriseStandard = lawsEnterpriseStandardService.listByIds(listIdsSub); - if(CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ + if (CollectionUtils.isEmpty(listLawsEnterpriseStandard)) { break; } for (LawsEnterpriseStandard lawsEnterpriseStandard : listLawsEnterpriseStandard) { @@ -1470,11 +1506,19 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setResourceType(resourceType); obj.setStandardTypeOrder("6"); - switch (lawsEnterpriseStandard.getStandardState()){ - case "5": obj.setStandardStateOrder("2");break; - case "6": obj.setStandardStateOrder("1");break; - case "7": obj.setStandardStateOrder("3");break; - default: obj.setStandardStateOrder("4");break; + switch (lawsEnterpriseStandard.getStandardState()) { + case "5": + obj.setStandardStateOrder("2"); + break; + case "6": + obj.setStandardStateOrder("1"); + break; + case "7": + obj.setStandardStateOrder("3"); + break; + default: + obj.setStandardStateOrder("4"); + break; } obj.setImplementationDate(lawsEnterpriseStandard.getImplementationDate()); obj.setCreateTime(lawsEnterpriseStandard.getCreateTime()); @@ -1487,8 +1531,8 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setReleaseStatus("1"); List listFile = getOssFilesLawsEnterpriseStandard(lawsEnterpriseStandard); updateES(opType, obj, listFile, lawsEnterpriseStandard.getId()); - }catch (Exception e){ - log.error(SYNC_ES_ERR,e.getMessage()); + } catch (Exception e) { + log.error(SYNC_ES_ERR, e.getMessage()); } } startIndex = startIndex + batchCount; // 下一批 @@ -1500,18 +1544,18 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 从过程稿件从上到下顺序检索;如果文档里有发布稿,只检索发布稿 List list = getOssFiles(lawsEnterpriseStandard.getId()); List listFile = new ArrayList<>(); - if(!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.eq(LawsTag::getTableName,LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD_TABLE_NAME); + query.eq(LawsTag::getTableName, LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD_TABLE_NAME); query.isNotNull(LawsTag::getHomeSearchFileOrder); query.orderByAsc(LawsTag::getHomeSearchFileOrder); List listLawsTag = lawsTagService.list(query); - if(!CollectionUtils.isEmpty(listLawsTag)){ - List op = list.stream().filter(o-> Objects.equals(o.getStandardFileType(),listLawsTag.get(0).getDbFieldName())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(listLawsTag)) { + List op = list.stream().filter(o -> Objects.equals(o.getStandardFileType(), listLawsTag.get(0).getDbFieldName())).collect(Collectors.toList()); // 有发布稿 - if(!CollectionUtils.isEmpty(op)){ + if (!CollectionUtils.isEmpty(op)) { listFile.addAll(op); - }else{ + } else { for (int i = 1; i < listLawsTag.size(); i++) { getOp(list, listFile, listLawsTag.get(i).getDbFieldName()); } @@ -1521,13 +1565,13 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { return listFile; } - private void updateLawsNewsFeedToEs(String resourceType, String ids,String opType) { + private void updateLawsNewsFeedToEs(String resourceType, String ids, String opType) { // 批量操作 // 从第0个下标开始 List listIds = Arrays.asList(ids.split(",")); try { List listLawsNewsFeed = lawsNewsFeedService.listByIds(listIds); - if(CollectionUtils.isEmpty(listLawsNewsFeed)){ + if (CollectionUtils.isEmpty(listLawsNewsFeed)) { return; } for (LawsNewsFeed lawsNewsFeed : listLawsNewsFeed) { @@ -1543,36 +1587,36 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { obj.setPushRangeFlag(lawsNewsFeed.getPushRangeFlag()); obj.setReleaseStatus(String.valueOf(lawsNewsFeed.getReleaseStatus())); updateESLawsNewsFeed(opType, lawsNewsFeed, obj); - }catch (Exception e){ - log.error(SYNC_ES_ERR,e.getMessage()); + } catch (Exception e) { + log.error(SYNC_ES_ERR, e.getMessage()); } } - }catch (Exception e){ - log.error(SYNC_ES_ERR,e.getMessage()); + } catch (Exception e) { + log.error(SYNC_ES_ERR, e.getMessage()); } } private void updateESLawsNewsFeed(String opType, LawsNewsFeed lawsNewsFeed, LawsHomeNormalSearchVO obj) { - if(Objects.equals(opType, LawsHomeSearchCommon.LAWS_ES_ADD) || - Objects.equals(opType,LawsHomeSearchCommon.LAWS_ES_UPDATE)){ + if (Objects.equals(opType, LawsHomeSearchCommon.LAWS_ES_ADD) || + Objects.equals(opType, LawsHomeSearchCommon.LAWS_ES_UPDATE)) { StringBuilder str = new StringBuilder(); - if(!StringUtils.isBlank(lawsNewsFeed.getDynamicDetails())){ + if (!StringUtils.isBlank(lawsNewsFeed.getDynamicDetails())) { str = new StringBuilder(Jsoup.parse(lawsNewsFeed.getDynamicDetails()).text()); } addES(obj, lawsNewsFeed.getId(), str, null); - }else if(Objects.equals(opType,LawsHomeSearchCommon.LAWS_ES_DELETE)){ + } else if (Objects.equals(opType, LawsHomeSearchCommon.LAWS_ES_DELETE)) { jeroElasticsearchTemplate.delete(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), lawsNewsFeed.getId()); } } - public void updateElasticsearch(LawsHomeNormalSearchVO obj,List listFile){ + public void updateElasticsearch(LawsHomeNormalSearchVO obj, List listFile) { String idTemp = obj.getId(); StringBuilder fileTextAll = getStringBuilder(listFile); List fileIds = new ArrayList<>(); - if(!CollectionUtils.isEmpty(listFile)){ + if (!CollectionUtils.isEmpty(listFile)) { fileIds = listFile.stream().map(OSSFile::getId).collect(Collectors.toList()); } - addES(obj, idTemp, fileTextAll,fileIds); + addES(obj, idTemp, fileTextAll, fileIds); } @NotNull @@ -1608,7 +1652,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { } } - private void addES(LawsHomeNormalSearchVO obj, String idTemp, StringBuilder fileTextAll,List fileIds){ + private void addES(LawsHomeNormalSearchVO obj, String idTemp, StringBuilder fileTextAll, List fileIds) { Map map = new HashMap<>(); map.put("id", obj.getId()); map.put("title", obj.getTitle()); @@ -1621,32 +1665,32 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { map.put(APPLICABLE_VEHICLE, "," + obj.getApplicableVehicle() + ","); map.put(STANDARD_PROPERTY, "," + obj.getStandardProperty() + ","); map.put(STANDARD_STATE, "," + obj.getStandardState() + ","); - map.put(STANDARD_CODE,"," + obj.getStandardCode() + ","); - map.put(ENTERPRISE_STANDARD_STATE,"," + obj.getEnterpriseStandardState() + ","); - map.put(GRADE_CLASSIFICATION,"," + obj.getGradeClassification() + ","); - if(!CollectionUtils.isEmpty(fileIds)){ - map.put("file_id",String.join(",",fileIds)); - }else{ - map.put("file_id",""); + map.put(STANDARD_CODE, "," + obj.getStandardCode() + ","); + map.put(ENTERPRISE_STANDARD_STATE, "," + obj.getEnterpriseStandardState() + ","); + map.put(GRADE_CLASSIFICATION, "," + obj.getGradeClassification() + ","); + if (!CollectionUtils.isEmpty(fileIds)) { + map.put("file_id", String.join(",", fileIds)); + } else { + map.put("file_id", ""); } - map.put("release_date",obj.getReleaseDate()); + map.put("release_date", obj.getReleaseDate()); // 没有时间 强行加入最早时间 try { - map.put(IMPLEMENTATION_DATE,Objects.isNull(obj.getImplementationDate()) ? new SimpleDateFormat(YYYY_MM_DD).parse("1900-01-01") : obj.getImplementationDate()); - map.put("create_time_c",Objects.isNull(obj.getCreateTime()) ? new SimpleDateFormat(YYYY_MM_DD).parse("1900-01-01") : obj.getCreateTime()); - }catch (Exception e){ - log.error("文档库添加es失败",e); + map.put(IMPLEMENTATION_DATE, Objects.isNull(obj.getImplementationDate()) ? new SimpleDateFormat(YYYY_MM_DD).parse("1900-01-01") : obj.getImplementationDate()); + map.put("create_time_c", Objects.isNull(obj.getCreateTime()) ? new SimpleDateFormat(YYYY_MM_DD).parse("1900-01-01") : obj.getCreateTime()); + } catch (Exception e) { + log.error("文档库添加es失败", e); } - map.put("es_create_time",new Date()); - map.put(RELEASE_STATUS,obj.getReleaseStatus()); - map.put("push_range_flag",obj.getReleaseStatus()); + map.put("es_create_time", new Date()); + map.put(RELEASE_STATUS, obj.getReleaseStatus()); + map.put("push_range_flag", obj.getReleaseStatus()); //添加es JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(map, SerializerFeature.WriteMapNullValue)); try { jeroElasticsearchTemplate.saveOrUpdate(HomeSearchEnum.INDEX_NAME_DOCUMENT_ZQ.getValue(), HomeSearchEnum.TYPE_NAME_DOCUMENT_ZQ.getValue(), idTemp, jsonObject); log.info("==============更新es成功================"); } catch (Exception e) { - log.error("文档库添加es失败",e); + log.error("文档库添加es失败", e); } } }