提交 9c6e0a74 authored 作者: 董吉利's avatar 董吉利

elasticsearch中排除过滤空指针

上级 362c8aad
......@@ -104,8 +104,11 @@ public class EsUtil_fanshe {
public static String getMaxYear(SearchRequestBuilder searchRequestBuilder) {
SearchResponse responseStart = searchRequestBuilder.get();
SearchHit[] hitsStart = responseStart.getHits().getHits();
String maxYear = hitsStart[0].getSourceAsMap().get("year").toString();
System.out.println(maxYear);
String maxYear="";
if(hitsStart.length>0) {
maxYear = hitsStart[0].getSourceAsMap().get("year").toString();
System.out.println(maxYear);
}
return maxYear;
}
/*
......@@ -633,7 +636,7 @@ public class EsUtil_fanshe {
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
//LuKeHighWay luKeHighWay = new LuKeHighWay();
//获取该类在堆区的Class对象
Class<?> clazz = Class.forName("com.pinxiang.domain.BaseRoadToll_String");
Class<?> clazz = Class.forName("com.elephant.framework.galaxy.aroad.bigdata.BaseRoadToll_String");
//获取私有的构造方法
Constructor<?> constructor = clazz.getDeclaredConstructor();
//暴力破解
......@@ -735,7 +738,7 @@ public class EsUtil_fanshe {
Map<String, Object> sourceAsMap = hit.getSourceAsMap();
//LuKeHighWay luKeHighWay = new LuKeHighWay();
//获取该类在堆区的Class对象
Class<?> clazz = Class.forName("com.pinxiang.domain.BaseHighWayService");
Class<?> clazz = Class.forName("com.elephant.framework.galaxy.aroad.bigdata.BaseHighWayService");
//获取私有的构造方法
Constructor<?> constructor = clazz.getDeclaredConstructor();
//暴力破解
......@@ -828,29 +831,37 @@ public class EsUtil_fanshe {
*/
public static Map<String, Object> queryBridge(String keyword, String index, int start, int row) throws Exception {
SearchRequestBuilder searchRequestBuilder = getClient().prepareSearch(index).setTypes("aroad").setFrom(start).setSize(row);
String maxYear="";
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
BoolQueryBuilder boolQueryBuilderStart = QueryBuilders.boolQuery()
.must(QueryBuilders.multiMatchQuery(keyword, "qiaoliangmingcheng", "qiaoliangdaima"))
.mustNot(QueryBuilders.matchPhraseQuery("jishudengji", "高速"));
searchRequestBuilder.setQuery(boolQueryBuilderStart).addSort("year", SortOrder.DESC);
String maxYear = getMaxYear(searchRequestBuilder);
maxYear = getMaxYear(searchRequestBuilder);
}
// 搜索数据
//isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length> 0(去掉字符串两端的多余的空格的长度)
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword)) {
List<Basebridgealldata> basebridgealldataList = new ArrayList<>();
long totalHits=0;
if (org.apache.commons.lang.StringUtils.isNotBlank(keyword) && maxYear!=null && !"".equals(maxYear)) {
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.multiMatchQuery(keyword, "qiaoliangmingcheng", "qiaoliangdaima"))
.must(QueryBuilders.matchPhraseQuery("year",maxYear))
.mustNot(QueryBuilders.matchPhraseQuery("jishudengji", "高速"));
searchRequestBuilder.setQuery(boolQueryBuilder);
String[] bridgeNames = getbridgeNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
getBaseBridgeDataList(bridgeNames, hits, basebridgealldataList);
totalHits = hits.getTotalHits();
}else {
return null;
}
String[] bridgeNames = getbridgeNames();
SearchResponse response = searchRequestBuilder.get();
//获取命中次数,查询结果有多少对象
SearchHits hits = response.getHits();
List<Basebridgealldata> basebridgealldataList = new ArrayList<>();
getBaseBridgeDataList(bridgeNames, hits, basebridgealldataList);
long finalTotalHits = totalHits;
return new HashMap<String, Object>() {{
put("total", hits.getTotalHits());
put("total", finalTotalHits);
put("list", basebridgealldataList);
}};
}
......
......@@ -29,7 +29,7 @@ import java.util.Map;
public class SzglController {
@Value("${shape.identify-url}")
private final String identify = "";
private final String identify = "";
private final BaseindexdataService baseindexdataService;
private final RoadConditionEventService eventService;
private final SzglService szglService;
......@@ -40,13 +40,13 @@ public class SzglController {
* @Param keyword 搜索条件
*/
@GetMapping("/bigdata")
public R getBigData(String type,String keyword, Page page) throws Exception {
public R getBigData(String type, String keyword, Page page) throws Exception {
List<Map<String, Object>> responseList = new ArrayList<>();
long total = 0;
switch (type) {
case "路线":
Baseindexdata lx = baseindexdataService.selectLatesByTableName("basehighwayalldata");
Map<String, Object> lukehighways = EsUtil_fanshe.queryHighWay(keyword, "basehighwayalldata", lx.getIndexType(), (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
Map<String, Object> lukehighways = EsUtil_fanshe.queryHighWay(keyword, "basehighwayalldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
for (Basehighwayalldata basehighwayalldata : (List<Basehighwayalldata>) lukehighways.get("list")) {
responseList.add(new HashMap<String, Object>() {{
put("name", basehighwayalldata.getLuxianmingcheng());
......@@ -61,7 +61,7 @@ public class SzglController {
break;
case "桥梁":
Baseindexdata ql = baseindexdataService.selectLatesByTableName("basebridgealldata");
Map<String, Object> luKeBridges = EsUtil_fanshe.queryBridge(keyword, "basebridgealldata", ql.getIndexType(), (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
Map<String, Object> luKeBridges = EsUtil_fanshe.queryBridge(keyword, "basebridgealldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
for (Basebridgealldata lnKeBridge : (List<Basebridgealldata>) luKeBridges.get("list")) {
responseList.add(new HashMap<String, Object>() {{
put("name", lnKeBridge.getQiaoliangmingcheng());
......@@ -74,7 +74,7 @@ public class SzglController {
break;
case "隧道":
Baseindexdata sd = baseindexdataService.selectLatesByTableName("basetunnelalldata");
Map<String, Object> basicTunnels = EsUtil_fanshe.queryTunnel(keyword, "basetunnelalldata", sd.getIndexType(), (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
Map<String, Object> basicTunnels = EsUtil_fanshe.queryTunnel(keyword, "basetunnelalldata", (int) ((page.getCurrent() - 1) * page.getSize()), (int) page.getSize());
for (Basetunnelalldata basicTunnel : (List<Basetunnelalldata>) basicTunnels.get("list")) {
responseList.add(new HashMap<String, Object>() {{
put("name", basicTunnel.getSuidaomingcheng());
......@@ -166,7 +166,7 @@ public class SzglController {
row = (int) (page.getSize());
}
Baseindexdata data = baseindexdataService.selectLatesByTableName("basetunnelalldata");
List<Basetunnelalldata> sdList = EsUtil_fanshe.queryTunnelAll("basetunnelalldata", data.getIndexType(), start, row);
List<Basetunnelalldata> sdList = EsUtil_fanshe.queryTunnelAll("basetunnelalldata", start, row);
return new R(sdList);
}
......@@ -186,7 +186,7 @@ public class SzglController {
}
Baseindexdata data = baseindexdataService.selectLatesByTableName("basehighwayservice");
List<BaseHighWayService> fwqList = EsUtil_fanshe.queryBaseHighWayServiceAll("basehighwayservice", data.getIndexType(), start, row);
List<BaseHighWayService> fwqList = EsUtil_fanshe.queryBaseHighWayServiceAll("basehighwayservice", start, row);
return new R(fwqList);
}
......@@ -204,7 +204,7 @@ public class SzglController {
row = (int) (page.getSize());
}
Baseindexdata data = baseindexdataService.selectLatesByTableName("baseroadtolldata");
List<BaseRoadToll_String> sfzList = EsUtil_fanshe.queryBaseRoadTollStringAll("baseroadtolldata", data.getIndexType(), start, row);
List<BaseRoadToll_String> sfzList = EsUtil_fanshe.queryBaseRoadTollStringAll("baseroadtolldata",start, row);
return new R(sfzList);
}
......@@ -232,14 +232,14 @@ public class SzglController {
String mm = StringEscapeUtils.unescapeJava(text);
JSONObject object = JSONObject.parseObject(mm);
Line line = object.toJavaObject(Line.class);
List<Basehighwayalldata> lines = EsUtil_fanshe.queryHighWayFiler(line.getCode(), line.getM(),"basehighwayalldata", road.getIndexType());
List<Basehighwayalldata> lines = EsUtil_fanshe.queryHighWayFiler(line.getCode(), line.getM(), "basehighwayalldata");
if (lines != null && lines.size() > 0) {
lx = lines.get(0);
}
}
Map<String,Object> resultMap = new HashMap<String, Object>();
if(lx != null){
Map<String, Object> resultMap = new HashMap<String, Object>();
if (lx != null) {
resultMap.put("name", lx.getLuxianmingcheng());
resultMap.put("code", lx.getLuxianbianhao());
resultMap.put("iden", "luxian");
......@@ -249,51 +249,57 @@ public class SzglController {
}
return new R(resultMap);
}
/**
* 根据路线编号、中心桩号 查询路况事件
*
* @param lxbh
* @param zxzh
* @return
*/
@GetMapping("/getLksjForQS/{lxbh}/{zxzh}")
public R getLksjForQS(@PathVariable String lxbh, @PathVariable String zxzh){
return new R(eventService.getLksjForQS(lxbh,Double.valueOf(zxzh)));
public R getLksjForQS(@PathVariable String lxbh, @PathVariable String zxzh) {
return new R(eventService.getLksjForQS(lxbh, Double.valueOf(zxzh)));
}
/**
* 根据路线编号、起点桩号、止点桩号查询建养历史a
*
* @param lxbh
* @param qdzh
* @param zdzh
* @return
*/
@GetMapping("/getJYlsForRoad/{lxbh}/{qdzh}/{zdzh}")
public R getJYlsForRoad(@PathVariable String lxbh, @PathVariable String qdzh,@PathVariable String zdzh){
return new R(szglService.getJYlsForRoad(lxbh,Double.valueOf(qdzh),Double.valueOf(qdzh)));
public R getJYlsForRoad(@PathVariable String lxbh, @PathVariable String qdzh, @PathVariable String zdzh) {
return new R(szglService.getJYlsForRoad(lxbh, Double.valueOf(qdzh), Double.valueOf(qdzh)));
}
/**
* 根据路线编号、中心桩号 查询路况事件
*
* @param lxbh
* @param zxzh
* @return
*/
@GetMapping("/getJYlsForQS/{lxbh}/{zxzh}")
public R getJYlsForQS(@PathVariable String lxbh, @PathVariable String zxzh){
return new R(szglService.getJYlsForQS(lxbh,Double.valueOf(zxzh)));
public R getJYlsForQS(@PathVariable String lxbh, @PathVariable String zxzh) {
return new R(szglService.getJYlsForQS(lxbh, Double.valueOf(zxzh)));
}
/**
* 根据路线起点桩号与止点桩号查询路况事件
*/
@GetMapping("/qzzhevent")
public R getQzZhEvent(@RequestParam("roadCode") String roadCode, @RequestParam("startM") String startM, @RequestParam("endM") String endM){
return new R<>(eventService.getQzdzhEvent(startM,endM,roadCode));
public R getQzZhEvent(@RequestParam("roadCode") String roadCode, @RequestParam("startM") String startM, @RequestParam("endM") String endM) {
return new R<>(eventService.getQzdzhEvent(startM, endM, roadCode));
}
/**
* 查询桥梁全部数据
*/
@GetMapping("/qlall")
public R getQlAll() throws Exception {
return new R<>(EsUtil_fanshe.queryBridgeAll("basebridgealldata","2018",0,20000));
return new R<>(EsUtil_fanshe.queryBridgeAll("basebridgealldata", 0, 20000));
}
}
\ No newline at end of file
......@@ -55,7 +55,7 @@ public class ZhjcPtgsdLwzsServiceImpl extends ServiceImpl<ZhjcPtgsdLwzsMapper, c
public List<Basehighwayalldata> getLinesByLxbh(String lxbh) {
List<Basehighwayalldata> lukehighways =null;
try {
lukehighways = EsUtil_fanshe.queryHighWayLXBH(lxbh, "basehighwayalldata", "2018", 0, 2000000000);
lukehighways = EsUtil_fanshe.queryHighWayLXBH(lxbh, "basehighwayalldata",0, 2000000000);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论