123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- import datetime
- import unitls.baseFunction as baseFunction
- from unitls.LogerinTxt import app_logger
- from unitls.StaticDataclass import get_dic
- from .flightDB import flightDB
- from .initFlightDatabase import initFlightDatabase
- def waringinsert(database,text,taskid,col):
- try:
- newDic = {"警告信息": text,"航班编号":taskid, "信息状态": "", "提示信息": "", "产生时间": "%s" % datetime.datetime.now(),
- "处理人": "", "处理时间": "","变更字段": col, "显示对象": "", "提示内容": ""}
- database.lazyInsertData('logs', newDic)
- except Exception as e:
- app_logger.log_error(f"警告信息插入错误,插入信息{text},{taskid},{col},错误信息见下一条")
- app_logger.log_error(e)
- def checkFlightplan(database:flightDB,wokload:flightDB):
- updatedic = {2: 11, 4: 13,5:14,6: 16,7: 17, 8: 9,10: 7, 11: 8, 15: 18, 16: 18,21: 12, 25: 3, 26: 2, 33 : 20} #taskinfo :flightplan
- try:
- print(datetime.datetime.now(),'[数据库操作]开始校验航班')
- nowDay = datetime.datetime.now().strftime("%Y%m%d")
- nowDay_1 = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
- nowDay_2 = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
- now_20 = (datetime.datetime.now() + datetime.timedelta(hours=5)).strftime("%Y%m%d")
- initFlightDatabase(database, wokload, now_20)
- initFlightDatabase(database, wokload, nowDay_1)
- initFlightDatabase(database, wokload, nowDay_2)
- initFlightDatabase(database, wokload, nowDay)
- if now_20 == nowDay:
- day = [nowDay, nowDay_1]
- else:
- day = [nowDay, nowDay_1, nowDay_2]
- for nowDayStr in day:
- flightplan_flight_ids = database.queryTabel('flightplaninfo{}'.format(nowDayStr),"*","备1 ='1' and flgCs =''")
- TaskFlightinfo_flight_ids = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '备4,备5', "航班编号!=''")
- TaskFlightinfo_ids = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '航班编号', "航班编号!=''")
- flight_id_now = []
- if flightplan_flight_ids and len(flightplan_flight_ids) != 0:
- for sortkey in flightplan_flight_ids:
- if str(sortkey[0]) not in str(TaskFlightinfo_flight_ids):
- flight_id_now.append(f"System{sortkey[0]}")
- TaskflightinfoLabel=get_dic("TaskflightinfoLabel")
- if f"System{sortkey[0]}" not in str(TaskFlightinfo_ids):
- peopleSchedule_ids = database.queryTabel('peopleSchedule{}'.format(nowDayStr) , '编号,附加消息', "航班编号 ='%s'"%f"System{sortkey[0]}")
- newdic={"航班编号":f"System{sortkey[0]}","进出港城市":sortkey[5]+"-"+sortkey[6],"航班来源":"飞机排班","机号":sortkey[1].replace("B",""),"取消标志":0}
- if sortkey[6] == "天府":
- newdic["航班类型"] = "AF"
- else:
- newdic["航班类型"] = "AP"
- for key,value in updatedic.items():
- newdic[TaskflightinfoLabel[key]]= sortkey[value]
- for key in TaskflightinfoLabel:
- if key not in newdic.keys():
- newdic[key]=""
- database.lazyInsertData('TaskFlightinfo{}'.format(nowDayStr), newdic)
- if sortkey[6] == "天府":
- if f"System{sortkey[0]}-1-A" not in str(peopleSchedule_ids):
- newdic={"编号":f"System{sortkey[0]}-1-A","航班编号":f"System{sortkey[0]}","显示模式":"A","放行":"","勤务1":"","勤务2":"","工1":"","工2":"","工3":"","附加消息":"AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间"}
- database.lazyInsertData('peopleSchedule{}'.format(nowDayStr), newdic)
- else:
- fj = peopleSchedule_ids[0][1]
- if "AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间" not in fj:
- newdic={"附加消息":"'%s'"%(fj+";AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间")}
- else:
- newdic={"附加消息":"'AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间'"}
- database.lazyUpdateItem('peopleSchedule{}'.format(nowDayStr), newdic,"编号='%s'"%f"System{sortkey[0]}-1-A")
- elif sortkey[5] == "天府":
- if f"System{sortkey[0]}-2-A" not in str(peopleSchedule_ids):
- newdic={"编号":f"System{sortkey[0]}-2-A","航班编号":f"System{sortkey[0]}","显示模式":"A","放行":"","勤务1":"","勤务2":"","工1":"","工2":"","工3":"","附加消息":"AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间"}
- database.lazyInsertData('peopleSchedule{}'.format(nowDayStr), newdic)
- else:
- fj = peopleSchedule_ids[0][1]
- if "AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间" not in fj:
- newdic={"附加消息":"'%s'"%(fj+";AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间")}
- else:
- newdic={"附加消息":"'AMRO航班缺失,无法派工,航班信息来源于飞机排班,请核实航班类型和保障时间'"}
- database.lazyUpdateItem('peopleSchedule{}'.format(nowDayStr), newdic,"编号='%s'"%f"System{sortkey[0]}-2-A")
- waringinsert(database,f"{sortkey[1]}/{sortkey[12]}在Amro任务派工模块无显示,已读取飞机排班系统信息显示,航班将无法派工,请核对航班、随机等信息并加强监控!",f"System{sortkey[0]}","航班缺失警告")
- else:
- TaskFlightinfos = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '*' ,"航班编号='%s'"%f"System{sortkey[0]}")[0]
- for key,value in updatedic.items():
- if TaskFlightinfos[key] != sortkey[value]:
- newdic={TaskflightinfoLabel[key]:"'%s'"%sortkey[value]}
- database.lazyUpdateItem('TaskFlightinfo{}'.format(nowDayStr),newdic,"航班编号='%s'"%f"System{sortkey[0]}")
- if (sortkey[5]+sortkey[6]) !=TaskFlightinfos[23]:
- newdic={TaskflightinfoLabel[23]:"'%s'"%(sortkey[5]+"-"+sortkey[6])}
- database.lazyUpdateItem('TaskFlightinfo{}'.format(nowDayStr),newdic,"航班编号='%s'"%f"System{sortkey[0]}")
- if sortkey[1].replace("B","") != TaskFlightinfos[1]:
- newdic={"机号":"'%s'"%sortkey[1].replace("B","")}
- database.lazyUpdateItem('TaskFlightinfo{}'.format(nowDayStr),newdic,"航班编号='%s'"%f"System{sortkey[0]}")
- if sortkey[6] == "天府" and TaskFlightinfos[3] != "AF":
- newdic={"航班类型":"'AF'"}
- database.lazyUpdateItem('TaskFlightinfo{}'.format(nowDayStr), newdic,"航班编号='%s'" % f"System{sortkey[ 0 ]}")
- elif sortkey[5] == "天府" and TaskFlightinfos[3] != "AP":
- newdic={"航班类型":"'AP'"}
- database.lazyUpdateItem('TaskFlightinfo{}'.format(nowDayStr), newdic,"航班编号='%s'" % f"System{sortkey[ 0 ]}")
- elif str(sortkey[0]) in str(TaskFlightinfo_flight_ids) and f"System{sortkey[0]}" in str(TaskFlightinfo_ids):
- database.deleteSingledata('TaskFlightinfo{}'.format(nowDayStr),"航班编号='%s'"%f"System{sortkey[0]}")
- waringinsert(database,f"{sortkey[1]}/{sortkey[12]}在Amro任务派工模块中恢复显示,如未派工请前往派工!飞机排班显示航班将在5min中后自动删除,做好人员安排信息备份!",f"System{sortkey[0]}","航班缺失恢复警告")
- database.FunctionCommit()
- flightinfo_flight_ids = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '*',"航班来源 ='飞机排班'")
- if len(flightinfo_flight_ids) != 0 :
- for iii in flightinfo_flight_ids:
- datas = baseFunction.TuplefindInList1(flightinfo_flight_ids , iii[0], 0)[0]
- if str(iii[0]) not in flight_id_now:
- cancelid = datas[35] if datas[35] else 0
- newcancelid = int(cancelid) + 1
- if int(newcancelid) < 3:
- newdic = {"取消标志" : "'%s'" % newcancelid}
- database.lazyUpdateItem('TaskFlightinfo{}'.format(nowDayStr) , newdic ,"航班编号='%s'" % iii[0])
- else:
- database.deleteSingledata("TaskFlightinfo{}".format(nowDayStr),"航班编号='%s'" %f"{iii[0]}")
- #waringinsert(database,f"{datas[1]}/{datas[12]}Sytem航班删除!",f"System{datas[0]}","Sytem航班自动删除")
- database.FunctionCommit()
- except Exception as e:
- #print(e)
- database.FunctionCommit()
- app_logger.log_error(e)
- app_logger.log_error("飞机排班系统校验航班失败")
- print(datetime.datetime.now(),'[数据库操作]结束校验航班')
|