From 23edc0d888d0f2cb3846996c3fc1260d208d7464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A2=81=E7=90=A6=E6=B6=9B?= Date: Thu, 21 Mar 2024 14:11:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=87=E5=87=86=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E8=AE=BE=E7=BD=AE=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home/dto/LawsHomeNormalSearchDTO.java | 5 ++ .../home/job/HomeSearchCheckEsPlanJob.java | 12 +-- .../home/mapper/LawsHomeSearchMapper.java | 5 +- .../home/mapper/xml/LawsHomeSearchMapper.xml | 15 +++- .../impl/LawsHomeSearchServiceImpl.java | 77 ++++++++++++++----- 5 files changed, 81 insertions(+), 33 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/dto/LawsHomeNormalSearchDTO.java b/laws-modules/src/main/java/com/jero/modules/laws/home/dto/LawsHomeNormalSearchDTO.java index 0ba2a335..3af65058 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/dto/LawsHomeNormalSearchDTO.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/dto/LawsHomeNormalSearchDTO.java @@ -29,6 +29,11 @@ public class LawsHomeNormalSearchDTO implements Serializable { */ @ApiModelProperty(value = "资源类型 (数据字典 resource_type) (全部传空)") private String resourceType; + /** + * 标准状态设置 (1不包含废止标准,2包含废止标准) 默认不包含 + */ + @ApiModelProperty(value = "标准状态设置 (1不包含废止标准,2包含废止标准) 默认不包含") + private String standardStateSet; /** * 标准类别 (数据字典 海外标准法规:standard_type_overseas 国内标准法规:standard_type) (全部传空) */ diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java b/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java index d51e24fb..984c1952 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/job/HomeSearchCheckEsPlanJob.java @@ -103,9 +103,7 @@ public class HomeSearchCheckEsPlanJob implements Job { } private void checkLawsEnterpriseStandard(String resourceType, Map mapHash) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.ne(LawsEnterpriseStandard::getStandardState,"9"); - List listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(query); + List listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(); int count3 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD, 0); int m3 = 0; if(!CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ @@ -121,9 +119,7 @@ public class HomeSearchCheckEsPlanJob implements Job { } private void checkLawsOverseasStandard(String resourceType, Map mapHash) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.ne(LawsOverseasStandard::getStandardState,"7"); - List listLawsOverseasStandard = lawsOverseasStandardService.list(query); + List listLawsOverseasStandard = lawsOverseasStandardService.list(); int count2 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD, 0); int m2 = 0; if(!CollectionUtils.isEmpty(listLawsOverseasStandard)){ @@ -139,9 +135,7 @@ public class HomeSearchCheckEsPlanJob implements Job { } private void checkLawsDomesticStandard(String resourceType, Map mapHash) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.ne(LawsDomesticStandard::getStandardState,"7"); - List listLawsDomesticStandard = lawsDomesticStandardService.list(query); + List listLawsDomesticStandard = lawsDomesticStandardService.list(); // 比对数据 int count1 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD, 0); int m1 = 0; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeSearchMapper.java b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeSearchMapper.java index 0c843fef..440374bc 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeSearchMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/LawsHomeSearchMapper.java @@ -29,9 +29,12 @@ public interface LawsHomeSearchMapper extends BaseMapper */ - IPage getPage(Page page,@Param(Constants.WRAPPER) QueryWrapper queryWrapper,@Param("userId") String userId); + IPage getPage(Page page, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper, + @Param("userId") String userId,@Param("standardStateSet") String standardStateSet); /** * 首页-一般检索(标题)查询国内标准 diff --git a/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeSearchMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeSearchMapper.xml index 982955ff..21acae08 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeSearchMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/home/mapper/xml/LawsHomeSearchMapper.xml @@ -21,7 +21,10 @@ end as standard_state_order, standard_class,dynamic_type,applicable_vehicle,standard_property,standard_state,null as standard_code,null as grade_classification, implementation_date - from laws_domestic_standard where del_flag = 0 and standard_state != 7 + from laws_domestic_standard where del_flag = 0 + + and standard_state != 7 + union all select id,'2' as resource_type,CONCAT_WS(' ',standard_number,standard_name) AS standard_name,create_time,7 as standard_type_order, case when standard_state = 5 then 2 @@ -30,7 +33,10 @@ else 4 end as standard_state_order, standard_class,null,applicable_vehicle,null,standard_state,null,null,implementation_date - from laws_overseas_standard where del_flag = 0 and standard_state != 7 + from laws_overseas_standard where del_flag = 0 + + and standard_state != 7 + union all select id,'3' as resource_type,CONCAT_WS(' ',standard_number,standard_name) AS standard_name,create_time,6 as standard_type_order, case when standard_state = 5 then 2 @@ -39,7 +45,10 @@ else 4 end as standard_state_order, null,null,null,null,standard_state,standard_code,grade_classification,implementation_date - from laws_enterprise_standard where del_flag = 0 and standard_state != 9 + from laws_enterprise_standard where del_flag = 0 + + and standard_state != 9 + union all select l1.id,'4' as resource_type,dynamic_heading as standard_name,create_time,9 as standard_type_order, 4 AS standard_state_order, 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 290d741f..e0d0f4f2 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 @@ -141,6 +141,10 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { if (StringUtils.isBlank(searchContent)) { return new Page<>(pageNo, pageSize); } + if(StringUtils.isBlank(lawsHomeNormalSearchDTO.getStandardStateSet())){ + // 默认不包含 废止状态 + lawsHomeNormalSearchDTO.setStandardStateSet("1"); + } // 添加检索历史 LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LawsHomeNormalSearchHistory lawsHomeNormalSearchHistory = new LawsHomeNormalSearchHistory(); @@ -150,7 +154,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { QueryWrapper queryWrapper = getQueryWrapperNormal(lawsHomeNormalSearchDTO); Page page = new Page<>(pageNo, pageSize); - IPage pageList = lawsHomeSearchMapper.getPage(page,queryWrapper,loginUser.getId()); + IPage pageList = lawsHomeSearchMapper.getPage(page,queryWrapper,loginUser.getId(),lawsHomeNormalSearchDTO.getStandardStateSet()); addContent(searchContent, pageList); return pageList; } @@ -467,6 +471,10 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { if (StringUtils.isBlank(searchContent)) { return obj; } + if(StringUtils.isBlank(lawsHomeNormalSearchDTO.getStandardStateSet())){ + // 默认不包含 废止状态 + lawsHomeNormalSearchDTO.setStandardStateSet("1"); + } QueryWrapper queryWrapper = new QueryWrapper<>(); String[] text = searchContent.split(BLANK_SPACE); @@ -492,19 +500,19 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { switch (lawsHomeNormalSearchDTO.getResourceType()){ case LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD: - queryWrapper.ne("standard_state",7); + queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(),"1"),"standard_state",7); List list1 = lawsHomeSearchMapper.getCount1(queryWrapper); setDict(list1); count1(list1,obj); break; case LawsHomeSearchCommon.LAWS_OVERSEAS_STANDARD: - queryWrapper.ne("standard_state",7); + queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(),"1"),"standard_state",7); List list2 = lawsHomeSearchMapper.getCount2(queryWrapper); setDict(list2); count2(list2,obj); break; case LawsHomeSearchCommon.LAWS_ENTERPRISE_STANDARD: - queryWrapper.ne("standard_state",9); + queryWrapper.ne(Objects.equals(lawsHomeNormalSearchDTO.getStandardStateSet(),"1"),"standard_state",9); List list3 = lawsHomeSearchMapper.getCount3(queryWrapper); setDict(list3); count3(list3,obj); @@ -529,7 +537,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 标准状态 List list2 = addLawsHomeNormalSearchStatistics(list, ENTERPRISE_STANDARD_STATE, STANDARD_STATE); if(!CollectionUtils.isEmpty(list2)){ - list2.removeIf(o->Objects.equals(o.getItemValue(),"9")); obj.setEnterpriseStandardState(list2); } // 标准等级分类 @@ -553,7 +560,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 状态 List list3 = addLawsHomeNormalSearchStatistics(list, STANDARD_STATE, STANDARD_STATE); if(!CollectionUtils.isEmpty(list3)){ - list3.removeIf(o->Objects.equals(o.getItemValue(),"7")); obj.setStandardState(list3); } } @@ -582,7 +588,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { // 状态 List list5 = addLawsHomeNormalSearchStatistics(list,STANDARD_STATE, STANDARD_STATE); if(!CollectionUtils.isEmpty(list5)){ - list5.removeIf(o->Objects.equals(o.getItemValue(),"7")); obj.setStandardState(list5); } } @@ -635,6 +640,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { return new Page<>(pageNo, pageSize); } + Map mapDict = new HashMap<>(); if(!StringUtils.isBlank(homeNormalSearchDTO.getStandardClass())){ mapDict.put(STANDARD_CLASS,homeNormalSearchDTO.getStandardClass()); @@ -697,6 +703,16 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { JSONObject jsonObjectShould = getJsonObject(loginUser); queryMapJsonDict.add(jsonObjectShould); + 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,")); + JSONObject jsonObject = jeroElasticsearchTemplate.buildBoolQuery(null, null, query); + queryMapJsonDict.add(jsonObject); + } + if(CollectionUtils.isNotEmpty(queryMapJsonDict)){ jsonAll.put("must",queryMapJsonDict); JSONObject all = new JSONObject(); @@ -744,6 +760,27 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { return page; } + 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); + JSONObject match11 = new JSONObject(); + JSONObject match12 = new JSONObject(); + 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); + return json2; + } + private void addSearchContent(String searchContent, JSONArray queryMapJson) { String[] searchContentArr = searchContent.split(BLANK_SPACE); for (String s : searchContentArr) { @@ -958,6 +995,16 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(null,null,queryMapJson); queryAll.add(object); } + + 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,")); + JSONObject object = jeroElasticsearchTemplate.buildBoolQuery(null, null, query); + queryAll.add(object); + } LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); JSONObject object = getJsonObject(loginUser); queryAll.add(object); @@ -1101,10 +1148,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { while (startIndex < listIds.size()) { int endIndex = getEndIndex(startIndex, batchCount, listIds); List listIdsSub = listIds.subList(startIndex, endIndex); - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.in(LawsDomesticStandard::getId,listIdsSub); - query.ne(LawsDomesticStandard::getStandardState,"7"); - List listLawsDomesticStandard = lawsDomesticStandardService.list(query); + List listLawsDomesticStandard = lawsDomesticStandardService.listByIds(listIdsSub); if(CollectionUtils.isEmpty(listLawsDomesticStandard)){ continue; } @@ -1216,10 +1260,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { while (startIndex < listIds.size()) { int endIndex = getEndIndex(startIndex, batchCount, listIds); List listIdsSub = listIds.subList(startIndex, endIndex); - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.in(LawsOverseasStandard::getId,listIdsSub); - query.ne(LawsOverseasStandard::getStandardState,"7"); - List listLawsOverseasStandard = lawsOverseasStandardService.list(query); + List listLawsOverseasStandard = lawsOverseasStandardService.listByIds(listIdsSub); if(CollectionUtils.isEmpty(listLawsOverseasStandard)){ continue; } @@ -1303,10 +1344,7 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { while (startIndex < listIds.size()) { int endIndex = getEndIndex(startIndex, batchCount, listIds); List listIdsSub = listIds.subList(startIndex, endIndex); - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.in(LawsEnterpriseStandard::getId,listIdsSub); - query.ne(LawsEnterpriseStandard::getStandardState,"9"); - List listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(query); + List listLawsEnterpriseStandard = lawsEnterpriseStandardService.listByIds(listIdsSub); if(CollectionUtils.isEmpty(listLawsEnterpriseStandard)){ continue; } @@ -1375,7 +1413,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService { int startIndex = 0; int batchCount = 2000; List listIds = Arrays.asList(ids.split(",")); - ForkJoinPool pool = new ForkJoinPool(); // 异步执行 while (startIndex < listIds.size()) { int endIndex = getEndIndex(startIndex, batchCount, listIds);