SaveFile.py 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. from openpyxl import Workbook
  2. from PyQt6.QtWidgets import QFileDialog
  3. import requests
  4. def saveRisktable(self):
  5. try:
  6. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/风险数据库.xlsx" ,"xlsx(*.xlsx)")
  7. if fileName:
  8. ip = "http://" + str(self.ipinfo) + "/static/saveRisktable"
  9. res = requests.get(url=ip, timeout=30).json()["返回值"]
  10. wb = Workbook()
  11. wb.create_sheet(title="风险数据库.xlsx", index=0)
  12. ws = wb.active
  13. ws.title = '风险数据库'
  14. ws = wb['风险数据库']
  15. for row in range(1, len(res ) +1):
  16. for cloumn in range(1, 8):
  17. ws.cell(row, cloumn).number_format = '@'
  18. ws.cell(1, 1).value = "风险编号"
  19. ws.cell(1, 2).value = "状态"
  20. ws.cell(1, 3).value = "提示内容"
  21. ws.cell(1, 4).value = "触发条件1"
  22. ws.cell(1, 5).value = "触发条件2"
  23. ws.cell(1, 6).value = "触发条件3"
  24. ws.cell(1, 7).value = "触发条件4"
  25. ws.cell(1, 8).value = "触发条件5"
  26. if len(res) != 0:
  27. ii =1
  28. for i in res:
  29. for j in range(0, 8):
  30. # print(ii,j)
  31. ws.cell(int(ii) + 1, j+ 1).value = i[j]
  32. ii += 1
  33. wb.save(fileName)
  34. except Exception:
  35. print(traceback.format_exc())
  36. def saveAllflight(self):
  37. try:
  38. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6", "计飞": "7",
  39. "机位": "8"}
  40. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位"}
  41. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s全天航班导出(未含保障结束).xlsx" % self.selectedtime,
  42. "xlsx(*.xlsx)")
  43. # print(fileName)
  44. if fileName:
  45. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % self.selectedtime
  46. res = requests.get(url=ip, timeout=30).json()
  47. # print(res)
  48. wb = Workbook()
  49. wb.create_sheet(title="%s全天航班导出(未含保障结束).xlsx" % self.selectedtime, index=0)
  50. ws = wb.active
  51. ws.title = '航班数据'
  52. ws = wb['航班数据']
  53. for row in range(1, 400):
  54. for cloumn in range(1, 10):
  55. ws.cell(row, cloumn).number_format = '@'
  56. ws.cell(1, 1).value = "序号"
  57. ws.cell(1, 2).value = "类型"
  58. ws.cell(1, 3).value = "航班号"
  59. ws.cell(1, 4).value = "机型"
  60. ws.cell(1, 5).value = "发动机"
  61. ws.cell(1, 6).value = "机号"
  62. ws.cell(1, 7).value = "计达"
  63. ws.cell(1, 8).value = "预达"
  64. ws.cell(1, 9).value = "计飞"
  65. ws.cell(1, 10).value = "机位"
  66. if len(res) != 0:
  67. for i in res.keys():
  68. if res[i]["109"] != "4":
  69. for j in range(1, 11):
  70. if j == 2 and "3U" in res[i]["4"] and "CSC" in res[i]["4"]:
  71. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  72. elif j == 7 or j == 8:
  73. text = str(res[i][index[index2[j]]]).replace(":", "") if str(
  74. res[i][index[index2[j]]]) != "" else ""
  75. ws.cell(int(i) + 2, j).value = text
  76. elif j == 9:
  77. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":", "") if "]" in str(
  78. res[i][index[index2[j]]]) else ""
  79. ws.cell(int(i) + 2, j).value = text
  80. else:
  81. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  82. wb.save(fileName)
  83. self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  84. except Exception:
  85. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  86. logger.error(traceback.format_exc())
  87. def saveAllflight2(self):
  88. try:
  89. time2 = datetime.datetime.strptime(self.selectedtime, "%Y%m%d")
  90. time1 = str((time2 - datetime.timedelta(days=1)).strftime("%Y%m%d"))
  91. index = {"序号": "1", "类型": "19", "航班号": "9", "机型": "5", "发动机": "7", "机号": "3", "计达": "11", "预达": "13",
  92. "计飞": "15", "机位": "8", "放行": "21", "工1": "23", "工2": "25", "工3": "27", "工4": "29", "备注": "61",
  93. "班组长": "31"}
  94. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位", 11: "放行",
  95. 12: "工1", 13: "工2", 14: "工3", 15: "工4", 16: "备注", 17: "班组长"}
  96. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹",
  97. "/%s航班安排备份导出.xlsx" % (str(time1) + "-" + str(self.selectedtime)[-2:]),
  98. "xlsx(*.xlsx)")
  99. # print(fileName)
  100. wb = Workbook()
  101. if fileName:
  102. for selectedtime in [self.selectedtime, time1]:
  103. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly11/" + "%s" % selectedtime
  104. res = requests.get(url=ip, timeout=30).json()
  105. # print(res)
  106. wb.create_sheet(title="%s" % selectedtime, index=0)
  107. ws = wb.active
  108. ws.title = "%s" % selectedtime
  109. ws = wb["%s" % selectedtime]
  110. for row in range(1, 400):
  111. for cloumn in range(1, 18):
  112. ws.cell(row, cloumn).number_format = '@'
  113. ws.cell(1, 1).value = "序号"
  114. ws.cell(1, 2).value = "类型"
  115. ws.cell(1, 3).value = "航班号"
  116. ws.cell(1, 4).value = "机型"
  117. ws.cell(1, 5).value = "发动机"
  118. ws.cell(1, 6).value = "机号"
  119. ws.cell(1, 7).value = "计达"
  120. ws.cell(1, 8).value = "预达"
  121. ws.cell(1, 9).value = "计飞"
  122. ws.cell(1, 10).value = "机位"
  123. ws.cell(1, 11).value = "放行"
  124. ws.cell(1, 12).value = "工1"
  125. ws.cell(1, 13).value = "工2"
  126. ws.cell(1, 14).value = "工3"
  127. ws.cell(1, 15).value = "工4"
  128. ws.cell(1, 16).value = "备注"
  129. ws.cell(1, 17).value = "班组长"
  130. if len(res) != 0:
  131. for i in res.keys():
  132. for j in range(1, 18):
  133. if j == 2:
  134. if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]:
  135. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  136. else:
  137. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  138. elif j == 7 or j == 8:
  139. text = str(res[i][index[index2[j]]]).replace(":", "") if str(
  140. res[i][index[index2[j]]]) != "" else ""
  141. ws.cell(int(i) + 2, j).value = text
  142. elif j == 9:
  143. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":", "") if "]" in str(
  144. res[i][index[index2[j]]]) else ""
  145. ws.cell(int(i) + 2, j).value = text
  146. else:
  147. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  148. wb.save(fileName)
  149. self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  150. except Exception:
  151. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  152. logger.error(traceback.format_exc())
  153. def saveAllflight3(self):
  154. try:
  155. time2 = datetime.datetime.strptime(self.selectedtime, "%Y%m%d")
  156. time1 = str((time2 - datetime.timedelta(days=1)).strftime("%Y%m%d"))
  157. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6", "计飞": "7",
  158. "机位": "8", "工作单": "10", "飞单": "11", "客舱单": "12", "临工单": "13", "AMRO记录": "14", "备注": "32", "电签": "15"}
  159. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位",
  160. 11: "工作单", 12: "飞单", 13: "客舱单", 14: "临工单", 15: "AMRO记录", 16: "备注", 17: "电签"}
  161. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹",
  162. "/%s维修记录备份导出.xlsx" % (str(time1) + "-" + str(self.selectedtime)[-2:]),
  163. "xlsx(*.xlsx)")
  164. # print(fileName)
  165. wb = Workbook()
  166. if fileName:
  167. for selectedtime in [self.selectedtime, time1]:
  168. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % selectedtime
  169. res = requests.get(url=ip, timeout=30).json()
  170. # print(res)
  171. wb.create_sheet(title="%s" % selectedtime, index=0)
  172. ws = wb.active
  173. ws.title = "%s" % selectedtime
  174. ws = wb["%s" % selectedtime]
  175. for row in range(1, 400):
  176. for cloumn in range(1, 18):
  177. ws.cell(row, cloumn).number_format = '@'
  178. ws.cell(1, 1).value = "序号"
  179. ws.cell(1, 2).value = "类型"
  180. ws.cell(1, 3).value = "航班号"
  181. ws.cell(1, 4).value = "机型"
  182. ws.cell(1, 5).value = "发动机"
  183. ws.cell(1, 6).value = "机号"
  184. ws.cell(1, 7).value = "计达"
  185. ws.cell(1, 8).value = "预达"
  186. ws.cell(1, 9).value = "计飞"
  187. ws.cell(1, 10).value = "机位"
  188. ws.cell(1, 11).value = "工作单"
  189. ws.cell(1, 12).value = "飞单"
  190. ws.cell(1, 13).value = "客舱单"
  191. ws.cell(1, 14).value = "临工单"
  192. ws.cell(1, 15).value = "AMRO记录"
  193. ws.cell(1, 16).value = "备注"
  194. ws.cell(1, 17).value = "电签"
  195. if len(res) != 0:
  196. for i in res.keys():
  197. for j in range(1, 18):
  198. if j == 2:
  199. if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]:
  200. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  201. else:
  202. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  203. elif j == 6:
  204. text = "B-" + str(res[i][index[index2[j]]])
  205. ws.cell(int(i) + 2, j).value = text
  206. elif j == 7 or j == 8:
  207. text = str(res[i][index[index2[j]]]).replace(":", "") if str(
  208. res[i][index[index2[j]]]) != "" else ""
  209. ws.cell(int(i) + 2, j).value = text
  210. elif j == 9:
  211. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":", "") if "]" in str(
  212. res[i][index[index2[j]]]) else ""
  213. ws.cell(int(i) + 2, j).value = text
  214. else:
  215. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  216. wb.save(fileName)
  217. self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  218. except Exception:
  219. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  220. logger.error(traceback.format_exc())
  221. def saveDealflight(self):
  222. try:
  223. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6", "计飞": "7",
  224. "机位": "8"}
  225. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位"}
  226. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s交班航班导出.xlsx" % self.selectedtime, "xlsx(*.xlsx)")
  227. # print(fileName)
  228. if fileName:
  229. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % self.selectedtime
  230. res = requests.get(url=ip, timeout=30).json()
  231. # print(res)
  232. wb = Workbook()
  233. wb.create_sheet(title="%s交班航班导出.xlsx" % self.selectedtime, index=0)
  234. ws = wb.active
  235. ws.title = '航班数据'
  236. ws = wb['航班数据']
  237. for row in range(1, 400):
  238. for cloumn in range(1, 10):
  239. ws.cell(row, cloumn).number_format = '@'
  240. ws.cell(1, 1).value = "序号"
  241. ws.cell(1, 2).value = "类型"
  242. ws.cell(1, 3).value = "航班号"
  243. ws.cell(1, 4).value = "机型"
  244. ws.cell(1, 5).value = "发动机"
  245. ws.cell(1, 6).value = "机号"
  246. ws.cell(1, 7).value = "计达"
  247. ws.cell(1, 8).value = "预达"
  248. ws.cell(1, 9).value = "计飞"
  249. ws.cell(1, 10).value = "机位"
  250. if len(res) != 0:
  251. for i in res.keys():
  252. if res[i]["109"] == "1" or res[i]["109"] == "3":
  253. for j in range(1, 11):
  254. if j == 2:
  255. if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]:
  256. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  257. else:
  258. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  259. elif j == 7 or j == 8:
  260. text = str(res[i][index[index2[j]]]).replace(":", "") if str(
  261. res[i][index[index2[j]]]) != "" else ""
  262. ws.cell(int(i) + 2, j).value = text
  263. elif j == 9:
  264. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":", "") if "]" in str(
  265. res[i][index[index2[j]]]) else ""
  266. ws.cell(int(i) + 2, j).value = text
  267. else:
  268. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  269. wb.save(fileName)
  270. self.show_message2("提示", "%s交班航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  271. except Exception:
  272. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  273. logger.error(traceback.format_exc())
  274. def saveCase(self):
  275. try:
  276. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/停场航班导入模板.xlsx", "xlsx(*.xlsx)")
  277. if fileName:
  278. wb = Workbook()
  279. wb.create_sheet(title="停场航班导入模板", index=0)
  280. ws = wb.active
  281. ws.title = '航班数据'
  282. ws = wb['航班数据']
  283. for row in range(1, 50):
  284. for cloumn in range(1, 7):
  285. ws.cell(row, cloumn).number_format = '@'
  286. ws.cell(1, 1).value = "序号"
  287. ws.cell(1, 2).value = "日期"
  288. ws.cell(1, 3).value = "机号"
  289. ws.cell(1, 4).value = "机位"
  290. ws.cell(1, 5).value = "机型"
  291. ws.cell(1, 6).value = "发动机"
  292. ws.cell(1, 7).value = "录入数据请从第三行开始录入,切勿覆盖第一二行数据!!!"
  293. ws.cell(2, 1).value = "1"
  294. ws.cell(2, 2).value = "2024/03/21"
  295. ws.cell(2, 3).value = "1663"
  296. ws.cell(2, 4).value = "722"
  297. ws.cell(2, 5).value = "A321"
  298. ws.cell(2, 6).value = "V2500"
  299. ws.cell(2, 7).value = "录入数据请从第三行开始录入,切勿覆盖第一二行数据!!!"
  300. wb.save(fileName)
  301. self.show_message2("提示", "导出成功!文件已保存至%s" % fileName)
  302. except Exception:
  303. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!")
  304. logger.error(traceback.format_exc())