电报业务处理流程1AFTN电报1.1校验规则每条AFTN报都要进行校验如果接收到的TlxMarIdl中HEAD.ISERROR为“F”,格式严重错误,不进行业务处理。
TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-FMT”,更新表T_TLX_INFO,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束。
调用公共方法校验AFTN的编组(需要校验的AFTN报类型在配置文件中)如果编组有错误,TlxInfoIdl的REVSTAT(接受拒绝标志)打相应标签,可以是多种错误的标签叠加,更新表T_TLX_INFO,发送TlxInfoIdl消息,OPRTYPE为UPDATE。
1.2 G18 PBN 与G15route航路的关联校验1 从M_PBN表查所有记录,取CODE,START_SEG,END_SEG,PBN_RULE,开始循环2 从FPL报的G15route中找CODE相同的字符串(可能有多个,要用循环),再取前一个字符串即开始点,后一个字符串即结束点,select a.id, a.airway_id, a.airway_point_id, a.airway_seqfrom t_airway_segment_org awhere a.airway_id = (select idfrom t_airway_orgwhere airway_identifier = 'A593'and rownum < 2)and (a.airway_point_id in(select idfrom t_airway_Point_orgwhere standard_identifier in ('VYK', 'PIMOL')))order by a.airway_id, to_number(a.airway_seq)先用PBN表中的查(code,起点,终点),得到基准(2个点的序号)再用g15route中的查如果查到2个说明是在航路中的,再和PBN表中的基准比较,有1个点在PBN 的基准的序号中的,需要校验G18PBN如果只查到1个,不在航路中,不需校验校验规则RNAV5:PBN要包含B1到B6任意一个RNAV2: PBN要包含C1到C4任意一个RNP4: PBN要包含L11.1 FPL领航计划报1.1.1 FPL报业务处理步骤1 根据航班号等字段的条件,到表T_Flight_Info查航班计划查询条件1.G18DOF存在,并且值的长度为6,TEMPDATE="20"+G18DOF+G13SOBT+"00"2.G18DOF不存在,TEMPDATE等于STIME.substr(0,8)+G13SOBT+"00";若TEMPDATE-20小时>=RTIME,则TEMPDATE=TEMPDATE-24小时(跨天处理)若RTIME-6小时>=TEMPDATE,则TEMPDATE=TEMPDATE+24小时##前是G18DOF存在时的查询条件##后是G18DOF不存在时的查询条件(USEDOF=FLNO='G7FLID' and ADEPS='G13ADEP' and ADESS='G16ADES' and (ATOT IS NULL AND ALDT IS NULL) andSOBT>=to_char(to_date('TEMPDATE','yyyymmddHH24:MI:SS')-15/24,'YYYYMMDDHH24MISS') andSOBT<=to_char(to_date(TEMPDATE,'yyyymmddHH24:MI:SS')+2/24,'YYYYMMDDHH24MISS'))##(NORMAL=FLNO='G7FLID' and ADEPS='G13ADEP' and ADESS='G16ADES' and (ATOT IS NULL AND ALDT IS NULL) andSOBT>=to_char(to_date('TEMPDATE','yyyymmddHH24:MI:SS')-15/24,'YYYYMMDDHH24MISS') andSOBT<=(to_date(TEMPDATE,'yyyymmdd HH24:MI:SS')+2/24,'YYYYMMDDHH24MISS'))如果查不到航班计划,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-PLN”,更新表T_TLX_INFO,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果查到航班计划到步骤2步骤2 该航班计划的记录中继续查有没有预计类信息EOBT; //预起时间ELDT; //预计落地时间ADEPE; //预计起站ADESE; //预计达站如果已经有预计类信息,说明收到相同航班号的FPL ,已重复。
TlxInfoIdl打标签“AREJ-DUP”,更新表T_TLX_INFO,发送TlxInfoIdl消息,OPRTYPE为UPDATE如果没有预计类信息到步骤3步骤3 发航路校验topic查航班计划表中的ROUTS计划航路a) ROUTS为AS SKED,发DepArrAirwayVerifyInfo消息,起飞机场和落地机场用报文中的值13A和16A,预计航路用报文中的航路15C。
b) ROUTS为格式AS(ZSSS-ZBAA) 括号内为起飞机场和落地机场,发DepArrAirwayVerifyInfo消息,起飞机场和落地机场用ROUTS中的值,预计航路用报文中的航路15C。
c) ROUTS为格式AS(ZSSS-ZBAA-01R),发AirwayVerifyInfo。
需要填标准航路StandardRoute,预计航路EstimateRoute,校验开始点VerifyStartPoint,校验结束点VerifyEndPoint。
将括号中的内容取出来作为条件,查航线表T_AIRLINE_ORG,Select * from T_AIRLINE_ORG where FLT_NUM=’ZSSS-ZBAA-01R’and VALID=’1’如果查不到,则进疑难,疑难原因“航路校验失败”,不做后续业务处理如果查到,取ROUTELINE作为标准航路,STARTCHECK作为校验开始点,ENDCHECK 作为校验结束点,预计航路用报文中的航路15C,发AirwayVerifyInfo消息d) ROUTS为格式RT1://...RT2://,发AirwayVerifyInfo。
需要填标准航路StandardRoute,预计航路EstimateRoute。
预计航路EstimateRoute用报文中的航路15C,标准航路StandardRoute把ROUTS 中的多条航路解析后用;隔开步骤4更新表FlightInfo该航班计划的预计类信息EXECSTAT置为FPL发FlightInfoIdl消息,OPRTYPE为UPDATE到步骤5步骤5表FlightTlx,插入对应的航班计划ID,电报ID发送FlightTlxIdl消息,OPRTYPE为INSERT到步骤6步骤6查表FlightTlxTotal,如果该航班无对应记录,插入记录,如果已经有记录则更新。
插入或更新FPOLIT 外籍机组(从G18RMK查找”FOREIGN”,如果有,FPOLIT置为T,否则置为F),G8,G9,G10,G18各字段发送FlightTlxTotalIdl消息,OPRTYPE为INSETRT或UPDATE到步骤7步骤7如果全部处理完成,更新表T_TLX_INFO的状态标记,发送TlxInfoIdl消息,OPRTYPE 为UPDATE1.2 DEP起飞报1.2.1 DEP报业务处理步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划查询条件:1.G18DOF存在,并且值的长度为6,TEMPDATE="20"+G18DOF+G13SOBT+"00"2.G18DOF不存在TEMPDATE = STIME.substr(0,8) + G13SOBT+"00"若STIME>TEMPDATE:a. STIME-18小时>=TEMPDATE,则TEMPDATE=TEMPDATE+24小时b. TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)若TEMPDATE>STIMEa. TEMPDATE-18小时>=STIME,则TEMPDATE=TEMPDATE-24小时;否则TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)##前是G18DOF存在时的查询条件##后是G18DOF不存在时的查询条件(USEDOF=FLNO='G7FLID' and COALESCE(ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G16ADES' andCOALESCE(EOBT,SOBT)>to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-20/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<=to_char(to_date('TEMPDATE’,'yyyymmddHH24:MI:SS')+2/24,'YYYYMMDDHH24MISS'))##(NORMAL=FLNO='G7FLID' and COALESCE(ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G16ADES' andCOALESCE(EOBT,SOBT)>to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-10/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')+4/24,'YYYYMMDDHH24MISS'))如果查不到航班计划,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-PLN”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果查到航班计划到步骤2步骤2 该航班计划的记录中继续查有没有预计类信息如果没有预计类信息,说明没收到过FPL报,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-LOG”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果已经有预计类信息,已有FPL报,到步骤3步骤3EXECSTAT置为DEP发FlightInfoIdl消息,OPRTYPE为UPDATE到步骤4步骤4表FlightTlx,插入对应的电报ID,TLXID发送FlightTlxIdl消息,OPRTYPE为INSERT步骤5如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfoIdl 消息,OPRTYPE为UPDATE1.3 ARR落地报1.3.1 ARR报业务处理步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划查询条件:1.G18DOF存在,并且值的长度为6,TEMPDATE="20"+G18DOF+G17ALDT+"00"若STIME>TEMPDATE:a. STIME-18小时>=TEMPDATE,则TEMPDATE=TEMPDATE+24小时b. TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)若TEMPDATE>STIMEa. TEMPDATE-18小时>=STIME,则TEMPDATE=TEMPDATE-24小时;否则TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)2.G18DOF不存在TEMPDATE = STIME.substr(0,8) + G17ALDT+"00"若STIME>TEMPDATE:a. STIME-18小时>=TEMPDATE,则TEMPDATE=TEMPDATE+24小时b. TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)若TEMPDATE>STIMEa. TEMPDATE-18小时>=STIME,则TEMPDATE=TEMPDATE-24小时;否则TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)##前是G18DOF存在时的查询条件##后是G18DOF不存在时的查询条件(USEDOF=FLNO='G7FLID' and COALESCE(ADEPA,ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G17ADES' and ATOA IS NULL andCOALESCE(EOBT,SOBT)>=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-10/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')+4/24,'YYYYMMDDHH24MISS'))##(NORMAL=FLNO='G7FLID' and COALESCE(ADEPA,ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G17ADES' and ATOA IS NULL andCOALESCE(EOBT,SOBT)>=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-10/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')+4/24,'YYYYMMDDHH24MISS'))如果查不到航班计划,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-PLN”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果查到航班计划到步骤2步骤2EXECSTAT置为ARR发FlightInfoIdl消息,OPRTYPE为UPDATE到步骤3步骤3表FlightTlx,插入对应的电报ID,TLXID发送FlightTlxIdl消息,OPRTYPE为INSERT步骤4如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfoIdl 消息,OPRTYPE为UPDATE1.4 CNL取消领航计划报1.4.1 CNL报业务处理步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划查询条件:1.G18DOF存在,并且值的长度为6,TEMPDATE="20"+G18DOF+G13SOBT+"00"(USEDOF=FLNO='G7FLID' and ADEPS='G13ADEP' and ADESS='G16ADES' and COALESCE(EOBT,SOBT)>to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-2/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')+20/24,'YYYYMMDDHH24MISS'))##(NORMAL=FLNO='G7FLID' and ADEPS='G13ADEP' and ADESS='G16ADES' and COALESCE(EOBT,SOBT)>to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-7/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')+12/24,'YYYYMMDDHH24MISS'))如果查不到航班计划,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-PLN”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果查到航班计划到步骤2步骤2 该航班计划的记录中继续查有没有预计类信息如果没有预计类信息,说明没收到过FPL报,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-LOG”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果已经有预计类信息,到步骤3步骤3更新表T_Flight_Info该航班计划的FPL更新的所有预计类信息全部置空EXECSTAT置为SCH,发FlightInfoIdl消息,OPRTYPE为UPDATE到步骤4步骤4表FlightTlx,插入对应的电报ID,TLXID发送FlightTlxIdl消息,OPRTYPE为INSERT步骤5查表FlightTlxTotal,FPL更新的字段全部置空发送FlightTlxTotalIdl消息,OPRTYPE为UPDATE步骤6如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfoIdl 消息,OPRTYPE为UPDATE1.5 DLA延误报1.5.1 DLA报业务处理步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划查询条件1.G18DOF存在,并且值的长度为6, TEMPDATE = "20" + G18DOF + G13SOBT + "00";(USEDOF=FLNO='G7FLID' and COALESCE(ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G16ADES' andCOALESCE(EOBT,SOBT)>=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-22/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<=t o_char(to_date('TEMPDATE’,'yyyymmddHH24:MI:SS')+30/24/60,'YYYYMMDDHH24MISS'))##(NORMAL=FLNO='G7FLID' and COALESCE(ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G16ADES' andCOALESCE(EOBT,SOBT)>=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-4/24,'YYYYMMDDHH24MISS') andCOALESCE(EOBT,SOBT)<=to_char(to_date('TEMPDATE’,'yyyymmddHH24:MI:SS')+7/24,'YYYYMMDDHH24MISS'))如果查不到航班计划,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-PLN”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果查到航班计划到步骤2步骤2 该航班计划的记录中继续查有没有预计类信息如果没有预计类信息,说明没收到过FPL报,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-LOG”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果已经有预计类信息,到步骤3步骤3EXECSTAT置为DLA发FlightInfoIdl消息,OPRTYPE为UPDATE到步骤4步骤4表FlightTlx,插入对应的电报ID,TLXID发送FlightTlxIdl消息,OPRTYPE为INSERT步骤5如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfoIdl 消息,OPRTYPE为UPDATE1.6 CHG修订领航计划报1.6.1 CHG报业务处理步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划查询条件不需要看G18DOF是否存在,只用一个查询条件(NORMAL=FLNO='G7FLID' and COALESCE(ADEPE,ADEPS)='G13ADEP' and COALESCE(ADESE,ADESS)='G16ADES' andEOBT>=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:MI:SS')-7/24,'YYYYMMDDHH24MISS') andEOBT<=to_char(to_date('TEMPDATE’,'yyyymmddHH24:MI:SS')+7/24,'YYYYMMDDHH24MISS'))如果查不到航班计划,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为“AREJ-PLN”,发送TlxInfoIdl消息,OPRTYPE为UPDATE,结束如果查到航班计划到步骤2步骤2 该航班计划的记录中继续查有没有预计类信息如果没有预计类信息,说明没收到过FPL报,TlxInfoIdl的REVSTAT(接受拒绝标志)打标签,置为打标签“AREJ-LOG”,进疑难。