修改ABNDATA 异常数据结构。去除单独的body为key 根据type类型增加不同的key

This commit is contained in:
zhouxiunai
2019-04-28 12:05:11 +08:00
parent ad301e6a4f
commit dc2dbad99d
6 changed files with 54 additions and 20 deletions
@@ -1,5 +1,7 @@
package com.gzzn.omms.msgexchangeapi.entity.msg; package com.gzzn.omms.msgexchangeapi.entity.msg;
import java.util.List;
import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlElement;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
@@ -8,10 +10,22 @@ public class ABNDATA {
@XmlElement(name = "TYPE", required = true) @XmlElement(name = "TYPE", required = true)
@JsonProperty("TYPE") @JsonProperty("TYPE")
protected ABNORMALTYPE type; protected ABNORMALTYPE type;
@XmlElement(name = "CNCL")
@JsonProperty("CNCL")
protected String cncl;//航班取消异常信息
@XmlElement(name = "BODY") @XmlElement(name = "DELY")
@JsonProperty("BODY") @JsonProperty("DELY")
protected Object body;//可变类型,根据Type 变化 protected List<OPTDELAYDATA> dely;//航班延误异常信息
@XmlElement(name = "FDIV")
@JsonProperty("FDIV")
protected DIVERSIONDATA fdiv;//航班备降延误异常信息
@XmlElement(name = "FRET")
@JsonProperty("FRET")
protected RETURNDATA fret;//航班返航异常信息
public ABNORMALTYPE getType() { public ABNORMALTYPE getType() {
return type; return type;
@@ -21,11 +35,36 @@ public class ABNDATA {
this.type = type; this.type = type;
} }
public Object getBody() {
return body; public String getCncl() {
return cncl;
} }
public void setBody(Object body) { public void setCncl(String cncl) {
this.body = body; this.cncl = cncl;
}
public List<OPTDELAYDATA> getDely() {
return dely;
}
public void setDely(List<OPTDELAYDATA> dely) {
this.dely = dely;
}
public DIVERSIONDATA getFdiv() {
return fdiv;
}
public void setFdiv(DIVERSIONDATA fdiv) {
this.fdiv = fdiv;
}
public RETURNDATA getFret() {
return fret;
}
public void setFret(RETURNDATA fret) {
this.fret = fret;
} }
} }
@@ -36,7 +36,7 @@ public class CNCLHandler extends FlopBaseHandler {
// //
ABNDATA abndata = new ABNDATA(); ABNDATA abndata = new ABNDATA();
abndata.setType(ABNORMALTYPE.CAN); abndata.setType(ABNORMALTYPE.CAN);
abndata.setBody(flop.getCNCL()); abndata.setCncl(flop.getCNCL());
fltr.getAbn().add(abndata); fltr.getAbn().add(abndata);
@@ -62,7 +62,7 @@ public class DELYHandler extends FlopBaseHandler {
//DELY 作为一个abn元素,元素类型为 数组 //DELY 作为一个abn元素,元素类型为 数组
ABNDATA abndata = new ABNDATA(); ABNDATA abndata = new ABNDATA();
abndata.setType(ABNORMALTYPE.DLY); abndata.setType(ABNORMALTYPE.DLY);
abndata.setBody(flop.getDELY()); abndata.setDely(flop.getDELY());
fltr.getAbn().add(abndata); fltr.getAbn().add(abndata);
return fltr; return fltr;
@@ -43,7 +43,7 @@ public class FDIVHandler extends FlopBaseHandler {
// //
ABNDATA abndata = new ABNDATA(); ABNDATA abndata = new ABNDATA();
abndata.setType(ABNORMALTYPE.ALT); abndata.setType(ABNORMALTYPE.ALT);
abndata.setBody(diversionData); abndata.setFdiv(diversionData);
fltr.getAbn().add(abndata); fltr.getAbn().add(abndata);
@@ -32,7 +32,7 @@ public class FRETHandler extends FlopBaseHandler {
// //
ABNDATA abndata = new ABNDATA(); ABNDATA abndata = new ABNDATA();
abndata.setType(ABNORMALTYPE.RTN); abndata.setType(ABNORMALTYPE.RTN);
abndata.setBody(flop.getFRET()); abndata.setFret(flop.getFRET());
fltr.getAbn().add(abndata); fltr.getAbn().add(abndata);
@@ -125,8 +125,8 @@ public class FlightHisServiceImpl {
/** /**
* 保存航班历史到ELK * 保存航班历史到ELK
* @param fltrs * @param fltrs 航班动态列表
* @return 成功保存的航班动态 * @return 成功保存的航班动态列表
*/ */
public List<FLTR> save(List<FLTR> fltrs) public List<FLTR> save(List<FLTR> fltrs)
{ {
@@ -134,18 +134,13 @@ public class FlightHisServiceImpl {
for(FLTR fltr : fltrs){ for(FLTR fltr : fltrs){
try { try {
//先转换航班信息为可存储到es 中的fltr dto 对象
FltrEsDto fltrEsDto = fltrConvert.FltrToFltrEsDto(fltr);
JSONObject jsondata = JSONObject.parseObject(JsonUtil.getString(fltrEsDto));
//判断是否已经拥有该历史数据 因es类型原因请注意类型转换
String SODT = fltr.getSODT(); String SODT = fltr.getSODT();
Long FLID = fltr.getFLID().longValue(); Long FLID = fltr.getFLID().longValue();
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery() BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("SODT",SODT)) .must(QueryBuilders.termQuery("SODT",SODT))
.must(QueryBuilders.termQuery("FLID",FLID)); .must(QueryBuilders.termQuery("FLID",FLID));
List<Map<String, Object>> listInEs = ElasticsearchUtil.searchListData(INDEX_NAME, ES_TYPE, boolQuery, null, "FLID", null, null, null); List<Map<String, Object>> listInEs = ElasticsearchUtil.searchListData(INDEX_NAME, ES_TYPE, boolQuery, null, "FLID", null, null, null);
JSONObject jsondata = JSONObject.parseObject(JsonUtil.getString(fltr));
if(!CollectionUtils.isEmpty(listInEs)){ if(!CollectionUtils.isEmpty(listInEs)){
//更新 //更新