DisplayQTMain.py 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984
  1. import datetime
  2. import sys
  3. from PyQt6 import QtCore
  4. from PyQt6.QtCore import Qt, QThread,QObject,QThreadPool, QTimer
  5. from PyQt6.QtGui import QColor, QFont
  6. from PyQt6.QtTextToSpeech import QTextToSpeech
  7. from PyQt6.QtWidgets import QApplication, QWidget, QMessageBox, QTableWidgetItem, QAbstractItemView
  8. import requests
  9. from UI.main22 import Ui_Form
  10. from Functions.QtFunctions.LogerinTxt import app_logger
  11. from Functions.QtFunctions import findServerWidget as FindServerWidget
  12. from Functions.QtFunctions import LoginWidget_display as loginWidget
  13. headerlabel0= ["序号","数据序号","备","机号","航班信息","机型","机型信息","发动机","机位","航班号","备","计达","备","预达",
  14. "备","计飞","备","备","机位","类型","备","放行","备","工1","备","工2","备","工3","备","工4",
  15. "备","班组长","备","到位","备","放行","备","销夹","电签","随机","备","随机","备","保留","备","工作包",
  16. "备","进出港城市","备","维修人员","交班人员","放行","备","航班编号","备","任务编号","备","TATD","备","类型",
  17. "备","附加消息","备","备","备","备"]
  18. headerlabel_B=["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单",
  19. "临工单","AMRO记录", "电签复查", "接机电签", "任务电签", "二送电签", "备", "备", "备", "备", "备", "进出港城市",
  20. "维修人员", "二送人员","放行", "航班编号", "电签工卡", "备", "类型", "附加消息"]
  21. versionNumb= "17.0.0"
  22. class sortdisplaySever(QObject):
  23. sortupdate = QtCore.pyqtSignal(str, dict, list, str, str)
  24. def __init__(self, name, ip, selectedtime, text, displayMode, selectedbc, displayselect, thread):
  25. super().__init__()
  26. self.funcName = name
  27. self.ipinfo = ip
  28. self.selectedtime = selectedtime
  29. self.text = text
  30. self.displayMode = displayMode
  31. self.selectedbc = selectedbc
  32. self.displayselect_mode = displayselect
  33. self.thread = thread
  34. nowDay = datetime.datetime.now().strftime("%Y%m%d")
  35. tomorr =(datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  36. yester =(datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  37. if self.selectedtime == nowDay:
  38. self.date = "2"
  39. elif self.selectedtime == tomorr:
  40. self.date = "3"
  41. elif self.selectedtime == yester:
  42. self.date = "1"
  43. else:
  44. self.date = "4"
  45. def run(self):
  46. try:
  47. list = []
  48. if self.funcName == "sortTableWidgetDispaly":
  49. #print("1")
  50. self.sortTableWidgetDispaly()
  51. self.sortupdate.emit("sortTableWidgetDispaly", self.sorttableWidgetDispalydata, list, self.seversts,self.displayMode)
  52. self.sortupdate.emit("sortTableWidgetDispalyALL", self.DispalydataAll, list, self.seversts,self.displayMode)
  53. if self.funcName == "sortTableWidgetDispalyALL":
  54. #print("2")
  55. self.sortTableWidgetDispalyALL()
  56. self.sortupdate.emit("sortTableWidgetDispalyALL", self.sorttableWidgetDispalydata, list, self.seversts,self.displayMode)
  57. elif self.funcName == "SearchsortTableWidgetDispaly":
  58. #print("3")
  59. self.SearchsortTableWidgetDispaly()
  60. self.sortupdate.emit("SearchsortTableWidgetDispaly", self.sorttableWidgetDispalydata, list,self.seversts,self.displayMode)
  61. elif self.funcName == "sorttableWidgetDisplayChange":
  62. #print("4")
  63. self.sorttableWidgetDisplayChange()
  64. self.sortupdate.emit("sorttableWidgetDisplayChange", self.sortlogchange, list, self.seversts,self.displayMode)
  65. elif self.funcName == "sorttableWidgetPeopleDisplay":
  66. self.sorttableWidgetPeopleDisplay()
  67. self.sortupdate.emit("sorttableWidgetPeopleDisplay", self.sortdiplaylist, self.peopleOnJob,self.seversts, self.displayMode)
  68. elif self.funcName == "sorttableWidgetLOGDispaly":
  69. self.sorttableWidgetLOGDispaly()
  70. self.sortupdate.emit("sorttableWidgetLOGDispaly", self.sortlog, list, self.seversts, self.displayMode)
  71. elif self.funcName == "sorttableWidgetPHONEDispaly":
  72. self.sorttableWidgetPHONEDispaly()
  73. self.sortupdate.emit("sorttableWidgetPHONEDispaly", self.sorttableWidgetPHONEDispalydata, list,self.seversts, "")
  74. self.thread.quit()
  75. except Exception as e:
  76. app_logger.log_error(e)
  77. finally:
  78. self.thread.quit()
  79. def severpost_nomeassge(self, postname, postdata, postdata2, postdata3):
  80. try:
  81. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str(postdata3)
  82. try:
  83. res = requests.get(url=ip, timeout=30).json()
  84. self.seversts = "1"
  85. return res
  86. except Exception as e:
  87. app_logger.log_error(e)
  88. app_logger.log_error("重大bug")
  89. app_logger.log_error(ip)
  90. self.seversts = "0"
  91. return []
  92. except Exception as e:
  93. app_logger.log_error(e)
  94. def sorttableWidgetPHONEDispaly(self):
  95. try:
  96. sorttableWidgetPHONEDispalydataall = self.severpost_nomeassge("getphonelist", "", "", "")
  97. self.sorttableWidgetPHONEDispalydata = {}
  98. num = 0
  99. if sorttableWidgetPHONEDispalydataall != None:
  100. if self.text != "":
  101. for i in sorttableWidgetPHONEDispalydataall.keys():
  102. if str.lower(str(self.text)) in str(sorttableWidgetPHONEDispalydataall[i]):
  103. self.sorttableWidgetPHONEDispalydata[str(num)] = sorttableWidgetPHONEDispalydataall[i]
  104. num += 1
  105. else:
  106. self.sorttableWidgetPHONEDispalydata = sorttableWidgetPHONEDispalydataall
  107. except Exception as e:
  108. app_logger.log_error(e)
  109. def checkall(self, datas, text):
  110. res = {}
  111. try:
  112. num = 0
  113. for i in datas.keys():
  114. if datas[i]["109"] != text:
  115. res[str(num)] = datas[i]
  116. num += 1
  117. except Exception as e:
  118. app_logger.log_error(e)
  119. return res
  120. def checkStrsingle(self,datas, text, text2): #单一条件筛选
  121. res = {}
  122. try:
  123. num = 0
  124. for i in datas.keys():
  125. if str(text) in str(datas[i]) and datas[i]["109"] != text2:
  126. res[str(num)] = datas[i]
  127. num += 1
  128. except Exception as e:
  129. app_logger.log_error(e)
  130. return res
  131. def checkStrTerminalAll(self,datas, text1,text2,text3,text4): #筛选航站且显示全部
  132. res = {}
  133. try:
  134. num = 0
  135. for i in datas.keys():
  136. if str(datas[i]["8"]) != "" and datas[i]["109"] != text1:
  137. if str(datas[i]["8"])[0] == text2 and str(datas[i]["8"])[0] == text3:
  138. res[str(num)] = datas[i]
  139. num += 1
  140. elif str(datas[i]["8"]) == "" and str(datas[i]["109"]) == text4:
  141. res[str(num)] = datas[i]
  142. num += 1
  143. except Exception as e:
  144. app_logger.log_error(e)
  145. return res
  146. def checkStrTerminalAll2(self,datas, text1,text2,text3,text4): #筛选航站且显示全部
  147. res = {}
  148. try:
  149. num = 0
  150. for i in datas.keys():
  151. if str(datas[i]["8"]) != "" and datas[i]["109"] != text1:
  152. if str(datas[i]["8"])[0] != text2 and str(datas[i]["8"])[0] != text3:
  153. res[str(num)] = datas[i]
  154. num += 1
  155. elif str(datas[i]["8"]) == "" and str(datas[i]["109"]) == text4:
  156. res[str(num)] = datas[i]
  157. num += 1
  158. except Exception as e:
  159. app_logger.log_error(e)
  160. return res
  161. def checkStrTerminalAll3(self,datas, text1,text2,text3,text4): #筛选航站且显示全部
  162. res = {}
  163. try:
  164. num = 0
  165. for i in datas.keys():
  166. if str(datas[i]["8"]) != "" and datas[i]["109"] == text1:
  167. if str(datas[i]["8"])[0] == text2 and str(datas[i]["8"])[0] == text3:
  168. res[str(num)] = datas[i]
  169. num += 1
  170. elif str(datas[i]["8"]) == "" and str(datas[i]["109"]) == text4:
  171. res[str(num)] = datas[i]
  172. num += 1
  173. except Exception as e:
  174. app_logger.log_error(e)
  175. return res
  176. def checkStrTerminalAll4(self,datas, text1,text2,text3,text4): #筛选航站且显示全部
  177. res = {}
  178. try:
  179. num = 0
  180. for i in datas.keys():
  181. if str(datas[i]["8"]) != "" and datas[i]["109"] == text1:
  182. if str(datas[i]["8"])[0] != text2 and str(datas[i]["8"])[0] != text3:
  183. res[str(num)] = datas[i]
  184. num += 1
  185. elif str(datas[i]["8"]) == "" and str(datas[i]["109"]) == text4:
  186. res[str(num)] = datas[i]
  187. num += 1
  188. except Exception as e:
  189. app_logger.log_error(e)
  190. return res
  191. def sortTableWidgetDispaly(self):
  192. try:
  193. text = self.text
  194. Partdisplay = self.displayselect_mode # 不显示起飞航班
  195. # print(Partdisplay)
  196. tableWidgetDispalydataAll = {}
  197. if self.displayMode == "A" and (self.selectedbc == "0" or self.date=="4"):
  198. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,"/%s"%self.date,"")
  199. elif self.displayMode == "B"and (self.selectedbc == "0" or self.date=="4"):
  200. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,"/%s"%self.date,"")
  201. elif self.displayMode == "A" and self.selectedbc == "1":
  202. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead","/%s"%self.date,"","")
  203. elif self.displayMode == "B"and self.selectedbc == "1":
  204. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead2","/%s"%self.date,"","")
  205. self.DispalydataAll=tableWidgetDispalydataAll
  206. self.sorttableWidgetDispalydata = {}
  207. num = 0
  208. if tableWidgetDispalydataAll != None:
  209. if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0":
  210. self.sorttableWidgetDispalydata=self.checkStrsingle(tableWidgetDispalydataAll, text, "")
  211. elif text == "T1" and Partdisplay == "0":
  212. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "", "1", "1", "1")
  213. elif text == "T2" and Partdisplay == "0":
  214. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "", "2", "2", "2")
  215. elif text == "T2T6" and Partdisplay == "0":
  216. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "", "1", "1", "1")
  217. elif text == "T1T6" and Partdisplay == "0":
  218. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "", "2", "2", "1")
  219. elif text == "T6" and Partdisplay == "0":
  220. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "", "1", "2", "1")
  221. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1":
  222. self.sorttableWidgetDispalydata = self.checkStrsingle(tableWidgetDispalydataAll, text, "4")
  223. elif text == "T1" and Partdisplay == "1":
  224. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "4", "1", "1", "1")
  225. elif text == "T2" and Partdisplay == "1":
  226. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "4", "2", "2", "1")
  227. elif text == "T2T6" and Partdisplay == "1":
  228. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "4", "1", "1", "1")
  229. elif text == "T1T6" and Partdisplay == "1":
  230. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "4", "2", "2", "1")
  231. elif text == "T6" and Partdisplay == "1":
  232. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "4", "1", "2", "1")
  233. elif text == "" and Partdisplay == "1":
  234. self.sorttableWidgetDispalydata = self.checkall(tableWidgetDispalydataAll, "4")
  235. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3":
  236. self.sorttableWidgetDispalydata = self.checkStrsingle(tableWidgetDispalydataAll, text, "1")
  237. elif text == "T1" and Partdisplay == "3":
  238. self.sorttableWidgetDispalydata = self.checkStrTerminalAll3(tableWidgetDispalydataAll, "1", "1", "1", "1")
  239. elif text == "T2" and Partdisplay == "3":
  240. self.sorttableWidgetDispalydata = self.checkStrTerminalAll3(tableWidgetDispalydataAll, "1", "2", "2", "1")
  241. elif text == "T2T6" and Partdisplay == "3":
  242. self.sorttableWidgetDispalydata = self.checkStrTerminalAll4(tableWidgetDispalydataAll, "1", "1", "1", "1")
  243. elif text == "T1T6" and Partdisplay == "3":
  244. self.sorttableWidgetDispalydata = self.checkStrTerminalAll4(tableWidgetDispalydataAll, "1", "2", "2", "1")
  245. elif text == "T6" and Partdisplay == "3":
  246. self.sorttableWidgetDispalydata = self.checkStrTerminalAll4(tableWidgetDispalydataAll, "1", "1", "2", "1")
  247. elif text == "" and Partdisplay == "3":
  248. for i in tableWidgetDispalydataAll.keys():
  249. if tableWidgetDispalydataAll[i]["109"] == '1':
  250. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  251. num += 1
  252. else:
  253. self.sorttableWidgetDispalydata = tableWidgetDispalydataAll
  254. except Exception as e:
  255. app_logger.log_error(e)
  256. def sortTableWidgetDispalyALL(self):
  257. try:
  258. if self.displayMode == "A" and (self.selectedbc == "0" or self.date=="4"):
  259. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,"/%s"%self.date,"")
  260. elif self.displayMode == "B"and (self.selectedbc == "0" or self.date=="4"):
  261. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,"/%s"%self.date,"")
  262. elif self.displayMode == "A" and self.selectedbc == "1":
  263. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispalyRead","/%s"%self.date,"","")
  264. elif self.displayMode == "B"and self.selectedbc == "1":
  265. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispalyRead2","/%s"%self.date,"","")
  266. except Exception as e:
  267. app_logger.log_error(e)
  268. def SearchsortTableWidgetDispaly(self):
  269. try:
  270. text = self.text
  271. self.seversts = "1"
  272. Partdisplay = self.displayselect_mode # 不显示起飞航班
  273. # print(Partdisplay)
  274. tableWidgetDispalydataAll = self.selectedbc
  275. self.sorttableWidgetDispalydata = {}
  276. num = 0
  277. if tableWidgetDispalydataAll != None:
  278. if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6"and Partdisplay == "0":
  279. self.sorttableWidgetDispalydata = self.checkStrsingle(tableWidgetDispalydataAll, text, "")
  280. elif text == "T1" and Partdisplay == "0":
  281. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "", "1", "1", "1")
  282. elif text == "T2" and Partdisplay == "0":
  283. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "", "2", "2", "1")
  284. elif text == "T2T6" and Partdisplay == "0":
  285. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "", "1", "1", "1")
  286. elif text == "T1T6" and Partdisplay == "0":
  287. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "", "2", "2", "1")
  288. elif text == "T6" and Partdisplay == "0":
  289. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "", "1", "2", "1")
  290. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1":
  291. self.sorttableWidgetDispalydata = self.checkStrsingle(tableWidgetDispalydataAll, text, "4")
  292. elif text == "T1" and Partdisplay == "1":
  293. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "4", "1", "1", "1")
  294. elif text == "T2" and Partdisplay == "1":
  295. self.sorttableWidgetDispalydata = self.checkStrTerminalAll(tableWidgetDispalydataAll, "4", "2", "2", "1")
  296. elif text == "T2T6" and Partdisplay == "1":
  297. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "4", "1", "1", "1")
  298. elif text == "T1T6" and Partdisplay == "1":
  299. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "4", "2", "2", "1")
  300. elif text == "T6" and Partdisplay == "1":
  301. self.sorttableWidgetDispalydata = self.checkStrTerminalAll2(tableWidgetDispalydataAll, "4", "1", "2", "1")
  302. elif text == "" and Partdisplay == "1":
  303. self.sorttableWidgetDispalydata = self.checkall(tableWidgetDispalydataAll, "4")
  304. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3":
  305. for i in tableWidgetDispalydataAll.keys():
  306. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1':
  307. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  308. num += 1
  309. elif text == "T1" and Partdisplay == "3":
  310. self.sorttableWidgetDispalydata = self.checkStrTerminalAll3(tableWidgetDispalydataAll, "1", "1", "1", "1")
  311. elif text == "T2" and Partdisplay == "3":
  312. self.sorttableWidgetDispalydata = self.checkStrTerminalAll3(tableWidgetDispalydataAll, "1", "2", "2", "1")
  313. elif text == "T2T6" and Partdisplay == "3":
  314. self.sorttableWidgetDispalydata = self.checkStrTerminalAll4(tableWidgetDispalydataAll, "1", "1", "1", "1")
  315. elif text == "T1T6" and Partdisplay == "3":
  316. self.sorttableWidgetDispalydata = self.checkStrTerminalAll4(tableWidgetDispalydataAll, "1", "2", "2", "1")
  317. elif text == "T6" and Partdisplay == "3":
  318. self.sorttableWidgetDispalydata = self.checkStrTerminalAll4(tableWidgetDispalydataAll, "1", "1", "2", "1")
  319. elif text == "" and Partdisplay == "3":
  320. for i in tableWidgetDispalydataAll.keys():
  321. if tableWidgetDispalydataAll[i]["109"] == '1':
  322. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  323. num += 1
  324. else:
  325. self.sorttableWidgetDispalydata = tableWidgetDispalydataAll
  326. except Exception as e:
  327. app_logger.log_error(e)
  328. def sorttableWidgetDisplayChange(self):
  329. try:
  330. text = self.text
  331. logall = self.severpost_nomeassge("tableWidgetDisplayChange", "/%s" % self.selectedtime, "", "")
  332. self.sortlogchange = {}
  333. num = 0
  334. if text != "":
  335. for i in logall.keys():
  336. if str(text) in str(logall[i]):
  337. self.sortlogchange[str(num)] = logall[i]
  338. num += 1
  339. else:
  340. self.sortlogchange = logall
  341. except Exception as e:
  342. app_logger.log_error(e)
  343. def sorttableWidgetPeopleDisplay(self):
  344. try:
  345. if self.displayselect_mode == "" or self.displayselect_mode == []:
  346. text = self.text
  347. self.peopleOnJob = [""]
  348. bc = self.selectedbc
  349. nowDaystr = self.selectedtime # 选择的日期
  350. diplaylistall = self.severpost_nomeassge("qtPeopleLoad", "/%s" % nowDaystr, "/%s" % bc, "")
  351. self.sortdiplaylist = {}
  352. num = 0
  353. if text != "":
  354. for i in diplaylistall.keys():
  355. if str(text) in str(diplaylistall[i]):
  356. self.sortdiplaylist[str(num)] = diplaylistall[i]
  357. num += 1
  358. else:
  359. self.sortdiplaylist = diplaylistall
  360. for i in self.sortdiplaylist.keys():
  361. self.peopleOnJob.append(self.sortdiplaylist[i]["姓名"])
  362. else:
  363. names = self.displayselect_mode
  364. text = self.text
  365. self.peopleOnJob = [""]
  366. bc = self.selectedbc
  367. nowDaystr = self.selectedtime # 选择的日期
  368. diplaylistall = self.severpost_nomeassge("qtPeopleLoad", "/%s" % nowDaystr, "/%s" % bc, "")
  369. self.sortdiplaylist = {}
  370. num = 0
  371. if text != "":
  372. for i in diplaylistall.keys():
  373. if str(text) in str(diplaylistall[i]):
  374. for name in names:
  375. if str(name) in str(diplaylistall[i]):
  376. self.sortdiplaylist[str(num)] = diplaylistall[i]
  377. num += 1
  378. else:
  379. for i in diplaylistall.keys():
  380. for name in names:
  381. if str(name) in str(diplaylistall[i]):
  382. self.sortdiplaylist[str(num)] = diplaylistall[i]
  383. num += 1
  384. for i in self.sortdiplaylist.keys():
  385. self.peopleOnJob.append(self.sortdiplaylist[i]["姓名"])
  386. except Exception as e:
  387. app_logger.log_error(e)
  388. def sorttableWidgetLOGDispaly(self):
  389. try:
  390. text = self.text
  391. logall = self.severpost_nomeassge("tableWidgetLOGDispaly", "/%s" % self.selectedtime, "", "")
  392. self.sortlog = {}
  393. num = 0
  394. if text != "":
  395. for i in logall.keys():
  396. if str(text) in str(logall[i]):
  397. self.sortlog[str(num)] = logall[i]
  398. num += 1
  399. else:
  400. self.sortlog = logall
  401. except Exception as e:
  402. app_logger.log_error(e)
  403. class MainWidget(QWidget, Ui_Form):
  404. LoginWidget_signal = QtCore.pyqtSignal(str)
  405. def __init__(self):
  406. super().__init__()
  407. try:
  408. # 新增:防抖定时器
  409. self.debounce_timer = QtCore.QTimer(self)
  410. self.debounce_timer.setSingleShot(True)
  411. self.debounce_timer.timeout.connect(self.debounced_search)
  412. self.debounce_delay = 300 # 防抖延迟时间(毫秒)
  413. self.displaySelectstr3 = "0"
  414. self.displaySelect_mode = "1"
  415. self.localip = None
  416. self.severupdatests = "0"
  417. self.localtoken = None
  418. self.searchpeoplestr = []
  419. self.sorttableWidgetDispalydata = {}
  420. self.sorttableWidgetDispalydataALL = {}
  421. self.sortdiplaylist = {}
  422. self.peopleOnJob = [""]
  423. self.loginSts = False
  424. self.amroLoginSts = False
  425. self.findSever = False
  426. self.FLIGHTonChange_text = ""
  427. self.threadpool = QThreadPool()
  428. self.setupUi(self)
  429. # self.show()
  430. self.loginWidget = loginWidget.LoginWidget()
  431. self.findServerWidget = FindServerWidget.findServerWidget()
  432. # self.amroLoginWidget = amroLoginWidget()
  433. if self.findSever:
  434. pass
  435. # if self.loginSts:
  436. # self.show()
  437. # else:
  438. # self.loginWidget.show()
  439. else:
  440. self.findServerWidget.show()
  441. self.findServerWidget.selectServer_signal.connect(self.setServer)
  442. # self.amroLoginWidget.amroLogin_signal.connect(self.displayMain)
  443. # data
  444. except Exception:
  445. pass
  446. def setServer(self, *args):
  447. try:
  448. self.ipinfo = args[0] + ':7162'
  449. self.clickrow = ""
  450. self.clickcolumn = ""
  451. # print(self.ipinfo)
  452. self.version = versionNumb
  453. self.findServerWidget.close()
  454. self.loginWidget.ipinfo = self.ipinfo
  455. self.loginWidget.login_signal.connect(self.displayMain)
  456. self.loginWidget.login_user.connect(self.setUser)
  457. checksts = 0
  458. ip = "http://" + str(self.ipinfo) + "/static/remoteCheck2/"+self.version
  459. res = requests.get(url=ip, timeout=180).json()
  460. if res["返回值"] == "ok":
  461. checksts = 1
  462. if checksts == 1:
  463. if self.loginSts:
  464. self.initDisplay()
  465. self.show()
  466. else:
  467. self.loginWidget.show()
  468. else:
  469. QMessageBox.warning(self, "提示", "有新版更新!请前往NAS共享平台[机务一队/天府机务分部/31准备组无纸化办公/1航班助手]获取电子白板最新版本!!")
  470. self.close()
  471. except Exception:
  472. pass
  473. def judge_bc(self):
  474. try:
  475. nowDay = datetime.date.today().strftime("%Y%m%d")
  476. nowDay_1 = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  477. nowDay_str2 = datetime.date.today().strftime("%Y-%m-%d")
  478. a_str = nowDay_str2 + " 04:30:00"
  479. b_str = nowDay_str2 + " 20:30:00"
  480. a = datetime.datetime.strptime(a_str, "%Y-%m-%d %H:%M:%S")
  481. b = datetime.datetime.strptime(b_str, "%Y-%m-%d %H:%M:%S")
  482. nowtime = datetime.datetime.now()
  483. if a < nowtime < b:
  484. self.selectedtime = nowDay
  485. self.selectedtime_bc = "A"
  486. elif b < nowtime:
  487. self.selectedtime = nowDay
  488. self.selectedtime_bc = "B"
  489. elif nowtime < a:
  490. self.selectedtime = nowDay_1
  491. self.selectedtime_bc = "B"
  492. except Exception:
  493. pass
  494. def initDisplay(self):
  495. try:
  496. self.oldjsondata = None
  497. self.cookie = None
  498. self.fl = None
  499. self.tts = QTextToSpeech()
  500. self.tts.setEngine('sapi')
  501. self.judge_bc()
  502. self.displayMode = "A"
  503. self.displayLabel = headerlabel0
  504. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  505. self.tableWidgetFlight.verticalHeader().setVisible(False)
  506. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  507. self.tableWidgetFlight.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
  508. self.tableWidgetFlight.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
  509. # self.lineEdit_phonenum.setText("")
  510. #self.checkBox.stateChanged.connect(self.displayChange)
  511. self.checkBox.setChecked(True)
  512. self.checkBox_2.stateChanged.connect(self.displaySelect2)
  513. self.checkBox_2.setChecked(True)
  514. self.checkBox_3.stateChanged.connect(self.displaySelect3)
  515. self.checkBox_3.setChecked(False)
  516. self.pushbutton_searchflight.clicked.connect(self.FLIGHTonChangeman)
  517. self.lineEdit_flight.textEdited[str].connect(lambda: self.changebackground())
  518. #self.lineEdit_flight.textChanged.connect(self.FLIGHTonChange)
  519. self.lineEdit_flight.textChanged.connect(self.on_search_text_changed)
  520. self.serchTimer = QTimer()
  521. self.serchTimer.start(150 * 1000)
  522. self.serchTimer.timeout.connect(self.QThreadSortTimer)
  523. self.updatecheck()
  524. except Exception:
  525. pass
  526. def on_search_text_changed(self):
  527. """文本变化时重置定时器"""
  528. self.debounce_timer.start(self.debounce_delay)
  529. def debounced_search(self):
  530. """实际触发搜索的方法"""
  531. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  532. self.QThreadSortNow("search")
  533. def changebackground(self):
  534. try:
  535. FLIGHTonChange_text = self.lineEdit_flight.text()
  536. if FLIGHTonChange_text != "":
  537. self.lineEdit_flight.setStyleSheet("background-color:yellow;color:red;font-weight:bold")
  538. else:
  539. self.lineEdit_flight.setStyleSheet("background-color:white")
  540. except Exception:
  541. pass
  542. def FLIGHTonChange(self):
  543. try:
  544. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  545. # print(self.FLIGHTonChange_text)
  546. self.QThreadSortNow("search")
  547. except Exception:
  548. pass
  549. def FLIGHTonChangeman(self):
  550. try:
  551. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  552. # print(self.FLIGHTonChange_text)
  553. self.QThreadSortNow("main")
  554. except Exception:
  555. pass
  556. def updatecheck(self):
  557. try:
  558. ip = "http://" + str(self.ipinfo) + "/static/updatecheck"
  559. res = requests.get(url=ip, timeout=30).json()
  560. if res["返回值"] == "1":
  561. self.label_11.setText("正 常")
  562. self.label_11.setStyleSheet(
  563. "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold")
  564. if self.severupdatests != "1":
  565. self.severupdatests = "1"
  566. elif res["返回值"] == "0":
  567. self.label_11.setText("未更新")
  568. self.label_11.setStyleSheet("background-color:yellow;red:white;border-radius:5px;padding:2px;font-weight:bold")
  569. except Exception:
  570. self.label_11.setText("已断开")
  571. self.label_11.setStyleSheet("background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
  572. def displaySelect2(self):
  573. try:
  574. displaySelect = self.sender()
  575. if displaySelect.isChecked():
  576. self.displaySelectstr2 = "1"
  577. if self.loginSts == True:
  578. if self.displaySelectstr3 == "1":
  579. self.displaySelect_mode = "3"
  580. else:
  581. self.displaySelect_mode = "1"
  582. self.QThreadSortNow("main")
  583. else:
  584. self.displaySelectstr2 = "0"
  585. self.displaySelect_mode = "0"
  586. if self.loginSts == True:
  587. if self.displaySelectstr3 == "1":
  588. self.checkBox_3.setChecked(False)
  589. else:
  590. self.QThreadSortNow("main")
  591. except Exception:
  592. pass
  593. def displaySelect3(self):
  594. try:
  595. displaySelect = self.sender()
  596. if displaySelect.isChecked():
  597. self.displaySelectstr3 = "1"
  598. self.displaySelect_mode = "3"
  599. if self.loginSts == True:
  600. if self.displaySelectstr2 == "0":
  601. self.checkBox_2.setChecked(True)
  602. else:
  603. self.QThreadSortNow("main")
  604. else:
  605. self.displaySelectstr3 = "0"
  606. if self.loginSts == True:
  607. if self.displaySelectstr2 == "0":
  608. self.displaySelect_mode = "0"
  609. else:
  610. self.displaySelect_mode = "1"
  611. self.QThreadSortNow("main")
  612. except Exception:
  613. pass
  614. def displayMain(self, *args):
  615. try:
  616. if args[0]:
  617. self.initDisplay()
  618. self.loginSts = True
  619. self.loginWidget.close()
  620. self.show()
  621. self.QThreadSortNow("main")
  622. except Exception:
  623. pass
  624. def setUser(self, args):
  625. try:
  626. self.user = args[1]
  627. self.authority = args[3]
  628. self.label_username.setText(self.user)
  629. except Exception:
  630. pass
  631. def QThreadSortDispalyTimer(self, name, dict, dict2, seversts, displayMode):
  632. try:
  633. if name == "sortTableWidgetDispaly":
  634. if displayMode == "A":
  635. self.displayLabel = headerlabel0
  636. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  637. self.tableWidgetFlight.verticalHeader().setVisible(False)
  638. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  639. elif displayMode == "B":
  640. self.displayLabel = headerlabel_B
  641. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  642. self.tableWidgetFlight.verticalHeader().setVisible(False)
  643. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  644. self.sorttableWidgetDispalydata = {}
  645. self.sorttableWidgetDispalydata = dict
  646. self.sorttableWidgetDispalydataALL={}
  647. self.sorttableWidgetDispalydataALL = dict
  648. self.tableWidgetDispaly()
  649. # print(self.sorttableWidgetDispalydata)
  650. if seversts == "0":
  651. self.severupdatests = "-"
  652. self.label_11.setText("已断开")
  653. self.label_11.setStyleSheet(
  654. "background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
  655. elif seversts == "1" and self.severupdatests == "1":
  656. self.label_11.setText("正 常")
  657. self.label_11.setStyleSheet(
  658. "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold")
  659. elif seversts == "1" and self.severupdatests == "0":
  660. self.label_11.setText("未更新")
  661. self.label_11.setStyleSheet(
  662. "background-color:yellow;color:red;border-radius:5px;padding:2px;font-weight:bold")
  663. except Exception:
  664. pass
  665. def QThreadSortDispalyNow(self, name, dict, dict2, seversts, displayMode):
  666. try:
  667. if name == "sortTableWidgetDispaly":
  668. if displayMode == "A":
  669. self.displayLabel = headerlabel0
  670. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  671. self.tableWidgetFlight.verticalHeader().setVisible(False)
  672. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  673. else:
  674. self.displayLabel = headerlabel_B
  675. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  676. self.tableWidgetFlight.verticalHeader().setVisible(False)
  677. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  678. self.sorttableWidgetDispalydata = {}
  679. self.sorttableWidgetDispalydata = dict
  680. self.sorttableWidgetDispalydataALL = {}
  681. self.sorttableWidgetDispalydataALL = dict
  682. # print(self.sorttableWidgetDispalydata)
  683. self.tableWidgetDispaly()
  684. elif name == "SearchsortTableWidgetDispaly":
  685. if displayMode == "A":
  686. self.displayLabel = headerlabel0
  687. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  688. self.tableWidgetFlight.verticalHeader().setVisible(False)
  689. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  690. elif displayMode == "B":
  691. self.displayLabel = headerlabel_B
  692. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  693. self.tableWidgetFlight.verticalHeader().setVisible(False)
  694. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  695. self.sorttableWidgetDispalydata = {}
  696. self.sorttableWidgetDispalydata = dict
  697. self.tableWidgetDispaly()
  698. # print(self.sorttableWidgetDispalydata)
  699. if seversts == "0":
  700. self.severupdatests = "-"
  701. self.label_11.setText("已断开")
  702. self.label_11.setStyleSheet(
  703. "background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
  704. elif seversts == "1" and self.severupdatests == "1":
  705. self.label_11.setText("正 常")
  706. self.label_11.setStyleSheet(
  707. "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold")
  708. elif seversts == "1" and self.severupdatests == "0":
  709. self.label_11.setText("未更新")
  710. self.label_11.setStyleSheet(
  711. "background-color:yellow;color:red;border-radius:5px;padding:2px;font-weight:bold")
  712. except Exception:
  713. pass
  714. def QThreadSortTimer(self):
  715. try:
  716. if self.loginSts == True:
  717. # print("多线程刷新1")
  718. self.judge_bc()
  719. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  720. th1 = QThread()
  721. self.sortTableWidgetDispalyThread1 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo,
  722. self.selectedtime, self.FLIGHTonChange_text,
  723. self.displayMode, "1", self.displaySelect_mode,
  724. th1)
  725. self.sortTableWidgetDispalyThread1.sortupdate.connect(self.QThreadSortDispalyTimer)
  726. self.sortTableWidgetDispalyThread1.moveToThread(th1)
  727. th1.started.connect(self.sortTableWidgetDispalyThread1.run)
  728. th1.start()
  729. self.updatecheck()
  730. except Exception:
  731. pass
  732. def QThreadSortNow(self, name):
  733. try:
  734. if "main" in str(name):
  735. # print(datetime.datetime.now())
  736. th11 = QThread()
  737. self.sortTableWidgetDispalyThread11 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo,
  738. self.selectedtime, self.FLIGHTonChange_text,
  739. self.displayMode, "1", self.displaySelect_mode,
  740. th11)
  741. try:
  742. self.sortTableWidgetDispalyThread11.sortupdate.disconnect()
  743. except TypeError:
  744. pass
  745. self.sortTableWidgetDispalyThread11.sortupdate.connect(self.QThreadSortDispalyNow)
  746. self.sortTableWidgetDispalyThread11.moveToThread(th11)
  747. th11.started.connect(self.sortTableWidgetDispalyThread11.run)
  748. th11.start()
  749. elif "search" in str(name):
  750. # print(datetime.datetime.now())
  751. th111 = QThread()
  752. self.sortTableWidgetDispalyThread111 = sortdisplaySever("SearchsortTableWidgetDispaly", self.ipinfo,
  753. self.selectedtime, self.FLIGHTonChange_text,
  754. self.displayMode, self.sorttableWidgetDispalydataALL, self.displaySelect_mode,
  755. th111)
  756. self.sortTableWidgetDispalyThread111.sortupdate.connect(self.QThreadSortDispalyNow)
  757. self.sortTableWidgetDispalyThread111.moveToThread(th111)
  758. th111.started.connect(self.sortTableWidgetDispalyThread111.run)
  759. th111.start()
  760. except Exception:
  761. pass
  762. def enter_item_slot(self, item):
  763. try:
  764. self.tool_tip = item.text()
  765. # print("self.tool_tip:", self.tool_tip)
  766. except Exception:
  767. pass
  768. def tableWidgetDispaly(self):
  769. try:
  770. selftaxi = ["166", "166L", "166R", "167", "167L", "167R", "168", "169", "170", "171", "172", "173", "174",
  771. "269", "270", "271", "272", "273", "274", "275", "287", "288", "601", "602", "603", "604",
  772. "605", "606", "607", "607L", "607R"] # 自滑位
  773. if self.sorttableWidgetDispalydata != "":
  774. # print("刷新开始")
  775. # dateNow=datetime.datetime.now()
  776. tableWidgetDispalydata = self.sorttableWidgetDispalydata
  777. col = len(self.displayLabel)
  778. self.tableWidgetFlight.setRowCount(len(tableWidgetDispalydata.keys()))
  779. for row in tableWidgetDispalydata.keys():
  780. for colNum in range(0, col):
  781. if colNum == 13:
  782. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  783. elif colNum == 15:
  784. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  785. elif colNum == 18:
  786. if tableWidgetDispalydata[row][str(colNum)] in selftaxi and tableWidgetDispalydata[row][str(colNum)] != "":
  787. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  788. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("lightgreen"))
  789. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black"))
  790. elif tableWidgetDispalydata[row][str(colNum)] not in selftaxi or tableWidgetDispalydata[row][str(colNum)] == "":
  791. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  792. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  793. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  794. font = QFont()
  795. # font.setFamily("SimHei")
  796. font.setFamily("Microsoft YaHei")
  797. font.setBold(True)
  798. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  799. elif colNum == 19:
  800. if tableWidgetDispalydata[row][str(colNum)] == "短停送" or tableWidgetDispalydata[row][str(colNum)] == "特后前送":
  801. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  802. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  803. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str("blue")))
  804. font = QFont()
  805. font.setFamily("Microsoft YaHei")
  806. font.setBold(True)
  807. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  808. else:
  809. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  810. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  811. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  812. elif 19 < colNum < 31:
  813. if "√" in tableWidgetDispalydata[row][str(colNum)] or tableWidgetDispalydata[row][str(colNum)] == "":
  814. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)]).replace("*","")))
  815. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  816. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  817. if tableWidgetDispalydata[row][str(colNum)] != "" and "√" not in tableWidgetDispalydata[row][str(colNum)]:
  818. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)]).replace("*","")))
  819. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow"))
  820. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black"))
  821. elif colNum == 61:
  822. if str(tableWidgetDispalydata[row][str(colNum)]) != "" and str(tableWidgetDispalydata[row][str(colNum)]) != None:
  823. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  824. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow"))
  825. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("red"))
  826. font = QFont()
  827. font.setFamily("Microsoft YaHei")
  828. font.setBold(True)
  829. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  830. else:
  831. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  832. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  833. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  834. font = QFont()
  835. font.setFamily("Microsoft YaHei")
  836. font.setBold(True)
  837. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  838. elif colNum == 49:
  839. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  840. if tableWidgetDispalydata[row][str(colNum)] != "":
  841. for i in tableWidgetDispalydata[row][str(colNum)].split(","):
  842. if "√" not in i:
  843. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow"))
  844. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black"))
  845. break
  846. else:
  847. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  848. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  849. else:
  850. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  851. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  852. elif colNum == 51:
  853. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  854. if tableWidgetDispalydata[row][str(colNum)] != "" and "√" not in tableWidgetDispalydata[row][str(colNum)]:
  855. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow"))
  856. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black"))
  857. else:
  858. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  859. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  860. elif 0 < colNum < 11:
  861. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  862. elif colNum == 0:
  863. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1)))
  864. else:
  865. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)])))
  866. if colNum not in [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,49,51, 61]:
  867. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  868. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  869. if colNum not in [4 , 6]:
  870. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  871. else:
  872. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignCenter)
  873. self.tableWidgetFlight.setRowHeight(int(row), 35)
  874. if self.displayMode == "A":
  875. settips={0:"53",4:"62",49:"50",19:"47",11:"57",13:"57",15:"57",45:"45",61:"61",6:"17",38:"40",}
  876. for key,value in settips.items():
  877. if self.tableWidgetFlight.item(int(row), key):
  878. self.tableWidgetFlight.item(int(row), key).setToolTip("%s" % (str(tableWidgetDispalydata[row][str(value)])))
  879. else:
  880. self.tableWidgetFlight.item(int(row), 0).setToolTip("[%s,%s]" % ( str(tableWidgetDispalydata[row][str(col - 5)]),str(tableWidgetDispalydata[row][str(col - 4)])))
  881. for ii in range (1,4):
  882. self.tableWidgetFlight.item(int(row), ii).setToolTip("%s" % str(tableWidgetDispalydata[row][str(24)]))
  883. if self.displayMode == "A":
  884. self.tableWidgetFlight.resizeColumnsToContents()
  885. self.tableWidgetFlight.setWordWrap(True)
  886. for i in range(col):
  887. if i in [1,2,3,5,7,8,9,10,12,14,16,17,20,22,24,26,28,30,32,34,36,39,40,42,43,44,46,47,48,50,52,53,54,55,56,57,58,59,60,62,63,64,65]:
  888. self.tableWidgetFlight.setColumnHidden(i, True)
  889. else:
  890. self.tableWidgetFlight.setColumnHidden(i, False)
  891. if i in [21, 23, 25, 27, 29, 31]:
  892. self.tableWidgetFlight.setColumnWidth(i, 70)
  893. elif i in [45]:
  894. self.tableWidgetFlight.setColumnWidth(i, 45)
  895. else:
  896. for i in range(col):
  897. if i in [col - 9, col - 11, col - 12,19,20,21,22,23,28,29,30,31]:
  898. self.tableWidgetFlight.setColumnHidden(i, True)
  899. else:
  900. self.tableWidgetFlight.setColumnHidden(i, False)
  901. self.tableWidgetFlight.resizeColumnsToContents()
  902. self.tableWidgetFlight.setColumnWidth(10, 70)
  903. self.tableWidgetFlight.setColumnWidth(11, 70)
  904. self.tableWidgetFlight.setColumnWidth(12, 70)
  905. self.tableWidgetFlight.setColumnWidth(13, 70)
  906. self.tableWidgetFlight.setColumnWidth(14, 70)
  907. self.tableWidgetFlight.setColumnWidth(15, 70)
  908. self.tableWidgetFlight.setColumnWidth(22, 45)
  909. except Exception as e:
  910. app_logger.log_error(e)
  911. if __name__ == '__main__':
  912. app = QApplication(sys.argv)
  913. mw = MainWidget()
  914. sys.exit(app.exec())