机组排班值勤期逻辑
2022-12-11 19:10:16 0 举报
机组排班值勤期逻辑
作者其他创作
大纲/内容
否
值勤期数据处理-按占位
遍历当前值勤期占位
“当天值勤占位集合”新增数据(键值:当天日期增加已有键值数个小时;值:当前占位集合)
获取当前占位进场时长(分钟)
值勤期合并判断逻辑
继续值勤期是否相互覆盖判断
报到时间取计划起飞机场报到时间
新增值勤期明细数据
开始
家备航班
“当天值勤占位集合”新增数据(键值:占位日期;值:当前占位集合)
当前值勤期与下一值勤期“连飞浦东”
R6模拟机前讲评
“连飞浦东”不计算下一值勤期首班前车程
休息时间是否大于10小时
历史值勤明细表中数据为空
历史值勤ID与“值勤占位集合”最后占位值勤ID相同
移除与当天航班有交叉的备份航班
检索当前值勤期最后一个人员正式执飞航班占位的索引
历史值勤表中值勤期ID
是
值勤期数据计算及填充
返回字典数据,键值为日期,值类型为占位集合(便于排序和后续操作)
结束遍历,返回结果为否
计算占位值勤报到时间(不计算车程)
历史值勤数据表中获取值勤数据
值勤占位集合最后数据值勤ID为空
备份航班且计划起飞时间大于当前时刻
继续下一占位遍历
值勤占位数据ID为空
“当天值勤占位集合”键值小于当前时间的最大值勤集合添加当前值勤占位集合,并删除当前键值数据
历史值勤表中是否存在占位航班ID的值勤数据
获取当前值勤数据的下一值勤期起始占位
报到时间及车程流程图
前车程取121部默认车程时间:30分钟(规则参数基准定义1012)
当前航班占位落地机场有休息区或当前占位非人员正式执飞航班
理论培训
值勤期数据二次合并
返回合并失败
当前占位存在实际休息时间维护
获取报到管理中维护的时间SIGN_IN_TIME
当前值勤键值集合添加下一值勤集合数据,并移除值勤字典数据中下一值勤集合字典数据
按日期检索出当天值勤占位
下一值勤期数据为空
继续下一占位的处理
“值勤占位集合”新增数据,ID为“值勤占位集合”最后值勤数据ID
“值勤占位集合”新增数据,ID为历史值勤ID
按天合并处理值勤数据(当天)
继续日期时间值勤数据合并
查找当天值勤占位和当天值勤占位相关联的后一天的占位
值勤期明细表添加值勤期明细数据
下一值勤期首班的计划起飞时刻在12:00(含)之前
首个“值勤占位集合”数据
当前飞行值勤末班的计划落地时刻在19:00(含)之后且下一飞行值勤期首班计划起飞时刻在12:00(含)之前
获取当前占位飞行值勤期结束时间
获取当前占位实际报到时间
是否包括车程时间
填充值勤期明细数据
“当天值勤占位集合”存在键值小于当前时间数据
报到时间取121部参数1106值
占位是否是自己正式执飞的航班
所有占位全部包含在下一值勤期进离场时间段内结果为正
累计值勤LY_HOURS飞行时间
计算值勤期结束时间
计算下一值勤期实际报到时间
将当前执勤期尝试跟前一个合并
当前飞行值勤期末班落地机场为兰州(LHW)
值勤期表添加值勤期数据
人员岗位为随机人员、航班搭机、监察员
返回合并结果,可以合并
restTA
获取当前占位值勤期结束时间
遍历当天值勤占位数据集合
历史值勤ID与“值勤占位集合”最后占位值勤ID除前两个字符外相同
计算占位值勤离场时间(不计算车程)
历史值勤数据为空
首班为模拟机
当前值勤数据能够与值勤字典数据大于当前键值时间的第一个值勤数据进行合并
当前值勤数据能与上一值勤数据进行合并
当前值勤期计算及填充
前车程取121部默认车程时间:30分钟(规则参数基准定义1115)
当天占位继续合并处理(跳转“n”个占位)
备份航班是否已备上
当前飞行值勤期末班与下一飞行值勤首班为跨天航班
索引“index”
新增值勤期数据
遍历下一值勤期占位
继续下一值勤数据计算
计算下一值勤期离场时间(不计算车程)
121部规则定义参数1009
当前占位值勤期时间段在历史值勤期中存在完全覆盖的值勤期数据
计算当前值勤期结束时间
值勤数据键值包含当前值勤数据键值
“值勤占位集合”新增数据,ID为\"N_\" + 历史值勤ID
减前车程时间
当前值勤占位与“当天值勤占位集合”最后值勤占位集合能合并
摆渡航班没有指向正班:flight_id_ref字段值为空
规则参数基准定义1117(参数值26小时)
restTD与restTA不相等
该当前值勤数据为当天最后值勤
获取“值勤占位集合”最后数据值勤期结束时间(包含车程)
航班执飞单位为飞行部(MU)
前车程取起飞机场进离场前后车程参数表(T_RULE_AIRPORTPARAMS)中前车程时间
获取值勤期结束时间
占位时间段是否完全包含在下一值勤期进离场时间段内
当前占位索引小于等于“index”
报到时间取预计起飞时间(etd)减报到时间
遍历占位数据,返回新的“值勤占位集合”数据
值勤期休息时间
获取下一航班二次进场时间
历史值勤表中存在当前值勤数据且航班ID列表相同数据
首班为正班、备份、本场或摆渡
“连飞浦东”不计算当前值勤期末班后车程和下一值勤期首班前车程
计算飞行值勤结束时间
保存值勤期数据
遍历日期字典值勤数据
“当天值勤占位集合”键值小于当前时间的最大值勤集合数据能与当前值勤占位集合合并
数据源字段td_punch
实际休息时间休息区有效
值勤数据存在大于当前键值时间的值勤数据
值勤类占位任务(非模拟机、非置位)前车程时间
不计算报到时间
报到时间取121部默认报到时间:0分钟(规则参数基准定义1004)
获取占位信息
首班为备份航班
计算当前值勤期报到时间(不计算车程)
值勤期是否存在相互覆盖
下一值勤期首班计划起飞机场为兰州(LHW)
当前占位报到时间与前值勤结束时间间隔大于标准休息时间:10小时
“值勤占位集合”新增数据,ID为空
下一飞行值勤期首班计划起飞时刻在9:30(含)之前
上一值勤键值集合添加当前值勤集合数据,并移除值勤字典数据中当前值勤集合字典数据
“当天值勤占位集合”键值为“A”的集合添加剩余相同ID值勤占位数据,并记录集合相同ID个数
“当天值勤占位集合”为空
占位信息按照航班日期、计划时间排序,由小到大
假定集合ID相同占位个数为“n”
继续值勤期合并是否跨24H判断
计算当前值勤期离场时间(不计算车程)
合并值勤期是否跨24小时
时间间隔大于或等于标准休息时间
报到时间取121部默认车程时间:60分钟(规则参数基准定义1014)
值勤期数据处理-按日期
是否维护航班报到时间
值勤期数据更新(整体)
获取值勤休息结束时间(下一值勤实际报到时间)
历史值勤期明细表中与当前值勤期对比,删除历史值勤期中不存在的数据
起飞机场进场时间是否维护
占位按照计划起飞时间排序
当前值勤数据列表不存在航班标记为正常或本场且人员岗位不为的正常航班且
字典值勤数据二次合并(日期值勤数据合并)
结束
获取当前占位离场时间(分钟)
当前航班与下一航班类型都是正常航班
收集值勤期Flight_ID
若“分公司机场进离前后车程参数”表没有数据则取“机场信息”表中前车程时间
获取占位实际报到时间
报到时间取计划起飞时间(std)减报到时间
“连飞浦东”不计算当前值勤期末班后车程
假定当前值勤占位键值为“A”
首班为摆渡航班且没有所指正班
占位时间段是否完全包含在当前值勤期进离场时间段内
“当天值勤占位集合”最后值勤占位集合添加当前占位数据
获取二次进场前一班离场时间
航班预计起飞与计划起飞间隔大于等于121部默认时间:300分钟(规则参数基准定义1118)
航班占位是正班(flight_flag 为A)且人员岗位是监察员(S005)
获取下一航班实际报到时间
当前值勤报到与下一值勤期离场时间间隔大于等于121部默认合并值勤最大限制时间:24小时
当前占位索引小于“index”
“连飞浦东”计算下一值勤期首班前车程
当前占位时值勤期第一个占位
当前飞行值勤期末班落地机场为浦东(PVG)
获取占位报到时间
存在key值小于当前key值的值勤数据
记录值勤期休息等级
同步历史值勤数据,将历史值勤数据中未更新的值勤数据与添加或修改的值勤数据进行对比,若明细表中Flight_Id集合出现交叠,则清除历史值勤表中交叠数据
所有占位全部包含在当前值勤期进离场时间段内结果为正
同步历史值勤数据,将在排班日期内,不存在于值勤期列表(字典值勤数据列表)但历史值勤表中存在的值勤数据删除
遍历值勤期列表数据
当前占位到达与下一航班占位起飞时间间隔大于180分钟(规则参数基准定义1007)
restTD
“连飞浦东”计算当前值勤期末班后车程和下一值勤期首班前车程
获取值勤休息结束时间(值勤期结束时间增加10小时)
收藏
0 条评论
下一页