Commit 36b798e9 authored by tianyiming's avatar tianyiming

feat: 大屏总览——一物一赋码二级弹窗接口修改

parent 786fd6eb
...@@ -70,6 +70,11 @@ public class DPFilterParamForDetailDto { ...@@ -70,6 +70,11 @@ public class DPFilterParamForDetailDto {
private String superviseUnitName; private String superviseUnitName;
/** /**
* 监管单位名称(接收单位/管辖机构)
*/
private String orgBranchCode;
/**
* 企业单位名称(发起单位/使用单位) * 企业单位名称(发起单位/使用单位)
*/ */
private String companyName; private String companyName;
......
...@@ -14,7 +14,6 @@ import org.apache.commons.lang3.StringUtils; ...@@ -14,7 +14,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.queryparser.classic.QueryParser;
import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.ShardSearchFailure;
import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.core.CountRequest; import org.elasticsearch.client.core.CountRequest;
...@@ -28,13 +27,14 @@ import org.springframework.data.domain.PageRequest; ...@@ -28,13 +27,14 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery; import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder; import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -51,6 +51,8 @@ public class EquipmentStaticsServiceImpl { ...@@ -51,6 +51,8 @@ public class EquipmentStaticsServiceImpl {
private static final String EQUSTATE = "EQU_STATE"; private static final String EQUSTATE = "EQU_STATE";
private static final String SUPERVISORYCODE = "SUPERVISORY_CODE"; private static final String SUPERVISORYCODE = "SUPERVISORY_CODE";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@Resource @Resource
private SafetyProblemTracingMapper safetyProblemTracingMapper; private SafetyProblemTracingMapper safetyProblemTracingMapper;
...@@ -297,15 +299,21 @@ public class EquipmentStaticsServiceImpl { ...@@ -297,15 +299,21 @@ public class EquipmentStaticsServiceImpl {
public Page<Map<String, Object>> normalPage(Integer current, Integer size, DPFilterParamForDetailDto dpFilterParamForDetailDto) { public Page<Map<String, Object>> normalPage(Integer current, Integer size, DPFilterParamForDetailDto dpFilterParamForDetailDto) {
String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode()); String orgCode = stCommonService.getAndSetOrgCode(dpFilterParamForDetailDto.getCityCode());
if(dpFilterParamForDetailDto.getOrgBranchCode() != null){
if(dpFilterParamForDetailDto.getOrgBranchCode().contains("_")){
String code = dpFilterParamForDetailDto.getOrgBranchCode().split("_")[0];
orgCode = stCommonService.getAndSetOrgCode(code);
}
}
if(StringUtils.isEmpty(orgCode)){ if(StringUtils.isEmpty(orgCode)){
return new Page<>(current,size); return new Page<>(current,size);
} }
SearchRequest request = new SearchRequest(); SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all"); request.indices("idx_biz_equipment_info");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolMust = QueryBuilders.boolQuery(); BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
// 按照管辖机构区域信息模糊查询 // 按照管辖机构区域信息模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(orgCode) + "*")); boolMust.must(QueryBuilders.prefixQuery("ORG_BRANCH_CODE", orgCode ));
if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getTreeValue())) { if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getTreeValue())) {
if ("2300".equals(dpFilterParamForDetailDto.getTreeValue())){ if ("2300".equals(dpFilterParamForDetailDto.getTreeValue())){
...@@ -315,30 +323,22 @@ public class EquipmentStaticsServiceImpl { ...@@ -315,30 +323,22 @@ public class EquipmentStaticsServiceImpl {
} }
} }
// 且8大类,目的去掉脏数据 // 且8大类,目的去掉脏数据
boolMust.must(QueryBuilders.termsQuery("EQU_LIST_CODE", StCommonServiceImpl.getEquipmentCategory().stream().map(EquipmentCategoryDto::getCode).collect(Collectors.toList()))); // boolMust.must(QueryBuilders.termsQuery("EQU_LIST_CODE", StCommonServiceImpl.getEquipmentCategory().stream().map(EquipmentCategoryDto::getCode).collect(Collectors.toList())));
String[] status = {"草稿","已拒领","待认领"}; String[] status = {"草稿","已拒领","待认领"};
boolMust.mustNot(QueryBuilders.termsQuery("STATUS",Arrays.asList(status))); boolMust.mustNot(QueryBuilders.termsQuery("STATUS",Arrays.asList(status)));
//检验状态0临期1超期 //检验状态0临期1超期
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getInspectionStatus())){ if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getInspectionStatus())) {
if(StringUtils.equals("0",dpFilterParamForDetailDto.getInspectionStatus())){ if (StringUtils.equals("0", dpFilterParamForDetailDto.getInspectionStatus())) {
// 且下次检验日期大于等于当天 且查询 下次检验日期 <= 当前天+30天 即为临期 boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(LocalDate.now().format(formatter)).lte(LocalDate.now().plusDays(30).format(formatter)));
long currentDayTime = DateUtil.parse(DateUtil.today(), "yyy-MM-dd").getTime(); } else {
long currentDayAfter30DayTime = DateUtil.offsetDay(DateUtil.parse(DateUtil.today(), "yyy-MM-dd"), 30).getTime(); boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").lt(LocalDate.now().format(formatter)));
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(currentDayTime).lte(currentDayAfter30DayTime));
}else{
// 查询下次检验日期小于当前天的设备,即为超期检验超期设备
List<String> typeList = new ArrayList<>();
typeList.add("维保超期");
typeList.add("检验超期");
List<String> sourceIds = safetyProblemTracingMapper.getSourceId(orgCode,typeList);
boolMust.must(QueryBuilders.termsQuery("SEQUENCE_NBR.keyword",sourceIds));
} }
} }
/** /**
* 使用单位 * 使用单位
*/ */
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUseUnitName())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUseUnitName())){
boolMust.must(QueryBuilders.matchPhraseQuery("USE_UNIT_NAME", "*" + dpFilterParamForDetailDto.getUseUnitName() + "*")); boolMust.must(QueryBuilders.wildcardQuery("USE_UNIT_NAME", "*" + dpFilterParamForDetailDto.getUseUnitName() + "*"));
} }
/** /**
* 使用登记编号 * 使用登记编号
...@@ -350,50 +350,51 @@ public class EquipmentStaticsServiceImpl { ...@@ -350,50 +350,51 @@ public class EquipmentStaticsServiceImpl {
* 96333 * 96333
*/ */
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getCode96333())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getCode96333())){
boolMust.must(QueryBuilders.matchPhraseQuery("CODE96333", "*" + dpFilterParamForDetailDto.getCode96333() + "*")); boolMust.must(QueryBuilders.wildcardQuery("CODE96333", "*" + dpFilterParamForDetailDto.getCode96333() + "*"));
} }
/** /**
* 监管码 * 监管码
*/ */
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getSupervisoryCode())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getSupervisoryCode())){
boolMust.must(QueryBuilders.matchPhraseQuery("SUPERVISORY_CODE", "*" + dpFilterParamForDetailDto.getSupervisoryCode() + "*")); boolMust.must(QueryBuilders.wildcardQuery("SUPERVISORY_CODE", "*" + dpFilterParamForDetailDto.getSupervisoryCode() + "*"));
} }
/** /**
* 所属地区 * 所属地区
*/ */
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUsePlace())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getUsePlace())){
boolMust.must(QueryBuilders.matchPhraseQuery("USE_PLACE", "*" + dpFilterParamForDetailDto.getUsePlace() + "*")); boolMust.must(QueryBuilders.wildcardQuery("USE_PLACE", "*" + dpFilterParamForDetailDto.getUsePlace() + "*"));
} }
/** /**
* 设备状态 * 设备状态
*/ */
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getEquState())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getEquState())){
boolMust.must(QueryBuilders.matchPhraseQuery("EQU_STATE", dpFilterParamForDetailDto.getEquState())); boolMust.must(QueryBuilders.matchPhraseQuery("EQU_STATE", EquimentEnum.getCode.get(dpFilterParamForDetailDto.getEquState())));
} }
/** /**
* 信息化 * 信息化
*/ */
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getInformationSituation())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getInformationSituation())){
boolMust.must(QueryBuilders.matchPhraseQuery("INFORMATION_SITUATION","*" + dpFilterParamForDetailDto.getInformationSituation() + "*")); boolMust.must(QueryBuilders.matchQuery("INFORMATION_SITUATION", dpFilterParamForDetailDto.getInformationSituation()));
} }
/** /**
* 设备类别 * 设备类别
*/ */
if(StrUtil.isNotEmpty(dpFilterParamForDetailDto.getEquCategory())){ if(StrUtil.isNotEmpty(dpFilterParamForDetailDto.getEquCategory())){
boolMust.must(QueryBuilders.matchPhraseQuery("EQU_CATEGORY", "*" + dpFilterParamForDetailDto.getEquCategory() + "*")); boolMust.must(QueryBuilders.wildcardQuery("EQU_CATEGORY", "*" + dpFilterParamForDetailDto.getEquCategory() + "*"));
} }
//监管码状态0已赋码1未赋码 //监管码状态0已赋码1未赋码
if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getSupervisionCodeStatus())){ if (StringUtils.isNotEmpty(dpFilterParamForDetailDto.getSupervisionCodeStatus())) {
if(StringUtils.equals("0",dpFilterParamForDetailDto.getSupervisionCodeStatus())){ if (StringUtils.equals("0", dpFilterParamForDetailDto.getSupervisionCodeStatus())) {
boolMust.must(QueryBuilders.existsQuery("SUPERVISORY_CODE")); boolMust.must(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
boolMust.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE","null")); boolMust.mustNot(QueryBuilders.termQuery("SUPERVISORY_CODE", "null"));
}else{ } else {
boolMust.mustNot(QueryBuilders.existsQuery("SUPERVISORY_CODE")); boolMust.mustNot(QueryBuilders.existsQuery("SUPERVISORY_CODE"));
} }
} }
if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getNextInspectionDate())){ if(StringUtils.isNotEmpty(dpFilterParamForDetailDto.getNextInspectionDate())){
boolMust.must(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(DateUtil.parse(dpFilterParamForDetailDto.getNextInspectionDate()).getTime())); String[] timeArray = dpFilterParamForDetailDto.getNextInspectionDate().split(",");
boolMust.filter(QueryBuilders.rangeQuery("NEXT_INSPECT_DATE").gte(timeArray[0]).lte(timeArray[1]));
} }
searchSourceBuilder.query(boolMust); searchSourceBuilder.query(boolMust);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment