DisplayQTMain.py 55 KB

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