flightsearchInsert.py 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. from .flightDB import flightDB
  2. import datetime
  3. from unitls.StaticDataclass import get_dic
  4. from unitls.LogerinTxt import app_logger
  5. import unitls.baseFunction as baseFunction
  6. def FlightSearchInsert(database: flightDB, datatime: str, jsonData):
  7. tasktype=get_dic('taskType')
  8. nowDayStr = datatime
  9. now = datetime.datetime.now()
  10. insertdatestr = datatime + " 00:00:00"
  11. insertdate = datetime.datetime.strptime(insertdatestr, "%Y%m%d %H:%M:%S").strftime("%Y-%m-%d %H:%M:%S")
  12. nowDay = datetime.datetime.now().strftime("%Y%m%d")
  13. nowDay_1 = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  14. nowDay_2 = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  15. nowDay_str2 = datetime.date.today().strftime("%Y-%m-%d")
  16. a_str = nowDay_str2 + " 20:30:00"
  17. c_str = nowDay_str2 + " 09:00:00"
  18. time1 = datetime.datetime.strptime(a_str, "%Y-%m-%d %H:%M:%S")
  19. time3 = datetime.datetime.strptime(c_str, "%Y-%m-%d %H:%M:%S")
  20. if now < time3:
  21. days = [nowDay, nowDay_1]
  22. elif time3 < now < time1:
  23. days = [nowDay]
  24. else:
  25. days = [nowDay, nowDay_2]
  26. if nowDayStr in days:
  27. keys=get_dic('flightsearchLabel')
  28. flightinfo_flight_ids_arr = []
  29. flightinfo_flight_ids = database.queryTabel('FlightSearch{}'.format(nowDayStr), '*', "FLIGHT_ID !=''")#确认一下要不要取整张表
  30. if len(flightinfo_flight_ids) != 0:
  31. for i in flightinfo_flight_ids:
  32. flightinfo_flight_ids_arr.append(i[0])
  33. flight_id_now = []
  34. if jsonData !="" and jsonData !=None and jsonData != {} and len(jsonData)!=0 :
  35. last_acno=""
  36. try:
  37. for row in jsonData:
  38. flight_id_now.append(row["FLIGHT_ID"])
  39. if str(row["FLIGHT_ID"]) not in str(flightinfo_flight_ids_arr) and str(insertdate) == row["FLIGHT_DATE"]:
  40. newDic={}
  41. for key in keys:
  42. if key in row.keys():
  43. newDic[key] = str(row[key])
  44. else:
  45. newDic[key] = ""
  46. database.lazyInsertData('FlightSearch{}'.format(nowDayStr), newDic)
  47. elif str(row["FLIGHT_ID"]) in str(flightinfo_flight_ids_arr):
  48. for key in keys:
  49. if key in row.keys():
  50. b = baseFunction.TuplefindInList3(flightinfo_flight_ids, row["FLIGHT_ID"], 0, keys.index(key))
  51. if b != row[key]:
  52. newdic = {"%s"%key: "'%s'" % row[key]}
  53. database.lazyUpdateItem('FlightSearch{}'.format(nowDayStr), newdic,"FLIGHT_ID='%s'" % row["FLIGHT_ID"])
  54. else:
  55. newdic = {"%s"%key: "''"}
  56. database.lazyUpdateItem('FlightSearch{}'.format(nowDayStr), newdic,"FLIGHT_ID='%s'" % row["FLIGHT_ID"])
  57. if last_acno != row["ACNO"] and row["DEP_CH"] == "天府":
  58. newDic2 = {"backup1": "'AP'","backup2": "'航前'"}
  59. database.lazyUpdateItem('FlightSearch{}'.format(nowDayStr), newDic2, "FLIGHT_ID='%s'" % row["FLIGHT_ID"])
  60. else:
  61. newDic2 = {"backup1": "'%s'"%row["TASKTYPE"] if "TASKTYPE" in row else "'未显示'","backup2": "'%s'"%tasktype[row["TASKTYPE"]] if "TASKTYPE" in row else "'未显示'"}
  62. database.lazyUpdateItem('FlightSearch{}'.format(nowDayStr), newDic2,"FLIGHT_ID='%s'" % row["FLIGHT_ID"])
  63. last_acno = row["ACNO"]
  64. database.FunctionCommit()
  65. except Exception as e:
  66. database.FunctionCommit()
  67. app_logger.log_error(e)
  68. app_logger.log_error(row)
  69. pass
  70. else:
  71. print(datetime.datetime.now(), "[数据库操作]FlightSearch航班数据为空")
  72. app_logger.log_error("[数据库操作]FlightSearch航班数据为空")
  73. pass
  74. if jsonData !="" and jsonData !=None and jsonData != {} and len(flight_id_now) != 0 and len(jsonData)!=0:
  75. flightinfo_flight_ids = database.queryTabel('FlightSearch{}'.format(nowDayStr),'*',"FLIGHT_ID !=''")
  76. if len(flightinfo_flight_ids) != 0:
  77. for iii in flightinfo_flight_ids:
  78. if str(iii[0]) not in flight_id_now :
  79. database.deleteSingledata("FlightSearch{}".format(nowDayStr), "FLIGHT_ID='%s'" % str(iii[0]) )
  80. database.FunctionCommit()
  81. '''
  82. flightinfo_flight_ids = database.sort_queryTable2("*",'FlightSearch{}'.format(nowDayStr), "FLIGHT_ID !=''","ACNO","ASC","STD","ASC")
  83. flightinfo_flight_ids2 = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr),"*", "备5 !='' and 备4 =''")
  84. flightinfo_flight_ids_check = flightinfo_flight_ids2 if flightinfo_flight_ids2 != None else ""
  85. if len(flightinfo_flight_ids) != 0:
  86. last_acno = ""
  87. for row in flightinfo_flight_ids:
  88. if row[0] in str(flightinfo_flight_ids_check) or (last_acno != row[2] and row[4] == "天府"):
  89. newDic2 = {"backup3": "'AP'", "backup4": "'航前'"}
  90. database.lazyUpdateItem('FlightSearch{}'.format(nowDayStr), newDic2, "FLIGHT_ID='%s'" % row[0])
  91. else:
  92. newDic2 = {"backup3": "'%s'" % row[12], "backup4": "'%s'" % tasktype[row[12]]}
  93. database.lazyUpdateItem('FlightSearch{}'.format(nowDayStr), newDic2, "FLIGHT_ID='%s'" % row[0])
  94. last_acno = row[2]
  95. database.FunctionCommit()
  96. #'''