123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- import datetime
- import unitls.baseFunction as baseFunction
- from unitls.LogerinTxt import app_logger
- from unitls.StaticDataclass import get_dic
- from .flightDB import flightDB
- def FlightPlanInsert(database: flightDB, datatime: str, jsonData):
- nowDayStr = datatime
- now = datetime.datetime.now()
- insertdatestr = datatime + " 00:00:00"
- insertdate = datetime.datetime.strptime(insertdatestr, "%Y%m%d %H:%M:%S").strftime("%Y-%m-%d %H:%M:%S")
- 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")
- nowDay_str2 = datetime.date.today().strftime("%Y-%m-%d")
- a_str = nowDay_str2 + " 20:30:00"
- c_str = nowDay_str2 + " 09:00:00"
- time1 = datetime.datetime.strptime(a_str, "%Y-%m-%d %H:%M:%S")
- time3 = datetime.datetime.strptime(c_str, "%Y-%m-%d %H:%M:%S")
- if now < time3:
- days = [nowDay, nowDay_1]
- elif time3 < now < time1:
- days = [nowDay]
- else:
- days = [nowDay, nowDay_2]
- if nowDayStr in days:
- keys=get_dic('flightplanflightinfoLabel')
- flightinfo_flight_ids_arr = []
- flightinfo_flight_ids = database.queryTabel('flightplaninfo{}'.format(nowDayStr), '*', "flightId !=''")#确认一下要不要取整张表
- if len(flightinfo_flight_ids) != 0:
- for i in flightinfo_flight_ids:
- flightinfo_flight_ids_arr.append(i[0])
- flight_id_now = []
- if jsonData !="" and jsonData !=None and jsonData != {} and len(jsonData)!=0 :
- try:
- for row in jsonData:
- targets = ["321","320","319","737","C919","C909","ARJ21"]
- ac_type = row.get("acType" , "")
- if (row.get("arrAirportAbbr","") == "天府" or row.get("depAirportAbbr","") == "天府") and any(target in ac_type for target in targets) and not ("备降" == str(row.get("flgVr", "")) and bool(row.get("fplAirport1Abbr", ""))):
- flight_id_now.append(row["flightId"])
- if str(row["flightId"]) not in str(flightinfo_flight_ids_arr) and str(insertdate) == row["flightDate"]:
- newDic={}
- for key in keys:
- if key in row.keys() and row[key]:
- if key == "acReg" :
- newDic[key] = str(row[key].replace("B", ""))
- else:
- newDic[key] = str(row[key])
- else:
- newDic[key] = ""
- if (row["arrAirportAbbr"] == "天府" and datetime.datetime.strptime(row["sta"], "%Y-%m-%d %H:%M:%S") <= (datetime.datetime.now() + datetime.timedelta(hours=11))) or \
- (row["depAirportAbbr"] == "天府" and datetime.datetime.strptime(row["std"], "%Y-%m-%d %H:%M:%S") <= (datetime.datetime.now() + datetime.timedelta(hours=12))):
- newDic["备1"] = "1"
- database.lazyInsertData('flightplaninfo{}'.format(nowDayStr), newDic)
- elif str(row["flightId"]) in str(flightinfo_flight_ids_arr):
- for key in keys:
- if key in row.keys():
- b = baseFunction.TuplefindInList3(flightinfo_flight_ids, row["flightId"], 0, keys.index(key))
- if key == "acReg" :
- row[key]= str(row[ key ].replace("B" , ""))
- if b != row[key] and row[key]:
- newdic = {"%s"%key: "'%s'" % row[key]}
- database.lazyUpdateItem('flightplaninfo{}'.format(nowDayStr), newdic,"flightId='%s'" % row["flightId"])
- elif key != "备1":
- newdic = {"%s"%key: "''"}
- database.lazyUpdateItem('flightplaninfo{}'.format(nowDayStr), newdic,"flightId='%s'" % row["flightId"])
- if (row["arrAirportAbbr"] == "天府" and datetime.datetime.strptime(row["sta"], "%Y-%m-%d %H:%M:%S") <= (datetime.datetime.now() + datetime.timedelta(hours=11))) or \
- (row["depAirportAbbr"] == "天府" and datetime.datetime.strptime(row["std"], "%Y-%m-%d %H:%M:%S") <= (datetime.datetime.now() + datetime.timedelta(hours=12))):
- newdic = {"备1": "'1'"}
- #database.lazyUpdateItem('flightplaninfo{}'.format(nowDayStr), newdic,"flightId='%s'" % row["flightId"])
- else:
- newdic = {"备1": "''"}
- database.lazyUpdateItem('flightplaninfo{}'.format(nowDayStr), newdic,"flightId='%s'" % row[ "flightId" ])
- database.FunctionCommit()
- except Exception as e:
- database.FunctionCommit()
- app_logger.log_error(e)
- app_logger.log_error(row)
- pass
- else:
- print(datetime.datetime.now(), "[数据库操作]flightplaninfo航班数据为空")
- app_logger.log_error("[数据库操作]flightplaninfo航班数据为空")
- pass
- if jsonData !="" and jsonData !=None and jsonData != {} and len(flight_id_now) != 0 and len(jsonData)!=0:
- flightinfo_flight_ids = database.queryTabel('flightplaninfo{}'.format(nowDayStr),'*',"flightId !=''")
- if len(flightinfo_flight_ids) != 0:
- for iii in flightinfo_flight_ids:
- if str(iii[0]) not in flight_id_now:
- database.deleteSingledata("flightplaninfo{}".format(nowDayStr), "flightId='%s'" % str(iii[0]) )
- database.FunctionCommit()
- '''
- flightinfo_flight_ids = database.sort_queryTable2("*",'flightplaninfo{}'.format(nowDayStr), "flightId !=''","ACNO","ASC","STD","ASC")
- flightinfo_flight_ids2 = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr),"*", "备5 !='' and 备4 =''")
- flightinfo_flight_ids_check = flightinfo_flight_ids2 if flightinfo_flight_ids2 != None else ""
- if len(flightinfo_flight_ids) != 0:
- last_acno = ""
- for row in flightinfo_flight_ids:
- if row[0] in str(flightinfo_flight_ids_check) or (last_acno != row[2] and row[4] == "天府"):
- newDic2 = {"backup3": "'AP'", "backup4": "'航前'"}
- database.lazyUpdateItem('flightplaninfo{}'.format(nowDayStr), newDic2, "flightId='%s'" % row[0])
- else:
- newDic2 = {"backup3": "'%s'" % row[12], "backup4": "'%s'" % tasktype[row[12]]}
- database.lazyUpdateItem('flightplaninfo{}'.format(nowDayStr), newDic2, "flightId='%s'" % row[0])
- last_acno = row[2]
- database.FunctionCommit()
- #'''
|