From 5498e937a47a76100031e09ae09c222583e57131 Mon Sep 17 00:00:00 2001 From: fanghongchao <601470458@qq.com> Date: Fri, 14 Dec 2018 11:06:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=8E=86=E5=8F=B2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../history/HistoryFlightDataController.java | 94 +- .../history/HistoryFilghtConditionDto.java | 141 +-- .../elasticsearch/ElasticsearchUtil.java | 8 +- .../gzzn/omms/adminapi/utils/DateUtils.java | 105 +- .../es/v0.0.1_20181213_hisPlaneDataDesc.json | 148 +++ .../v0.0.1_20181213_hisPlaneDataMapping.json | 994 ++++++++++++++++++ 6 files changed, 1321 insertions(+), 169 deletions(-) create mode 100644 src/main/resources/es/v0.0.1_20181213_hisPlaneDataDesc.json create mode 100644 src/main/resources/es/v0.0.1_20181213_hisPlaneDataMapping.json diff --git a/src/main/java/com/gzzn/omms/adminapi/controller/history/HistoryFlightDataController.java b/src/main/java/com/gzzn/omms/adminapi/controller/history/HistoryFlightDataController.java index d3694cf..32c6638 100644 --- a/src/main/java/com/gzzn/omms/adminapi/controller/history/HistoryFlightDataController.java +++ b/src/main/java/com/gzzn/omms/adminapi/controller/history/HistoryFlightDataController.java @@ -1,26 +1,23 @@ package com.gzzn.omms.adminapi.controller.history; -import java.util.HashMap; -import java.util.Map; - import io.swagger.annotations.ApiOperation; +import java.util.Date; +import java.util.List; +import java.util.Map; + import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.search.sort.SortOrder; import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.gzzn.omms.adminapi.dto.ResponseDto; import com.gzzn.omms.adminapi.dto.history.HistoryFilghtConditionDto; import com.gzzn.omms.adminapi.elasticsearch.ElasticsearchUtil; -import com.gzzn.omms.adminapi.elasticsearch.EsPage; import com.gzzn.omms.adminapi.utils.DateUtils; -import com.gzzn.omms.adminapi.utils.GzznFileUtils; /** * 历史航班数据 controller * @author fhc @@ -31,50 +28,61 @@ import com.gzzn.omms.adminapi.utils.GzznFileUtils; public class HistoryFlightDataController { /** - * 操作日志索引 + * 历史航班数据索引 */ - private final String INDEX_NAME = "airplant_hst"; + private final String INDEX_NAME = "flight_hts"; /** - * 操作日志类型 + * 历史航班数据类型 */ - private final String OPLOG_ES_TYPE = "_doc"; + private final String ES_TYPE = "_doc"; - @ApiOperation(value="获取历史航班数据",tags="历史航班数据") + @ApiOperation(value="获取历史航班数据(只提供计划时间的出发/到达时间段查询)",tags="历史航班数据") @PostMapping(value="/hitFlightData/list") - public ResponseDto findAllByGroupCode(@RequestBody HistoryFilghtConditionDto conditions) { - //TODO 修改 ElasticsearchUtil 进行分页查询 + public ResponseDto findAllByGroupCode(@RequestBody HistoryFilghtConditionDto conditions) { - Integer pageIndex = StringUtils.isEmpty(conditions.getPageIndex())?1:conditions.getPageIndex(); - Integer pageSize = StringUtils.isEmpty(conditions.getPageSize())?10:conditions.getPageSize(); - Long startTimeL = StringUtils.isEmpty(conditions.getStartTime())?DateUtils.getTodayStartTime():DateUtils.dateToStamp(conditions.getStartTime()+" 00:00:00","yyyy-MM-dd HH:mm:ss"); - Long endTimeL = StringUtils.isEmpty(conditions.getEndTime())?System.currentTimeMillis():DateUtils.dateToStamp(conditions.getEndTime()+" 23:59:59","yyyy-MM-dd HH:mm:ss"); + String startTime = StringUtils.isEmpty(conditions.getStartSODT())?null:DateUtils.swichTimeToEn_ddMMMyyHHmm(conditions.getStartSODT()); + String endTime = StringUtils.isEmpty(conditions.getEndSODT())?null:DateUtils.swichTimeToEn_ddMMMyyHHmm(conditions.getEndSODT()); + String MVIN = conditions.getMVIN();//到达/离港 BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(); - boolQuery.must(QueryBuilders.rangeQuery("log_datetime") - .gt(startTimeL).lt(endTimeL) - .includeLower(true).includeUpper(true)); -// if(!StringUtils.isEmpty(keyword)){ //使用模糊搜索 不使用分词 -// boolQuery.must(QueryBuilders.boolQuery() -// .should(QueryBuilders.wildcardQuery("summary", "*"+keyword+"*")) -// .should(QueryBuilders.wildcardQuery("real_name", "*"+keyword+"*")) -// .should(QueryBuilders.wildcardQuery("log_content", "*"+keyword+"*"))); -// } - - EsPage page = ElasticsearchUtil.searchDataPage(INDEX_NAME, OPLOG_ES_TYPE, pageIndex, pageSize, boolQuery, null, null, null); - return ResponseDto.success(page); + //获取前一天的历史数据 + String hitStartTime = DateUtils.getNewDateOfDayMixOrMaxTime(new Date(), "Day", -1, "MIN"); + String hitEndTime = DateUtils.getNewDateOfDayMixOrMaxTime(new Date(), "Day", -1, "MAX"); + boolQuery.must(QueryBuilders.rangeQuery("SODT") + .gte(hitStartTime).lte(hitEndTime)); + + if(!StringUtils.isEmpty(startTime) && !StringUtils.isEmpty(endTime)){ + boolQuery.must(QueryBuilders.rangeQuery("SODT") + .gte(startTime).lte(endTime)); + } + if(!StringUtils.isEmpty(startTime) && StringUtils.isEmpty(endTime)){ + boolQuery.must(QueryBuilders.rangeQuery("SODT") + .gte(startTime)); + } + if(StringUtils.isEmpty(startTime) && !StringUtils.isEmpty(endTime)){ + boolQuery.must(QueryBuilders.rangeQuery("SODT") + .lte(startTime)); + } + if(!StringUtils.isEmpty(MVIN)){ + boolQuery.must(QueryBuilders.termQuery("MVIN", MVIN)); + } + String sortField = "SODT";//计划时间 默认倒序 + SortOrder sortOrder = SortOrder.ASC; + List> list = ElasticsearchUtil.searchListData(INDEX_NAME, ES_TYPE, boolQuery, null, null, sortField,sortOrder, null); + return ResponseDto.success(list); } - @RequestMapping(value="/findTest/{log_type}",method = RequestMethod.GET) - public ResponseDto findTest(@PathVariable String log_type){ - //获取查询条件script - String script = GzznFileUtils.getFileContent("/es/findTest.query"); - //封装参数 分页等参数全都放入此处 - Map params = new HashMap(); - params.put("log_type", log_type); - params.put("from", 1); - params.put("size", 10); - //执行查询 - return ResponseDto.success(ElasticsearchUtil.searchDataPageByScript(INDEX_NAME, params, script,1,10)); - } +// @RequestMapping(value="/findTest/{log_type}",method = RequestMethod.GET) +// public ResponseDto findTest(@PathVariable String log_type){ +// //获取查询条件script +// String script = GzznFileUtils.getFileContent("/es/findTest.query"); +// //封装参数 分页等参数全都放入此处 +// Map params = new HashMap(); +// params.put("log_type", log_type); +// params.put("from", 1); +// params.put("size", 10); +// //执行查询 +// return ResponseDto.success(ElasticsearchUtil.searchDataPageByScript(INDEX_NAME, params, script,1,10)); +// } } diff --git a/src/main/java/com/gzzn/omms/adminapi/dto/history/HistoryFilghtConditionDto.java b/src/main/java/com/gzzn/omms/adminapi/dto/history/HistoryFilghtConditionDto.java index d53a59e..39940a8 100644 --- a/src/main/java/com/gzzn/omms/adminapi/dto/history/HistoryFilghtConditionDto.java +++ b/src/main/java/com/gzzn/omms/adminapi/dto/history/HistoryFilghtConditionDto.java @@ -12,135 +12,30 @@ import io.swagger.annotations.ApiModelProperty; @ApiModel(value="历史航班数据条件Dto",description="查询历史航班数据的条件DTO") public class HistoryFilghtConditionDto { - @ApiModelProperty(value="当前页,默认从1开始",example="1") - private Integer pageIndex; - @ApiModelProperty(value="每页大小,默认10",example="10") - private Integer pageSize; - - @ApiModelProperty(value="航空公司_id",example="147576845") - private String airlineId; - @ApiModelProperty(value="航空公司_名",example="长龙航空有限公司") - private String airlineName; - @ApiModelProperty(value="航线类别",example="航线类别类别,I-国际、D-国内、M-混合") - private String routeType; - @ApiModelProperty(value="航班任务",example="航班任务:S=正班、N=包机、E=急救、B=专机、G=通用、J=加班、M=军用、Q=补班、X=其他、A=计划外(原参考分类:正班、加班、补班、中转、计划外、计划外中转、货运、训练...)") - private String flightTask; - @ApiModelProperty(value="出发/到达",example="到达/出发(进港/出港)标志,A-到达、D-出发") - private String arriOrDept; - @ApiModelProperty(value="航班代理",example="航班代理") - private String flightAgentId; - @ApiModelProperty(value="开始时间",example="开始时间(yyyy-mm-dd)") - private String startTime; - @ApiModelProperty(value="结束时间",example="结束时间(yyyy-mm-dd)") - private String endTime; - @ApiModelProperty(value="航班异常状态",example="是否故障(0-否 1-是)") - private String isAbnormal; + private String MVIN; - @ApiModelProperty(value="是否查询航班关联信息",example="是否查询航班关联信息,Y-是、N-否") - private String ifShowtRelation; - @ApiModelProperty(value="是否查询详细信息",example="是否查询详细信息,Y-是、N-否") - private String ifShowtDetail; - @ApiModelProperty(value="是否查询保障信息",example="是否查询保障信息,Y-是、N-否") - private String ifShowtEnsure ; - @ApiModelProperty(value="是否查询航班VIP信息",example="是否查询航班VIP信息,Y-是、N-否") - private String ifShowtVIP; - @ApiModelProperty(value="是否查询航班特服信息",example="是否查询航班特服信息,Y-是、N-否") - private String ifShowtSpecialService; - public Integer getPageIndex() { - return pageIndex; + @ApiModelProperty(value="开始时间",example="开始时间(yyyy-mm-dd HH:mm)") + private String startSODT; + @ApiModelProperty(value="结束时间",example="结束时间(yyyy-mm-dd HH:mm)") + private String endSODT; + public String getMVIN() { + return MVIN; } - public void setPageIndex(Integer pageIndex) { - this.pageIndex = pageIndex; + public void setMVIN(String mVIN) { + MVIN = mVIN; } - public Integer getPageSize() { - return pageSize; + public String getStartSODT() { + return startSODT; } - public void setPageSize(Integer pageSize) { - this.pageSize = pageSize; + public void setStartSODT(String startSODT) { + this.startSODT = startSODT; } - public String getAirlineId() { - return airlineId; + public String getEndSODT() { + return endSODT; } - public void setAirlineId(String airlineId) { - this.airlineId = airlineId; - } - public String getAirlineName() { - return airlineName; - } - public void setAirlineName(String airlineName) { - this.airlineName = airlineName; - } - public String getRouteType() { - return routeType; - } - public void setRouteType(String routeType) { - this.routeType = routeType; - } - public String getFlightTask() { - return flightTask; - } - public void setFlightTask(String flightTask) { - this.flightTask = flightTask; - } - public String getArriOrDept() { - return arriOrDept; - } - public void setArriOrDept(String arriOrDept) { - this.arriOrDept = arriOrDept; - } - public String getFlightAgentId() { - return flightAgentId; - } - public void setFlightAgentId(String flightAgentId) { - this.flightAgentId = flightAgentId; - } - public String getStartTime() { - return startTime; - } - public void setStartTime(String startTime) { - this.startTime = startTime; - } - public String getEndTime() { - return endTime; - } - public void setEndTime(String endTime) { - this.endTime = endTime; - } - public String getIsAbnormal() { - return isAbnormal; - } - public void setIsAbnormal(String isAbnormal) { - this.isAbnormal = isAbnormal; - } - public String getIfShowtRelation() { - return ifShowtRelation; - } - public void setIfShowtRelation(String ifShowtRelation) { - this.ifShowtRelation = ifShowtRelation; - } - public String getIfShowtDetail() { - return ifShowtDetail; - } - public void setIfShowtDetail(String ifShowtDetail) { - this.ifShowtDetail = ifShowtDetail; - } - public String getIfShowtEnsure() { - return ifShowtEnsure; - } - public void setIfShowtEnsure(String ifShowtEnsure) { - this.ifShowtEnsure = ifShowtEnsure; - } - public String getIfShowtVIP() { - return ifShowtVIP; - } - public void setIfShowtVIP(String ifShowtVIP) { - this.ifShowtVIP = ifShowtVIP; - } - public String getIfShowtSpecialService() { - return ifShowtSpecialService; - } - public void setIfShowtSpecialService(String ifShowtSpecialService) { - this.ifShowtSpecialService = ifShowtSpecialService; + public void setEndSODT(String endSODT) { + this.endSODT = endSODT; } + } diff --git a/src/main/java/com/gzzn/omms/adminapi/elasticsearch/ElasticsearchUtil.java b/src/main/java/com/gzzn/omms/adminapi/elasticsearch/ElasticsearchUtil.java index 8614872..778ec1a 100644 --- a/src/main/java/com/gzzn/omms/adminapi/elasticsearch/ElasticsearchUtil.java +++ b/src/main/java/com/gzzn/omms/adminapi/elasticsearch/ElasticsearchUtil.java @@ -280,12 +280,13 @@ public class ElasticsearchUtil { * @param size 文档大小限制 * @param fields 需要显示的字段,逗号分隔(缺省为全部字段) * @param sortField 排序字段 + * @param sortOrder * @param highlightField 高亮字段 * @return */ public static List> searchListData( String index, String type, QueryBuilder query, Integer size, - String fields, String sortField, String highlightField) { + String fields, String sortField, SortOrder sortOrder, String highlightField) { SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index); if (!StringUtils.isEmpty(type)) { @@ -307,7 +308,10 @@ public class ElasticsearchUtil { searchRequestBuilder.setFetchSource(true); if (!StringUtils.isEmpty(sortField)) { - searchRequestBuilder.addSort(sortField, SortOrder.DESC); + if(null==sortOrder){ + sortOrder = SortOrder.DESC; + } + searchRequestBuilder.addSort(sortField, sortOrder); } if (size != null && size > 0) { diff --git a/src/main/java/com/gzzn/omms/adminapi/utils/DateUtils.java b/src/main/java/com/gzzn/omms/adminapi/utils/DateUtils.java index 324d9d2..51fe11c 100644 --- a/src/main/java/com/gzzn/omms/adminapi/utils/DateUtils.java +++ b/src/main/java/com/gzzn/omms/adminapi/utils/DateUtils.java @@ -2,7 +2,9 @@ package com.gzzn.omms.adminapi.utils; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Calendar; import java.util.Date; +import java.util.Locale; import org.springframework.util.StringUtils; @@ -34,6 +36,30 @@ public class DateUtils { return ts; } + /** + * 将时间转换为date + * @param s + * @param format 格式默认 yyyy-MM-dd HH:mm:ss + * @return + * @throws ParseException + */ + public static Date StringToDate(String s,String format){ + format = StringUtils.isEmpty(format)?"yyyy-MM-dd HH:mm:ss":format; + if(s == null) + { + return null; + } + Date date = null; + try { + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); + date = simpleDateFormat.parse(s); + } catch (ParseException e) { + e.printStackTrace(); + } + + return date; + } + /** * 将时间戳转换为时间字符串 @@ -61,10 +87,21 @@ public class DateUtils { * @return */ public static Long getTodayStartTime(){ - String time = DateUtils.dateToString(new Date(), "yyyy-MM-dd HH:mm:ss"); + String time = DateUtils.dateToString(new Date(), "yyyy-MM-dd")+" 00:00:00"; return DateUtils.dateToStamp(time,"yyyy-MM-dd HH:mm:ss"); } + /** + * 将时间转换为 ddMMMyyHHmm Locale.ENGLISH 格式 + * @param time - yyyy-MM-dd HH:mm + * @return + */ + public static String swichTimeToEn_ddMMMyyHHmm(String time){ + Date date = DateUtils.StringToDate(time, "yyyy-MM-dd HH:mm"); + String swicthTime = DateUtils.dateToString(date, "ddMMMyyHHmm",Locale.ENGLISH); + return swicthTime; + } + /** * 将时间为时间字符串 * @param date @@ -78,5 +115,71 @@ public class DateUtils { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); return simpleDateFormat.format(date); } + + /** + * 将时间为时间字符串 + * @param date + * @param format + * @param 时区 + * @return + */ + public static String dateToString(Date date,String format,Locale locale){ + if(null==date){ + return ""; + } + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format,locale); + return simpleDateFormat.format(date); + } + + /** + * 取得当前日期的后num的日期 + * @param date + * @param type Year/Month/Day + * @param num + * @return + */ + public static Date getNewDate(Date date, String type, int num) { + Calendar cal = (Calendar) Calendar.getInstance(); + cal.setTime(date); + if (type.equalsIgnoreCase("Year")) { + cal.add(Calendar.YEAR, num); + } else if (type.equalsIgnoreCase("Month")) { + cal.add(Calendar.MONTH, num); + } else { + cal.add(Calendar.DATE, num); + } + return cal.getTime(); + } + + /** + * 取得当前日期的后num的日期 所在天的最大或最小时间 + * @param date + * @param type Year/Month/Day + * @param num + * @param limit MAX/MIN + * @return format ddMMMyyHHmm + */ + public static String getNewDateOfDayMixOrMaxTime(Date date, String type, int num,String limit) { + Calendar cal = (Calendar) Calendar.getInstance(); + cal.setTime(date); + if (type.equalsIgnoreCase("Year")) { + cal.add(Calendar.YEAR, num); + } else if (type.equalsIgnoreCase("Month")) { + cal.add(Calendar.MONTH, num); + } else { + cal.add(Calendar.DATE, num); + } + Date timeOfDay = cal.getTime(); + String day = DateUtils.dateToString(timeOfDay, "ddMMMyy",Locale.ENGLISH); + switch (limit) { + case "MAX": + day += "2359"; + break; + default: + day += "0000"; + break; + } + return day; + } } diff --git a/src/main/resources/es/v0.0.1_20181213_hisPlaneDataDesc.json b/src/main/resources/es/v0.0.1_20181213_hisPlaneDataDesc.json new file mode 100644 index 0000000..2f9a528 --- /dev/null +++ b/src/main/resources/es/v0.0.1_20181213_hisPlaneDataDesc.json @@ -0,0 +1,148 @@ +{ + "HTS_TIME" : "date 历史数据创建时间" + "FLID" : "long 航班id", + "ALCD" : "string 航空公司代码 ", + "ALSC" : "string 飞机所属航空公司子公司代码", + "FLNO" : "string 航班号", + "MVIN" : "string 运行标识:A=到达,D=离岗", + "SODT" : "date 航班计划时间:MVIN.A 到达 MVIN.D离岗", + "FLTY" : "string 航班类型 如客机、货机、军用、VIP等", + "FLIN" : "string 航班标识 D=国内 I=国际 M=混合 R=地区", + "ROUT" : [ { #航班航线事件 + "APCD" : "string IATA机场代码", + "SCAT" : "date 本站计划到达时间", + "SCDT" : "date 本站计划离港时间", + "RTNO" : "long 到站顺序 1=第一个到站 2=第二个到站 以此类推" + } ], + "ACFT" : "string IATA机型:航班使用的机型", + "RENO" : "String 航班注册号/尾号", + "TAOP" : "string 离开当前机场时起降匹配链接航班的承运人 IATA承运人代码。仅到达是有效", + "TAFL" : "string 离开当前机场时起降匹配链接航班的航班号", + "TAID" : "long 后接飞航班唯一的AODB ID", + "TRML" : "String 航班航站楼", + "MAXP" : "long 该航班最大载客数", + "CSOP" : "string 共享航班的主航班承运人代码", + "CSFT" : "string 共享航班的主航班号", + "MAID" : "long 共享航班的主航班的唯一AODB ID", + "ESTT" : "date 航班预计时间", + "ACTT" : "date 航班实际时间", + "CHDT" : [ { #行李传送带 + "CHUT" : "string 离港航班的行李传送带位置", + "CCLS" : "string 行李传送带等级 F=头等 C=商务 Y=经济 X=全部", + "PCBT" : "date 航班行李转盘计划开始使用时间", + "PCET" : "date 航班行李转盘计划结束使用时间", + "CBTM" : "date 航班实际开始使用行李传送带的时间", + "CETM" : "date 航班实际使用行李传送带的结束时间", + "CTYP" : "string 行李传送带资源的国内国际标识", + "CHNO" : "long 行李传送带顺序号" + } ], + "GTDT" : [ { #登机门 + "GATE" : "string 航班等级的登机门号", + "PGOT" : "date 登机门计划打开时间", + "PGCT" : "date 登机门计划关闭时间", + "GOTM" : "date 登机门打开时间", + "GCTM" : "date 登机门关闭时间", + "GTYP" : "string 登机门资源国内国际标识 D=国内 I=国际", + "GTNO" : "long 登机门号" + } ], + "STND" : "string 该航班当前停机位位置", + "PSDT" : [ { #计划机位 + "PSST" : "string 当前计划机位记录的实际停机位", + "STST" : "date 航班机位分配的开始时间", + "STET" : "date 航班机位分配的结束时间", + "PSNO" : "long 计划的机位号" + } ], + "CKDT" : [ { #值机柜台 + "CHKC" : "string 离港航班的值机柜台号", + "CCLS" : "string 值机柜台等级 F=头等 C=商务 Y=经济 X=无特定等级", + "PCOT" : "date 航班值机计划开始时间", + "PCCT" : "date 航班值机计划关闭时间", + "COTM" : "date 航班值机开始时间", + "CCTM" : "date 航班值机关闭时间", + "CTYP" : "string 值机柜台资源的国内国际标识 D=国内 I=国际", + "CKNO" : "long 值机柜台号" + } ], + "PHAG" : "long 航班旅客处理柜员", + "CNCL" : "date 取消日期时间。仅在航班取消时出现", + "DELY" : [ { #延误信息 + "VALUE" : "string ", + "CODE" : "string 延误码", + "STRT" : "date 延误开始时间", + "DURA" : "long 时间长度" + } ], + "REMC" : "string 航班自由文本注释", + "CLDT" : [ { #行李传送转盘数据 + "BELT" : "string 到达航班的行李传送带号", + "BCLS" : "string 行李传送转盘等级 F=头等 C=商务 Y=经济 X=全部", + "PCOT" : "date 航班行李传送盘计划开始时间", + "PCCT" : "date 航班行李传送盘计划结束时间", + "FBAG" : "date 到达航班第一件行李放置传送带日期", + "LBAG" : "date 到达航班最后一件行李离开传送带日期", + "BTYP" : "string 传送带资源的国内国际标识 D=国内 I=国际", + "CLNO" : "long 传送盘的记录号" + } ], + "BOTM" : "date 离港航班登机开始时间", + "LACL" : "date 离港航班最后通知时间", + "FINT" : "date 最终时间", + "CHOT" : [ {#轮档时间 + "CHTM" : "date 轮档时间", + "CHID" : "string 轮档标识 OFF=上 ON=下", + "CHST" : "string 实际的机位号", + "CSNO" : "long轮档时间报告时对应的机位号" + } ], + "APPT" : "date 批准的离港时间", + "EGSR" : "date 离港时引擎发动请求", + "EGST" : "date 离港时引擎发动时间", + "FHAG" : "long 机坪处理代理的机构代码", + "MHAG" : "long 航班处理代理的机构代码", + "VIPP" : "long 当前航班的VIP旅客数", + "VIPR" : "long VIP航班等级标志", + "FDIV" : "string 航班转场的原因描述", + "FRET" : "string 航班转场原因格式文本", + "ABTM" : [ {#登机桥靠桥/离桥 + "ABDG" : "string 靠桥/离桥 所涉及的登机桥资源", + "ABOP" : "string 靠桥/离桥 A=链接 B=断开", + "AOTM" : "date 时间登机桥操作时间", + "ASNO" : "long 登机桥靠桥/离桥的序列" + } ], + "FLAB" : {#string 航班着陆终止原因 + "VALUE" : "string ", + "ARES" : "string " + }, + "SRVT" : [ {#服务明细 + "SRTC" : "string 服务交易码", + "SRQT" : "long 服务数量", + "SRST" : "date 服务开始时间", + "SRET" : "date 服务结束时间", + "SRPR" : "long 服务提供者", + "OPER" : "string " + } ], + "VIPF" : [ {#VIP明细 + "VPCD" : "string VIP个人代码", + "VFES" : "long VIP随从人员数量", + "VIPT" : { #VIP交易明细 + "VSCD" : "string VIP服务码", + "VTQY" : "long VIP数量", + "VTST" : "date VIP服务开始时间", + "VTET" : "date VIP服务结束时间", + "OPER" : "string ", + }, + "OPER" : "string " + } ], + "LBNO" : "long 离港航班本地值机行李数", + "LBWT" : "long 离港航班本地值机行李总重量", + "PAXC" : "long 航班旅客总数", + "ERUT" : [ {#航班细节 + "APCD" : "string 这个航段相关的机场", + "SCAT" : "date 这一计划到达时间", + "SCDT" : "date 这一计划离港时间", + "RTNO" : "long 航段号" + } ], + "EXSC" : "string 航班外部状态码", + "EXSR" : "string 航班外部状态备注", + "FTSS" : "string 航班状态", + "PEDT" : "date ", + "NEAT" : "date ", + "PADT" : "date 站前起飞时间", + "NAAT" : "date 站前降落时间" +} diff --git a/src/main/resources/es/v0.0.1_20181213_hisPlaneDataMapping.json b/src/main/resources/es/v0.0.1_20181213_hisPlaneDataMapping.json new file mode 100644 index 0000000..1dd60ca --- /dev/null +++ b/src/main/resources/es/v0.0.1_20181213_hisPlaneDataMapping.json @@ -0,0 +1,994 @@ +PUT _template/flight_hts +{ + "index_patterns":"flight_hts", + "settings": { + "index.number_of_shards": 5, + "index.number_of_replicas": 1, + "index.refresh_interval": "10s" + }, + "mappings": { + "_doc": { + "properties": { + "FLID" : { + "type": "long" + }, + "ALCD" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ALSC" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FLNO" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "MVIN" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SODT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FLTY" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FLIN" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ROUT" : { + "properties": { + "APCD" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SCAT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SCDT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "RTNO" : { + "type": "long" + } + } }, + "ACFT" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "RENO" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "TAOP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "TAFL" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "TAID" : { + "type": "long" + }, + "TRML" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "MAXP" : { + "type": "long" + }, + "CSOP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CSFT" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "MAID" : { + "type": "long" + }, + "ESTT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ACTT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CHDT" : { + "properties": { + "CHUT" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CCLS" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PCBT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PCET" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CBTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CETM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CTYP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CHNO" : { + "type": "long" + } + } }, + "GTDT" : { + "properties": { + "GATE" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PGOT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PGCT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "GOTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "GCTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "GTYP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "GTNO" : { + "type": "long" + } + } }, + "STND" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PSDT" : { "properties": { + "PSST" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "STST" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "STET" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PSNO" : { + "type": "long" + } + } }, + "CKDT" : { "properties": { + "CHKC" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CCLS" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PCOT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PCCT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "COTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CCTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CTYP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CKNO" : { + "type": "long" + } + } }, + "PHAG" : { + "type": "long" + }, + "CNCL" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "DELY" : { "properties": { + "VALUE" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CODE" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "STRT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "DURA" : { + "type": "date", + "format": "HHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } }, + "REMC" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CLDT" : { "properties": { + "BELT" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "BCLS" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PCOT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PCCT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FBAG" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "LBAG" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "BTYP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CLNO" : { + "type": "long" + } + } }, + "BOTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "LACL" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FINT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CHOT" : { "properties": { + "CHTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CHID" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CHST" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "CSNO" : { + "type": "long" + } + } }, + "APPT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "EGSR" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "EGST" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FHAG" : { + "type": "long" + }, + "MHAG" : { + "type": "long" + }, + "VIPP" : { + "type": "long" + }, + "VIPR" : { + "type": "long" + }, + "FDIV" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FRET" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ABTM" : { "properties": { + "ABDG" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ABOP" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "AOTM" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ASNO" : { + "type": "long" + } + } }, + "FLAB" : { "properties":{ + "VALUE" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "ARES" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + }}, + "SRVT" : { "properties": { + "SRTC" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SRQT" : { + "type": "long" + }, + "SRST" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SRET" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SRPR" : { + "type": "long" + }, + "OPER" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } }, + "VIPF" : { "properties": { + "VPCD" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "VFES" : { + "type": "long" + }, + "VIPT" : { + "properties":{ + "VSCD" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "VTQY" : { + "type": "long" + }, + "VTST" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "VTET" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "OPER" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + }}, + "OPER" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } }, + "LBNO" : { + "type": "long" + }, + "LBWT" : { + "type": "long" + }, + "PAXC" : { + "type": "long" + }, + "ERUT" : { "properties": { + "APCD" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SCAT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "SCDT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "RTNO" : { + "type": "long" + } + } }, + "EXSC" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "EXSR" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "FTSS" : { + "type": "text", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PEDT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "NEAT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "PADT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + }, + "NAAT" : { + "type": "date", + "format": "ddMMMyyHHmm", + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 256 + } + } + } + } + } + } +} \ No newline at end of file