TaskListInsert.py 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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 TaskListInsert(database: flightDB, datatime: str, jsonData):
  7. nowDayStr = datatime
  8. flightinfo_flight_ids_arr = []
  9. flightinfo_flight_ids = database.queryTabel('TaskList{}'.format(nowDayStr), '*', "TASKID !=''")#确认一下要不要取整张表
  10. if len(flightinfo_flight_ids) != 0:
  11. for i in flightinfo_flight_ids:
  12. flightinfo_flight_ids_arr.append(i[0])
  13. flight_id_now = []
  14. keys = get_dic('TaskListLabel')
  15. if jsonData != "" and jsonData != None and jsonData != {} and len(jsonData) != 0:
  16. for row in jsonData:
  17. flight_id_now.append(row["TASKID"])
  18. if str(row["TASKID"]) not in str(flightinfo_flight_ids_arr):
  19. newDic={}
  20. for key in keys:
  21. if key in row.keys():
  22. newDic[key] = str(row[key])
  23. else:
  24. if key != "STA":
  25. newDic[key] = ""
  26. elif row["TASKTYPE"] == "航前":
  27. newDic[key] = datetime.datetime.strptime(row["STARTDATE_PL"],"%Y-%m-%d %H:%M:%S") + datetime.timedelta(hours=2)
  28. else:
  29. newDic[key] = datetime.datetime.strptime(row["STARTDATE_PL"],"%Y-%m-%d %H:%M:%S") + datetime.timedelta(minutes=15)
  30. database.lazyInsertData('TaskList{}'.format(nowDayStr), newDic)
  31. elif str(row["TASKID"]) in str(flightinfo_flight_ids_arr):
  32. for key in keys:
  33. if key in row.keys():
  34. b = baseFunction.TuplefindInList3(flightinfo_flight_ids, row["TASKID"], 0, keys.index(key))
  35. if b != row[key]:
  36. newdic = {"%s"%key: "'%s'" % row[key]}
  37. database.lazyUpdateItem('TaskList{}'.format(nowDayStr), newdic,"TASKID='%s'" % row["TASKID"])
  38. else:
  39. if key != "STA":
  40. newdata = ""
  41. elif row["TASKTYPE"] == "航前":
  42. newdata = datetime.datetime.strptime(row["STARTDATE_PL"],"%Y-%m-%d %H:%M:%S") + datetime.timedelta(hours=2)
  43. else:
  44. newdata = datetime.datetime.strptime(row["STARTDATE_PL"],"%Y-%m-%d %H:%M:%S") + datetime.timedelta(minutes=15)
  45. newdic = {"%s"%key: "'%s'"%newdata}
  46. database.lazyUpdateItem('TaskList{}'.format(nowDayStr), newdic,"TASKID='%s'" % row["TASKID"])
  47. database.FunctionCommit()
  48. else:
  49. print(datetime.datetime.now(), "[数据库操作]TaskList航班数据为空")
  50. app_logger.log_error("[数据库操作]TaskList航班数据为空")
  51. pass
  52. if jsonData !="" and jsonData !=None and jsonData != {} and len(flight_id_now) != 0 and len(jsonData)!=0:
  53. flightinfo_flight_ids = database.queryTabel('TaskList{}'.format(nowDayStr),'*',"TASKID !=''")
  54. if len(flightinfo_flight_ids) != 0:
  55. for iii in flightinfo_flight_ids:
  56. if str(iii[0]) not in flight_id_now :
  57. database.deleteSingledata("TaskList{}".format(nowDayStr), "TASKID='%s'" % str(iii[0]) )
  58. database.FunctionCommit()