修改标准状态设置查询

This commit is contained in:
梁琦涛
2024-03-21 14:11:39 +08:00
parent 5968e6a4fe
commit 23edc0d888
5 changed files with 81 additions and 33 deletions
@@ -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 (全部传空)
*/
@@ -103,9 +103,7 @@ public class HomeSearchCheckEsPlanJob implements Job {
}
private void checkLawsEnterpriseStandard(String resourceType, Map<String, Integer> mapHash) {
LambdaQueryWrapper<LawsEnterpriseStandard> query = new LambdaQueryWrapper<>();
query.ne(LawsEnterpriseStandard::getStandardState,"9");
List<LawsEnterpriseStandard> listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(query);
List<LawsEnterpriseStandard> 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<String, Integer> mapHash) {
LambdaQueryWrapper<LawsOverseasStandard> query = new LambdaQueryWrapper<>();
query.ne(LawsOverseasStandard::getStandardState,"7");
List<LawsOverseasStandard> listLawsOverseasStandard = lawsOverseasStandardService.list(query);
List<LawsOverseasStandard> 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<String, Integer> mapHash) {
LambdaQueryWrapper<LawsDomesticStandard> query = new LambdaQueryWrapper<>();
query.ne(LawsDomesticStandard::getStandardState,"7");
List<LawsDomesticStandard> listLawsDomesticStandard = lawsDomesticStandardService.list(query);
List<LawsDomesticStandard> listLawsDomesticStandard = lawsDomesticStandardService.list();
// 比对数据
int count1 = mapHash.getOrDefault(LawsHomeSearchCommon.LAWS_DOMESTIC_STANDARD, 0);
int m1 = 0;
@@ -29,9 +29,12 @@ public interface LawsHomeSearchMapper extends BaseMapper<LawsHomeNormalSearchHis
* @param page
* @param queryWrapper
* @param userId
* @param standardStateSet
* @return com.baomidou.mybatisplus.core.metadata.IPage<com.jero.modules.laws.home.vo.LawsHomeNormalSearchVO>
*/
IPage<LawsHomeNormalSearchVO> getPage(Page<LawsHomeNormalSearchVO> page,@Param(Constants.WRAPPER) QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,@Param("userId") String userId);
IPage<LawsHomeNormalSearchVO> getPage(Page<LawsHomeNormalSearchVO> page,
@Param(Constants.WRAPPER) QueryWrapper<LawsHomeNormalSearchDTO> queryWrapper,
@Param("userId") String userId,@Param("standardStateSet") String standardStateSet);
/**
* 首页-一般检索(标题)查询国内标准
@@ -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
<if test="standardStateSet == 1">
and standard_state != 7
</if>
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
<if test="standardStateSet == 1">
and standard_state != 7
</if>
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
<if test="standardStateSet == 1">
and standard_state != 9
</if>
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,
@@ -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<LawsHomeNormalSearchDTO> queryWrapper = getQueryWrapperNormal(lawsHomeNormalSearchDTO);
Page<LawsHomeNormalSearchVO> page = new Page<>(pageNo, pageSize);
IPage<LawsHomeNormalSearchVO> pageList = lawsHomeSearchMapper.getPage(page,queryWrapper,loginUser.getId());
IPage<LawsHomeNormalSearchVO> 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<LawsHomeNormalSearchDTO> 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<LawsHomeNormalSearchCountVO> 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<LawsHomeNormalSearchCountVO> 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<LawsHomeNormalSearchCountVO> list3 = lawsHomeSearchMapper.getCount3(queryWrapper);
setDict(list3);
count3(list3,obj);
@@ -529,7 +537,6 @@ public class LawsHomeSearchServiceImpl implements ILawsHomeSearchService {
// 标准状态
List<LawsHomeNormalSearchStatisticsObjVO> 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<LawsHomeNormalSearchStatisticsObjVO> 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<LawsHomeNormalSearchStatisticsObjVO> 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<String,String> 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<String,String> map11 = new HashMap<>();
Map<String,String> 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<String> listIdsSub = listIds.subList(startIndex, endIndex);
LambdaQueryWrapper<LawsDomesticStandard> query = new LambdaQueryWrapper<>();
query.in(LawsDomesticStandard::getId,listIdsSub);
query.ne(LawsDomesticStandard::getStandardState,"7");
List<LawsDomesticStandard> listLawsDomesticStandard = lawsDomesticStandardService.list(query);
List<LawsDomesticStandard> 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<String> listIdsSub = listIds.subList(startIndex, endIndex);
LambdaQueryWrapper<LawsOverseasStandard> query = new LambdaQueryWrapper<>();
query.in(LawsOverseasStandard::getId,listIdsSub);
query.ne(LawsOverseasStandard::getStandardState,"7");
List<LawsOverseasStandard> listLawsOverseasStandard = lawsOverseasStandardService.list(query);
List<LawsOverseasStandard> 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<String> listIdsSub = listIds.subList(startIndex, endIndex);
LambdaQueryWrapper<LawsEnterpriseStandard> query = new LambdaQueryWrapper<>();
query.in(LawsEnterpriseStandard::getId,listIdsSub);
query.ne(LawsEnterpriseStandard::getStandardState,"9");
List<LawsEnterpriseStandard> listLawsEnterpriseStandard = lawsEnterpriseStandardService.list(query);
List<LawsEnterpriseStandard> 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<String> listIds = Arrays.asList(ids.split(","));
ForkJoinPool pool = new ForkJoinPool();
// 异步执行
while (startIndex < listIds.size()) {
int endIndex = getEndIndex(startIndex, batchCount, listIds);