checkTFUairplane.py 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. from .flightDB import flightDB
  2. import datetime
  3. from unitls.LogerinTxt import app_logger
  4. import unitls.baseFunction as baseFunction
  5. def checkTFUairplane(database:flightDB):
  6. try:
  7. code = {"接机已到位提示","已放行提示","二送已到位提示"}
  8. code2num = {"接机已到位提示":8,"已放行提示":9,"二送已到位提示":12}
  9. code2 = {"接机已到位提示", "已放行提示"}
  10. code22num = {"接机已到位提示":8, "已放行提示":9}
  11. #需要建立昨日初始化
  12. nowDay = datetime.datetime.now().strftime("%Y%m%d")
  13. nowDay_1 = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  14. now = datetime.datetime.now()
  15. now11=str(now).split(".")[0]
  16. day = [nowDay, nowDay_1]
  17. for nowDayStr in day:
  18. AFinsky_arr = []
  19. AFongroud_arr = []
  20. TRinsky_arr = []
  21. TRongroud_arr = []
  22. THQinsky_arr = []
  23. THQongroud_arr = []
  24. APongroud_arr = []
  25. flightsts_flight_ids_arr=[]
  26. AFinsky=database.queryTabel('TaskFlightinfo{}'.format(nowDayStr),'航班编号',"航班类型='AF' and 非航前预计到达!='' and 非航前实际到达=''and 上段起飞时间!=''")
  27. AFongroud=database.queryTabel('TaskFlightinfo{}'.format(nowDayStr),'航班编号',"航班类型='AF' and 非航前实际到达!=''")
  28. TRinsky=database.queryTabel('TaskFlightinfo{}'.format(nowDayStr),'航班编号',"航班类型='TR' and 非航前预计到达!='' and 非航前实际到达='' and 上段起飞时间!=''")
  29. TRongroud = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '航班编号', "航班类型='TR' and 非航前实际到达!='' and 实际起飞 ='' ")
  30. THQinsky = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '航班编号',"航班类型='TAF' and 非航前预计到达!='' and 非航前实际到达=''and 上段起飞时间!=''")
  31. THQongroud=database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '航班编号', "航班类型='TAF' and 非航前实际到达!='' and 实际起飞 =''")
  32. APongroud=database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '航班编号', "航班类型='AP' and 实际起飞 =''")
  33. ##################################
  34. #缺个未显示的航班筛选
  35. if len(AFinsky) != 0:
  36. for i in AFinsky:
  37. AFinsky_arr.append(i[0])
  38. if len(AFongroud) != 0:
  39. for i in AFongroud:
  40. AFongroud_arr.append(i[0])
  41. if len(TRinsky) != 0:
  42. for i in TRinsky:
  43. TRinsky_arr.append(i[0])
  44. if len(TRongroud) != 0:
  45. for i in TRongroud:
  46. TRongroud_arr.append(i[0])
  47. if len(THQinsky) != 0:
  48. for i in THQinsky:
  49. THQinsky_arr.append(i[0])
  50. if len(THQongroud) != 0:
  51. for i in THQongroud:
  52. THQongroud_arr.append(i[0])
  53. if len(APongroud) != 0:
  54. for i in APongroud:
  55. APongroud_arr.append(i[0])
  56. flightsts_flight_ids=database.queryTabel('flightsts{}'.format(nowDayStr),'*',"航班编号 != ''")
  57. flightinfo_flight_ids = database.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '*', "航班编号 != ''")
  58. if len(flightsts_flight_ids) != 0:
  59. for flightstskey in flightsts_flight_ids:
  60. newdic={"天府飞机":"''"}
  61. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%flightstskey[0])
  62. if flightstskey[0] not in flightinfo_flight_ids:
  63. flightsts_flight_ids_arr.append(flightstskey[0])
  64. else:
  65. database.deleteSingledata('flightsts{}'.format(nowDayStr),"航班编号='%s'"%flightstskey[0])
  66. for AFinsky_arr_key in AFinsky_arr:
  67. if AFinsky_arr_key in flightsts_flight_ids_arr:
  68. newdic = {"天府飞机":"'空中航后'"}
  69. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%AFinsky_arr_key)
  70. else:
  71. newdic={"航班编号":"%s"%AFinsky_arr_key,"接机到位":"","放行":"","销子夹板":"","随机到位":"","二送到位":"","接机已到位提示":"","已放行提示":"","销子夹板已提示":"","随机已到位提示":"","二送已到位提示":"","天府飞机":'空中航后',"机号":"","机位":""}
  72. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  73. for AFongroud_arr_key in AFongroud_arr:
  74. if AFongroud_arr_key in flightsts_flight_ids_arr:
  75. newdic = {"天府飞机": "'地面航后'"}
  76. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%AFongroud_arr_key)
  77. else:
  78. newdic = {"航班编号": "%s" % AFongroud_arr_key, "接机到位": "", "放行": "", "销子夹板": "", "随机到位": "", "二送到位": "",
  79. "接机已到位提示": "", "已放行提示": "", "销子夹板已提示": "", "随机已到位提示": "", "二送已到位提示": "", "天府飞机": '地面航后',"机号":"","机位":""}
  80. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  81. for TRinsky_arr_key in TRinsky_arr:
  82. if TRinsky_arr_key in flightsts_flight_ids_arr:
  83. newdic = {"天府飞机": "'空中短停'"}
  84. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%TRinsky_arr_key)
  85. else:
  86. newdic = {"航班编号": "%s" % TRinsky_arr_key, "接机到位": "", "放行": "", "销子夹板": "", "随机到位": "", "二送到位": "",
  87. "接机已到位提示": "", "已放行提示": "", "销子夹板已提示": "", "随机已到位提示": "", "二送已到位提示": "", "天府飞机": '空中短停',"机号":"","机位":""}
  88. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  89. for TRongroud_arr_key in TRongroud_arr:
  90. if TRongroud_arr_key in flightsts_flight_ids_arr:
  91. newdic = {"天府飞机": "'地面短停'"}
  92. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%TRongroud_arr_key)
  93. else:
  94. newdic = {"航班编号": "%s" % TRongroud_arr_key, "接机到位": "", "放行": "", "销子夹板": "", "随机到位": "", "二送到位": "",
  95. "接机已到位提示": "", "已放行提示": "", "销子夹板已提示": "", "随机已到位提示": "", "二送已到位提示": "", "天府飞机": '地面短停',"机号":"","机位":""}
  96. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  97. for THQinsky_arr_key in THQinsky_arr:
  98. if THQinsky_arr_key in flightsts_flight_ids_arr:
  99. newdic = {"天府飞机": "'空中特后前'"}
  100. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%THQinsky_arr_key)
  101. else:
  102. newdic = {"航班编号": "%s" % THQinsky_arr_key, "接机到位": "", "放行": "", "销子夹板": "", "随机到位": "", "二送到位": "",
  103. "接机已到位提示": "", "已放行提示": "", "销子夹板已提示": "", "随机已到位提示": "", "二送已到位提示": "", "天府飞机": '空中特后前',"机号":"","机位":""}
  104. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  105. for THQongroud_arr_key in THQongroud_arr:
  106. if THQongroud_arr_key in flightsts_flight_ids_arr:
  107. newdic = {"天府飞机": "'地面特后前'"}
  108. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%THQongroud_arr_key)
  109. else:
  110. newdic = {"航班编号": "%s" % THQongroud_arr_key, "接机到位": "", "放行": "", "销子夹板": "", "随机到位": "", "二送到位": "",
  111. "接机已到位提示": "", "已放行提示": "", "销子夹板已提示": "", "随机已到位提示": "", "二送已到位提示": "", "天府飞机": '地面特后前',"机号":"","机位":""}
  112. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  113. for APongroud_arr_key in APongroud_arr:
  114. #print(APongroud_arr_key)
  115. if APongroud_arr_key in flightsts_flight_ids_arr:
  116. newdic = {"天府飞机":"'地面航前'"}
  117. database.lazyUpdateItem('flightsts{}'.format(nowDayStr),newdic,"航班编号='%s'"%APongroud_arr_key)
  118. else:
  119. newdic = {"航班编号": "%s" % APongroud_arr_key, "接机到位": "", "放行": "", "销子夹板": "", "随机到位": "", "二送到位": "",
  120. "接机已到位提示": "", "已放行提示": "", "销子夹板已提示": "", "随机已到位提示": "", "二送已到位提示": "", "天府飞机": '地面航前',"机号":"","机位":""}
  121. database.lazyInsertData('flightsts{}'.format(nowDayStr),newdic)
  122. for flightstskey in flightinfo_flight_ids:
  123. acno_str = baseFunction.TuplefindInList3(flightinfo_flight_ids, flightstskey[0], 0, 1)
  124. if baseFunction.TuplefindInList3(flightinfo_flight_ids, flightstskey[0], 0, 3) != "AP":
  125. bay_str = baseFunction.TuplefindInList3(flightinfo_flight_ids, flightstskey[0], 0, 11)
  126. else:
  127. bay_str =baseFunction.TuplefindInList3(flightinfo_flight_ids, flightstskey[0], 0, 10)
  128. if bay_str != baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 2) or acno_str != baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 1):
  129. newdic = {"机位":"'%s'"%bay_str, "机号":"'%s'"%acno_str}
  130. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  131. worksts_str=baseFunction.TuplefindInList3(flightinfo_flight_ids, flightstskey[0], 0, 14)
  132. worksts = int(worksts_str) if worksts_str != "" else 0
  133. a=baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 2) if baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 2)!="" else "未显示机号"
  134. if worksts >= 7 and str(flightstskey[0]) in str(flightsts_flight_ids_arr):
  135. if baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0,3) != "已到位" or baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0,4) != "已放行":
  136. newdic={"接机到位":"'已到位'", "放行": "'已放行'"}
  137. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  138. for i in code2:
  139. if "1" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, code22num[i]):
  140. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s%s!%s"%(a,i,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  141. database.lazyInsertData('logs', newdic)
  142. newdic = {"%s"%i: 1}
  143. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  144. elif worksts >= 4 and str(flightstskey[0]) in str(flightsts_flight_ids_arr):
  145. if baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0,3) != "已到位" :
  146. newdic = {"接机到位": "'已到位'"}
  147. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  148. if "1" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 8):
  149. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s接机已到位提示!%s"%(a,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  150. database.lazyInsertData('logs', newdic)
  151. newdic = {"接机已到位提示": 1}
  152. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'"% flightstskey[0])
  153. if "1" in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 9) and "人工" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 4):
  154. newdic = {"放行": "''"}
  155. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  156. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s放行退回至到位!%s"%(a,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  157. database.lazyInsertData('logs', newdic)
  158. newdic = {"已放行提示": 0}
  159. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'"% flightstskey[0])
  160. elif str(flightstskey[0]) in str(flightsts_flight_ids_arr):
  161. if "1" in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 8) and "人工" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 3):
  162. newdic = {"接机到位": "''"}
  163. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  164. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s状态退回至初始状态!%s"%(a,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  165. database.lazyInsertData('logs', newdic)
  166. newdic = {"接机已到位提示": 0}
  167. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'"% flightstskey[0])
  168. if "1" in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 9) and "人工" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 4):
  169. newdic = {"放行": "''"}
  170. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  171. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s状态退回至初始状态!%s"%(a,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  172. database.lazyInsertData('logs', newdic)
  173. newdic = {"已放行提示": 0}
  174. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'"% flightstskey[0])
  175. ECSJ_worksts_str = baseFunction.TuplefindInList3(flightinfo_flight_ids, flightstskey[0], 0, 20)
  176. ECSJ_worksts_STR = ECSJ_worksts_str if len(ECSJ_worksts_str) != 0 else 0
  177. ECSJ_worksts = int(ECSJ_worksts_STR) if ECSJ_worksts_STR != "" else 0
  178. if ECSJ_worksts >= 15 and str(flightstskey[0]) in str(flightsts_flight_ids_arr):
  179. if baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0,7) != "已到位" :
  180. #newdic = {"接机到位": "'已到位'", "放行": "'已放行'", "二送到位": "'已到位'"}
  181. newdic = {"二送到位": "'已到位'"}
  182. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  183. if"1" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 12):
  184. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s二送已到位提示!%s"%(a,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  185. database.lazyInsertData('logs', newdic)
  186. newdic = {"二送已到位提示": 1}
  187. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  188. elif str(flightstskey[0]) in str(flightsts_flight_ids_arr) and "人工" not in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 7):
  189. if baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0,7) != "" :
  190. #newdic = {"接机到位": "'已到位'", "放行": "'已放行'", "二送到位": "'已到位'"}
  191. newdic = {"二送到位": "''"}
  192. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  193. if "1" in baseFunction.TuplefindInList3(flightsts_flight_ids, flightstskey[0], 0, 12):
  194. newdic={"航班编号":"%s"% flightstskey[0],"警告信息":"","信息状态":"","提示信息":"AMRO:%s二送到位取消到位!%s"%(a,now11),"产生时间":"%s"%now,"处理人":"","处理时间":"","变更字段":"","显示对象":"","提示内容":""}
  195. database.lazyInsertData('logs', newdic)
  196. newdic = {"二送已到位提示": 0}
  197. database.lazyUpdateItem('flightsts{}'.format(nowDayStr), newdic, "航班编号='%s'" % flightstskey[0])
  198. database.FunctionCommit()
  199. except Exception as e:
  200. app_logger.log_error(e)
  201. database.FunctionCommit()