handoverFlightWidget.py 9.8 KB

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