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

elasticsearch中排除过滤空指针

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