handoverFlightWidget.py 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. from .LogerinTxt import app_logger
  2. from UI.handoverFlight import Ui_handoverFlight
  3. from PyQt6 import QtCore
  4. from PyQt6.QtCore import Qt
  5. from PyQt6.QtGui import QColor
  6. from PyQt6.QtWidgets import QWidget,QMessageBox, QTableWidgetItem
  7. import json
  8. import requests
  9. class handoverFlightWidget(Ui_handoverFlight, QWidget):
  10. handoverFlight_signal = QtCore.pyqtSignal(str)
  11. def __init__(self, parent=None):
  12. super().__init__(parent)
  13. try:
  14. self.setupUi(self)
  15. self.pushButton.clicked.connect(self.btn)
  16. self.user = None
  17. self.ipinfo = None
  18. self.selectedtime=None
  19. self.Allflight = {}
  20. except Exception as e:
  21. app_logger.log_error(e)
  22. def severpostData_nomeassge(self, postname, data: dict):
  23. try:
  24. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname)
  25. data = json.dumps(data)
  26. res = requests.post(url=ip, data=data, timeout=30).json()
  27. return res
  28. except Exception as e:
  29. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  30. app_logger.log_error(e)
  31. def btn(self):
  32. try:
  33. list = []
  34. sts=[]
  35. list_cz = []
  36. sts_cz = []
  37. rows=[]
  38. for row in range(self.tableWidgetFlight.rowCount()):
  39. item = self.tableWidgetFlight.item(row, 0)
  40. if item and item.checkState() == Qt.CheckState.Checked and self.tableWidgetFlight.item(row, 8).text() != "":
  41. name = self.tableWidgetFlight.item(row, 10).text()
  42. rows.append(row)
  43. list.append(name)
  44. sts.append("1")
  45. data = {"taskid": ','.join(list),
  46. "sts": ','.join(sts)}
  47. if list !=[]:
  48. res = self.severpostData_nomeassge("handoverflightAMRO", data=data)["返回值"]
  49. if res == "ok" :
  50. QMessageBox.warning(self, "提示", f"交班提交成功!请核对附加消息交班航班!")
  51. for ii in rows:
  52. try:
  53. if "【交班航班】" not in self.tableWidgetFlight.item(ii, 11).text() and self.tableWidgetFlight.item(ii, 8).text() != "":
  54. flightid = self.tableWidgetFlight.item(ii, 12).text()
  55. flighttype = self.tableWidgetFlight.item(ii, 7).text()
  56. fjxx = "【交班航班】" + self.tableWidgetFlight.item(ii, 11).text()
  57. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(fjxx) + "%s/" % str(flightid) + "A/%s/" % str(flighttype) + "%s" % str(self.selectedtime)
  58. try:
  59. requests.get(url=ip, timeout=30).json()
  60. self.handoverFlight_signal.emit("1")
  61. except Exception as e:
  62. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  63. app_logger.log_error(e)
  64. except Exception as e:
  65. app_logger.log_error(e)
  66. self.close()
  67. else:
  68. QMessageBox.warning(self, "警告", "航班交接失败,请重新尝试")
  69. else:
  70. QMessageBox.warning(self, "警告", "请选择要交接的航班!未进行派工的航班无法进行交接班")
  71. except Exception as e:
  72. app_logger.log_error(e)
  73. def start(self):
  74. try:
  75. self.show()
  76. peopleLabel = ["选择","序号", "机号","航班号", "预达", "计飞", "机位", "类型", "维修人员","放行", "任务编号","附加消息","航班编号" ]
  77. #tableWidgetDispalydata = self.Allflight
  78. tableWidgetDispalydata={}
  79. for key, values in self.Allflight.items():
  80. # 检查所有字段是否包含关键词
  81. if(('3U' in values["9"] or "CSC" in values["9"]) and values["49"] != "" and "【交班航班】" not in values["30"]):
  82. tableWidgetDispalydata[key] = values
  83. self.tableWidgetFlight.setColumnCount(len(peopleLabel))
  84. self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel)
  85. self.tableWidgetFlight.verticalHeader().setVisible(False)
  86. self.tableWidgetFlight.setRowCount(len(tableWidgetDispalydata))
  87. i = 0
  88. for row in tableWidgetDispalydata.keys():
  89. if ("3U" in tableWidgetDispalydata[row][str(9)] or "CSC" in tableWidgetDispalydata[row][str(9)]) and \
  90. tableWidgetDispalydata[row][str(49)] != "" and "【交班航班】" not in tableWidgetDispalydata[row][str(30)]:
  91. for colNum in range(0, 13):
  92. if colNum == 0:
  93. checkbox = QTableWidgetItem()
  94. checkbox.setCheckState(Qt.CheckState.Unchecked)
  95. self.tableWidgetFlight.setItem(i, colNum, checkbox)
  96. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  97. elif colNum == 1:
  98. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(i+1)))
  99. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  100. elif colNum == 2:
  101. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(3)])))
  102. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  103. elif colNum == 3:
  104. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(9)])))
  105. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  106. elif colNum == 4:
  107. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(13)])))
  108. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  109. elif colNum == 5:
  110. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(15)])))
  111. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  112. elif colNum == 6:
  113. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(8)])))
  114. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  115. elif colNum == 7:
  116. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(19)])))
  117. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  118. elif colNum == 8:
  119. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(49)])))
  120. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  121. elif colNum == 9:
  122. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(51)])))
  123. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  124. elif colNum == 10:
  125. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(53)])))
  126. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  127. elif colNum == 12:
  128. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(53)])))
  129. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  130. elif colNum == 11:
  131. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(61)])))
  132. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  133. if (i+1)%2 ==0 and str(tableWidgetDispalydata[row][str(109)]) =="1":
  134. self.tableWidgetFlight.item(i, colNum).setBackground(QColor('#DDE2E3'))
  135. elif str(tableWidgetDispalydata[row][str(109)]) !="1":
  136. self.tableWidgetFlight.item(i, colNum).setBackground(QColor('#00FFFF'))
  137. i += 1
  138. self.tableWidgetFlight.resizeColumnsToContents()
  139. self.tableWidgetFlight.setColumnHidden(12, True)
  140. self.tableWidgetFlight.setColumnHidden(10, True)
  141. except Exception as e:
  142. app_logger.log_error(e)