电报业务处理流程.docx
《电报业务处理流程.docx》由会员分享,可在线阅读,更多相关《电报业务处理流程.docx(29页珍藏版)》请在冰豆网上搜索。
电报业务处理流程
电报业务处理流程
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.2G18PBN与G15route航路的关联校验
1从M_PBN表查所有记录,取CODE,START_SEG,END_SEG,PBN_RULE,开始循环
2从FPL报的G15route中找CODE相同的字符串(可能有多个,要用循环),再取前一个字符串即开始点,
后一个字符串即结束点,
selecta.id,a.airway_id,a.airway_point_id,a.airway_seq
fromt_airway_segment_orga
wherea.airway_id=(selectid
fromt_airway_org
whereairway_identifier='A593'
andrownum<2)
and(a.airway_point_idin
(selectid
fromt_airway_Point_org
wherestandard_identifierin('VYK','PIMOL')))
orderbya.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要包含L1
1.1FPL领航计划报
1.1.1FPL报业务处理
步骤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'andADEPS='G13ADEP'andADESS='G16ADES'and(ATOTISNULLANDALDTISNULL)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'andADEPS='G13ADEP'andADESS='G16ADES'and(ATOTISNULLANDALDTISNULL)andSOBT>=to_char(to_date('TEMPDATE','yyyymmddHH24:
MI:
SS')-15/24,'YYYYMMDDHH24MISS')andSOBT<=(to_date(TEMPDATE,'yyyymmddHH24:
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为ASSKED,发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*fromT_AIRLINE_ORGwhereFLT_NUM=’ZSSS-ZBAA-01R’andVALID=’1’
如果查不到,则进疑难,疑难原因“航路校验失败”,不做后续业务处理
如果查到,取ROUTELINE作为标准航路,STARTCHECK作为校验开始点,ENDCHECK作为校验结束点,预计航路用报文中的航路15C,发AirwayVerifyInfo消息
d)ROUTS为格式RT1:
//...RT2:
//,发AirwayVerifyInfo。
需要填标准航路StandardRoute,预计航路EstimateRoute。
预计航路EstimateRoute用报文中的航路15C,标准航路StandardRoute把ROUTS中的多条航路解析后用;隔开
步骤4
更新表FlightInfo该航班计划的预计类信息
修改的字段:
T_Flight_Info
TlxMar
SSRMC
G7SSRMODE+G7SSRCODE
二次雷达编码
REGNE
G18REG
预计机号
ACTTE
G9ACTT
预计机型
ADEPE
G13ADEP
预计起站
ADESE
G16ADES
预计达站
EOBT
G13SOBT
预起时间
ELDT
G16EET
预计落地时间
ESPD
G15SPEED
巡航速度
EALTITUDE
G15LEVEL
巡航高度
ROUTE
G15ROUTE
预计航路
ALN1E
G16ALN1
预计备降1
ALN2E
G16ALN2
预计备降2
EXECSTAT
CTYP
执行状态
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为UPDATE
1.2DEP起飞报
1.2.1DEP报业务处理
步骤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>STIME
a.TEMPDATE-18小时>=STIME,则TEMPDATE=TEMPDATE-24小时;否则TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)
##前是G18DOF存在时的查询条件
##后是G18DOF不存在时的查询条件
(USEDOF=FLNO='G7FLID'andCOALESCE(ADEPE,ADEPS)='G13ADEP'andCOALESCE(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'andCOALESCE(ADEPE,ADEPS)='G13ADEP'andCOALESCE(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
步骤3
更新表T_Flight_Info该航班计划的实际起站ADEPA,实起时间ATOT
T_Flight_Info
TlxMar
SSRMC
G7SSRMODE+G7SSRCODE
二次雷达编码
ADEPA
G13ADEP
实际起站
ADESE
G16ADES
计划达站
ATOT
G13SOBT
实起时间
ELDT
G16EET
预计落地时间
EXECSTAT
CTYP
执行状态
EXECSTAT置为DEP
发FlightInfoIdl消息,OPRTYPE为UPDATE
到步骤4
步骤4
表FlightTlx,插入对应的电报ID,TLXID
发送FlightTlxIdl消息,OPRTYPE为INSERT
步骤5
如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfoIdl消息,OPRTYPE为UPDATE
1.3ARR落地报
1.3.1ARR报业务处理
步骤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>STIME
a.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>STIME
a.TEMPDATE-18小时>=STIME,则TEMPDATE=TEMPDATE-24小时;否则TEMPDATE-6小时>STIME,则作为疑难电报(收到电报的时间与定位的时间差6个小时以上)
##前是G18DOF存在时的查询条件
##后是G18DOF不存在时的查询条件
(USEDOF=FLNO='G7FLID'andCOALESCE(ADEPA,ADEPE,ADEPS)='G13ADEP'andCOALESCE(ADESE,ADESS)='G17ADES'andATOAISNULLandCOALESCE(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'andCOALESCE(ADEPA,ADEPE,ADEPS)='G13ADEP'andCOALESCE(ADESE,ADESS)='G17ADES'andATOAISNULLandCOALESCE(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
更新表T_Flight_Info该航班计划的实际达站ADESA,实达时间ALDT
T_Flight_Info
TlxMar
SSRMC
G7SSRMODE+G7SSRCODE
二次雷达编码
ADEPA
G13ADEP
实际起站
ADESA
G17ADES
实际达站
ALDT
G16EET
实达时间
EXECSTAT
CTYP
执行状态
EXECSTAT置为ARR
发FlightInfoIdl消息,OPRTYPE为UPDATE
到步骤3
步骤3
表FlightTlx,插入对应的电报ID,TLXID
发送FlightTlxIdl消息,OPRTYPE为INSERT
步骤4
如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfoIdl消息,OPRTYPE为UPDATE
1.4CNL取消领航计划报
1.4.1CNL报业务处理
步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划
查询条件:
1.G18DOF存在,并且值的长度为6,TEMPDATE="20"+G18DOF+G13SOBT+"00"
(USEDOF=FLNO='G7FLID'andADEPS='G13ADEP'andADESS='G16ADES'andCOALESCE(EOBT,SOBT)>to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:
MI:
SS')-2/24,'YYYYMMDDHH24MISS')andCOALESCE(EOBT,SOBT)MI:
SS')+20/24,'YYYYMMDDHH24MISS'))
##(NORMAL=FLNO='G7FLID'andADEPS='G13ADEP'andADESS='G16ADES'andCOALESCE(EOBT,SOBT)>to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:
MI:
SS')-7/24,'YYYYMMDDHH24MISS')andCOALESCE(EOBT,SOBT)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为UPDATE
1.5DLA延误报
1.5.1DLA报业务处理
步骤1根据航班号等字段的条件到表T_Flight_Info查航班计划
查询条件
1.G18DOF存在,并且值的长度为6,TEMPDATE="20"+G18DOF+G13SOBT+"00";
(USEDOF=FLNO='G7FLID'andCOALESCE(ADEPE,ADEPS)='G13ADEP'andCOALESCE(ADESE,ADESS)='G16ADES'andCOALESCE(EOBT,SOBT)>=to_char(to_date(‘TEMPDATE’,'yyyymmddHH24:
MI:
SS')-22/24,'YYYYMMDDHH24MISS')andCOALESCE(EOBT,SOBT)<=to_char(to_date('TEMPDATE’,'yyyymmddHH24:
MI:
SS')+30/24/60,'YYYYMMDDHH24MISS'))
##(NORMAL=FLNO='G7FLID'andCOALESCE(ADEPE,ADEPS)='G13ADEP'andCOALESCE(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
步骤3
更新表T_Flight_Info
T_Flight_Info
TlxMar
SSRMC
G7SSRMODE+G7SSRCODE
二次雷达编码
EOBT
TEMPDATE
预起时间
ELDT
TEMPDATE+G16EET
预计落地时间
ALN1E
G16ALN1
预计备降1
ALN2E
G16ALN2
预计备降1
EXECSTAT
CTYP
执行状态
EXECSTAT置为DLA
发FlightInfoIdl消息,OPRTYPE为UPDATE
到步骤4
步骤4
表FlightTlx,插入对应的电报ID,TLXID
发送FlightTlxIdl消息,OPRTYPE为INSERT
步骤5
如果全部处理完成,更新表T_TLX_INFO的字段AUTOSTAT为1,发送TlxInfo