import datetime import socket import sys import time import hmac import traceback import hashlib import base64 import urllib.parse 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 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())