SaveFile.py 18 KB

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