tableWidgetDispaly2_66.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. from unitls.baseFunction import TuplefindInList,TuplefindInList3
  2. from .flightDB import flightDB
  3. from unitls.LogerinTxt import app_logger
  4. from .getSortFlightdata import getSortFlightdata
  5. from .waringMessageID import waringMessageID
  6. import concurrent.futures
  7. from unitls.StaticDataclass import get_dic
  8. def tableWidgetDispaly2(fdb:flightDB,selectedtime,date):#1,昨天。2今天3明天4其他
  9. try:
  10. tableWidgetDispalydata = {}
  11. sorttable = getSortFlightdata(fdb,selectedtime,"sortFlight2")
  12. nowDayStr = selectedtime
  13. TaskFlightinfoAll = fdb.getAlldata('TaskFlightinfo{}'.format(nowDayStr))
  14. waringMessageIDs = waringMessageID(fdb)
  15. peopleScheduleAll = fdb.getAlldata("peopleSchedule{}".format(nowDayStr))
  16. tasklistall = fdb.getAlldata('TaskList{}'.format(nowDayStr))
  17. executor = concurrent.futures.ThreadPoolExecutor()
  18. all_task = []
  19. taskType=get_dic('taskType')
  20. for i in range(len(sorttable)):
  21. all_task.append(executor.submit(functionDisplay2, sorttable[i], i, TaskFlightinfoAll, waringMessageIDs,peopleScheduleAll,taskType,tasklistall))
  22. for future in concurrent.futures.as_completed(all_task):
  23. data = future.result()
  24. tableWidgetDispalydata.update(data)
  25. newdic = {"B": '"{}"'.format(tableWidgetDispalydata)}
  26. if date == "1":
  27. fdb.upDateItem("display", newdic, "ID = '1'")
  28. elif date == "2":
  29. fdb.upDateItem("display", newdic, "ID = '2'")
  30. elif date == "3":
  31. fdb.upDateItem("display", newdic, "ID = '3'")
  32. return tableWidgetDispalydata
  33. except Exception as e:
  34. app_logger.log_error(e)
  35. def functionDisplay2(row, rowNum, TaskFlightinfoAll,waringMessageIDs,peopleScheduleAll,taskType,TaskListAll):
  36. TaskFlightinfo = TuplefindInList(TaskFlightinfoAll,row[1])
  37. jjdq="--"
  38. hbdq="--"
  39. esdq="--"
  40. tasksts=""
  41. if '3U' in TaskFlightinfo[21] or 'CSC' in TaskFlightinfo[21]:
  42. tasksts = TuplefindInList3(TaskListAll, TaskFlightinfo[0], 0, 8)
  43. if TaskFlightinfo[3] == "AP":
  44. hbdq = "√" if 'P-PRE-FLIGHT' in str(tasksts) else ""
  45. esdq = "√" if 'DEPARTURE-SERVICE' in str(tasksts) else ""
  46. elif TaskFlightinfo[3] == "TR" :
  47. jjdq = "√" if 'ARRIVAL-SERVICE' in str(tasksts) else ""
  48. hbdq = "√" if 'P-TRANSIT' in str(tasksts) else ""
  49. esdq = "√" if 'DEPARTURE-SERVICE' in str(tasksts) else ""
  50. elif TaskFlightinfo[3] == "AF":
  51. jjdq = "√" if 'ARRIVAL-SERVICE' in str(tasksts) else ""
  52. hbdq = "√" if 'P-POST-FLIGHT' in str(tasksts) else ""
  53. if TaskFlightinfo != None:
  54. JWA = TaskFlightinfo[10]
  55. JWB = TaskFlightinfo[11]
  56. if JWB!="" and JWA =="":
  57. JWA=JWB
  58. if JWA!="" and JWB =="":
  59. JWB=JWA
  60. else:
  61. JWA = ""
  62. JWB = ""
  63. wx_people = ""
  64. fx_people = ""
  65. ecsj_people = ""
  66. type31 = ""
  67. # print(TaskFlightinfo)
  68. if TaskFlightinfo != None:
  69. wx_people = TaskFlightinfo[12]
  70. fx_people = TaskFlightinfo[13]
  71. ecsj_people = TaskFlightinfo[19]
  72. type31 = TaskFlightinfo[3]
  73. if TaskFlightinfo[3] == "AF":
  74. postion = str(TaskFlightinfo[23]).split("</br>")[0]
  75. elif TaskFlightinfo[3] == "TR" or TaskFlightinfo[3] == "TAF":
  76. postion = str(TaskFlightinfo[23]).replace("</br>天府","")
  77. elif "</br>" in str(TaskFlightinfo[23]):
  78. postion = str(TaskFlightinfo[23]).split("</br>")[1]
  79. else:
  80. postion ="无信息"
  81. if TaskFlightinfo[4] != "" and (TaskFlightinfo[8] == "" or TaskFlightinfo[30] == ""): #如果sta不为空,且eta或flying为空,显示sta
  82. a = TaskFlightinfo[4][-8:-3]
  83. else:
  84. a=""
  85. if TaskFlightinfo[6] != "" : #当ata不为空显示ata,eta不为空显示eta否则为空
  86. b = TaskFlightinfo[6][-8:-3]
  87. elif TaskFlightinfo[8] != "":
  88. b = TaskFlightinfo[8][-8:-3]
  89. else:
  90. b = ''
  91. if TaskFlightinfo[7] != "" :
  92. c = '[实]' + TaskFlightinfo[7][-8:-3]
  93. elif TaskFlightinfo[5] != "":
  94. c = '[预]' + TaskFlightinfo[5][-8:-3]
  95. else:
  96. c = ''
  97. QColorList = ['black', 'white', '#F3ECD9', '#BAD1D1', '#DDE2E3', '#647277', '#00FFFF', 'blue']
  98. #QColorList = ['black', 'white', '#F3ECD9', '#BAD1D1', '#DDE2E3', '#647277', 'red', 'blue']
  99. # waringMessageIDs = waringMessageID(fdb)
  100. if str(row[1]) in str(waringMessageIDs["全部警告"]):
  101. color_code = QColorList[6]
  102. color_code1 = QColorList[0]
  103. color_code2 = QColorList[1]
  104. color_code3 = QColorList[0]
  105. elif row[5] == "4":
  106. color_code = QColorList[5]
  107. color_code1 = QColorList[1]
  108. color_code2 = QColorList[1]
  109. color_code3 = QColorList[1]
  110. elif row[5] == "3":
  111. color_code = QColorList[3]
  112. color_code1 = QColorList[0]
  113. color_code2 = QColorList[0]
  114. color_code3 = QColorList[0]
  115. elif row[5] == "2":
  116. color_code = QColorList[2]
  117. color_code1 = QColorList[0]
  118. color_code2 = QColorList[0]
  119. color_code3 = QColorList[0]
  120. elif row[5] == "1":
  121. if (rowNum + 2) % 2 == 0:
  122. color_code = QColorList[4]
  123. else:
  124. color_code = QColorList[1]
  125. color_code1 = QColorList[0]
  126. color_code2 = QColorList[6]
  127. color_code3 = QColorList[7]
  128. findid = row[0] + "-B"
  129. #peopleSchedule = fdb.queryTabel("peopleSchedule{}".format(nowDayStr), "*", "编号='%s'" % findid)
  130. peopleSchedule = TuplefindInList(peopleScheduleAll, findid)
  131. if peopleSchedule != None:
  132. fx = peopleSchedule[3]
  133. qw1 = peopleSchedule[4]
  134. qw2 = peopleSchedule[5]
  135. g1 = peopleSchedule[6]
  136. g2 = peopleSchedule[7]
  137. g3 = peopleSchedule[8]
  138. fj = peopleSchedule[9]
  139. else:
  140. fx = ""
  141. qw1 = ""
  142. qw2 = ""
  143. g1 = ""
  144. g2 = ""
  145. g3 = ""
  146. fj = ""
  147. if TaskFlightinfo[3] == "AF":
  148. item_dic = {"0": rowNum,
  149. "1": TaskFlightinfo[1],
  150. "2": TaskFlightinfo[26],
  151. "3": TaskFlightinfo[25],
  152. "4": TaskFlightinfo[21],
  153. "5": a,
  154. "6": b,
  155. "7": "--",
  156. "8": JWA,
  157. "9": taskType[TaskFlightinfo[3]],
  158. "10": fx,
  159. "11": qw1,
  160. "12": qw2,
  161. "13": g1,
  162. "14": g2,
  163. "15": g3,
  164. "19": "",
  165. "16": jjdq,
  166. "18": esdq,
  167. "17": hbdq,
  168. "20": "",
  169. "21": "",
  170. "22": "",
  171. "23": "",
  172. "24": postion,
  173. "25": wx_people, # flightinfodata[22],
  174. "26": "",
  175. "27": fx_people, # flightinfodata[23],
  176. "28": row[1],
  177. "29": tasksts,
  178. "30": "",
  179. "31": type31,
  180. "32": fj,
  181. "99": color_code,
  182. "101": color_code1,
  183. "102": color_code2,
  184. "103": color_code3,
  185. "109": row[5]
  186. }
  187. # tableWidgetDispalydata[rowNum] = item_dic
  188. # rowNum += 1
  189. return {rowNum: item_dic}
  190. elif TaskFlightinfo[3] == "停场":
  191. item_dic = {"0": rowNum,
  192. "1": TaskFlightinfo[1],
  193. "2": TaskFlightinfo[26],
  194. "3": TaskFlightinfo[25],
  195. "4": "--",
  196. "5": a,
  197. "6": "--",
  198. "7": "--",
  199. "8": JWA,
  200. "9": taskType[TaskFlightinfo[3]],
  201. "10": fx,
  202. "11": qw1,
  203. "12": qw2,
  204. "13": g1,
  205. "14": g2,
  206. "15": g3,
  207. "16": "--",
  208. "17": "--",
  209. "18": "--",
  210. "19": "--",
  211. "20": "--",
  212. "21": "--",
  213. "22": "--",
  214. "23": "--",
  215. "24": "--", # flightinfodata[22],
  216. "25": "--", # flightinfodata[23],
  217. "26": "--",
  218. "27": "--",
  219. "28": row[1],
  220. "29": tasksts,
  221. "30": "--",
  222. "31": "--",
  223. "32": fj,
  224. "99": color_code,
  225. "101": color_code1,
  226. "102": color_code2,
  227. "103": color_code3,
  228. "109": row[5]
  229. }
  230. # tableWidgetDispalydata[rowNum] = item_dic
  231. # rowNum += 1
  232. return {rowNum: item_dic}
  233. elif TaskFlightinfo[3] == "AP":
  234. item_dic = {"0": rowNum,
  235. "1": TaskFlightinfo[1],
  236. "2": TaskFlightinfo[26],
  237. "3": TaskFlightinfo[25],
  238. "4": TaskFlightinfo[21],
  239. "5": "",
  240. "6": "",
  241. "7": c,
  242. "8": JWB,
  243. "9": taskType[TaskFlightinfo[3]],
  244. "10": fx,
  245. "11": qw1,
  246. "12": qw2,
  247. "13": g1,
  248. "14": g2,
  249. "15": g3,
  250. "19": "",
  251. "16": jjdq,
  252. "18": esdq,
  253. "17": hbdq,
  254. "20": "",
  255. "21": "",
  256. "22": "",
  257. "23": "",
  258. "24": postion,
  259. "25": wx_people, # flightinfodata[22],
  260. "26": "",
  261. "27": fx_people, # flightinfodata[23],
  262. "28": row[1],
  263. "29": tasksts,
  264. "30": "",
  265. "31": type31,
  266. "32": fj,
  267. "99": color_code,
  268. "101": color_code1,
  269. "102": color_code2,
  270. "103": color_code3,
  271. "109": row[5]
  272. }
  273. # tableWidgetDispalydata[rowNum] = item_dic
  274. # rowNum += 1
  275. return {rowNum: item_dic}
  276. elif row[3] == "短停接":
  277. item_dic = {"0": rowNum,
  278. "1": TaskFlightinfo[1],
  279. "2": TaskFlightinfo[26],
  280. "3": TaskFlightinfo[25],
  281. "4": TaskFlightinfo[21],
  282. "5": a,
  283. "6": b,
  284. "7": c,
  285. "8": JWA,
  286. "9": taskType[TaskFlightinfo[3]],
  287. "10": fx,
  288. "11": qw1,
  289. "12": qw2,
  290. "13": g1,
  291. "14": g2,
  292. "15": g3,
  293. "19": "",
  294. "16": jjdq,
  295. "18": esdq,
  296. "17": hbdq,
  297. "20": "",
  298. "21": "",
  299. "22": "",
  300. "23": "",
  301. "24": postion,
  302. "25": wx_people, # flightinfodata[22],
  303. "26": ecsj_people,
  304. "27": fx_people, # flightinfodata[23],
  305. "28": row[1],
  306. "29": tasksts,
  307. "30": "",
  308. "31": type31,
  309. "32": fj,
  310. "99": color_code,
  311. "101": color_code1,
  312. "102": color_code2,
  313. "103": color_code3,
  314. "109": row[5]
  315. }
  316. # tableWidgetDispalydata[rowNum] = item_dic
  317. # rowNum += 1
  318. return {rowNum: item_dic}
  319. elif row[3] == "特后前接":
  320. item_dic = {"0": rowNum,
  321. "1": TaskFlightinfo[1],
  322. "2": TaskFlightinfo[26],
  323. "3": TaskFlightinfo[25],
  324. "4": TaskFlightinfo[21],
  325. "5": a,
  326. "6": b,
  327. "7": c,
  328. "8": JWA,
  329. "9": taskType[TaskFlightinfo[3]],
  330. "10": fx,
  331. "11": qw1,
  332. "12": qw2,
  333. "13": g1,
  334. "14": g2,
  335. "15": g3,
  336. "19": "",
  337. "16": jjdq,
  338. "18": esdq,
  339. "17": hbdq,
  340. "20": "",
  341. "21": "",
  342. "22": "",
  343. "23": "",
  344. "24": postion,
  345. "25": wx_people, # flightinfodata[22],
  346. "26": "",
  347. "27": fx_people, # flightinfodata[23],
  348. "28": row[1],
  349. "29": tasksts,
  350. "30": "",
  351. "31": type31,
  352. "32": fj,
  353. "99": color_code,
  354. "101": color_code1,
  355. "102": color_code2,
  356. "103": color_code3,
  357. "109": row[5]
  358. }
  359. #tableWidgetDispalydata[rowNum] = item_dic
  360. #rowNum += 1
  361. return {rowNum:item_dic}