import datetime import socket import sys import time import traceback from PyQt6 import QtCore from PyQt6.QtCore import Qt, QThread, pyqtSignal, QRunnable, QObject, pyqtSlot, QThreadPool, QTimer, \ QSortFilterProxyModel from PyQt6.QtGui import QColor, QFont,QPalette from PyQt6.QtTextToSpeech import QTextToSpeech from PyQt6.QtWidgets import QApplication, QWidget, QMessageBox, QPushButton, QTableWidgetItem, QFileDialog, \ QAbstractItemView, \ QCompleter, QMenu import requests import os import json from openpyxl import Workbook from UI.main2 import Ui_Form from Functions import utils from UI.checkCalllist import Ui_checkCalllist from UI.login import Ui_login from UI.addloaclip import Ui_Addloacalip from UI.checkLoadSingal import Ui_checkLoadSingal from UI.searchpeople_get import Ui_searchpeople_get from UI.amroLogin import Ui_amroLogin from UI.amroLogin2 import Ui_amroLogin2 from UI.adduser import Ui_FormAdduser from UI.handoverFlight import Ui_handoverFlight from UI.AddPG import Ui_FormAddPG from UI.addFlight import Ui_FormAddFlight from UI.findserver import Ui_FormLink from UI.changePassword import Ui_FormChangePssword from UI.checkLogs import Ui_checkLogs from UI.changeAuth import Ui_changeAuth from UI.mapWeb import Ui_FormMapWeb from Functions import serverFind from Functions.QtFunctions import ipcall import logging import logging.handlers from logging.handlers import RotatingFileHandler logger = logging.getLogger() logger.setLevel(logging.INFO) # Log等级总开关 # 第二步,创建一个handler,用于写入日志文件 rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time())) log_name = 'D:/flightinfo/logs/BUGLOGS_qtmain.log' logfile = log_name fh = RotatingFileHandler(logfile, mode='a', maxBytes=10485760, backupCount=1, encoding='utf-8') fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关 # 第三步,定义handler的输出格式 formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s") fh.setFormatter(formatter) # 第四步,将logger添加到handler里面 logger.addHandler(fh) class setlocalip(QObject): localipupdate = pyqtSignal(str) def __init__(self, ip, thread): super().__init__() self.ip = ip self.thread = thread def run(self): # print("jjingruy1") try: if self.ip != None: try: localcalltry = ipcall.searchinfo() self.localtoken = localcalltry.start(self.ip) # print("本地测试print(self.localtoken)") # print(self.localtoken) except Exception: self.localtoken = None self.localtoken = None logger.error(traceback.format_exc()) else: self.localtoken = None self.localipupdate.emit(self.localtoken) self.thread.quit() except Exception: logger.error(traceback.format_exc()) self.thread.quit() class sortdisplaySever(QObject): sortupdate = pyqtSignal(str, dict, list, str, str) def __init__(self, name, ip, selectedtime, text, displayMode, selectedbc, displayselect, thread): super().__init__() self.funcName = name self.ipinfo = ip self.selectedtime = selectedtime self.text = text self.displayMode = displayMode self.selectedbc = selectedbc self.displayselect_mode = displayselect self.thread = thread nowDay = datetime.datetime.now().strftime("%Y%m%d") tomorr =(datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d") yester =(datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d") if self.selectedtime == nowDay: self.date="2" elif self.selectedtime == tomorr: self.date = "3" elif self.selectedtime == yester: self.date = "1" else: self.date = "4" def run(self): try: list = [] if self.funcName == "sortTableWidgetDispaly": #print("1") self.sortTableWidgetDispaly() self.sortupdate.emit("sortTableWidgetDispaly", self.sorttableWidgetDispalydata, list, self.seversts,self.displayMode) self.sortupdate.emit("sortTableWidgetDispalyALL", self.DispalydataAll, list, self.seversts,self.displayMode) if self.funcName == "sortTableWidgetDispalyALL": #print("2") self.sortTableWidgetDispalyALL() self.sortupdate.emit("sortTableWidgetDispalyALL", self.sorttableWidgetDispalydata, list, self.seversts,self.displayMode) elif self.funcName == "SearchsortTableWidgetDispaly": #print("3") self.SearchsortTableWidgetDispaly() self.sortupdate.emit("SearchsortTableWidgetDispaly", self.sorttableWidgetDispalydata, list,self.seversts,self.displayMode) elif self.funcName == "sorttableWidgetDisplayChange": #print("4") self.sorttableWidgetDisplayChange() self.sortupdate.emit("sorttableWidgetDisplayChange", self.sortlogchange, list, self.seversts,self.displayMode) elif self.funcName == "sorttableWidgetPeopleDisplay": self.sorttableWidgetPeopleDisplay() self.sortupdate.emit("sorttableWidgetPeopleDisplay", self.sortdiplaylist, self.peopleOnJob,self.seversts, self.displayMode) elif self.funcName == "sorttableWidgetLOGDispaly": self.sorttableWidgetLOGDispaly() self.sortupdate.emit("sorttableWidgetLOGDispaly", self.sortlog, list, self.seversts, self.displayMode) elif self.funcName == "sorttableWidgetPHONEDispaly": self.sorttableWidgetPHONEDispaly() self.sortupdate.emit("sorttableWidgetPHONEDispaly", self.sorttableWidgetPHONEDispalydata, list,self.seversts, "") self.thread.quit() except Exception: logger.error(traceback.format_exc()) self.thread.quit() def severpost_nomeassge(self, postname, postdata, postdata2, postdata3): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str(postdata3) try: res = requests.get(url=ip, timeout=30).json() self.seversts = "1" return res except Exception: logger.error(traceback.format_exc()) logger.error("重大bug") logger.error(ip) self.seversts = "0" return [] except Exception: logger.error(traceback.format_exc()) def sorttableWidgetPHONEDispaly(self): try: sorttableWidgetPHONEDispalydataall = self.severpost_nomeassge("getphonelist", "", "", "") self.sorttableWidgetPHONEDispalydata = {} num = 0 if sorttableWidgetPHONEDispalydataall != None: if self.text != "": for i in sorttableWidgetPHONEDispalydataall.keys(): if str.lower(str(self.text)) in str(sorttableWidgetPHONEDispalydataall[i]): self.sorttableWidgetPHONEDispalydata[str(num)] = sorttableWidgetPHONEDispalydataall[i] num += 1 else: self.sorttableWidgetPHONEDispalydata = sorttableWidgetPHONEDispalydataall except Exception: logger.error(traceback.format_exc()) def sortTableWidgetDispaly(self): try: text = self.text Partdisplay = self.displayselect_mode # 不显示起飞航班 # print(Partdisplay) tableWidgetDispalydataAll = {} if self.displayMode == "A" and (self.selectedbc == "0" or self.date=="4"): tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,"/%s"%self.date,"") elif self.displayMode == "B"and (self.selectedbc == "0" or self.date=="4"): tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,"/%s"%self.date,"") elif self.displayMode == "A" and self.selectedbc == "1": tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead","/%s"%self.date,"","") elif self.displayMode == "B"and self.selectedbc == "1": tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead2","/%s"%self.date,"","") self.DispalydataAll=tableWidgetDispalydataAll self.sorttableWidgetDispalydata = {} num = 0 if tableWidgetDispalydataAll != None: if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]): self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] != '4': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] == '1': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 else: self.sorttableWidgetDispalydata = tableWidgetDispalydataAll else: self.sorttableWidgetDispalydata = self.sortTableWidgetDispaly_bak() except Exception: logger.error(traceback.format_exc()) def sortTableWidgetDispaly_bak(self): try: text = self.text Partdisplay = self.displayselect_mode # 不显示起飞航班 # print(Partdisplay) tableWidgetDispalydataAll = {} if self.displayMode == "A" and (self.selectedbc == "0" or self.date == "4"): tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime, "/%s" % self.date, "") elif self.displayMode == "B" and (self.selectedbc == "0" or self.date == "4"): tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime, "/%s" % self.date, "") elif self.displayMode == "A" and self.selectedbc == "1": tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead", "/%s" % self.date, "", "") elif self.displayMode == "B" and self.selectedbc == "1": tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead2", "/%s" % self.date, "", "") self.DispalydataAll=tableWidgetDispalydataAll sorttableWidgetDispalydata = {} num = 0 if tableWidgetDispalydataAll != None: if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]): sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] != '4': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] == '1': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 else: sorttableWidgetDispalydata = tableWidgetDispalydataAll return sorttableWidgetDispalydata except Exception: logger.error(traceback.format_exc()) def sortTableWidgetDispalyALL(self): try: if self.displayMode == "A" and (self.selectedbc == "0" or self.date=="4"): self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,"/%s"%self.date,"") elif self.displayMode == "B"and (self.selectedbc == "0" or self.date=="4"): self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,"/%s"%self.date,"") elif self.displayMode == "A" and self.selectedbc == "1": self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispalyRead","/%s"%self.date,"","") elif self.displayMode == "B"and self.selectedbc == "1": self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispalyRead2","/%s"%self.date,"","") except Exception: logger.error(traceback.format_exc()) def SearchsortTableWidgetDispaly(self): try: text = self.text self.seversts = "1" Partdisplay = self.displayselect_mode # 不显示起飞航班 # print(Partdisplay) tableWidgetDispalydataAll = self.selectedbc self.sorttableWidgetDispalydata = {} num = 0 if tableWidgetDispalydataAll != None: if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6"and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]): self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] != '4': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] == '1': self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 else: self.sorttableWidgetDispalydata = tableWidgetDispalydataAll else: self.sorttableWidgetDispalydata = self.SearchsortTableWidgetDispaly_bak() except Exception: logger.error(traceback.format_exc()) def SearchsortTableWidgetDispaly_bak(self): try: text = self.text self.seversts = "1" Partdisplay = self.displayselect_mode # 不显示起飞航班 # print(Partdisplay) tableWidgetDispalydataAll = self.selectedbc sorttableWidgetDispalydata = {} num = 0 if tableWidgetDispalydataAll != None: if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]): sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "0": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "": if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "1": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] != '4': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6"and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] == "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T2T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T1T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "T6" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(str(tableWidgetDispalydataAll[i]["8"])) if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1': if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \ str(tableWidgetDispalydataAll[i]["8"])[0] != "2": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1": sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 elif text == "" and Partdisplay == "3": # print(tableWidgetDispalydataAll) for i in tableWidgetDispalydataAll.keys(): # print(tableWidgetDispalydataAll[i]["109"]) if tableWidgetDispalydataAll[i]["109"] == '1': sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i] num += 1 else: sorttableWidgetDispalydata = tableWidgetDispalydataAll return sorttableWidgetDispalydata except Exception: logger.error(traceback.format_exc()) def sorttableWidgetDisplayChange(self): try: text = self.text logall = self.severpost_nomeassge("tableWidgetDisplayChange", "/%s" % self.selectedtime, "", "") self.sortlogchange = {} num = 0 if text != "": for i in logall.keys(): if str(text) in str(logall[i]): self.sortlogchange[str(num)] = logall[i] num += 1 else: self.sortlogchange = logall except Exception: logger.error(traceback.format_exc()) def sorttableWidgetPeopleDisplay(self): try: if self.displayselect_mode == "" or self.displayselect_mode == []: text = self.text self.peopleOnJob = [""] bc = self.selectedbc nowDaystr = self.selectedtime # 选择的日期 diplaylistall = self.severpost_nomeassge("qtPeopleLoad", "/%s" % nowDaystr, "/%s" % bc, "") self.sortdiplaylist = {} num = 0 if text != "": for i in diplaylistall.keys(): if str(text) in str(diplaylistall[i]): self.sortdiplaylist[str(num)] = diplaylistall[i] num += 1 else: self.sortdiplaylist = diplaylistall for i in self.sortdiplaylist.keys(): self.peopleOnJob.append(self.sortdiplaylist[i]["姓名"]) else: names = self.displayselect_mode text = self.text self.peopleOnJob = [""] bc = self.selectedbc nowDaystr = self.selectedtime # 选择的日期 diplaylistall = self.severpost_nomeassge("qtPeopleLoad", "/%s" % nowDaystr, "/%s" % bc, "") self.sortdiplaylist = {} num = 0 if text != "": for i in diplaylistall.keys(): if str(text) in str(diplaylistall[i]): for name in names: if str(name) in str(diplaylistall[i]): self.sortdiplaylist[str(num)] = diplaylistall[i] num += 1 else: for i in diplaylistall.keys(): for name in names: if str(name) in str(diplaylistall[i]): self.sortdiplaylist[str(num)] = diplaylistall[i] num += 1 for i in self.sortdiplaylist.keys(): self.peopleOnJob.append(self.sortdiplaylist[i]["姓名"]) except Exception: logger.error(traceback.format_exc()) def sorttableWidgetLOGDispaly(self): try: text = self.text logall = self.severpost_nomeassge("tableWidgetLOGDispaly", "/%s" % self.selectedtime, "", "") self.sortlog = {} num = 0 if text != "": for i in logall.keys(): if str(text) in str(logall[i]): self.sortlog[str(num)] = logall[i] num += 1 else: self.sortlog = logall except Exception: logger.error(traceback.format_exc()) class MainWidget(QWidget, Ui_Form): AddPG_signal = QtCore.pyqtSignal(str, str, str) LoginWidget_signal = QtCore.pyqtSignal(str) addUserWidget_signal = QtCore.pyqtSignal(str) def __init__(self): super().__init__() try: self.displaySelectstr3 = "0" self.displaySelect_mode = "1" self.sum = 0 self.flightsum = 0 self.localip = None self.severupdatests = "0" self.localtoken = None self.searchpeoplestr = [] self.sorttableWidgetDispalydata = {} self.sorttableWidgetDispalydataALL = {} self.sortlogchange = {} self.sortlog = {} self.sortdiplaylist = {} self.peopleOnJob = [""] self.loginSts = False self.amroLoginSts = False self.findSever = False self.FLIGHTonChange_text = "" self.changeonChange_text = "" self.logonChange_text = "" self.threadpool = QThreadPool() self.doubleclickLock = 0 self.vin="328" self.timelock=datetime.datetime.now() self.doubleclickLockUpdate = 0 self.maintainAuthCheckSts = 1 self.peolpleonChange_text = "" self.changeupdatetime=datetime.datetime.now() self.setupUi(self) # self.show() self.loginWidget = LoginWidget() self.findServerWidget = findServerWidget() self.mapWebPage = mapWebWidget() self.checkCalllist = checkCalllist() self.checkCalllist.checkCalllist_signal.connect(self.checkCalllistclose) # self.amroLoginWidget = amroLoginWidget() if self.findSever: pass # if self.loginSts: # self.show() # else: # self.loginWidget.show() else: self.findServerWidget.show() self.findServerWidget.selectServer_signal.connect(self.setServer) # self.amroLoginWidget.amroLogin_signal.connect(self.displayMain) # data except Exception: logger.error(traceback.format_exc()) def setServer(self, *args): try: #self.ipinfo = args[0] + ':9527' self.ipinfo = args[0] + ':7162' self.clickrow = "" self.clickcolumn = "" # print(self.ipinfo) self.findServerWidget.close() self.loginWidget.ipinfo = self.ipinfo self.loginWidget.login_signal.connect(self.displayMain) self.loginWidget.login_user.connect(self.setUser) checksts="ok" ip = "http://" + str(self.ipinfo) + "/static/remoteCheck/16" res=requests.get(url=ip, timeout=180).json() if res["返回值"] != "ok": checksts = res["返回值"] if checksts == "ok": if self.loginSts: self.initDisplay() self.show() else: self.loginWidget.show() else: QMessageBox.warning(self, "提示", "有新版更新!请前往NAS共享平台[机务一队/天府机务分部/31准备组无纸化办公/1航班助手]获取综合平台最新版本【最新版版本号:%s】!!"%checksts) self.close() except Exception: logger.error(traceback.format_exc()) def remotelogin(self): self.amrologin = amroLoginWidget() self.amrologin.ipinfo = self.ipinfo self.amrologin.show() def remoteCookielogin(self): self.amrologin = amroLoginWidget2() self.amrologin.ipinfo = self.ipinfo self.amrologin.show() def setIpPhone(self): try: res="" if os.path.exists("ipPhoneIp.code") is True: read_path = os.getcwd() + "\\ipPhoneIp.code" with open(read_path, "r", encoding="utf-8") as f2: rember_2 = f2.read() try: ip = "http://" + str(self.ipinfo) + "/static/setIpPhone/%s" % rember_2 res=requests.get(url=ip, timeout=180).json()["返回值"] except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员!") logger.error(traceback.format_exc()) if res =="ok": QMessageBox.warning(self, "提示", "服务器IP电话配置成功,请测试后启用自动拨号!") else: QMessageBox.warning(self, "警告", "服务器IP电话配置失败,建议重启自动拨号电话后再次配置!") else: QMessageBox.warning(self, "警告", "程序下未找到指定配置文件!") except Exception: logger.error(traceback.format_exc()) def setLocalIpPhone(self): try: self.localipset = localipset() self.localipset.localipset_signal.connect(self.setLocalIpPhoneip) self.localipset.localip = self.localip self.localipset.start() except Exception: logger.error(traceback.format_exc()) def setLocalIpPhoneip(self, *args): try: self.localip = args[0] self.QThreadSortNow("setlocalip") self.localipset.close() # print(self.localip) except Exception: logger.error(traceback.format_exc()) def checkCalllistupdate(self): try: self.checkCalllist.ipinfo = self.ipinfo self.checkCalllist.selectedtime = self.selectedtime self.checkCalllist.start() except Exception: logger.error(traceback.format_exc()) def checkCalllistclose(self, *args): try: reply = args[0] # print(reply) if reply == "StandardButton.Yes": self.checkCalllist.hide() except Exception: logger.error(traceback.format_exc()) def showcheckLogs(self): try: self.checkLogs = checkLogs() self.checkLogs.ipinfo = self.ipinfo self.checkLogs.start() except Exception: logger.error(traceback.format_exc()) def initDisplay(self): try: self.oldjsondata = None self.cookie = None self.fl = None self.Auth=9999 self.tts = QTextToSpeech() self.tts.setEngine('sapi') nowDay = datetime.datetime.now() nowDayStr = nowDay.strftime("%Y%m%d") self.dateEdit.setDateTime(nowDay) self.selectedtime = self.dateEdit.date().toString('yyyyMMdd') # self.setipinfo() self.initFlightDatabase() # self.radioButtonDay. phoneLabel = ["序号", "姓名", "部门", "电话","name"] self.tableWidget_3.setColumnCount(len(phoneLabel)) self.tableWidget_3.verticalHeader().setVisible(False) self.tableWidget_3.setHorizontalHeaderLabels(phoneLabel) self.lineEdit_phonenum.textChanged.connect(self.changeonPhone) self.tableWidget_3.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.tableWidget_3.customContextMenuRequested.connect(self.generateMenu3) peopleLabel = ["序号", "姓名", "角色", "总量", "当前", "最后时间"] self.tableWidgetPerson.setColumnCount(len(peopleLabel)) self.tableWidgetPerson.verticalHeader().setVisible(False) self.tableWidgetPerson.setHorizontalHeaderLabels(peopleLabel) self.tableWidgetPerson.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) self.tableWidgetPerson.customContextMenuRequested.connect(self.generateMenu2) self.pushButton.clicked.connect(self.selectedtime_bc) self.radioButtonDay.toggled.connect(self.selected_bc_A) self.radioButtonNight.toggled.connect(self.selected_bc_B) judge_bc = self.severpost_nomeassge("judge_bc", "", "", "", "")["bc"] if judge_bc == "A": self.radioButtonDay.setChecked(True) elif judge_bc == "B": self.radioButtonNight.setChecked(True) self.AddPG = AddPGWidget() self.AddPG_signal.connect(self.AddPG.getname) self.pushButtonAddPG.clicked.connect(self.AddPG_widget) self.displayMode = "A" self.displayLabel = ["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达", "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4", "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包", "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型", "备","附加消息","备","备","备","备"] ''' self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2", "工3", "工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员", "放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"] ''' self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) self.tableWidgetFlight.cellDoubleClicked.connect(self.itemclick2) self.tableWidgetFlight.cellClicked.connect(self.itemclick) # self.lineEdit_phonenum.setText("") # 允许单机右键响应 self.tableWidgetFlight.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) # 构建右键的点击事件 self.tableWidgetFlight.customContextMenuRequested.connect(self.generateMenu) loglabel = ["序号", "待办信息", "操作", "编号", "航班编号", "提示内容"] self.tableWidget.setColumnCount(len(loglabel)) self.tableWidget.verticalHeader().setVisible(False) self.tableWidget.setHorizontalHeaderLabels(loglabel) self.tableWidgetLOG.setColumnCount(2) self.tableWidgetLOG.verticalHeader().setVisible(False) self.tableWidgetLOG.setHorizontalHeaderLabels(["序号", '日志信息']) self.checkBox.stateChanged.connect(self.displayChange) self.checkBox.setChecked(True) self.checkBox_2.stateChanged.connect(self.displaySelect2) self.checkBox_2.setChecked(True) self.checkBox_3.stateChanged.connect(self.displaySelect3) self.checkBox_3.setChecked(False) self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "") self.pushbutton_searchflight.clicked.connect(self.FLIGHTonChangeman) self.pushButton_searchpeople.clicked.connect(self.searchpeople) self.pushButton_5.clicked.connect(self.disearchpeople) self.pushButton_2.clicked.connect(self.call) self.pushButton_3.clicked.connect(self.calldown) self.pushButton_4.clicked.connect(self.relogin) self.pushButton_searchchange.clicked.connect(self.changeonChange) self.pushButton_searchlog.clicked.connect(self.logonChange) self.lineEdit_flight.textEdited[str].connect(lambda: self.changebackground()) self.lineEdit_people.textEdited[str].connect(lambda: self.changebackground()) self.lineEdit_change.textEdited[str].connect(lambda: self.changebackground()) self.lineEdit_log.textEdited[str].connect(lambda: self.changebackground()) self.lineEdit_flight.textChanged.connect(self.FLIGHTonChange) self.lineEdit_log.textChanged.connect(self.logonChange) self.lineEdit_people.textChanged.connect(self.peolpleonChange) self.lineEdit_change.textChanged.connect(self.changeonChange) self.serchTimer = QTimer() self.serchTimer.start(3 * 1000) self.serchTimer.timeout.connect(self.QThreadSortTimer) self.updatecheck() self.taskAtuoCheck("1") except Exception: logger.error(traceback.format_exc()) def searchpeople(self): try: self.searchpeoplelist = searchpeople_get() self.searchpeoplelist.searchpeoplelist_signal.connect(self.searchpeople_get) self.searchpeoplelist.ipinfo = self.ipinfo self.searchpeoplelist.selectedtime = self.selectedtime self.searchpeoplelist.selectedbc = self.selectedbc self.searchpeoplelist.Allpeoplelist = self.sortdiplaylist # self.searchpeoplelist.show() self.searchpeoplelist.start() except Exception: logger.error(traceback.format_exc()) def searchpeople_get(self, *args): try: # print(args) self.searchpeoplestr = args[0] self.QThreadSortNow("people") except Exception: logger.error(traceback.format_exc()) def disearchpeople(self): try: self.searchpeoplestr = [] self.QThreadSortNow("people") except Exception: logger.error(traceback.format_exc()) def call(self): try: if self.localtoken != None and self.localip != None: callnum = self.lineEdit_phonenum.text() try: data = {"PHB_AutoDialNumber": callnum, "ReturnPage": "/contacts.htm", "AutoDialSubmit": "submit", "PHB_AutoDialLine": "1" } header = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Connection": "keep-alive", "Cookie": self.localtoken } requests.post(url="http://%s/contacts.htm" % self.localip, data=data, headers=header) except Exception: QMessageBox.warning(self, "提示", "IP电话连接失败,请重新配置或再登陆!") logger.error(traceback.format_exc()) else: QMessageBox.warning(self, "提示", "未配置本地IP电话,请先配置!") except Exception: logger.error(traceback.format_exc()) def calldown(self): try: if self.localtoken != None and self.localip != None: try: data1 = {"HangupSubmit": "submit"} header1 = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Connection": "keep-alive", "Cookie": self.localtoken, } requests.post(url="http://%s/contacts.htm" % self.localip, data=data1, headers=header1) except Exception: QMessageBox.warning(self, "提示", "IP电话连接失败,请重新配置或再登陆!") logger.error(traceback.format_exc()) else: QMessageBox.warning(self, "提示", "未配置本地IP电话,请先配置!") except Exception: logger.error(traceback.format_exc()) def relogin(self): try: if self.localip != None: self.QThreadSortNow("setlocalip") else: QMessageBox.warning(self, "提示", "未配置本地IP电话,请先配置!") except Exception: logger.error(traceback.format_exc()) def changebackground(self): try: FLIGHTonChange_text = self.lineEdit_flight.text() peolpleonChange_text = self.lineEdit_people.text() changeonChange_text = self.lineEdit_change.text() logonChange_text = self.lineEdit_log.text() if FLIGHTonChange_text != "": self.lineEdit_flight.setStyleSheet("background-color:yellow;color:red;font-weight:bold") else: self.lineEdit_flight.setStyleSheet("background-color:white") if peolpleonChange_text != "": self.lineEdit_people.setStyleSheet("background-color:yellow;color:red;font-weight:bold") else: self.lineEdit_people.setStyleSheet("background-color:white") if changeonChange_text != "": self.lineEdit_change.setStyleSheet("background-color:yellow;color:red;font-weight:bold") else: self.lineEdit_change.setStyleSheet("background-color:white") if logonChange_text != "": self.lineEdit_log.setStyleSheet("background-color:yellow;color:red;font-weight:bold") else: self.lineEdit_log.setStyleSheet("background-color:white") except Exception: logger.error(traceback.format_exc()) def changeonPhone(self): try: self.changeonPhone_text = self.lineEdit_phonenum.text() self.QThreadSortNow("phone") except Exception: logger.error(traceback.format_exc()) def FLIGHTonChange(self): try: self.FLIGHTonChange_text = self.lineEdit_flight.text() # print(self.FLIGHTonChange_text) self.QThreadSortNow("search") except Exception: logger.error(traceback.format_exc()) def FLIGHTonChangeman(self): try: now=datetime.datetime.now()- datetime.timedelta(seconds=5) if now > self.timelock: print("点击") self.timelock=now + datetime.timedelta(seconds=5) self.FLIGHTonChange_text = self.lineEdit_flight.text() # print(self.FLIGHTonChange_text) #self.QThreadSortNow("ALL") self.QThreadSortNow("main") except Exception: logger.error(traceback.format_exc()) def peolpleonChange(self): try: self.peolpleonChange_text = self.lineEdit_people.text() self.QThreadSortNow("people") except Exception: logger.error(traceback.format_exc()) def changeonChange(self): try: self.changeonChange_text = self.lineEdit_change.text() self.QThreadSortNow("change") except Exception: logger.error(traceback.format_exc()) def logonChange(self): try: self.logonChange_text = self.lineEdit_log.text() self.QThreadSortNow("log") except Exception: logger.error(traceback.format_exc()) def taskAtuoCheck(self, time): try: ip = "http://" + str(self.ipinfo) + "/static/taskAtuoCheck/%s" % time requests.get(url=ip, timeout=30).json() # print("准备组任务自动更新") #客户端连接监测一次,12H监测一次 # logging.info("准备组任务自动更新") except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def updatecheck(self): try: ip = "http://" + str(self.ipinfo) + "/static/updatecheck" res = requests.get(url=ip, timeout=30).json() if res["返回值"] == "1": self.label_11.setText("正 常") self.label_11.setStyleSheet( "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold") if self.severupdatests != "1": self.severupdatests = "1" try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "服务器状态变更为正常/" + "%s/" % str("系统上报") + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self,"日志功能失效", "操作日志功能失效请联系管理员!") elif res["返回值"] == "0": self.label_11.setText("未更新") self.label_11.setStyleSheet("background-color:yellow;red:white;border-radius:5px;padding:2px;font-weight:bold") if self.severupdatests != "0": self.severupdatests = "0" try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "服务器状态变更为未更新,航班数据暂停刷新/" + "%s/" % str("系统上报") + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self,"日志功能失效", "操作日志功能失效请联系管理员!") QMessageBox.warning(self, "警告", "服务器状态变更为未更新,航班数据暂停刷新,请检查服务器端AMRO登录情况或联系管理员!") except Exception: self.label_11.setText("已断开") self.label_11.setStyleSheet("background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold") if self.severupdatests != "-": self.severupdatests = "-" try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "服务器状态变更为断开,航班数据暂停刷新/" + "%s/" % str("系统上报") + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.restartServer(self.ipinfo.split(':')[0],9935) logger.error(traceback.format_exc()) def initFlightDatabase(self): try: ip = "http://" + str(self.ipinfo) + "/static/initFlightDatabase/" + str(self.selectedtime) requests.get(url=ip, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def severpost_nomeassge(self, postname, postdata, postdata2, postdata3, postdata4): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str(postdata3) + str(postdata4) res = requests.get(url=ip, timeout=30).json() return res except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def severpostData_nomeassge(self, postname, data: dict): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) data = json.dumps(data) res = requests.post(url=ip, data=data, timeout=120).json() return res except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def AddPG_widget(self): if int(self.authority) != 3: try: self.AddPG.show() self.AddPG_signal.emit(self.user, self.selectedtime, self.ipinfo) except Exception: logger.error(traceback.format_exc()) else: self.show_message2("提示", "权限不够,请联系管理员!") def selected_bc_A(self): try: bc = self.sender() if bc.isChecked(): self.selectedbc = "A" # print("白班") self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "") if self.loginSts == True: self.QThreadSortNow("people") except Exception: logger.error(traceback.format_exc()) def selected_bc_B(self): try: bc = self.sender() if bc.isChecked(): self.selectedbc = "B" # print("夜班") self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "") if self.loginSts == True: self.QThreadSortNow("people") except Exception: logger.error(traceback.format_exc()) def displaySelect2(self): try: displaySelect = self.sender() if displaySelect.isChecked(): self.displaySelectstr2 = "1" if self.loginSts == True: if self.displaySelectstr3 == "1": self.displaySelect_mode = "3" else: self.displaySelect_mode = "1" #self.QThreadSortNow("main") self.QThreadSortNow("search") else: self.displaySelectstr2 = "0" self.displaySelect_mode = "0" if self.loginSts == True: if self.displaySelectstr3 == "1": self.checkBox_3.setChecked(False) else: # self.QThreadSortNow("main") self.QThreadSortNow("search") except Exception: logger.error(traceback.format_exc()) def displaySelect3(self): try: displaySelect = self.sender() if displaySelect.isChecked(): self.displaySelectstr3 = "1" self.displaySelect_mode = "3" if self.loginSts == True: if self.displaySelectstr2 == "0": self.checkBox_2.setChecked(True) else: # self.QThreadSortNow("main") self.QThreadSortNow("search") else: self.displaySelectstr3 = "0" if self.loginSts == True: if self.displaySelectstr2 == "0": self.displaySelect_mode = "0" else: self.displaySelect_mode = "1" # self.QThreadSortNow("main") self.QThreadSortNow("search") except Exception: logger.error(traceback.format_exc()) def displayChange(self): try: bc = self.sender() if bc.isChecked(): if self.loginSts == True: self.displayMode = "A" self.QThreadSortNow("main") # print("A模式") else: if self.loginSts == True: self.displayMode = "B" self.QThreadSortNow("main") # print("B模式") except Exception: logger.error(traceback.format_exc()) def selectedtime_bc(self): try: self.selectedtime = self.dateEdit.date().toString('yyyyMMdd') judgedate = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d") if self.selectedtime == judgedate: QMessageBox.warning(self, "重要提示","明日航班20:30后提供查询功能!由于第二日航班波动较大,22:00前仅提供查询功能,22:00以后提供第二日航班的航班变更以及节点监控功能!") self.initFlightDatabase() ip = "http://" + str(self.ipinfo) + "/map/" + str(self.selectedtime) self.QThreadSortNow("main") self.QThreadSortNow("people") # print(self.selectedtime) except Exception: logger.error(traceback.format_exc()) def show_info(self, title, text): try: reply = QMessageBox.question(self, title, text,QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.Cancel,QMessageBox.StandardButton.Cancel) if reply == QMessageBox.StandardButton.Yes: return 1 else: return 0 except Exception: logger.error(traceback.format_exc()) def displayMain(self, *args): try: if args[0]: self.initDisplay() self.loginSts = True self.loginWidget.close() self.show() self.QThreadSortNow("main") self.QThreadSortNow("change") self.QThreadSortNow("people") self.QThreadSortNow("log") self.initlocalipback() except Exception: logger.error(traceback.format_exc()) def setUser(self, args): try: self.user = args[1] self.authority = args[3] self.label_username.setText(self.user) except Exception: logger.error(traceback.format_exc()) def AddFlight(self): try: self.addFlight = addFlightWidget() self.addFlight.ipinfo = self.ipinfo self.addFlight.user = self.user self.addFlight.show() except Exception: logger.error(traceback.format_exc()) def HandoverFlight(self): try: self.handoverFlight = handoverFlightWidget() self.handoverFlight.ipinfo = self.ipinfo self.handoverFlight.user = self.user self.handoverFlight.Allflight = self.sorttableWidgetDispalydataALL self.handoverFlight.selectedtime=self.selectedtime self.handoverFlight.handoverFlight_signal.connect(self.handoverFlight_update) self.handoverFlight.show() self.handoverFlight.start() except Exception: logger.error(traceback.format_exc()) def handoverFlight_update(self, *args): try: # print(args) self.QThreadSortNow("main") except Exception: logger.error(traceback.format_exc()) def showAdduser(self): try: self.addUser = addUserWidget() self.addUser.ipinfo = self.ipinfo self.addUser.user = self.user self.addUser.authority=self.authority self.addUser.show() except Exception: logger.error(traceback.format_exc()) def showChangePassword(self): try: self.changePassword = changePassword() self.changePassword.ipinfo = self.ipinfo self.changePassword.user = self.user self.changePassword.show() except Exception: logger.error(traceback.format_exc()) def showchangeAuth(self): try: self.changeAuth = changeAuth() self.changeAuth.ipinfo = self.ipinfo self.changeAuth.user = self.user self.changeAuth.start() except Exception: logger.error(traceback.format_exc()) ''' def showchangeFlight(self): try: self.changeFlight = changeFlight() self.changeFlight.ipinfo = self.ipinfo self.changeFlight.user = self.user self.changeFlight.start() except Exception: logger.error(traceback.format_exc()) ''' def openFile(self): try: fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/') # print(fileName) data = {"fileName": fileName} res = self.severpostData_nomeassge("get_dic", data)["返回值"] if res != "ok": self.show_message2("警告", "文件错误") elif res == "ok": self.show_message2("提示", "人员信息添加成功!") except Exception: logger.error(traceback.format_exc()) def saveCase(self): try: fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/停场航班导入模板.xlsx", "xlsx(*.xlsx)") if fileName: wb = Workbook() wb.create_sheet(title="停场航班导入模板", index=0) ws = wb.active ws.title = '航班数据' ws = wb['航班数据'] for row in range(1, 50): for cloumn in range(1, 7): ws.cell(row, cloumn).number_format = '@' ws.cell(1, 1).value = "序号" ws.cell(1, 2).value = "日期" ws.cell(1, 3).value = "机号" ws.cell(1, 4).value = "机位" ws.cell(1, 5).value = "机型" ws.cell(1, 6).value = "发动机" ws.cell(1, 7).value = "录入数据请从第三行开始录入,切勿覆盖第一二行数据!!!" ws.cell(2, 1).value = "1" ws.cell(2, 2).value = "2024/03/21" ws.cell(2, 3).value = "1663" ws.cell(2, 4).value = "722" ws.cell(2, 5).value = "A321" ws.cell(2, 6).value = "V2500" ws.cell(2, 7).value = "录入数据请从第三行开始录入,切勿覆盖第一二行数据!!!" wb.save(fileName) self.show_message2("提示", "导出成功!文件已保存至%s" % fileName) except Exception: self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!") logger.error(traceback.format_exc()) def saveRisktable(self): try: fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/风险数据库.xlsx","xlsx(*.xlsx)") if fileName: ip = "http://" + str(self.ipinfo) + "/static/saveRisktable" res = requests.get(url=ip, timeout=30).json()["返回值"] wb = Workbook() wb.create_sheet(title="风险数据库.xlsx", index=0) ws = wb.active ws.title = '风险数据库' ws = wb['风险数据库'] for row in range(1, len(res)+1): for cloumn in range(1, 8): ws.cell(row, cloumn).number_format = '@' ws.cell(1, 1).value = "风险编号" ws.cell(1, 2).value = "状态" ws.cell(1, 3).value = "提示内容" ws.cell(1, 4).value = "触发条件1" ws.cell(1, 5).value = "触发条件2" ws.cell(1, 6).value = "触发条件3" ws.cell(1, 7).value = "触发条件4" ws.cell(1, 8).value = "触发条件5" if len(res) != 0: ii=1 for i in res: for j in range(0, 8): #print(ii,j) ws.cell(int(ii) + 1, j+1).value = i[j] ii+=1 wb.save(fileName) except Exception: print(traceback.format_exc()) def saveAllflight(self): try: index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8"} index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位"} fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s全天航班导出(未含保障结束).xlsx" % self.selectedtime,"xlsx(*.xlsx)") # print(fileName) if fileName: ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % self.selectedtime res = requests.get(url=ip, timeout=30).json() # print(res) wb = Workbook() wb.create_sheet(title="%s全天航班导出(未含保障结束).xlsx" % self.selectedtime, index=0) ws = wb.active ws.title = '航班数据' ws = wb['航班数据'] for row in range(1, 400): for cloumn in range(1, 10): ws.cell(row, cloumn).number_format = '@' ws.cell(1, 1).value = "序号" ws.cell(1, 2).value = "类型" ws.cell(1, 3).value = "航班号" ws.cell(1, 4).value = "机型" ws.cell(1, 5).value = "发动机" ws.cell(1, 6).value = "机号" ws.cell(1, 7).value = "计达" ws.cell(1, 8).value = "预达" ws.cell(1, 9).value = "计飞" ws.cell(1, 10).value = "机位" if len(res) != 0: for i in res.keys(): if res[i]["109"] != "4": for j in range(1, 11): if j == 2 and "3U" in res[i]["4"] and "CSC" in res[i]["4"]: ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]]) elif j == 7 or j == 8: text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else "" ws.cell(int(i) + 2, j).value = text elif j == 9: text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else "" ws.cell(int(i) + 2, j).value = text else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] wb.save(fileName) self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName)) except Exception: self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName) logger.error(traceback.format_exc()) def saveAllflight2(self): try: time2 = datetime.datetime.strptime(self.selectedtime, "%Y%m%d") time1 = str((time2 - datetime.timedelta(days=1)).strftime("%Y%m%d")) index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8","放行":"10","工1":"11","工2":"12","工3":"13","工4":"14","备注":"30","班组长":"15"} index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位",11: "放行",12: "工1",13: "工2",14: "工3",15: "工4",16: "备注",17: "班组长"} fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s航班安排备份导出.xlsx" %(str(time1)+"-"+str(self.selectedtime)[-2:]),"xlsx(*.xlsx)") # print(fileName) wb = Workbook() if fileName: for selectedtime in [self.selectedtime,time1]: ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly11/" + "%s" %selectedtime res = requests.get(url=ip, timeout=30).json() # print(res) wb.create_sheet(title="%s" % selectedtime, index=0) ws = wb.active ws.title = "%s" % selectedtime ws = wb["%s" % selectedtime] for row in range(1, 400): for cloumn in range(1, 18): ws.cell(row, cloumn).number_format = '@' ws.cell(1, 1).value = "序号" ws.cell(1, 2).value = "类型" ws.cell(1, 3).value = "航班号" ws.cell(1, 4).value = "机型" ws.cell(1, 5).value = "发动机" ws.cell(1, 6).value = "机号" ws.cell(1, 7).value = "计达" ws.cell(1, 8).value = "预达" ws.cell(1, 9).value = "计飞" ws.cell(1, 10).value = "机位" ws.cell(1, 11).value = "放行" ws.cell(1, 12).value = "工1" ws.cell(1, 13).value = "工2" ws.cell(1, 14).value = "工3" ws.cell(1, 15).value = "工4" ws.cell(1, 16).value = "备注" ws.cell(1, 17).value = "班组长" if len(res) != 0: for i in res.keys(): for j in range(1, 18): if j == 2: if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]: ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]]) else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] elif j == 7 or j == 8: text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else "" ws.cell(int(i) + 2, j).value = text elif j == 9: text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else "" ws.cell(int(i) + 2, j).value = text else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] wb.save(fileName) self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName)) except Exception: self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName) logger.error(traceback.format_exc()) def saveAllflight3(self): try: time2 = datetime.datetime.strptime(self.selectedtime, "%Y%m%d") time1 = str((time2 - datetime.timedelta(days=1)).strftime("%Y%m%d")) index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8","工作单":"10","飞单":"11","客舱单":"12","临工单":"13","AMRO记录":"14","备注":"32","备用":"15"} index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位",11: "工作单",12: "飞单",13: "客舱单",14: "临工单",15: "AMRO记录",16: "备注",17: "备用"} fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s维修记录备份导出.xlsx" %(str(time1)+"-"+str(self.selectedtime)[-2:]),"xlsx(*.xlsx)") # print(fileName) wb = Workbook() if fileName: for selectedtime in [self.selectedtime,time1]: ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" %selectedtime res = requests.get(url=ip, timeout=30).json() # print(res) wb.create_sheet(title="%s" % selectedtime, index=0) ws = wb.active ws.title = "%s" % selectedtime ws = wb["%s" % selectedtime] for row in range(1, 400): for cloumn in range(1, 18): ws.cell(row, cloumn).number_format = '@' ws.cell(1, 1).value = "序号" ws.cell(1, 2).value = "类型" ws.cell(1, 3).value = "航班号" ws.cell(1, 4).value = "机型" ws.cell(1, 5).value = "发动机" ws.cell(1, 6).value = "机号" ws.cell(1, 7).value = "计达" ws.cell(1, 8).value = "预达" ws.cell(1, 9).value = "计飞" ws.cell(1, 10).value = "机位" ws.cell(1, 11).value = "工作单" ws.cell(1, 12).value = "飞单" ws.cell(1, 13).value = "客舱单" ws.cell(1, 14).value = "临工单" ws.cell(1, 15).value = "AMRO记录" ws.cell(1, 16).value = "备注" ws.cell(1, 17).value = "备用" if len(res) != 0: for i in res.keys(): for j in range(1, 18): if j == 2: if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]: ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]]) else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] elif j == 6: text = "B-"+str(res[i][index[index2[j]]]) ws.cell(int(i) + 2, j).value = text elif j == 7 or j == 8: text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else "" ws.cell(int(i) + 2, j).value = text elif j == 9: text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else "" ws.cell(int(i) + 2, j).value = text else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] wb.save(fileName) self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName)) except Exception: self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName) logger.error(traceback.format_exc()) def saveDealflight(self): try: index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8"} index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位"} fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s交班航班导出.xlsx" % self.selectedtime,"xlsx(*.xlsx)") # print(fileName) if fileName: ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % self.selectedtime res = requests.get(url=ip, timeout=30).json() # print(res) wb = Workbook() wb.create_sheet(title="%s交班航班导出.xlsx" % self.selectedtime, index=0) ws = wb.active ws.title = '航班数据' ws = wb['航班数据'] for row in range(1, 400): for cloumn in range(1, 10): ws.cell(row, cloumn).number_format = '@' ws.cell(1, 1).value = "序号" ws.cell(1, 2).value = "类型" ws.cell(1, 3).value = "航班号" ws.cell(1, 4).value = "机型" ws.cell(1, 5).value = "发动机" ws.cell(1, 6).value = "机号" ws.cell(1, 7).value = "计达" ws.cell(1, 8).value = "预达" ws.cell(1, 9).value = "计飞" ws.cell(1, 10).value = "机位" if len(res) != 0: for i in res.keys(): if res[i]["109"] == "1" or res[i]["109"] == "3": for j in range(1, 11): if j == 2: if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]: ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]]) else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] elif j == 7 or j == 8: text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else "" ws.cell(int(i) + 2, j).value = text elif j == 9: text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else "" ws.cell(int(i) + 2, j).value = text else: ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]] wb.save(fileName) self.show_message2("提示", "%s交班航班导出成功!文件已保存至%s" % (self.selectedtime, fileName)) except Exception: self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName) logger.error(traceback.format_exc()) ################################################################################################################################################ def updateStopFlight(self): try: fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/') # print(fileName) data = {"fileName": fileName} res = self.severpostData_nomeassge("updateStopFlight", data)["返回值"] if res != "ok": self.show_message2("警告", "停场航班添加失败!") elif res == "ok": self.show_message2("提示", "停场航班添加成功!") self.QThreadSortNow("main") except Exception: logger.error(traceback.format_exc()) def updateTaskAuto(self): try: if int(self.authority) <= 1: fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/') # print(fileName) data = {"fileName": fileName} res = self.severpostData_nomeassge("updateTaskAuto", data)["返回值"] if res != "ok": self.show_message2("警告", "文件错误") elif res == "ok": self.taskAtuoCheck("3") self.show_message2("提示", "准备组任务更新成功!") else: self.show_message2("提示", "权限不够,请联系管理员!") except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def updateRiskdb(self): try: if int(self.authority) <= 1: fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/') # print(fileName) data = {"fileName": fileName} res = self.severpostData_nomeassge("updateRiskdb", data)["返回值"] if res != "ok": self.show_message2("警告", "文件错误") elif res == "ok": self.show_message2("提示", "风险数据库更新成功!") else: self.show_message2("提示", "权限不够,请联系管理员!") except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def show_message2(self, type, str): try: QMessageBox.warning(self, "%s" % type, "%s" % str) except Exception: logger.error(traceback.format_exc()) def QThreadSortDispalyTimer(self, name, dict, dict2, seversts, displayMode): try: if name == "sortTableWidgetDispaly": if displayMode == "A": self.displayLabel = ["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达", "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4", "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包", "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型", "备","附加消息","备","备","备","备"] ''' self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2", "工3","工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员", "放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"] ''' self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) elif displayMode == "B": self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单", "临工单","AMRO记录", "备用", "到位", "二送", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员", "二送人员","放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"] self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) self.sorttableWidgetDispalydata = {} self.sorttableWidgetDispalydata = dict if self.doubleclickLockUpdate == 0: self.tableWidgetDispaly() # print(self.sorttableWidgetDispalydata) elif name == "sortTableWidgetDispalyALL": self.sorttableWidgetDispalydataALL = {} self.sorttableWidgetDispalydataALL = dict elif name == "sorttableWidgetDisplayChange": self.sortlogchange = {} self.sortlogchange = dict self.tableWidgetDisplayChange() # print(self.sortlogchange) elif name == "sorttableWidgetPeopleDisplay": self.sortdiplaylist = {} self.sortdiplaylist = dict self.peopleOnJob = [""] self.peopleOnJob = dict2 self.tableWidgetPeopleDisplay() # print(self.peopleOnJob) # print(self.sortdiplaylist) elif name == "sorttableWidgetLOGDispaly": self.sortlog = {} self.sortlog = dict self.tableWidgetLOGDispaly() # print(self.sortlog) if seversts == "0": self.severupdatests = "-" self.label_11.setText("已断开") self.label_11.setStyleSheet( "background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold") self.restartServer(self.ipinfo.split(':')[0],9935) elif seversts == "1" and self.severupdatests == "1": self.label_11.setText("正 常") self.label_11.setStyleSheet( "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold") elif seversts == "1" and self.severupdatests == "0": self.label_11.setText("未更新") self.label_11.setStyleSheet( "background-color:yellow;color:red;border-radius:5px;padding:2px;font-weight:bold") except Exception: logger.error(traceback.format_exc()) def QThreadSortDispalyNow(self, name, dict, dict2, seversts, displayMode): try: if name == "sortTableWidgetDispaly": if displayMode == "A": self.displayLabel=["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达", "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4", "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包", "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型", "备","附加消息","备","备","备","备"] ''' self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2", "工3","工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员", "放行", "航班编号","任务编号", "TATD", "类型", "附加消息"] ''' self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) else: self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单", "临工单","AMRO记录", "备用", "到位", "二送", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员", "二送人员","放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"] self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) self.sorttableWidgetDispalydata = {} self.sorttableWidgetDispalydata = dict # print(self.sorttableWidgetDispalydata) if self.doubleclickLockUpdate == 0: self.tableWidgetDispaly() elif name == "SearchsortTableWidgetDispaly": if displayMode == "A": self.displayLabel = ["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达", "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4", "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包", "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型", "备","附加消息","备","备","备","备"] ''' self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2","工3","工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员","放行", "航班编号","任务编号", "TATD", "类型", "附加消息"] ''' self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) elif displayMode == "B": self.displayLabel =["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单", "临工单","AMRO记录", "备用", "到位", "二送", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员", "二送人员","放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"] self.tableWidgetFlight.setColumnCount(len(self.displayLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel) self.sorttableWidgetDispalydata = {} self.sorttableWidgetDispalydata = dict if self.doubleclickLockUpdate == 0: self.tableWidgetDispaly() # print(self.sorttableWidgetDispalydata) elif name == "sortTableWidgetDispalyALL": self.sorttableWidgetDispalydataALL = {} self.sorttableWidgetDispalydataALL = dict elif name == "sorttableWidgetDisplayChange": self.sortlogchange = {} self.sortlogchange = dict self.tableWidgetDisplayChange() # print(self.sortlogchange) elif name == "sorttableWidgetPeopleDisplay": self.sortdiplaylist = {} self.sortdiplaylist = dict self.peopleOnJob = [""] self.peopleOnJob = dict2 self.tableWidgetPeopleDisplay() # print(self.peopleOnJob) # print(self.sortdiplaylist) elif name == "sorttableWidgetLOGDispaly": self.sortlog = {} self.sortlog = dict self.tableWidgetLOGDispaly() # print(self.sortlog) elif name == "sorttableWidgetPHONEDispaly": self.sorttableWidgetPHONEDispalydata = {} self.sorttableWidgetPHONEDispalydata = dict self.tableWidgetPhoneDispaly() if seversts == "0": self.severupdatests = "-" self.label_11.setText("已断开") self.label_11.setStyleSheet( "background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold") self.restartServer(self.ipinfo.split(':')[0],9935) elif seversts == "1" and self.severupdatests == "1": self.label_11.setText("正 常") self.label_11.setStyleSheet( "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold") elif seversts == "1" and self.severupdatests == "0": self.label_11.setText("未更新") self.label_11.setStyleSheet( "background-color:yellow;color:red;border-radius:5px;padding:2px;font-weight:bold") except Exception: logger.error(traceback.format_exc()) def restartServer(self,serverIP,serverPort): client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.settimeout(120) client.connect((serverIP, serverPort)) client.send("restart".encode()) client.close() QMessageBox.warning(self, "提示", "服务器端正在尝试自动重启服务器,请等待30S后刷新查看显示状态!若仍然断开,请联系管理员!") def initlocalipback(self): try: if os.path.exists("D:/flightinfo/logs/localip.code") is True: read_path = "D:/flightinfo/logs/localip.code" with open(read_path, "r", encoding="utf-8") as f2: rember_2 = f2.read() if ';;' in rember_2: self.localip = rember_2.split(';;')[0] self.localtoken = rember_2.split(';;')[-1] QMessageBox.warning(self, "提示", "本地网络电话获取缓存成功,可拨号尝试,如拨号失败则需重新配置!") except Exception: logger.error(traceback.format_exc()) def openmaintainAuthCheck(self): self.maintainAuthCheckSts=1 QMessageBox.warning(self, "提示", "授权检查已开启,将核对人员发动机授权情况!") def closemaintainAuthCheck(self): self.maintainAuthCheckSts=0 QMessageBox.warning(self, "提示", "授权检查已关闭,将无法核对人员发动机授权情况!") def setlocalipback(self, token): try: self.localtoken = None self.localtoken = token if "auth=" in token: QMessageBox.warning(self, "提示", "本地网络电话配置成功!") save_path = "D:/flightinfo/logs/localip.code" with open(save_path, "w", encoding="utf-8") as f1: f1.write(str(self.localip) + ";;" + str(self.localtoken)) self.lineEdit_phonenum.setText("") else: QMessageBox.warning(self, "提示", "本地网络电话配置失败,本地呼叫无法使用,请确认IP正确,可尝试重启IP电话后再试!") except Exception: logger.error(traceback.format_exc()) def QThreadSortTimer(self): try: nowDay = datetime.datetime.now().strftime("%Y%m%d") tomorr = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d") yester = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d") if self.selectedtime == nowDay: datestr = "2" elif self.selectedtime == tomorr: datestr = "3" elif self.selectedtime == yester: datestr = "1" else: datestr = "4" ip = "http://"+self.ipinfo+"/static/VinCheck/"+self.vin+"/"+self.displayMode+"/%s"%datestr res = requests.get(url=ip, timeout=30).json()["返回值"] self.sum += 1 self.flightsum += 1 #print(self.doubleclickLockUpdate) if self.loginSts == True: # print("多线程刷新1") self.FLIGHTonChange_text = self.lineEdit_flight.text() self.peolpleonChange_text = self.lineEdit_people.text() self.changeonChange_text = self.lineEdit_change.text() self.logonChange_text = self.lineEdit_log.text() if (self.doubleclickLockUpdate==0 and res =="ok" and self.flightsum % 20 == 0) or\ (self.doubleclickLockUpdate==0 and datestr =="4" and self.flightsum % 20 == 0): print(datetime.datetime.now(),"开始数据库刷新", self.vin) th1 = QThread() self.sortTableWidgetDispalyThread1 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo, self.selectedtime, self.FLIGHTonChange_text, self.displayMode, "0", self.displaySelect_mode, th1) self.sortTableWidgetDispalyThread1.sortupdate.connect(self.QThreadSortDispalyTimer) self.sortTableWidgetDispalyThread1.moveToThread(th1) th1.started.connect(self.sortTableWidgetDispalyThread1.run) th1.start() if datestr !="4": ip = "http://"+self.ipinfo+"/static/updateVin/" + self.displayMode + "/%s" % datestr self.vin = requests.get(url=ip, timeout=30).json()["返回值"] print(datetime.datetime.now(),"更新刷新",self.vin) elif self.doubleclickLockUpdate==0 and res !="ok": print(datetime.datetime.now(),"开始读取刷新", self.vin) th1234 = QThread() self.sortTableWidgetDispalyThread1234 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo, self.selectedtime, self.FLIGHTonChange_text, self.displayMode, "1", self.displaySelect_mode, th1234) self.sortTableWidgetDispalyThread1234.sortupdate.connect(self.QThreadSortDispalyTimer) self.sortTableWidgetDispalyThread1234.moveToThread(th1234) th1234.started.connect(self.sortTableWidgetDispalyThread1234.run) th1234.start() self.flightsum = 0 ip = "http://"+self.ipinfo+"/static/getVin/"+ self.displayMode + "/%s" % datestr self.vin = requests.get(url=ip, timeout=30).json()["返回值"] print(datetime.datetime.now(),"仅仅读取",self.vin) ''' else: th11111 = QThread() self.sortTableWidgetDispalyThread11111 = sortdisplaySever("sortTableWidgetDispalyALL", self.ipinfo, self.selectedtime, self.FLIGHTonChange_text, self.displayMode, "1", self.displaySelect_mode, th11111) self.sortTableWidgetDispalyThread11111.sortupdate.connect(self.QThreadSortDispalyTimer) self.sortTableWidgetDispalyThread11111.moveToThread(th11111) th11111.started.connect(self.sortTableWidgetDispalyThread11111.run) th11111.start() ''' if self.loginSts == True and self.sum % 20 == 0: th2 = QThread() self.sorttableWidgetDisplayChangeThread2 = sortdisplaySever("sorttableWidgetDisplayChange", self.ipinfo, self.selectedtime, self.changeonChange_text, "", "", "", th2) self.sorttableWidgetDisplayChangeThread2.sortupdate.connect(self.QThreadSortDispalyTimer) self.sorttableWidgetDisplayChangeThread2.moveToThread(th2) th2.started.connect(self.sorttableWidgetDisplayChangeThread2.run) th2.start() th3 = QThread() self.sorttableWidgetPeopleDisplayThread3 = sortdisplaySever("sorttableWidgetPeopleDisplay", self.ipinfo, self.selectedtime, self.peolpleonChange_text, "", self.selectedbc, "", th3) self.sorttableWidgetPeopleDisplayThread3.sortupdate.connect(self.QThreadSortDispalyTimer) self.sorttableWidgetPeopleDisplayThread3.moveToThread(th3) th3.started.connect(self.sorttableWidgetPeopleDisplayThread3.run) th3.start() th4 = QThread() self.sorttableWidgetLOGDispalyThread4 = sortdisplaySever("sorttableWidgetLOGDispaly", self.ipinfo, self.selectedtime, self.logonChange_text, "", "", "", th4) self.sorttableWidgetLOGDispalyThread4.sortupdate.connect(self.QThreadSortDispalyTimer) self.sorttableWidgetLOGDispalyThread4.moveToThread(th4) th4.started.connect(self.sorttableWidgetLOGDispalyThread4.run) th4.start() self.updatecheck() if self.loginSts == True and self.sum % 2400 == 0: self.taskAtuoCheck("2") self.sum=0 except Exception: logger.error(traceback.format_exc()) def QThreadSortNow(self, name): try: if "main" in str(name) and self.doubleclickLockUpdate == 0: # print(datetime.datetime.now()) th11 = QThread() self.sortTableWidgetDispalyThread11 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo, self.selectedtime, self.FLIGHTonChange_text, self.displayMode, "0", self.displaySelect_mode, th11) self.sortTableWidgetDispalyThread11.sortupdate.connect(self.QThreadSortDispalyNow) self.sortTableWidgetDispalyThread11.moveToThread(th11) th11.started.connect(self.sortTableWidgetDispalyThread11.run) th11.start() nowDay = datetime.datetime.now().strftime("%Y%m%d") tomorr = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d") yester = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d") if self.selectedtime == nowDay: datestr = "2" elif self.selectedtime == tomorr: datestr = "3" elif self.selectedtime == yester: datestr = "1" else: datestr = "4" if datestr != "4": ip = "http://" + self.ipinfo + "/static/updateVin/" + self.displayMode + "/%s" % datestr self.vin = requests.get(url=ip, timeout=30).json()["返回值"] print(datetime.datetime.now(), "人工更新刷新", self.vin) elif "ALL" in str(name) and self.doubleclickLockUpdate == 0: th111111 = QThread() self.sortTableWidgetDispalyThread111111 = sortdisplaySever("sortTableWidgetDispalyALL", self.ipinfo, self.selectedtime, self.FLIGHTonChange_text, self.displayMode, "1", self.displaySelect_mode, th111111) self.sortTableWidgetDispalyThread111111.sortupdate.connect(self.QThreadSortDispalyNow) self.sortTableWidgetDispalyThread111111.moveToThread(th111111) th111111.started.connect(self.sortTableWidgetDispalyThread111111.run) th111111.start() elif "search" in str(name) and self.doubleclickLockUpdate == 0: # print(datetime.datetime.now()) th111 = QThread() self.sortTableWidgetDispalyThread111 = sortdisplaySever("SearchsortTableWidgetDispaly", self.ipinfo, self.selectedtime, self.FLIGHTonChange_text, self.displayMode, self.sorttableWidgetDispalydataALL, self.displaySelect_mode, th111) self.sortTableWidgetDispalyThread111.sortupdate.connect(self.QThreadSortDispalyNow) self.sortTableWidgetDispalyThread111.moveToThread(th111) th111.started.connect(self.sortTableWidgetDispalyThread111.run) th111.start() elif "change" in str(name): # print(datetime.datetime.now()) th12 = QThread() self.sorttableWidgetDisplayChangeThread12 = sortdisplaySever("sorttableWidgetDisplayChange", self.ipinfo, self.selectedtime, self.changeonChange_text, "", "", "", th12) self.sorttableWidgetDisplayChangeThread12.sortupdate.connect(self.QThreadSortDispalyNow) self.sorttableWidgetDisplayChangeThread12.moveToThread(th12) th12.started.connect(self.sorttableWidgetDisplayChangeThread12.run) th12.start() elif "people" in str(name): # print(datetime.datetime.now()) th13 = QThread() self.sorttableWidgetPeopleDisplayThread13 = sortdisplaySever("sorttableWidgetPeopleDisplay", self.ipinfo, self.selectedtime, self.peolpleonChange_text, "", self.selectedbc, self.searchpeoplestr, th13) self.sorttableWidgetPeopleDisplayThread13.sortupdate.connect(self.QThreadSortDispalyNow) self.sorttableWidgetPeopleDisplayThread13.moveToThread(th13) th13.started.connect(self.sorttableWidgetPeopleDisplayThread13.run) th13.start() elif "log" in str(name): # print(datetime.datetime.now()) th14 = QThread() self.sorttableWidgetLOGDispalyThread14 = sortdisplaySever("sorttableWidgetLOGDispaly", self.ipinfo, self.selectedtime, self.logonChange_text, "", "", "", th14) self.sorttableWidgetLOGDispalyThread14.sortupdate.connect(self.QThreadSortDispalyNow) self.sorttableWidgetLOGDispalyThread14.moveToThread(th14) th14.started.connect(self.sorttableWidgetLOGDispalyThread14.run) th14.start() elif "setlocalip" in str(name): th99 = QThread() self.setlocalipThread = setlocalip(self.localip, th99) self.setlocalipThread.localipupdate.connect(self.setlocalipback) self.setlocalipThread.moveToThread(th99) th99.started.connect(self.setlocalipThread.run) th99.start() elif "phone" in str(name): th15 = QThread() self.sorttableWidgetPHONEDispaly15 = sortdisplaySever("sorttableWidgetPHONEDispaly", self.ipinfo, "", self.changeonPhone_text, "", "", "", th15) self.sorttableWidgetPHONEDispaly15.sortupdate.connect(self.QThreadSortDispalyNow) self.sorttableWidgetPHONEDispaly15.moveToThread(th15) th15.started.connect(self.sorttableWidgetPHONEDispaly15.run) th15.start() except Exception: logger.error(traceback.format_exc()) def tableWidgetLOGDispaly(self): try: log = self.sortlog self.tableWidgetLOG.setRowCount(len(log.keys())) if log != "": for i in log.keys(): self.tableWidgetLOG.setItem(int(i), 0, QTableWidgetItem(str(int(i)+1))) self.tableWidgetLOG.setItem(int(i), 1, QTableWidgetItem(str(log[i]))) self.tableWidgetLOG.item(int(i), 0).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetLOG.resizeColumnToContents(0) self.tableWidgetLOG.setColumnWidth(1, 240) self.tableWidgetLOG.resizeRowsToContents() except Exception: logger.error(traceback.format_exc()) def itemclick(self, row, column): if self.doubleclickLockUpdate == 1 and self.doubleclickLock == 0: self.doubleclickLockUpdate = 0 #self.QThreadSortNow("ALL") #self.QThreadSortNow("main") try: self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged) except: pass def itemclick2(self, row, column): try: # print(self.doubleclickLock) if (int(column) - self.tableWidgetFlight.columnCount() == -1 or 9 < column < 16) and self.doubleclickLock == 0: self.doubleclickLockUpdate=1 self.clickrow = row self.clickcolumn = column self.olditem = self.tableWidgetFlight.item(row, column).text() item = self.tableWidgetFlight.item(row, column) # 如果单元格对象不存在,则返回默认的背景色 if not item: self.color=self.tableWidgetFlight.palette().color(QPalette.Base) else: # 获取并返回单元格的背景色 self.color=item.background() self.tableWidgetFlight.cellChanged.connect(self.cellchanged) else: self.doubleclickLockUpdate = 0 except Exception: logger.error(traceback.format_exc()) def cellchanged(self, row, column): if self.clickrow == row and self.clickcolumn == column and self.displayMode =="A": self.clickrow = None self.clickcolumn = None try: #t1 = datetime.datetime.now() self.doubleclickLock = 1 self.newitem = self.tableWidgetFlight.item(row, column).text().replace("\"","*").replace("\\",";").replace("\'","*").replace("/","、").replace("#","*") flightid = self.tableWidgetFlight.item(row, self.tableWidgetFlight.columnCount() - 5).text() flighttype = self.tableWidgetFlight.item(row, 9).text() acno = self.tableWidgetFlight.item(row, 1).text() flightno = self.tableWidgetFlight.item(row, 4).text() bgtype = str(self.displayLabel[column]).replace("/","") if int(column) - self.tableWidgetFlight.columnCount() == -1: item = self.tableWidgetFlight.item(row, column) if item.text() != "": text = item.text().replace("\"","*").replace("\\",";").replace("\'","*").replace("/","、").replace("#","*") else: text = "清空项目12345678987654321" ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(text) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(flighttype) + "%s" % str(self.selectedtime) # print(ip) ip2 = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "航班显示模块:%s,%s%s由%s变更为%s%s/" % (acno, flightno, bgtype, self.olditem, self.newitem,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) try: requests.get(url=ip, timeout=30).json() requests.get(url=ip2, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) elif 9 < column < 16 and self.olditem != self.newitem: item = self.tableWidgetFlight.item(row, column) if item.text() != "": text = item.text().replace("\"","*").replace("\\",";").replace("\'","*").replace("/","、").replace("#","*") if "!" in str(text): text = text.replace("!", "") if "√" in str(text): text = text.replace("√", "") else: text = "清空项目12345678987654321" ip = "http://" + str(self.ipinfo) + "/static/checkPglist/%s/%s/%s" % (text, self.selectedtime, self.selectedbc) # print(ip) try: res = requests.get(url=ip, timeout=30).json() if res["返回值"] == "fail": self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) QMessageBox.warning(self, "警告", "%sAMRO未考勤,请核实考勤名单或者检查人员字母!" % text) elif res["返回值"] == "OK" and self.maintainAuthCheckSts == 1 and text != "清空项目12345678987654321" and column == 10 and "3U" not in str(flightno) and "CSC" not in str(flightno): ####需要加一把锁,有功能开关调用 airplanetype=self.tableWidgetFlight.item(row, 2).text() engtype=self.tableWidgetFlight.item(row, 3).text() if "A3" in airplanetype and engtype[0:3] =="LEA": auttype="ALEAP" elif "A3" in airplanetype and engtype[0:3] !="LEA": auttype = "ACSC" elif "737NG" in airplanetype: auttype = "737NG" elif "737MAX" in airplanetype: auttype = "737MAX" else: auttype = "ALL" ipp = "http://" + str(self.ipinfo) + "/static/maintainAuthCheck/%s/%s" % (text, auttype) try: res = requests.get(url=ipp, timeout=30).json() if res["返回值"] == "fail": self.tableWidgetFlight.setItem(int(row), column,QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) QMessageBox.warning(self, "警告", "%s不满足发动机授权条件!请核对信息或者更新授权信息!" % text) elif res["返回值"] == "ok": self.tableWidgetFlight.setItem(int(row), column,QTableWidgetItem(str(self.newitem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow")) self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black")) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime) # print(ip) ip2 = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "航班显示模块:%s,%s%s由%s变更为%s%s/" % (acno, flightno, bgtype, self.olditem, self.newitem,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) try: requests.get(url=ip, timeout=30).json() requests.get(url=ip2, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) except: self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) elif (res["返回值"] == "OK" and (self.maintainAuthCheckSts == 0 or "3U" in str(flightno) or "CSC" in str(flightno))) or text == "清空项目12345678987654321" or column != 10: self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.newitem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow")) self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black")) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime) # print(ip) ip2 = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "航班显示模块:%s,%s%s由%s变更为%s%s/" % (acno, flightno, bgtype, self.olditem, self.newitem,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) try: requests.get(url=ip, timeout=30).json() requests.get(url=ip2, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) else: self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) except Exception: self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.doubleclickLockUpdate = 0 self.doubleclickLock = 0 self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged) self.QThreadSortNow("main") #t2 = datetime.datetime.now() #print(f'【编辑操作】【客户端计时】:{t2 - t1}') except Exception: self.doubleclickLockUpdate = 0 self.clickrow = None self.clickcolumn = None try: self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged) except: pass self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) logger.error(traceback.format_exc()) self.doubleclickLock = 0 self.QThreadSortNow("main") elif self.clickrow == row and self.clickcolumn == column and self.displayMode =="B": self.clickrow = None self.clickcolumn = None try: self.doubleclickLock = 1 self.newitem = self.tableWidgetFlight.item(row, column).text() flightid = self.tableWidgetFlight.item(row, self.tableWidgetFlight.columnCount() - 5).text() flighttype = self.tableWidgetFlight.item(row, 9).text() acno = self.tableWidgetFlight.item(row, 1).text() flightno = self.tableWidgetFlight.item(row, 4).text() bgtype = str(self.displayLabel[column]).replace("/","") if int(column) - self.tableWidgetFlight.columnCount() == -1: item = self.tableWidgetFlight.item(row, column) if item.text() != "": text = item.text().replace("\"","#").replace("\\",";").replace("\'","#") else: text = "清空项目12345678987654321" ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(text) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(flighttype) + "%s" % str(self.selectedtime) # print(ip) ip2 = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "维修记录模块:%s,%s%s由%s变更为%s%s/" % (acno, flightno, bgtype, self.olditem, self.newitem,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) try: requests.get(url=ip, timeout=30).json() requests.get(url=ip2, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) elif 9 < column < 16 and self.olditem != self.newitem: item = self.tableWidgetFlight.item(row, column) if item.text() != "": text = item.text().replace("\"","#").replace("\\",";").replace("\'","#") if "!" in str(text): text = text.replace("!", "") if "√" in str(text): text = text.replace("√", "") else: text = "清空项目12345678987654321" # print(ip) try: if text != "清空项目12345678987654321": ####需要加一把锁,有功能开关调用 ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime) # print(ip) ip2 = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "维修记录模块:%s,%s%s由%s变更为%s%s/" % (acno, flightno, bgtype, self.olditem, self.newitem,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) try: requests.get(url=ip, timeout=30).json() self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.newitem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow")) self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black")) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) requests.get(url=ip2, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) elif text == "清空项目12345678987654321": ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime) # print(ip) ip2 = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "维修记录模块:%s,%s%s由%s变更为%s%s/" % (acno, flightno, bgtype, self.olditem, self.newitem,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) try: requests.get(url=ip, timeout=30).json() self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.newitem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow")) self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black")) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) requests.get(url=ip2, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) else: self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) except Exception: self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.doubleclickLockUpdate = 0 self.doubleclickLock = 0 self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged) self.QThreadSortNow("main") except Exception: self.doubleclickLockUpdate = 0 self.clickrow = None self.clickcolumn = None try: self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged) except: pass self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem))) self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color)) self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter) logger.error(traceback.format_exc()) self.doubleclickLock = 0 self.QThreadSortNow("main") def btnClick(self, item): if int(self.authority) != 3: try: btn = self.sender() now_2=datetime.datetime.now()- datetime.timedelta(seconds=2) print(self.changeupdatetime,now_2) if btn: row = self.tableWidget.indexAt(btn.pos()).row() a = self.tableWidget.item(row, 3).text() self.severpost_nomeassge("dealLogs", "/%s" % self.user, "/%s" % a, "", "") self.QThreadSortNow("change") if self.changeupdatetime < now_2: self.changeupdatetime = datetime.datetime.now() self.QThreadSortNow("main") except Exception: logger.error(traceback.format_exc()) else: QMessageBox.warning(self, "提示", "权限不够,请联系管理员!") def tableWidgetDisplayChange(self): try: log = self.sortlogchange self.tableWidget.setRowCount(len(log.keys())) if log != "": for i in log.keys(): btnList = [QPushButton('处理')] self.tableWidget.setItem(int(i), 0, QTableWidgetItem(str(int(i)+1))) self.tableWidget.setItem(int(i), 1, QTableWidgetItem(str(log[i][2]))) self.tableWidget.setItem(int(i), 3, QTableWidgetItem(str(log[i][0]))) self.tableWidget.setItem(int(i), 4, QTableWidgetItem(str(log[i][1]))) self.tableWidget.setItem(int(i), 5, QTableWidgetItem(str(log[i][10]))) self.tableWidget.setCellWidget(int(i), 2, btnList[0]) self.tableWidget.item(int(i), 0).setForeground(QColor('red')) self.tableWidget.item(int(i), 1).setForeground(QColor('red')) self.tableWidget.item(int(i), 0).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidget.item(int(i), 1).setToolTip("%s" % str(log[i][10])) for btn in btnList: btn.clicked.connect(self.btnClick) self.tableWidget.setColumnHidden(5, True) self.tableWidget.setColumnHidden(4, True) self.tableWidget.setColumnHidden(3, True) self.tableWidget.resizeColumnToContents(0) self.tableWidget.setColumnWidth(2, 40) self.tableWidget.setColumnWidth(1, 210) self.tableWidget.resizeRowsToContents() except Exception: logger.error(traceback.format_exc()) def generateMenu3(self, pos): try: for i in self.tableWidget_3.selectionModel().selection().indexes(): menu = QMenu() item2 = menu.addAction('拨打IP电话') screenPos = self.tableWidget_3.mapToGlobal(pos) action = menu.exec(screenPos) rowIndex = i.row() phonenum = self.tableWidget_3.item(rowIndex, 3).text() if action == item2: if self.localip != None and self.localtoken != None: try: data = {"PHB_AutoDialNumber": phonenum, "ReturnPage": "/contacts.htm", "AutoDialSubmit": "submit", "PHB_AutoDialLine": "1" } header = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Connection": "keep-alive", "Cookie": self.localtoken } requests.post(url="http://%s/contacts.htm" % self.localip, data=data, headers=header) except Exception: self.show_info("警告", "拨号失败,请检查IP后重新配置或联系管理员!") logger.error(traceback.format_exc()) else: self.show_info("警告", "使用前请配置IP电话!") return except Exception: logger.error(traceback.format_exc()) def generateMenu2(self, pos): try: for i in self.tableWidgetPerson.selectionModel().selection().indexes(): menu = QMenu() item1 = menu.addAction('查看详情') item2 = menu.addAction('拨打IP电话') screenPos = self.tableWidgetPerson.mapToGlobal(pos) action = menu.exec(screenPos) rowIndex = i.row() colnum = self.tableWidgetPerson.columnCount() name = self.tableWidgetPerson.item(rowIndex, 1).text() # print(name) if action == item2: ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name infos = requests.get(url=ip, timeout=30).json() # print(self.localtoken) # ''' if infos == {}: self.show_info("警告", "无法查询到%s个人信息,请更新后尝试!!" % name) else: try: # print(infos["电话"]) data = {"PHB_AutoDialNumber": infos["电话"], "ReturnPage": "/contacts.htm", "AutoDialSubmit": "submit", "PHB_AutoDialLine": "1" } header = { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Connection": "keep-alive", "Cookie": self.localtoken } requests.post(url="http://%s/contacts.htm" % self.localip, data=data, headers=header) except Exception: logger.error(traceback.format_exc()) # ''' return elif action == item1: ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name infos = requests.get(url=ip, timeout=30).json() # print(infos) # ''' if infos == {}: self.show_info("警告", "无法查询到%s个人信息,请更新后尝试!!" % name) else: ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name infos = requests.get(url=ip, timeout=30).json() self.checkLoadSingal = checkLoadSingal() self.checkLoadSingal.worknum = infos["工号"] self.checkLoadSingal.ipinfo = self.ipinfo self.checkLoadSingal.name = name self.checkLoadSingal.selectedtime = self.selectedtime self.checkLoadSingal.start() # print("正在开发") else: return except Exception: logger.error(traceback.format_exc()) def LM_TSK_SURE_PG_NOW(self, id, empNos, type, shiftDate, shift): dict = {"taskid": id, "empNos": empNos, "type": type, "shiftDate": shiftDate, "shift": shift } res = self.severpostData_nomeassge("LM_TSK_SURE_PG", data=dict)["返回值"] return res def send_dingdong(self, a, b, c, d, e, f, g, h, i, j, k, l): dict_dingdong = {"acno": a, "actype": b, "tasktype": c, "tatd": d, "bay": e, "taskid": f, "wxemp": g, "fxemp": h, "wx": i, "fx": j, "ecsj":k, "msgInfo": l } res = self.severpostData_nomeassge("dingdong", data=dict_dingdong)["返回值"] return res def getRiskData(self,bay,flighttype): if "送" in flighttype or flighttype == "航前": type="出港提示" else: type = "进港提示" res="" try: ip = "http://" + str(self.ipinfo) + "/static/getRiskData/" + "%s/" % bay + "%s" % type res=requests.get(url=ip, timeout=30).json()["返回值"] except Exception: print(traceback.format_exc()) QMessageBox.warning(self, "风险提示失效", "风险提示推送功能失效请联系管理员!") return res def generateMenu(self, pos): if int(self.authority) < 3 and self.displayMode =="A": try: zydy = {"短停": "TR", "航后": "AF", "航前": "AP", "特后前": "TAF", "未显示": ""} for i in self.tableWidgetFlight.selectionModel().selection().indexes(): ''' col_dic = {"0": "序号", "1": "机号", "2": "机型", "3": "发动机", "4": "航班号", "5": "计达", "6": "预达", "7": "计飞", "8": "机位", "9": "类型", "10": "放行", "11": "工1", "12": "工2", "13": "工3", "14": "工4", "15": "班组长", "16": "到位", "18": "放行","19": "销夹", "17": "二送", "20": "随机", "21": "随机", "22": "保留", "23": "工作包", "24": "进出港城市","25": "维修人员", "26": "二送人员", "27": "放行", "28": "航班编号", "29": "任务编号","30":"TATD","31":"类型","32":"附加消息"} ''' menu = QMenu() item1 = menu.addAction('维修人员派工') item2 = menu.addAction('放行人员派工') item3 = menu.addAction('二送人员派工') item4 = menu.addAction('推送维修人员') item5 = menu.addAction('推送放行人员') item6 = menu.addAction('推送二送人员') item7 = menu.addAction('确认通知') item8 = menu.addAction('人工接机到位') item9 = menu.addAction('人工确认放行') item10 = menu.addAction('人工确认随机到位') item11 = menu.addAction('人工确认二送到位') item12 = menu.addAction('人工确认销夹取下') item13 = menu.addAction('一键派工&通知') item15 = menu.addAction('电话通知') item16 = menu.addAction('查看工作包') item17 = menu.addAction('删除航班') item18 = menu.addAction('工作交接') screenPos = self.tableWidgetFlight.mapToGlobal(pos) action = menu.exec(screenPos) rowIndex = i.row() colnum = self.tableWidgetFlight.columnCount() # print(colnum) acno = self.tableWidgetFlight.item(rowIndex, 1).text() flightno = self.tableWidgetFlight.item(rowIndex, 4).text() qw1 = self.tableWidgetFlight.item(rowIndex, 11).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 11).text() else self.tableWidgetFlight.item(rowIndex, 11).text() qw2 = self.tableWidgetFlight.item(rowIndex, 12).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 12).text() else self.tableWidgetFlight.item(rowIndex, 12).text() g1 = self.tableWidgetFlight.item(rowIndex, 13).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 13).text() else self.tableWidgetFlight.item(rowIndex, 13).text() g2 = self.tableWidgetFlight.item(rowIndex, 14).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 14).text() else self.tableWidgetFlight.item(rowIndex, 14).text() fx = self.tableWidgetFlight.item(rowIndex, 10).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 10).text() else self.tableWidgetFlight.item(rowIndex, 10).text() qw1_1 = "" if "√" in qw1 else qw1 qw2_1 = "" if "√" in qw2 else qw2 g1_1 = "" if "√" in g1 else g1 g2_1 = "" if "√" in g2 else g2 fx_1 = "" if "√" in fx else fx qw1 = qw1.replace("√", "") if "√" in qw1 else qw1 qw2 = qw2.replace("√", "") if "√" in qw2 else qw2 g1 = g1.replace("√", "") if "√" in g1 else g1 g2 = g2.replace("√", "") if "√" in g2 else g2 fx = fx.replace("√", "") if "√" in fx else fx fj = str(self.tableWidgetFlight.item(rowIndex, colnum - 1).text()) dict_people = {"工1": qw1, "工2": qw2, "工3": g1, "工4": g2, "放行": fx } dict_people_noCall = {"工1": qw1_1, "工2": qw2_1, "工3": g1_1, "工4": g2_1, "放行": fx_1 } # print(dict_people) if action == item1: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str( self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "" : empNos = self.severpostData_nomeassge("get_empNos", dict_people) # print(empNos) if empNos["code"] != "fail": res=self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["WXempNos"],"WX",empNos["date"],empNos["bc"]) if res == "ok": try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(qw1 + "-" + qw2 + "-" + g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("成功提示", "派工成功!") if empNos["faillist"] != []: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("派工错误", "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]) else: self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工!!") return elif action == item18: if int(self.authority) <= 2: if self.tableWidgetFlight.item(rowIndex, 24).text() !="" and "【交班航班】" not in fj and \ ("3U" in self.tableWidgetFlight.item(rowIndex, 4).text() or "CSC" in self.tableWidgetFlight.item(rowIndex, 4).text()): relay = QMessageBox.warning(self, "警告", "是否确定要对B-%s,%s进行工作交接?"%(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 4).text()), QMessageBox.StandardButton.Yes, QMessageBox.StandardButton.Close) if relay == QMessageBox.StandardButton.Yes: data = {"taskid": self.tableWidgetFlight.item(rowIndex, 26).text(),"sts": "1"} res = self.severpostData_nomeassge("handoverflight", data=data)["返回值"] if res == "ok": flightid = self.tableWidgetFlight.item(rowIndex, colnum - 5).text() flighttype = self.tableWidgetFlight.item(rowIndex, 9).text() fjxx = "【交班航班】" + fj ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(fjxx) + "%s/" % str(flightid) + "A/%s/" % str(flighttype) + "%s" % str(self.selectedtime) try: requests.get(url=ip, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.QThreadSortNow("main") QMessageBox.warning(self, "提示", "B-%s,%s工作交接推送成功"%(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 4).text())) else: QMessageBox.warning(self, "警告", "航班交接失败,请重新尝试") elif "【交班航班】" in fj: QMessageBox.warning(self, "提示", "该航班已交接,请勿重复交接!") elif "3U" not in self.tableWidgetFlight.item(rowIndex, 4).text() and "CSC" not in self.tableWidgetFlight.item(rowIndex, 4).text(): QMessageBox.warning(self, "提示", "该航班为非川航航班,无需交接!!!") else: QMessageBox.warning(self, "提示", "无法对未安排人员的的航班无法进行交接班,请先进行派工后交班!") else: self.show_info("警告", "权限不够,请联系管理员!!!") return elif action == item17: if int(self.authority) <= 1: if "MAN" in str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()): ip = "http://" + str(self.ipinfo) + "/static/" + "deleteFlight/" + "%s/%s/%s" % ( self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), self.user, self.selectedtime) res = requests.get(url=ip, timeout=30).json() if res["返回值"] == "ok": self.show_info("成功提示", "航班删除成功!") try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s航班被删除%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") else: self.show_info("提示", "航班删除失败,如需请联系管理员!") else: self.show_info("警告", "删除航班功能仅限于人工添加的航班,AMRO航班无法删除!!!") else: self.show_info("警告", "权限不够,请联系管理员!!!") return elif action == item16: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": taskid = self.tableWidgetFlight.item(rowIndex, colnum - 4).text() ip = "http://" + str(self.ipinfo) + "/static/checkWorkjob/%s" % taskid infos = requests.get(url=ip, timeout=30).json() if infos["返回值"] == "ok": self.show_info("成功提示", "工作包查询成功!") self.QThreadSortNow("main") else: self.show_info("警告", "该航班非AMRO航班或者无任务编号,无法查询工作包!!") return elif action == item15: # {"工号":"0","电话":"1","姓名":"2","航班编号":"3","航班号":"4","附加消息":"5","拨号次数":"6","":"8","":"9","":"10"} if "人工" not in str(fj): for i in dict_people_noCall.keys(): if dict_people_noCall[i] != "": name = str(dict_people_noCall[i]) if "!" in name: name = name.replace("!", "") if "√" in name: name = name.replace("√", "") ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name infos = requests.get(url=ip, timeout=30).json() # print(infos) flightnumber = self.tableWidgetFlight.item(rowIndex, 4).text() flighttype = self.tableWidgetFlight.item(rowIndex, 9).text() flightids = str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) + str( flighttype) + str(name) + str(datetime.datetime.now().strftime("%H:%M:%S")) if infos == {}: self.show_info("警告", "无法查询到%s个人信息,请人工联系或更新后尝试!!" % name) ip = "http://" + str( self.ipinfo) + "/static/insertLogs/" + "%s%s%s未在通讯录,无法完成自动拨号,请人工联系或更新信息后尝试" % ( flightnumber, flighttype, name) + "/system/" + str( datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) requests.get(url=ip, timeout=30).json() else: callnumber = 0 data = {"工号": "%s" % infos["工号"], "电话": "%s" % infos["电话"], "姓名": "%s" % name, "航班编号": "%s" % flightids, "航班号": "%s" % flightnumber, "附加消息": "%s" % fj, "拨号次数": callnumber} self.severpostData_nomeassge("insertCalllist", data) ip = "http://" + str(self.ipinfo) + "/static/calltry" requests.get(url=ip, timeout=30).json() self.severpost_nomeassge("infoConfirm", "/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(), "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/%s" % self.displayMode, "/%s" % self.selectedtime) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s电话通知%s/" % ( acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") # 需要一次拨号请求 else: ip = "http://" + str(self.ipinfo) + "/static/insertLogs/" + "%s,%s附加消息有需要人工通知的内容,请人工介入,请通知到位后点击确认通知!!" % (acno, flightno) + "/system/" + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M")) requests.get(url=ip, timeout=30).json() QMessageBox.warning(self, "人工提醒", "%s,%s附加消息有需要人工通知的内容,将推送航班监控席位由人工通知!" % (acno, flightno) ) return elif action == item2: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str( self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": empNos = self.severpostData_nomeassge("get_empNos", dict_people) if empNos["code"] != "fail": res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["FXempNos"], "FX", empNos["date"], empNos["bc"]) if res == "ok": try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(fx),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except: self.show_info("日志功能失效", "操作日志功能失效请联系管理员") self.show_info("成功提示", "派工成功!") if empNos["faillist"] != []: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("派工错误", "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]) else: self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工!!") return elif action == item3: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": empNos = self.severpostData_nomeassge("get_empNos", dict_people) if empNos["code"] != "fail": res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["ESempNos"], "ECSJ", empNos["date"], empNos["bc"]) if res == "ok": try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("成功提示", "派工成功!") if empNos["faillist"] != []: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("派工错误", "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]) else: self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工!!") return elif action == item4: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str( self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": empNos = self.severpostData_nomeassge("get_empNos", dict_people) if empNos["code"] != "fail": risktips="" if self.tableWidgetFlight.item(rowIndex, 8).text() !="": res=self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips=f"【风险提示】{res}" if res !="" else "" msgInfo="进港维修任务保障推送!%s%s" % (fj,risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(), empNos["WXempNos"],"",empNos["WX"],empNos["FX"],"",msgInfo) if res != "ok": self.show_info("失败提示", "%s维修人员%s派工信息推送失败!" % (self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["WX"])) else: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(qw1 + "-" + qw2 + "-" + g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.severpost_nomeassge("infoConfirm2", "/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),"/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),"/%s" % self.displayMode, "/%s" % self.selectedtime) self.show_info("成功提示", "%s维修人员%s派工信息推送成功!!!" % (self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["WX"])) self.QThreadSortNow("main") if empNos["faillist"] != []: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("通知错误", "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]) else: self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工叮咚消息通知!!") return elif action == item5: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str( self.tableWidgetFlight.item(rowIndex, colnum - 5).text())and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": empNos = self.severpostData_nomeassge("get_empNos", dict_people) if empNos["code"] != "fail": risktips="" if self.tableWidgetFlight.item(rowIndex, 8).text() !="": res=self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips=f"【风险提示】{res}" if res !="" else "" msgInfo="放行人员保障推送!%s%s" % (fj,risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(), "", empNos["FXempNos"],empNos["WX"],empNos["FX"],"",msgInfo) if res != "ok": self.show_info("失败提示", "%s放行人员%s派工信息推送失败!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"])) else: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(fx),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("成功提示", "%s放行人员%s派工信息推成功!!!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"])) self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(), "/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(), "/%s" % self.displayMode, "/%s" % self.selectedtime) self.QThreadSortNow("main") if empNos["faillist"] != []: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("通知错误", "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]) else: self.show_info("警告","该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工叮咚消息通知!!") return elif action == item6: if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str( self.tableWidgetFlight.item(rowIndex, colnum - 5).text())and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": empNos = self.severpostData_nomeassge("get_empNos", dict_people) if empNos["code"] != "fail": risktips = "" if self.tableWidgetFlight.item(rowIndex, 8).text() != "": res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips = f"【风险提示】{res}" if res != "" else "" msgInfo = "二次送机任务推送!%s%s" % (fj, risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(), empNos["ESempNos"], "",empNos["WX"],empNos["FX"],empNos["ES"],msgInfo) if res != "ok": self.show_info("失败提示", "%s二次送机人员%s派工信息推送失败!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["ES"])) else: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("成功提示", "%s二次送机人员%s派工信息推送成功!!!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["ES"])) self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(), "/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(), "/%s" % self.displayMode, "/%s" % self.selectedtime) self.QThreadSortNow("main") if empNos["faillist"] != []: try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.show_info("通知错误", "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]) else: self.show_info("警告","该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工叮咚消息通知!!") return elif action == item7: self.severpost_nomeassge("infoConfirm", "/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(), "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/%s" % self.displayMode, "/%s" % self.selectedtime) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s点击确认通知%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") return elif action == item8: self.severpost_nomeassge("manChangests", "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/接机到位", "/%s" % self.selectedtime, "/%s" % self.user) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击接机到位%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") self.QThreadSortNow("change") self.QThreadSortNow("log") return elif action == item9: self.severpost_nomeassge("manChangests","/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/放行","/%s" % self.selectedtime, "/%s" % self.user) # print("人工确认放行") try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击放行%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") self.QThreadSortNow("change") self.QThreadSortNow("log") return elif action == item10: self.severpost_nomeassge("manChangests","/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/随机到位","/%s" % self.selectedtime, "/%s" % self.user) # print("人工确认随机到位") try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击随机到位%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") self.QThreadSortNow("change") self.QThreadSortNow("log") return elif action == item11: self.severpost_nomeassge("manChangests", "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/二送到位", "/%s" % self.selectedtime, "/%s" % self.user) # print("人工确认二送到位") try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击二送到位%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") self.QThreadSortNow("change") self.QThreadSortNow("log") return elif action == item12: self.severpost_nomeassge("manChangests", "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/销子夹板", "/%s" % self.selectedtime, "/%s" % self.user) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击销子夹板%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") self.QThreadSortNow("main") self.QThreadSortNow("change") self.QThreadSortNow("log") return elif action == item13: msg = {} if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text())and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "": if self.tableWidgetFlight.item(rowIndex, 9).text() != "短停送" and self.tableWidgetFlight.item(rowIndex, 9).text() != "特后前送": empNos = self.severpostData_nomeassge("get_empNos", dict_people) # print(empNos) try: if empNos["code"] != "fail": res=self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["WXempNos"],"WX",empNos["date"],empNos["bc"]) if res == "ok": msg["aa"] = "%s维修人员派工成功!"% str(qw1 + "-" + qw2 + "-" + g1 + "-" + g2) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(qw1 + "-" + qw2 + "-" + g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["a"] = "以下维修人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]", ""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") except: pass try: if empNos["code"] != "fail": res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["FXempNos"], "FX", empNos["date"], empNos["bc"]) if res == "ok": msg["bb"] = "放行人员%s派工成功!"%str(fx) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(fx),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["b"] = "以下放行人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") except: pass try: if empNos["code"] != "fail": risktips = "" if self.tableWidgetFlight.item(rowIndex, 8).text() != "": res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips = f"【风险提示】{res}" if res != "" else "" msgInfo = "进港维修任务保障推送!%s%s" % (fj, risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["WXempNos"],"",empNos["WX"],empNos["FX"],"",msgInfo) if res == "ok": msg["cc"] = "%s维修人员%s派工信息推送成功!!!" % (self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["WX"]) self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),"/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),"/%s" % self.displayMode, "/%s" % self.selectedtime) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(qw1 + "-" + qw2 + "-" + g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["c"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") except: #pass print(traceback.format_exc()) try: if empNos["code"] != "fail": risktips = "" if self.tableWidgetFlight.item(rowIndex, 8).text() != "": res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips = f"【风险提示】{res}" if res != "" else "" msgInfo = "放行任务保障信息!%s%s" % (fj, risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(), "", empNos["FXempNos"],empNos["WX"],empNos["FX"],"",msgInfo) if res == "ok": msg["dd"] = "%s放行人员%s派工信息推成功!!!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"]) self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),"/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),"/%s" % self.displayMode, "/%s" % self.selectedtime) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(fx),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["d"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") except: pass else: empNos = self.severpostData_nomeassge("get_empNos", dict_people) if "【交班航班】" in fj: try: if empNos["code"] != "fail": res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["FXempNos"], "FX", empNos["date"], empNos["bc"]) if res == "ok": msg["bb"] = "放行人员%s派工成功!"%str(fx) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(fx),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["b"] = "以下放行人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") except: pass try: if empNos["code"] != "fail": risktips = "" if self.tableWidgetFlight.item(rowIndex, 8).text() != "": res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips = f"【风险提示】{res}" if res != "" else "" msgInfo = "放行任务保障信息!%s%s" % (fj, risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(), "", empNos["FXempNos"],empNos["WX"],empNos["FX"],"",msgInfo) if res == "ok": msg["dd"] = "%s放行人员%s派工信息推成功!!!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"]) self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),"/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),"/%s" % self.displayMode, "/%s" % self.selectedtime) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(fx),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["d"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") except: pass # print(empNos) if empNos["code"] != "fail": res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["ESempNos"], "ECSJ", empNos["date"], empNos["bc"]) if res == "ok": msg["ee"] = "%s二次送机派工成功!"%str(g1 + "-" + g2) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工成功%s/" % (acno, flightno, str(g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["e"] = "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"] if empNos["code"] != "fail": risktips = "" if self.tableWidgetFlight.item(rowIndex, 8).text() != "": res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text()) risktips = f"【风险提示】{res}" if res != "" else "" msgInfo = "二次送机任务推送!%s%s" % (fj, risktips) res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(), self.tableWidgetFlight.item(rowIndex, colnum - 2).text(), "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("
")[1], self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(), empNos["ESempNos"], "",empNos["WX"],empNos["FX"],empNos["ES"],msgInfo) if res == "ok": msg["ff"] = "%s二次送机人员%s派工信息推送成功!!!" % ( self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["ES"]) self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(), "/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(), "/%s" % self.displayMode, "/%s" % self.selectedtime) try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送成功%s/" % (acno, flightno, str(g1 + "-" + g2),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") if empNos["faillist"] != []: msg["f"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"] try: ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s%s派工信息推送失败%s/" % (acno, flightno,str(empNos["faillist"]).replace(",", "-").replace("'", "").replace("[", "").replace("]",""),datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now()) requests.get(url=ip, timeout=30).json() except Exception: logger.error(traceback.format_exc()) QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!") msgs = "" for j in ["aa", "bb", "cc", "dd", "ee", "ff", "a", "b", "c", "d", "e", "f"]: if j in msg.keys(): if msgs == "": msgs = msg[j] else: msgs = msgs + "\n" + msg[j] self.show_info("一键派工提示信息", msgs) self.QThreadSortNow("main") else: self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工和叮咚消息通知!!") return else: return except Exception: logger.error(traceback.format_exc()) elif self.displayMode=="B": for i in self.tableWidgetFlight.selectionModel().selection().indexes(): menu = QMenu() item1 = menu.addAction("工作单确认检查") screenPos = self.tableWidgetFlight.mapToGlobal(pos) action = menu.exec(screenPos) rowIndex = i.row() colnum = self.tableWidgetFlight.columnCount() flightids=self.tableWidgetFlight.item(rowIndex, colnum - 5).text() flighttype = self.tableWidgetFlight.item(rowIndex, 9).text() if action == item1: nowstr=self.user+str(datetime.datetime.now().timestamp()).split(".")[0] ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % ( "10", nowstr, flightids, self.displayMode, flighttype, self.selectedtime) # print(ip) #self.tableWidgetFlight.setItem(int(rowIndex), column, QTableWidgetItem(str(nowstr))) try: requests.get(url=ip, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.QThreadSortNow("main") return else: QMessageBox.warning(self, "提示", "权限不够,请联系管理员!") def tableWidgetPhoneDispaly(self): try: phoneLabel = ["序号", "姓名", "部门", "电话","name"] col = len(phoneLabel) diplaylist = self.sorttableWidgetPHONEDispalydata self.tableWidget_3.setRowCount(len(diplaylist.keys())) for row in diplaylist.keys(): for colNum in range(0, col): if colNum == 0: self.tableWidget_3.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1))) self.tableWidget_3.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidget_3.setItem(int(row), colNum, QTableWidgetItem(diplaylist[row][phoneLabel[colNum]])) self.tableWidget_3.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidget_3.resizeColumnsToContents() self.tableWidget_3.setColumnHidden(4, True) except Exception: logger.error(traceback.format_exc()) def tableWidgetPeopleDisplay(self): try: peopleLabel = ["序号", "姓名", "角色", "总量", "当前", "最后时间"] col = len(peopleLabel) diplaylist = self.sortdiplaylist self.tableWidgetPerson.setRowCount(len(diplaylist.keys())) # print( self.searchpeoplestr ) for row in diplaylist.keys(): for colNum in range(0, col): if colNum == 0: self.tableWidgetPerson.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1))) self.tableWidgetPerson.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetPerson.setItem(int(row), colNum, QTableWidgetItem(diplaylist[row][peopleLabel[colNum]])) self.tableWidgetPerson.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetPerson.resizeColumnsToContents() # self.tableWidgetPerson.itemEntered.connect(self.enter_item_slot) except Exception: logger.error(traceback.format_exc()) def enter_item_slot(self, item): try: self.tool_tip = item.text() # print("self.tool_tip:", self.tool_tip) except Exception: logger.error(traceback.format_exc()) def tableWidgetDispaly(self): try: selftaxi = ["166", "166L", "166R", "167", "167L", "167R", "168", "169", "170", "171", "172", "173", "174", "269", "270", "271", "272", "273", "274", "275", "287", "288", "601", "602", "603", "604", "605", "606", "607", "607L", "607R"] # 自滑位 if self.sorttableWidgetDispalydata != "": # print("刷新开始") # dateNow=datetime.datetime.now() tableWidgetDispalydata = self.sorttableWidgetDispalydata col = len(self.displayLabel) self.tableWidgetFlight.setRowCount(len(tableWidgetDispalydata.keys())) for row in tableWidgetDispalydata.keys(): for colNum in range(0, col): if colNum == 6: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["102"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 7: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["103"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 8: if tableWidgetDispalydata[row][str(colNum)] in selftaxi and tableWidgetDispalydata[row][str(colNum)] != "": self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("lightgreen")) self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black")) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment( Qt.AlignmentFlag.AlignCenter) if "自滑机位" not in tableWidgetDispalydata[row][str(col - 1)]: flightid = tableWidgetDispalydata[row][str(col - 5)] # print(flightid) flighttype = tableWidgetDispalydata[row]["9"] fjxx = "自滑机位;" + str(tableWidgetDispalydata[row][str(col - 1)]) ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str( fjxx) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str( flighttype) + "%s" % str(self.selectedtime) try: requests.get(url=ip, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) if self.displayMode =="A": for colNum2 in (10, 11, 12, 13, 14): if tableWidgetDispalydata[row][str(colNum2)] != "" and "*" not in str(tableWidgetDispalydata[row][str(colNum2)]): self.severpost_nomeassge("selftaxiLogs", "/%s请通知%s,%s为自滑位,注意特殊机位保障要求!" % ( tableWidgetDispalydata[row]["1"], tableWidgetDispalydata[row][str(colNum2)], tableWidgetDispalydata[row]["8"]),"/%s" % tableWidgetDispalydata[row][str(col - 5)], "","") self.severpost_nomeassge("infoConfirm3","/%s" % tableWidgetDispalydata[row][str(9)],"/%s" % tableWidgetDispalydata[row][str(col - 5)], "/%s" % self.displayMode, "/%s" % self.selectedtime) elif tableWidgetDispalydata[row][str(colNum)] not in selftaxi or \ tableWidgetDispalydata[row][str(colNum)] == "": self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment( Qt.AlignmentFlag.AlignCenter) font = QFont() # font.setFamily("SimHei") font.setFamily("Microsoft YaHei") font.setBold(True) self.tableWidgetFlight.item(int(row), colNum).setFont(font) elif colNum == 9: if tableWidgetDispalydata[row][str(colNum)] == "短停送" or tableWidgetDispalydata[row][str(colNum)] == "特后前送": self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str("blue"))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment( Qt.AlignmentFlag.AlignCenter) font = QFont() # font.setFamily("SimHei") font.setFamily("Microsoft YaHei") font.setBold(True) self.tableWidgetFlight.item(int(row), colNum).setFont(font) else: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment( Qt.AlignmentFlag.AlignCenter) elif 9 < colNum < 15: if "√" in tableWidgetDispalydata[row][str(colNum)] or tableWidgetDispalydata[row][str(colNum)] == "": self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]).replace("*",""))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment( Qt.AlignmentFlag.AlignCenter) elif "√" not in tableWidgetDispalydata[row][str(colNum)] and tableWidgetDispalydata[row][ str(colNum)] != "": self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]).replace("*",""))) self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow")) self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black")) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment( Qt.AlignmentFlag.AlignCenter) elif colNum == col - 1: if str(tableWidgetDispalydata[row][str(colNum)]) !="" and str(tableWidgetDispalydata[row][str(colNum)]) != None: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow")) self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("red")) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.item(int(row), col - 1).setToolTip("%s" % str(tableWidgetDispalydata[row][str(col - 1)])) font = QFont() # font.setFamily("SimHei") font.setFamily("Microsoft YaHei") font.setBold(True) self.tableWidgetFlight.item(int(row), colNum).setFont(font) else: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.item(int(row), col - 1).setToolTip("%s" % str(tableWidgetDispalydata[row][str(col - 1)])) font = QFont() # font.setFamily("SimHei") font.setFamily("Microsoft YaHei") font.setBold(True) self.tableWidgetFlight.item(int(row), colNum).setFont(font) if "二拖" in tableWidgetDispalydata[row][str(colNum)]: for selftaxiPostion in selftaxi: if selftaxiPostion in tableWidgetDispalydata[row][str(colNum)]: for colNum2 in (10, 11, 12, 13, 14): if tableWidgetDispalydata[row][str(colNum2)] != "": self.severpost_nomeassge("selftaxiLogs", "/%s请通知%s,%s二拖机位目的机位为自滑位,注意特殊机位保障要求!" % ( tableWidgetDispalydata[row]["1"], tableWidgetDispalydata[row][str(colNum2)], tableWidgetDispalydata[row]["8"]), "/%s" % tableWidgetDispalydata[row][ str(col - 5)], "", "") elif colNum == 22: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.item(int(row), 22).setToolTip( "%s" % str(tableWidgetDispalydata[row][str(22)])) elif 0 < colNum < 5: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) if self.displayMode == "A": self.tableWidgetFlight.item(int(row), colNum).setToolTip( "%s" % str(tableWidgetDispalydata[row][str(23)])) else: self.tableWidgetFlight.item(int(row), colNum).setToolTip( "%s" % str(tableWidgetDispalydata[row][str(24)])) if colNum == 1 and tableWidgetDispalydata[row][str(colNum)] in ["8182","8185","8186"] and tableWidgetDispalydata[row][str(9)] =="航前": if "【工具提示】无TPIS,带胎压表" not in tableWidgetDispalydata[row][str(col - 1)]: flightid = tableWidgetDispalydata[row][str(col - 5)] # print(flightid) flighttype = tableWidgetDispalydata[row]["9"] fjxx = "【工具提示】无TPIS,带胎压表;" + str(tableWidgetDispalydata[row][str(col - 1)]) ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str( fjxx) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str( flighttype) + "%s" % str(self.selectedtime) try: requests.get(url=ip, timeout=30).json() except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) elif colNum == 0: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1))) self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) if self.displayMode == "A": self.tableWidgetFlight.item(int(row), colNum).setToolTip( "[%s,%s]" % (str(tableWidgetDispalydata[row][str(col-5)]),str(tableWidgetDispalydata[row][str(col-4)]))) else: self.tableWidgetFlight.item(int(row), colNum).setToolTip( "[%s,%s]" % (str(tableWidgetDispalydata[row][str(col-5)]),str(tableWidgetDispalydata[row][str(col-4)]))) else: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem( str(tableWidgetDispalydata[row][str(colNum)]))) self.tableWidgetFlight.item(int(row), colNum).setBackground( QColor(str(tableWidgetDispalydata[row]["99"]))) self.tableWidgetFlight.item(int(row), colNum).setForeground( QColor(str(tableWidgetDispalydata[row]["101"]))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.setColumnHidden(col - 2, True) self.tableWidgetFlight.setColumnHidden(col - 3, True) self.tableWidgetFlight.setColumnHidden(col - 4, True) self.tableWidgetFlight.setColumnHidden(col - 5, True) self.tableWidgetFlight.setColumnHidden(col - 6, False) self.tableWidgetFlight.setColumnHidden(col - 7, False) self.tableWidgetFlight.setColumnHidden(col - 1, False) if self.displayMode == "A": self.tableWidgetFlight.setColumnHidden(col - 8, True) self.tableWidgetFlight.setColumnHidden(col - 9, False) self.tableWidgetFlight.setColumnHidden(col - 10, True) self.tableWidgetFlight.setColumnHidden(col - 11, False) self.tableWidgetFlight.setColumnHidden(col - 12, True) else: self.tableWidgetFlight.setColumnHidden(col - 8, False) self.tableWidgetFlight.setColumnHidden(col - 9, True) self.tableWidgetFlight.setColumnHidden(col - 10, False) self.tableWidgetFlight.setColumnHidden(col - 11, True) self.tableWidgetFlight.setColumnHidden(col - 12, True) self.tableWidgetFlight.resizeColumnsToContents() self.tableWidgetFlight.setColumnWidth(10, 70) self.tableWidgetFlight.setColumnWidth(11, 70) self.tableWidgetFlight.setColumnWidth(12, 70) self.tableWidgetFlight.setColumnWidth(13, 70) self.tableWidgetFlight.setColumnWidth(14, 70) self.tableWidgetFlight.setColumnWidth(15, 70) self.tableWidgetFlight.setColumnWidth(22, 45) # print("刷新结束") # print(datetime.datetime.now() - dateNow) except Exception: logger.error(traceback.format_exc()) def on_completer_activated(self, text): try: if text: index = self.comboBox.findText(text) self.comboBox.setCurrentIndex(index) except Exception: logger.error(traceback.format_exc()) def LM_TSK_SURE_PG(self): try: data = { "empNos": dict["empNos"], # 员工号 "taskid": dict["taskid"], # taskid "type": dict["type"], # 类型 "shiftDate": dict["shiftDate"], # 上班日期 "shift": dict["shift"], # 班次 } self.severpostData_nomeassge("LM_TSK_SURE_PG", data) except Exception: logger.error(traceback.format_exc()) def dingdong(self): try: data = { "acno": dict["empNos"], # 机号 "actype": dict["taskid"], # 机型 "tasktype": dict["type"], # 任务类型 "tatd": dict["shiftDate"], # 起飞/落地时间 "msgInfo": dict["shift"], # 消息 "bay": dict["empNos"], # 机位 "wxemp": dict["taskid"], # 维修人员员工号 "fxemp": dict["type"], # 放行人员员工号 "wx": dict["shiftDate"], # 维修人员 "fx": dict["shift"], # 放行人员 "ecsj": dict["shift"], # 二次送机人员 } self.severpostData_nomeassge("dingdong", data) except Exception: logger.error(traceback.format_exc()) def update_pglistA(self, text): try: self.severpost_nomeassge("getPglist", "A", "", "", "") except Exception: logger.error(traceback.format_exc()) def update_pglistB(self, text): try: self.severpost_nomeassge("getPglist", "B", "", "", "") except Exception: logger.error(traceback.format_exc()) def search(self): # print('进行查询') try: self.threadWOrk_get_flight_list() if self.cookie != None: # print('查询中') self.threadWOrk_get_flight_list() except Exception: logger.error(traceback.format_exc()) def threadWork_getcookie(self): try: self.fl = utils.flight_list() worker = Worker2(self.fn_cookie, self.fl) worker.signals.result.connect(self.print_output_cookie) worker.signals.finished.connect(self.thread_complete) worker.signals.error.connect(self.thread_error) self.threadpool.start(worker) except Exception: logger.error(traceback.format_exc()) def threadWOrk_get_flight_list(self): try: dateNow = datetime.datetime.now() dateNowStr = dateNow.strftime("%Y-%m-%d") worker = Worker2(self.fn_get_flight_list, self.fl, dateNowStr, self.cookie) worker.signals.result.connect(self.print_output_flight_list) worker.signals.finished.connect(self.thread_complete) worker.signals.error.connect(self.thread_error) self.threadpool.start(worker) except Exception: logger.error(traceback.format_exc()) def fn_get_flight_list(self, fl, date, cookie): try: # print(fl.token) # flight_list = fl.request_filght_list(date, cookie) flight_list = utils.loadjson('./temp/1/fl1688398151.json') return flight_list except Exception: logger.error(traceback.format_exc()) def fn_cookie(self, fl): try: # 耗时进程 # print(fl) fl.start() cookie = fl.get_cookie() return cookie except Exception: logger.error(traceback.format_exc()) def print_output_cookie(self, dlist): try: self.cookie = dlist except Exception: logger.error(traceback.format_exc()) def print_output_flight_list(self, dlist): try: # print(dlist['code']) self.tableDisplay2() except Exception: logger.error(traceback.format_exc()) def thread_complete(self): print("THREAD COMPLETE!") def thread_error(self, error): print("进程error:{}".format(error)) class LoginWidget(Ui_login, QWidget): login_signal = QtCore.pyqtSignal(bool) login_user = QtCore.pyqtSignal(list) def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) # print('login widget') self.pushButton.clicked.connect(self.btn) # self.setipinfo() self.ipinfo = None except Exception: logger.error(traceback.format_exc()) def severpost_meassge(self, postname, postdata, postdata2): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) try: res = requests.get(url=ip, timeout=30).json() # print(res) except Exception: # print('登录服务器失败') logging.info('登录服务器失败') res = "" QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) return res except Exception: logger.error(traceback.format_exc()) def btn(self): try: username = self.lineEditUser.text() password = self.lineEditPassword.text() try: res = self.severpost_meassge("loginTable", "/%s" % username, "/%s" % password)["返回值"] # print(res) except Exception: res = "" logger.error(traceback.format_exc()) # print(res) if res != "" and int(res[3])<=3: self.login_signal.emit(True) self.login_user.emit(res) else: self.show_message() except Exception: logger.error(traceback.format_exc()) def show_message(self): try: QMessageBox.warning(self, "警告", "无此用户或密码错误或账号无权限访问办公平台") except Exception: logger.error(traceback.format_exc()) class amroLoginWidget(Ui_amroLogin, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.pushButton.clicked.connect(self.btn) self.ipinfo = None except Exception: logger.error(traceback.format_exc()) def btn(self): try: username = self.lineEditUsername.text() password = self.lineEditPassword.text() ip = "http://" + str(self.ipinfo) + "/static/remotelogin/%s/%s" % (username, password) try: res = requests.get(url=ip, timeout=60) if res.text == "ok": QMessageBox.warning(self, "提示", "服务器AMRO登录成功!") self.close() else: QMessageBox.warning(self, "提示", "服务器AMRO登录失败,请检查账号密码或服务器端登录或联系管理员检查服务器!") except: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") self.close() except Exception: logger.error(traceback.format_exc()) class amroLoginWidget2(Ui_amroLogin2, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.pushButton.clicked.connect(self.btn) self.ipinfo = None except Exception: logger.error(traceback.format_exc()) def btn(self): try: username = self.lineEditUsername.text() password = self.lineEditPassword.text() ip = "http://" + str(self.ipinfo) + "/static/remoteCookielogin/%s/%s" % (username, password) try: res = requests.get(url=ip, timeout=60) if res.text == "ok": QMessageBox.warning(self, "提示", "服务器AMRO登录成功!") self.close() else: QMessageBox.warning(self, "提示", "服务器AMRO登录失败,请检查账号和Cookie或服务器端登录或联系管理员检查服务器!") except: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") self.close() except Exception: logger.error(traceback.format_exc()) class checkCalllist(Ui_checkCalllist, QWidget): checkCalllist_signal = QtCore.pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.ipinfo = None self.selectedtime = None self.pushButton.clicked.connect(self.btn) # self.show() except Exception: logger.error(traceback.format_exc()) def start(self): try: selectedtime_time = str(self.selectedtime) + " 00:00:00" now = datetime.datetime.strptime(selectedtime_time, "%Y%m%d %H:%M:%S") tom = (now + datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") yesterday = (now - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") self.label_5.setText("%s/%s" % (str(yesterday)[0:10], str(tom)[0:10])) ip = "http://" + str(self.ipinfo) + "/static/checkCalllist" + "/" + str(self.selectedtime) try: res = requests.get(url=ip, timeout=30).json() # print(res) except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.peopleLabel = ["序号", "电话", "工号", "姓名", "航班号", "拨号次数", "创建时间", "接通时间"] self.tableWidgetFlight.setColumnCount(len(self.peopleLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.peopleLabel) col = len(self.peopleLabel) diplaylist = res self.tableWidgetFlight.setRowCount(len(diplaylist.keys())) for row in diplaylist.keys(): for colNum in range(0, col): if colNum == 0: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(diplaylist[row][self.peopleLabel[colNum]])) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.resizeColumnsToContents() # self.show() except Exception: logger.error(traceback.format_exc()) def btn(self): try: ip = "http://" + str(self.ipinfo) + "/static/checkCalllist" + "/" + str(self.selectedtime) self.res = requests.get(url=ip, timeout=30).json() except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.res = {} col = len(self.peopleLabel) diplaylist = self.res self.tableWidgetFlight.setRowCount(len(diplaylist)) rownum = 0 for row in diplaylist: for colNum in range(0, col): if colNum == 0: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetFlight.setItem(int(row), colNum,QTableWidgetItem(diplaylist[row][self.peopleLabel[colNum]])) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.resizeColumnsToContents() def closeEvent(self, event): try: reply = QMessageBox.question(self, '确认', '你确定要退出程序吗?') reply = str(reply) if reply == "StandardButton.Yes": self.checkCalllist_signal.emit(reply) event.ignore() else: event.ignore() except Exception: logger.error(traceback.format_exc()) class checkLoadSingal(Ui_checkLoadSingal, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.worknum = None self.name = None self.selectedtime = None self.ipinfo = None except Exception: logger.error(traceback.format_exc()) def start(self): try: # print(self.worknum) # print(self.name) # print(self.selectedtime) # print(self.ipinfo) self.label_3.setText(self.name) selectedtime_time = str(self.selectedtime) + " 00:00:00" now = datetime.datetime.strptime(selectedtime_time, "%Y%m%d %H:%M:%S") yesterday = (now - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") self.label_5.setText("%s/%s" % (str(yesterday)[0:10], str(now)[0:10])) # print(now) # print(yesterday) ip = "http://" + str(self.ipinfo) + "/static/checkLoadSingal" + "/" + str(self.worknum) + "/" + str( yesterday) + "/" + str(now) try: res = requests.get(url=ip, timeout=30).json() # print(res) except Exception: # print('登录服务器失败') logging.warning('登录服务器失败, res获取失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.show() peopleLabel = ["序号", "保障日期", "类型", "机号", "机位", "开始时间", "结束时间"] self.tableWidgetFlight.setColumnCount(len(peopleLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel) col = len(peopleLabel) diplaylist = res self.tableWidgetFlight.setRowCount(len(diplaylist.keys())) for row in diplaylist.keys(): for colNum in range(0, col): if colNum == 0: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(diplaylist[row][peopleLabel[colNum]])) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.resizeColumnsToContents() except Exception: logger.error(traceback.format_exc()) class searchpeople_get(Ui_searchpeople_get, QWidget): searchpeoplelist_signal = QtCore.pyqtSignal(list) def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.pushButton.clicked.connect(self.btn) self.searchpeoplelist = None self.ipinfo = None self.Allpeoplelist = {} self.selectedtime = None self.selectedbc = None except Exception: logger.error(traceback.format_exc()) def btn(self): try: searchpeoplelist = [] for row in range(self.tableWidgetFlight.rowCount()): item = self.tableWidgetFlight.item(row, 2) if item is not None and item.checkState() == Qt.CheckState.Checked: name = self.tableWidgetFlight.item(row, 1).text() searchpeoplelist.append(name) # print(searchpeoplelist) self.searchpeoplelist = searchpeoplelist self.searchpeoplelist_signal.emit(self.searchpeoplelist) self.close() except Exception: logger.error(traceback.format_exc()) def start(self): try: self.show() peopleLabel = ["序号", "姓名", "选择"] diplaylist = self.Allpeoplelist self.tableWidgetFlight.setColumnCount(len(peopleLabel)) self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setRowCount(len(diplaylist.keys())) for row in diplaylist.keys(): for colNum in range(0, 3): if colNum == 0: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row))) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 1: self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(diplaylist[row][peopleLabel[colNum]])) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 2: checkbox = QTableWidgetItem() checkbox.setCheckState(Qt.CheckState.Unchecked) self.tableWidgetFlight.setItem(int(row), colNum, checkbox) self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.tableWidgetFlight.resizeColumnsToContents() except Exception: logger.error(traceback.format_exc()) class localipset(Ui_Addloacalip, QWidget): localipset_signal = QtCore.pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.pushButton.clicked.connect(self.btn) self.localip1 = None self.localip = None except Exception: logger.error(traceback.format_exc()) def start(self): self.show() self.lineEditIP.setText(self.localip) def btn(self): try: self.localip1 = self.lineEditIP.text() self.localipset_signal.emit(self.localip1) self.close() except Exception: logger.error(traceback.format_exc()) class checkLogs(Ui_checkLogs, QWidget): def __init__(self, parent=None): super().__init__(parent) self.setupUi(self) self.ipinfo = None self.endtime = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") self.starttime = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S") self.dateTimeEdit.setDateTime(datetime.datetime.strptime(self.starttime, "%Y-%m-%d %H:%M:%S")) self.dateTimeEdit_2.setDateTime(datetime.datetime.strptime(self.endtime, "%Y-%m-%d %H:%M:%S")) self.lineEdit.textChanged.connect(self.changed) self.peopleLabel = ["序号", "航班编号", "警告信息", "信息状态", "提示信息", "产生时间", "处理人", "处理时间", "变更字段", "显示对象", "提示内容"] self.tableWidgetFlight.setColumnCount(len(self.peopleLabel)) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setHorizontalHeaderLabels(self.peopleLabel) self.pushButton.clicked.connect(self.btn) def start(self): self.show() try: ip = "http://" + str(self.ipinfo) + "/static/checkLogs/" + self.starttime + "/" + self.endtime self.res = requests.get(url=ip, timeout=30).json() except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.res = {} col = len(self.peopleLabel) diplaylist = self.res self.tableWidgetFlight.setRowCount(len(diplaylist)) rownum = 0 for row in diplaylist: for colNum in range(0, col): if colNum == 0: self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(rownum))) self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(row[colNum]))) self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignLeft) rownum += 1 self.tableWidgetFlight.resizeColumnsToContents() def changed(self): res = [] for i in self.res: if str(self.lineEdit.text()) in str(i): res.append(i) col = len(self.peopleLabel) diplaylist = res self.tableWidgetFlight.setRowCount(len(diplaylist)) rownum = 0 for row in diplaylist: for colNum in range(0, col): if colNum == 0: self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(rownum))) self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(row[colNum]))) self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignLeft) rownum += 1 self.tableWidgetFlight.resizeColumnsToContents() def btn(self): self.starttime = self.dateTimeEdit.text() self.endtime = self.dateTimeEdit_2.text() try: ip = "http://" + str(self.ipinfo) + "/static/checkLogs/" + self.starttime + "/" + self.endtime self.res = requests.get(url=ip, timeout=30).json() except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.res = {} col = len(self.peopleLabel) diplaylist = self.res self.tableWidgetFlight.setRowCount(len(diplaylist)) rownum = 0 for row in diplaylist: for colNum in range(0, col): if colNum == 0: self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(rownum))) self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) else: self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(row[colNum]))) self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignLeft) rownum += 1 self.tableWidgetFlight.resizeColumnsToContents() class changeAuth(Ui_changeAuth, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.ipinfo = None self.label_5.setText("") self.label_6.setText("") self.pushButton.clicked.connect(self.btn) self.user = None self.comboBox.addItems(['1', '2', '3',"4"]) self.comboBox.setEditable(True) self.filterModel1 = QSortFilterProxyModel(self.comboBox) self.filterModel1.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.filterModel1.setSourceModel(self.comboBox.model()) self.completer1 = QCompleter(self.filterModel1, self.comboBox) self.completer1.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion) self.completer1.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.comboBox.setCompleter(self.completer) self.comboBox.lineEdit().textEdited.connect(self.filterModel1.setFilterFixedString) self.completer1.activated.connect(self.on_completer_activated1) except Exception: logger.error(traceback.format_exc()) def start(self): self.show() try: ip = "http://" + str(self.ipinfo) + "/static/loginDbget/" + str(self.user) self.res = requests.get(url=ip, timeout=30).json() except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) self.res = {} if self.res != {}: namelist = [] for i in self.res.keys(): namelist.append(self.res[i]["登录名"]) print(namelist) self.comboBox_2.addItems(namelist) self.comboBox_2.setEditable(True) self.comboBox_2.currentIndexChanged.connect(self.changed) self.filterModel = QSortFilterProxyModel(self.comboBox_2) self.filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.filterModel.setSourceModel(self.comboBox_2.model()) self.completer = QCompleter(self.filterModel, self.comboBox_2) self.completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion) self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.comboBox_2.setCompleter(self.completer) self.comboBox_2.lineEdit().textEdited.connect(self.filterModel.setFilterFixedString) self.completer.activated.connect(self.on_completer_activated) else: QMessageBox.warning(self, "提示", "获取数据库为空,请检查数据库或联系管理员") def on_completer_activated1(self, text): try: if text: index = self.comboBox.findText(text) self.comboBox.setCurrentIndex(index) except Exception: logger.error(traceback.format_exc()) def on_completer_activated(self, text): try: if text: print(text) index = self.comboBox_2.findText(text) self.comboBox_2.setCurrentIndex(index) except Exception: logger.error(traceback.format_exc()) def changed(self): if self.res != {}: self.label_5.setText(self.res[self.comboBox_2.currentText()]["使用人"]) self.label_6.setText(self.res[self.comboBox_2.currentText()]["权限"]) def btn(self): data = { '登录名': "'%s'" % self.comboBox_2.currentText(), "权限": "'%s'" % self.comboBox.currentText() } try: ip = "http://" + str(self.ipinfo) + "/static/changeAuth" data = json.dumps(data) res = requests.post(url=ip, data=data, timeout=30).json() if res["返回值"] == "1": QMessageBox.warning(self, "提示", "权限变更成功!") self.close() else: QMessageBox.warning(self, "提示", "权限变更失败,请联系管理员检查服务器!") except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) class changePassword(Ui_FormChangePssword, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.ipinfo = None self.pushButton.clicked.connect(self.btn) self.user = None except Exception: logger.error(traceback.format_exc()) def severpost_meassge(self, postname, postdata, postdata2): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) res = requests.get(url=ip, timeout=30).json() return res except Exception: # print('登录服务器失败') QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) return '' def severpost_data(self, postname, data: dict): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) data = json.dumps(data) res = requests.post(url=ip, data=data, timeout=30).json() return res except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) return 'fail' def btn(self): try: oldpassword = self.lineEditold.text() newpassword = self.lineEditnew.text() newpassword2 = self.lineEditnew2.text() res = self.severpost_meassge("loginTable", "/%s" % self.user, "/%s" % oldpassword)["返回值"] # print(res) if res != "": if newpassword == newpassword2: dataDic = {'登录名': self.user, '新密码': newpassword, "旧密码": oldpassword} res = self.severpost_data("changePassword", dataDic) if res["返回值"] == "ok": self.close() QMessageBox.warning(self, "提示", "密码修改成功!!!") else: QMessageBox.warning(self, "提示", "密码修改失败,请检查服务器连接状态或联系管理员!!!") else: QMessageBox.warning(self, "警告", "两次密码输入不同!!!") else: QMessageBox.warning(self, "警告", "原密码错误!!!") except Exception: logger.error(traceback.format_exc()) class AddPGWidget(Ui_FormAddPG, QWidget): # AddPG_signal=QtCore.pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) nowDay = datetime.datetime.now() self.dateTimeEdit.setDateTime(nowDay) self.pushButton.clicked.connect(self.btn) # self.AddPG_signal.connect(self.getname) except Exception: logger.error(traceback.format_exc()) def getname(self, name, date, ip): try: self.getname = name self.getdate = date self.getip = ip # print(self.getname) # print(self.getdate) except Exception: logger.error(traceback.format_exc()) def severpost_meassge(self, postname, postdata, postdata2, postdata3): # print(ip) try: ip = "http://" + str(self.getip) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str( postdata3) res = requests.get(url=ip, timeout=30).json() if res["返回值"] == "ok": QMessageBox.warning(self, "提示", "已创建待办") else: QMessageBox.warning(self, "提示", "创建待办失败,请检查配置文件或联系管理员检查服务器!") except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def btn(self): try: dealtext = self.textEdit.toPlainText() time = self.dateTimeEdit.dateTime().toString('yyyy-M-d H:mm') # print(time) self.severpost_meassge("insertLogs", "/%s" % dealtext, "/%s" % self.getname, "/%s" % time) self.close() except Exception: logger.error(traceback.format_exc()) class addFlightWidget(Ui_FormAddFlight, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) nowDay = datetime.datetime.now() self.dateEdit.setDateTime(nowDay) self.dateTimeEdit.setDateTime(nowDay) self.dateTimeEdit_2.setDateTime(nowDay) self.pushButton.clicked.connect(self.btn) self.comboBox.addItems(['短停', '航前', '特后前', '航后']) self.comboBox.setEditable(True) self.comboBox.currentIndexChanged.connect(self.changed) self.filterModel = QSortFilterProxyModel(self.comboBox) self.filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.filterModel.setSourceModel(self.comboBox.model()) self.completer = QCompleter(self.filterModel, self.comboBox) self.completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion) self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.comboBox.setCompleter(self.completer) self.comboBox.lineEdit().textEdited.connect(self.filterModel.setFilterFixedString) self.completer.activated.connect(self.on_completer_activated) self.ipinfo = None self.user = None except Exception: logger.error(traceback.format_exc()) def on_completer_activated(self, text): try: if text: print(text) index = self.comboBox.findText(text) self.comboBox.setCurrentIndex(index) except Exception: logger.error(traceback.format_exc()) def changed(self): if self.comboBox.currentText() == "航前": self.label_8.setEnabled(False) self.dateTimeEdit.setEnabled(False) self.label_9.setEnabled(True) self.dateTimeEdit_2.setEnabled(True) elif self.comboBox.currentText() == "航后": self.label_9.setEnabled(False) self.dateTimeEdit_2.setEnabled(False) self.label_8.setEnabled(True) self.dateTimeEdit.setEnabled(True) else: self.label_8.setEnabled(True) self.dateTimeEdit.setEnabled(True) self.label_9.setEnabled(True) self.dateTimeEdit_2.setEnabled(True) def btn(self): if self.lineEditPWD.text() != "" and self.lineEditUser.text() != "" and self.lineEditPeople.text() != "" and self.lineEdit.text() != "" and self.lineEdit_2.text() != "": ip = "http://" + str(self.ipinfo) + "/static/" + "manAddFlight/" + "%s/%s/%s/%s/%s/%s/%s/%s/%s/%s" % ( self.comboBox.currentText(), self.lineEditPWD.text(), self.lineEditUser.text(), self.lineEditPeople.text(), self.lineEdit.text(), self.dateEdit.text(), self.lineEdit_2.text(), self.dateTimeEdit.text(), self.dateTimeEdit_2.text(), self.user) try: res = requests.get(url=ip, timeout=30).json() if res["返回值"] == "ok": self.close() QMessageBox.warning(self, "提示", "航班添加成功!!!") else: self.close() QMessageBox.warning(self, "警告", "航班添加失败") except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) else: QMessageBox.warning(self, "警告", "请完善航班信息后再提交!") class handoverFlightWidget(Ui_handoverFlight, QWidget): handoverFlight_signal = QtCore.pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.pushButton.clicked.connect(self.btn) self.user = None self.ipinfo = None self.selectedtime=None self.Allflight = {} except Exception: logger.error(traceback.format_exc()) def severpostData_nomeassge(self, postname, data: dict): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) data = json.dumps(data) res = requests.post(url=ip, data=data, timeout=30).json() return res except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) def btn(self): try: list = [] sts=[] list_cz = [] sts_cz = [] rows=[] for row in range(self.tableWidgetFlight.rowCount()): item = self.tableWidgetFlight.item(row, 0) if item and item.checkState() == Qt.CheckState.Checked and self.tableWidgetFlight.item(row, 8).text() != "": name = self.tableWidgetFlight.item(row, 10).text() rows.append(row) list.append(name) sts.append("1") data = {"taskid": ','.join(list), "sts": ','.join(sts)} if list !=[]: res = self.severpostData_nomeassge("handoverflight", data=data)["返回值"] if res == "ok" : QMessageBox.warning(self, "提示", f"交班提交成功!请核对附加消息交班航班!") for ii in rows: try: if "【交班航班】" not in self.tableWidgetFlight.item(ii, 11).text() and self.tableWidgetFlight.item(ii, 8).text() != "": flightid = self.tableWidgetFlight.item(ii, 12).text() flighttype = self.tableWidgetFlight.item(ii, 7).text() fjxx = "【交班航班】" + self.tableWidgetFlight.item(ii, 11).text() ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(fjxx) + "%s/" % str(flightid) + "A/%s/" % str(flighttype) + "%s" % str(self.selectedtime) try: requests.get(url=ip, timeout=30).json() self.handoverFlight_signal.emit("1") except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) except: logger.error(traceback.format_exc()) self.close() else: QMessageBox.warning(self, "警告", "航班交接失败,请重新尝试") else: QMessageBox.warning(self, "警告", "请选择要交接的航班!未进行派工的航班无法进行交接班") except Exception: print(traceback.format_exc()) logger.error(traceback.format_exc()) def start(self): try: self.show() peopleLabel = ["选择","序号", "机号","航班号", "预达", "计飞", "机位", "类型", "维修人员","放行", "任务编号","附加消息","航班编号" ] tableWidgetDispalydata = self.Allflight self.tableWidgetFlight.setColumnCount(len(peopleLabel)) self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel) self.tableWidgetFlight.verticalHeader().setVisible(False) self.tableWidgetFlight.setRowCount(len(tableWidgetDispalydata.keys())) i = 0 for row in tableWidgetDispalydata.keys(): if ("3U" in tableWidgetDispalydata[row][str(4)] or "CSC" in tableWidgetDispalydata[row][str(4)]) and \ tableWidgetDispalydata[row][str(24)] != "" and "【交班航班】" not in tableWidgetDispalydata[row][str(30)]: for colNum in range(0, 13): if colNum == 0: checkbox = QTableWidgetItem() checkbox.setCheckState(Qt.CheckState.Unchecked) self.tableWidgetFlight.setItem(i, colNum, checkbox) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 1: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(i+1))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 2: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(1)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 3: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(4)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 4: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(6)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 5: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(7)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 6: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(8)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 7: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(9)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 8: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(24)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 9: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(25)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 10: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(26)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 12: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(26)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) elif colNum == 11: self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(30)]))) self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter) if (i+1)%2 ==0: self.tableWidgetFlight.item(i, colNum).setBackground(QColor('#DDE2E3')) i += 1 self.tableWidgetFlight.resizeColumnsToContents() self.tableWidgetFlight.setColumnHidden(12, True) self.tableWidgetFlight.setColumnHidden(10, True) except Exception: #print(traceback.format_exc()) logger.error(traceback.format_exc()) class addUserWidget(Ui_FormAdduser, QWidget): def __init__(self, parent=None): super().__init__(parent) try: self.setupUi(self) self.pushButton.clicked.connect(self.btn) self.comboBox.addItems(['1', '2', '3',"4"]) self.comboBox.setEditable(True) self.filterModel = QSortFilterProxyModel(self.comboBox) self.filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.filterModel.setSourceModel(self.comboBox.model()) self.completer = QCompleter(self.filterModel, self.comboBox) self.completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion) self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive) self.comboBox.setCompleter(self.completer) self.comboBox.lineEdit().textEdited.connect(self.filterModel.setFilterFixedString) self.completer.activated.connect(self.on_completer_activated) self.ipinfo = None self.user = None self.authority=None except Exception: logger.error(traceback.format_exc()) def severpost_meassge(self, postname, data: dict): try: ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) data = json.dumps(data) res = requests.post(url=ip, data=data, timeout=30).json() return res except Exception: QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!") logger.error(traceback.format_exc()) return 'fail' def on_completer_activated(self, text): try: if text: index = self.comboBox.findText(text) self.comboBox.setCurrentIndex(index) except Exception: logger.error(traceback.format_exc()) def btn(self): try: if int(self.authority) <= 1: username = self.lineEditUser.text() password = self.lineEditPWD.text() authority = self.comboBox.currentText() people = self.lineEditPeople.text() if username != "" and password != "": # print('用户名:{},密码:{},权限:{},使用人:{}'.format(username,password,authority,people)) dataDic = { '登录名': username, '密码': password, '权限': authority, '使用人': people } res = self.severpost_meassge("addUserWidget", dataDic) if res["返回值"] == "1": self.close() self.show_message("提示", "用户创建成功!!!") else: self.show_message("警告", "此用户已存在") else: self.show_message("警告", "用户名或密码不能为空!!!") else: self.close() self.show_message("警告", "权限不够,请联系管理员!!!") except Exception: logger.error(traceback.format_exc()) def show_message(self, type, str): try: QMessageBox.warning(self, "%s" % type, "%s" % str) except Exception: logger.error(traceback.format_exc()) class findServerWidget(Ui_FormLink, QWidget): selectServer_signal = QtCore.pyqtSignal(str) def __init__(self, parent=None): super().__init__(parent) try: self.threadpool = QThreadPool() self.setupUi(self) self.serverList = [] self.tableWidget.setColumnCount(2) self.tableWidget.setHorizontalHeaderLabels(['服务器地址', '状态']) self.threadWork_findServer() self.tableWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers) self.tableWidget.cellDoubleClicked.connect(self.selectServer) self.pushButton_manset.clicked.connect(self.setipinfo) except Exception: logger.error(traceback.format_exc()) def setipinfo(self): try: self.ipinfo = "" if os.path.exists("server.code") is True: read_path = os.getcwd() + "\\server.code" with open(read_path, "r", encoding="utf-8") as f2: rember_2 = f2.read() if ';' in rember_2: self.ipinfo = rember_2.split(';')[0] self.ipinfo1 = rember_2.split(':')[0] ip = "http://" + str(self.ipinfo) + "/static/linktest" try: res = requests.get(url=ip, timeout=30) self.selectServer_signal.emit(self.ipinfo1) if res.text == "ok": QMessageBox.warning(self, "提示", "服务器人工配置成功!") else: QMessageBox.warning(self, "提示", "服务器人工配置失败,请检查配置文件或联系管理员检查服务器!") except Exception: QMessageBox.warning(self, "提示", "服务器人工配置失败,请联系管理员检查服务器!") logger.error(traceback.format_exc()) else: QMessageBox.warning(self, "提示", "服务器人工配置失败,请检查配置文件或联系管理员检查服务器!") else: QMessageBox.warning(self, "提示", "服务器人工配置失败,系统缺少配置文件!") except Exception: logger.error(traceback.format_exc()) def setipinfo2(self): try: self.ipinfo = "" if os.path.exists("server.code") is True: read_path = os.getcwd() + "\\server.code" with open(read_path, "r", encoding="utf-8") as f2: rember_2 = f2.read() if ';' in rember_2: self.ipinfo = rember_2.split(';')[0] self.ipinfo1 = rember_2.split(':')[0] ip = "http://" + str(self.ipinfo) + "/static/linktest" try: res = requests.get(url=ip, timeout=30) self.selectServer_signal.emit(self.ipinfo1) if res.text == "ok": QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功!") else: QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功,服务器连接失败,请检查配置文件或联系管理员检查服务器!") except Exception: QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功,服务器连接失败,请检查配置文件或联系管理员检查服务器!") logger.error(traceback.format_exc()) else: QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置失败,请检查配置文件或联系管理员检查服务器!") else: QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置失败,系统缺少配置文件!") except Exception: logger.error(traceback.format_exc()) def selectServer(self, row, col): # print(self.tableWidget.item(row,col).text()) try: self.selectServer_signal.emit(self.tableWidget.item(row, 0).text()) except Exception: logger.error(traceback.format_exc()) def threadWork_findServer(self): try: worker = Worker2(self.fn) worker.signals.result.connect(self.print_out_result) self.threadpool.start(worker) except Exception: logger.error(traceback.format_exc()) def fn(self): try: serverList = serverFind.findServer() return serverList except Exception: logger.error(traceback.format_exc()) def print_out_result(self, dlist): try: self.serverList = dlist # print(self.serverList) if self.serverList == [] or self.serverList ==None: self.setipinfo2() else: self.tableWidget.setRowCount(len(self.serverList)) rowNum = 0 for row in self.serverList: colNum = 0 for col in row: self.tableWidget.setItem(rowNum, colNum, QTableWidgetItem(col)) colNum += 1 rowNum += 1 except Exception: logger.error(traceback.format_exc()) class mapWebWidget(Ui_FormMapWeb, QWidget): def __init__(self): super().__init__() self.setupUi(self) # self.webEngineView.load(QUrl('http://192.168.2.22:6010/')) class Worker2(QRunnable): def __init__(self, fn, *args, **kwargs): super(Worker2, self).__init__() # Store constructor arguments (re-used for processing) self.fn = fn self.args = args self.kwargs = kwargs self.signals = WorkerSignals() @pyqtSlot() def run(self): try: result = self.fn( *self.args, **self.kwargs ) except Exception: traceback.print_exc() exctype, value = sys.exc_info()[:2] self.signals.error.emit((exctype, value, traceback.format_exc())) else: self.signals.result.emit(result) # Return the result of the processing finally: self.signals.finished.emit() class WorkerSignals(QObject): finished = pyqtSignal() error = pyqtSignal(tuple) result = pyqtSignal(object) if __name__ == '__main__': app = QApplication(sys.argv) mw = MainWidget() sys.exit(app.exec())