bakupdata.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. from .flightDB import flightDB
  2. import datetime
  3. from openpyxl import Workbook
  4. from unitls.LogerinTxt import app_logger
  5. from .getSortFlightdata import getSortFlightdata
  6. from unitls.baseFunction import TuplefindInList1
  7. from unitls.StaticDataclass import get_dic
  8. def bakupdata(fdb :flightDB):
  9. try:
  10. # print("5分钟间隔自动备份")
  11. nowDay = str(datetime.date.today().strftime("%Y%m%d"))
  12. nowDay_1 = str((datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d"))
  13. aaa ={nowDay :"今天" ,nowDay_1 :"昨天"}
  14. tableWidgetDispalydatas ={}
  15. wb = Workbook()
  16. for selectedtime in [nowDay ,nowDay_1]:
  17. wb.create_sheet(title="%s " %selectedtime, index=0)
  18. ws = wb.active
  19. ws.title = "%s " %selectedtime
  20. ws= wb["%s " %selectedtime]
  21. ws.cell(1, 1).value = "序号"
  22. ws.cell(1, 2).value = "类型"
  23. ws.cell(1, 3).value = "航班号"
  24. ws.cell(1, 4).value = "机型"
  25. ws.cell(1, 5).value = "发动机"
  26. ws.cell(1, 6).value = "机号"
  27. ws.cell(1, 7).value = "计达"
  28. ws.cell(1, 8).value = "预达"
  29. ws.cell(1, 9).value = "计飞"
  30. ws.cell(1, 10).value = "机位"
  31. ws.cell(1, 11).value = "放行"
  32. ws.cell(1, 12).value = "工1"
  33. ws.cell(1, 13).value = "工2"
  34. ws.cell(1, 14).value = "工3"
  35. ws.cell(1, 15).value = "工4"
  36. ws.cell(1, 16).value = "工5"
  37. ws.cell(1, 17).value = "送1"
  38. ws.cell(1, 18).value = "送2"
  39. ws.cell(1, 19).value = "备注"
  40. ws.cell(1, 20).value = "接机到位"
  41. ws.cell(1, 21).value = "二送到位"
  42. ws.cell(1, 22).value = "放行情况"
  43. ws.cell(1, 23).value = "销子夹板"
  44. tableWidgetDispalydata = {}
  45. sorttable = getSortFlightdata(fdb, selectedtime, "sortFlight2")
  46. nowDayStr = selectedtime
  47. '''
  48. col_dic = {"0": "序号", "1": "机号", "2": "机型", "3": "发动机", "4": "航班号", "5": "计达", "6": "预达", "7": "计飞", "8": "机位",
  49. "9": "类型", "10": "放行", "11": "勤务1", "12": "勤务2", "13": "工1", "14": "工2", "15": "工3", "16": "到位",
  50. "18": "放行","19": "销夹", "17": "二送", "20": "随机", "21": "随机到位", "22": "保留", "23": "工作包", "24": "返航备降", "25": "维修人员",
  51. "26": "二送人员", "27": "放行", "28": "航班编号", "29": "任务编号", "30": "TATD", "31": "类型","32":"附加消息"}
  52. col_dic = {"0": "序号", "1": "机号", "2": "机型", "3": "发动机", "4": "航班号", "5": "计达", "6": "预达", "7": "计飞", "8": "机位",
  53. "9": "类型", "10": "放行", "11": "勤务1", "12": "勤务2", "13": "工1", "14": "工2", "15": "工3", "16": "到位",
  54. "18": "放行","19": "销夹", "17": "二送","20":"附加消息","21": "送机1", "22": "送机2"}
  55. '''
  56. rowNum = 0
  57. datas = fdb.queryTabel('TaskFlightinfo{}'.format(nowDayStr), '*', "航班编号!=''")
  58. taskType = get_dic('taskType')
  59. for row in sorttable:
  60. TaskFlightinfo=TuplefindInList1(datas,row[1],0)[0]
  61. flightstsdata = fdb.queryTabel('flightsts{}'.format(nowDayStr), '*', "航班编号='{}'".format(row[1]))[0] if len \
  62. (fdb.queryTabel('flightsts{}'.format(nowDayStr), '*', "航班编号='{}'".format(row[1]))) != 0 else ["", ""
  63. ,"", "", "" ,"", "", ""
  64. ,"", "", "" ,"", "", ""]
  65. jjdw = "√" if flightstsdata[3] != "" else ""
  66. FX = "√" if flightstsdata[4] != "" else ""
  67. XJ = "√" if flightstsdata[5] != "" else ""
  68. ESDW = "√" if flightstsdata[7] != "" else ""
  69. flighttype =taskType[TaskFlightinfo[3]] if "3U" in str(TaskFlightinfo[21]) or "CSC" in str(TaskFlightinfo[21]) else "外 " +str(taskType[TaskFlightinfo[3]])
  70. if TaskFlightinfo[4] != "" and (TaskFlightinfo[8] == "" or TaskFlightinfo[30] == ""): # 如果sta不为空,且eta或flying为空,显示sta
  71. a = TaskFlightinfo[4][-8:-3].replace(":","")
  72. else:
  73. a = ""
  74. if TaskFlightinfo[6] != "": # 当ata不为空显示ata,eta不为空显示eta否则为空
  75. b = TaskFlightinfo[6][-8:-3].replace(":","")
  76. elif TaskFlightinfo[8] != "":
  77. b = TaskFlightinfo[8][-8:-3].replace(":","")
  78. else:
  79. b = ''
  80. if TaskFlightinfo[7] != "":
  81. c =TaskFlightinfo[7][-8:-3].replace(":","")
  82. elif TaskFlightinfo[5] != "":
  83. c =TaskFlightinfo[5][-8:-3].replace(":","")
  84. else:
  85. c = ''
  86. fx = ""
  87. g1 = ""
  88. g2 = ""
  89. g3 = ""
  90. g4 = ""
  91. g5 = ""
  92. fj1 = ""
  93. s1 = ""
  94. s2 = ""
  95. fj2 = ""
  96. fj =""
  97. peopleSchedules = fdb.queryTabel('peopleSchedule{}'.format(nowDayStr), '*',
  98. "航班编号='{}'".format(row[1])) if \
  99. len(fdb.queryTabel('peopleSchedule{}'.format(nowDayStr), '*',
  100. "航班编号='{}'".format(row[1]))) != 0 else [
  101. ("000", "", "", "", "", "", "", "", "", "")]
  102. # print(peopleSchedules)
  103. for i in peopleSchedules:
  104. if i[0][-3] == "1":
  105. fx = i[3]
  106. g1 = i[4]
  107. g2 = i[5]
  108. g3 = i[6]
  109. g4 = i[7]
  110. g5 = i[8]
  111. fj1 = i[9]
  112. elif i[0][-3] == "2":
  113. s1 = i[7]
  114. s2 = i[8]
  115. fj2 = i[9]
  116. fj = fj1 + fj2
  117. if taskType[TaskFlightinfo[3]] == "航后":
  118. ws.cell(rowNum + 2, 1).value = rowNum + 1
  119. ws.cell(rowNum + 2, 2).value = flighttype
  120. ws.cell(rowNum + 2, 3).value = TaskFlightinfo[21]
  121. ws.cell(rowNum + 2, 4).value = TaskFlightinfo[26]
  122. ws.cell(rowNum + 2, 5).value = TaskFlightinfo[25]
  123. ws.cell(rowNum + 2, 6).value = TaskFlightinfo[1]
  124. ws.cell(rowNum + 2, 7).value = a
  125. ws.cell(rowNum + 2, 8).value = b
  126. ws.cell(rowNum + 2, 9).value = ""
  127. ws.cell(rowNum + 2, 10).value = TaskFlightinfo[10]
  128. ws.cell(rowNum + 2, 11).value = fx
  129. ws.cell(rowNum + 2, 12).value = g1
  130. ws.cell(rowNum + 2, 13).value = g2
  131. ws.cell(rowNum + 2, 14).value = g3
  132. ws.cell(rowNum + 2, 15).value = g4
  133. ws.cell(rowNum + 2, 16).value = g5
  134. ws.cell(rowNum + 2, 17).value = s1
  135. ws.cell(rowNum + 2, 18).value = s2
  136. ws.cell(rowNum + 2, 19).value = fj
  137. ws.cell(rowNum + 2, 20).value = jjdw
  138. ws.cell(rowNum + 2, 21).value = ""
  139. ws.cell(rowNum + 2, 22).value = ""
  140. ws.cell(rowNum + 2, 23).value = ""
  141. rowNum += 1
  142. elif taskType[TaskFlightinfo[3]] == "停场":
  143. ws.cell(rowNum + 2, 1).value = rowNum + 1
  144. ws.cell(rowNum + 2, 2).value = flighttype
  145. ws.cell(rowNum + 2, 3).value = ""
  146. ws.cell(rowNum + 2, 4).value = TaskFlightinfo[26]
  147. ws.cell(rowNum + 2, 5).value = TaskFlightinfo[25]
  148. ws.cell(rowNum + 2, 6).value = TaskFlightinfo[1]
  149. ws.cell(rowNum + 2, 7).value = ""
  150. ws.cell(rowNum + 2, 8).value = ""
  151. ws.cell(rowNum + 2, 9).value = ""
  152. ws.cell(rowNum + 2, 10).value = TaskFlightinfo[10]
  153. ws.cell(rowNum + 2, 11).value = fx
  154. ws.cell(rowNum + 2, 12).value = g1
  155. ws.cell(rowNum + 2, 13).value = g2
  156. ws.cell(rowNum + 2, 14).value = g3
  157. ws.cell(rowNum + 2, 15).value = g4
  158. ws.cell(rowNum + 2, 16).value = g5
  159. ws.cell(rowNum + 2, 17).value = s1
  160. ws.cell(rowNum + 2, 18).value = s2
  161. ws.cell(rowNum + 2, 19).value = fj
  162. ws.cell(rowNum + 2, 20).value = ""
  163. ws.cell(rowNum + 2, 21).value = ""
  164. ws.cell(rowNum + 2, 22).value = ""
  165. ws.cell(rowNum + 2, 23).value = ""
  166. rowNum += 1
  167. elif taskType[TaskFlightinfo[3]] == "航前":
  168. ws.cell(rowNum + 2, 1).value = rowNum + 1
  169. ws.cell(rowNum + 2, 2).value = flighttype
  170. ws.cell(rowNum + 2, 3).value = TaskFlightinfo[21]
  171. ws.cell(rowNum + 2, 4).value = TaskFlightinfo[26]
  172. ws.cell(rowNum + 2, 5).value = TaskFlightinfo[25]
  173. ws.cell(rowNum + 2, 6).value = TaskFlightinfo[1]
  174. ws.cell(rowNum + 2, 7).value = ""
  175. ws.cell(rowNum + 2, 8).value = ""
  176. ws.cell(rowNum + 2, 9).value = c
  177. ws.cell(rowNum + 2, 10).value = TaskFlightinfo[11]
  178. ws.cell(rowNum + 2, 11).value = fx
  179. ws.cell(rowNum + 2, 12).value = g1
  180. ws.cell(rowNum + 2, 13).value = g2
  181. ws.cell(rowNum + 2, 14).value = g3
  182. ws.cell(rowNum + 2, 15).value = g4
  183. ws.cell(rowNum + 2, 16).value = g5
  184. ws.cell(rowNum + 2, 17).value = s1
  185. ws.cell(rowNum + 2, 18).value = s2
  186. ws.cell(rowNum + 2, 19).value = fj
  187. ws.cell(rowNum + 2, 20).value = jjdw
  188. ws.cell(rowNum + 2, 21).value = ""
  189. ws.cell(rowNum + 2, 22).value = FX
  190. ws.cell(rowNum + 2, 23).value = XJ
  191. rowNum += 1
  192. elif row[3] == "短停接":
  193. ws.cell(rowNum + 2, 1).value = rowNum + 1
  194. ws.cell(rowNum + 2, 2).value = flighttype
  195. ws.cell(rowNum + 2, 3).value = TaskFlightinfo[21]
  196. ws.cell(rowNum + 2, 4).value = TaskFlightinfo[26]
  197. ws.cell(rowNum + 2, 5).value = TaskFlightinfo[25]
  198. ws.cell(rowNum + 2, 6).value = TaskFlightinfo[1]
  199. ws.cell(rowNum + 2, 7).value = a
  200. ws.cell(rowNum + 2, 8).value = b
  201. ws.cell(rowNum + 2, 9).value = c
  202. ws.cell(rowNum + 2, 10).value = TaskFlightinfo[10]
  203. ws.cell(rowNum + 2, 11).value = fx
  204. ws.cell(rowNum + 2, 12).value = g1
  205. ws.cell(rowNum + 2, 13).value = g2
  206. ws.cell(rowNum + 2, 14).value = g3
  207. ws.cell(rowNum + 2, 15).value = g4
  208. ws.cell(rowNum + 2, 16).value = g5
  209. ws.cell(rowNum + 2, 17).value = s1
  210. ws.cell(rowNum + 2, 18).value = s2
  211. ws.cell(rowNum + 2, 19).value = fj
  212. ws.cell(rowNum + 2, 20).value = jjdw
  213. ws.cell(rowNum + 2, 21).value = ESDW
  214. ws.cell(rowNum + 2, 22).value = FX
  215. ws.cell(rowNum + 2, 23).value = ""
  216. rowNum += 1
  217. elif row[3] == "特后前接":
  218. ws.cell(rowNum + 2, 1).value = rowNum + 1
  219. ws.cell(rowNum + 2, 2).value = flighttype
  220. ws.cell(rowNum + 2, 3).value = TaskFlightinfo[21]
  221. ws.cell(rowNum + 2, 4).value = TaskFlightinfo[26]
  222. ws.cell(rowNum + 2, 5).value = TaskFlightinfo[25]
  223. ws.cell(rowNum + 2, 6).value = TaskFlightinfo[1]
  224. ws.cell(rowNum + 2, 7).value = a
  225. ws.cell(rowNum + 2, 8).value = b
  226. ws.cell(rowNum + 2, 9).value = c
  227. ws.cell(rowNum + 2, 10).value = TaskFlightinfo[10]
  228. ws.cell(rowNum + 2, 11).value = fx
  229. ws.cell(rowNum + 2, 12).value = g1
  230. ws.cell(rowNum + 2, 13).value = g2
  231. ws.cell(rowNum + 2, 14).value = g3
  232. ws.cell(rowNum + 2, 15).value = g4
  233. ws.cell(rowNum + 2, 16).value = g5
  234. ws.cell(rowNum + 2, 17).value = s1
  235. ws.cell(rowNum + 2, 18).value = s2
  236. ws.cell(rowNum + 2, 19).value = fj
  237. ws.cell(rowNum + 2, 20).value = jjdw
  238. ws.cell(rowNum + 2, 20).value = jjdw
  239. ws.cell(rowNum + 2, 21).value = ESDW
  240. ws.cell(rowNum + 2, 22).value = FX
  241. ws.cell(rowNum + 2, 23).value = ""
  242. rowNum += 1
  243. wb.save('D:/flightinfo/bakup/航班运行备份数据(勿动).xlsx')
  244. # wb.save('航班运行备份数据.xlsx')
  245. res = "ok"
  246. return res
  247. except Exception as e:
  248. app_logger.log_error(e)