QTMain_old.py 330 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387
  1. import datetime
  2. import socket
  3. import sys
  4. import time
  5. import hmac
  6. import traceback
  7. import hashlib
  8. import base64
  9. import urllib.parse
  10. from PyQt6 import QtCore
  11. from PyQt6.QtCore import Qt, QThread, pyqtSignal, QRunnable, QObject, pyqtSlot, QThreadPool, QTimer, \
  12. QSortFilterProxyModel
  13. from PyQt6.QtGui import QColor, QFont,QPalette
  14. from PyQt6.QtTextToSpeech import QTextToSpeech
  15. from PyQt6.QtWidgets import QApplication, QWidget, QMessageBox, QPushButton, QTableWidgetItem, QFileDialog, \
  16. QAbstractItemView, \
  17. QCompleter, QMenu
  18. import requests
  19. import os
  20. import json
  21. from openpyxl import Workbook
  22. from UI.main2 import Ui_Form
  23. from Functions import utils
  24. from UI.checkCalllist import Ui_checkCalllist
  25. from UI.login import Ui_login
  26. from UI.addloaclip import Ui_Addloacalip
  27. from UI.checkLoadSingal import Ui_checkLoadSingal
  28. from UI.searchpeople_get import Ui_searchpeople_get
  29. from UI.amroLogin import Ui_amroLogin
  30. from UI.amroLogin2 import Ui_amroLogin2
  31. from UI.adduser import Ui_FormAdduser
  32. from UI.handoverFlight import Ui_handoverFlight
  33. from UI.AddPG import Ui_FormAddPG
  34. from UI.addFlight import Ui_FormAddFlight
  35. from UI.findserver import Ui_FormLink
  36. from UI.changePassword import Ui_FormChangePssword
  37. from UI.checkLogs import Ui_checkLogs
  38. from UI.changeAuth import Ui_changeAuth
  39. from UI.mapWeb import Ui_FormMapWeb
  40. from Functions import serverFind
  41. from Functions import ipcall
  42. import logging
  43. import logging.handlers
  44. from logging.handlers import RotatingFileHandler
  45. logger = logging.getLogger()
  46. logger.setLevel(logging.INFO) # Log等级总开关
  47. # 第二步,创建一个handler,用于写入日志文件
  48. rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time()))
  49. log_name = 'D:/flightinfo/logs/BUGLOGS_qtmain.log'
  50. logfile = log_name
  51. fh = RotatingFileHandler(logfile, mode='a', maxBytes=10485760, backupCount=1, encoding='utf-8')
  52. fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关
  53. # 第三步,定义handler的输出格式
  54. formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
  55. fh.setFormatter(formatter)
  56. # 第四步,将logger添加到handler里面
  57. logger.addHandler(fh)
  58. class setlocalip(QObject):
  59. localipupdate = pyqtSignal(str)
  60. def __init__(self, ip, thread):
  61. super().__init__()
  62. self.ip = ip
  63. self.thread = thread
  64. def run(self):
  65. # print("jjingruy1")
  66. try:
  67. if self.ip != None:
  68. try:
  69. localcalltry = ipcall.searchinfo()
  70. self.localtoken = localcalltry.start(self.ip)
  71. # print("本地测试print(self.localtoken)")
  72. # print(self.localtoken)
  73. except Exception:
  74. self.localtoken = None
  75. self.localtoken = None
  76. logger.error(traceback.format_exc())
  77. else:
  78. self.localtoken = None
  79. self.localipupdate.emit(self.localtoken)
  80. self.thread.quit()
  81. except Exception:
  82. logger.error(traceback.format_exc())
  83. self.thread.quit()
  84. class sortdisplaySever(QObject):
  85. sortupdate = pyqtSignal(str, dict, list, str, str)
  86. def __init__(self, name, ip, selectedtime, text, displayMode, selectedbc, displayselect, thread):
  87. super().__init__()
  88. self.funcName = name
  89. self.ipinfo = ip
  90. self.selectedtime = selectedtime
  91. self.text = text
  92. self.displayMode = displayMode
  93. self.selectedbc = selectedbc
  94. self.displayselect_mode = displayselect
  95. self.thread = thread
  96. nowDay = datetime.datetime.now().strftime("%Y%m%d")
  97. tomorr =(datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  98. yester =(datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  99. if self.selectedtime == nowDay:
  100. self.date="2"
  101. elif self.selectedtime == tomorr:
  102. self.date = "3"
  103. elif self.selectedtime == yester:
  104. self.date = "1"
  105. else:
  106. self.date = "4"
  107. def run(self):
  108. try:
  109. list = []
  110. if self.funcName == "sortTableWidgetDispaly":
  111. #print("1")
  112. self.sortTableWidgetDispaly()
  113. self.sortupdate.emit("sortTableWidgetDispaly", self.sorttableWidgetDispalydata, list, self.seversts,self.displayMode)
  114. self.sortupdate.emit("sortTableWidgetDispalyALL", self.DispalydataAll, list, self.seversts,self.displayMode)
  115. if self.funcName == "sortTableWidgetDispalyALL":
  116. #print("2")
  117. self.sortTableWidgetDispalyALL()
  118. self.sortupdate.emit("sortTableWidgetDispalyALL", self.sorttableWidgetDispalydata, list, self.seversts,self.displayMode)
  119. elif self.funcName == "SearchsortTableWidgetDispaly":
  120. #print("3")
  121. self.SearchsortTableWidgetDispaly()
  122. self.sortupdate.emit("SearchsortTableWidgetDispaly", self.sorttableWidgetDispalydata, list,self.seversts,self.displayMode)
  123. elif self.funcName == "sorttableWidgetDisplayChange":
  124. #print("4")
  125. self.sorttableWidgetDisplayChange()
  126. self.sortupdate.emit("sorttableWidgetDisplayChange", self.sortlogchange, list, self.seversts,self.displayMode)
  127. elif self.funcName == "sorttableWidgetPeopleDisplay":
  128. self.sorttableWidgetPeopleDisplay()
  129. self.sortupdate.emit("sorttableWidgetPeopleDisplay", self.sortdiplaylist, self.peopleOnJob,self.seversts, self.displayMode)
  130. elif self.funcName == "sorttableWidgetLOGDispaly":
  131. self.sorttableWidgetLOGDispaly()
  132. self.sortupdate.emit("sorttableWidgetLOGDispaly", self.sortlog, list, self.seversts, self.displayMode)
  133. elif self.funcName == "sorttableWidgetPHONEDispaly":
  134. self.sorttableWidgetPHONEDispaly()
  135. self.sortupdate.emit("sorttableWidgetPHONEDispaly", self.sorttableWidgetPHONEDispalydata, list,self.seversts, "")
  136. self.thread.quit()
  137. except Exception:
  138. logger.error(traceback.format_exc())
  139. self.thread.quit()
  140. def severpost_nomeassge(self, postname, postdata, postdata2, postdata3):
  141. try:
  142. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str(postdata3)
  143. try:
  144. res = requests.get(url=ip, timeout=30).json()
  145. self.seversts = "1"
  146. return res
  147. except Exception:
  148. logger.error(traceback.format_exc())
  149. logger.error("重大bug")
  150. logger.error(ip)
  151. self.seversts = "0"
  152. return []
  153. except Exception:
  154. logger.error(traceback.format_exc())
  155. def sorttableWidgetPHONEDispaly(self):
  156. try:
  157. sorttableWidgetPHONEDispalydataall = self.severpost_nomeassge("getphonelist", "", "", "")
  158. self.sorttableWidgetPHONEDispalydata = {}
  159. num = 0
  160. if sorttableWidgetPHONEDispalydataall != None:
  161. if self.text != "":
  162. for i in sorttableWidgetPHONEDispalydataall.keys():
  163. if str.lower(str(self.text)) in str(sorttableWidgetPHONEDispalydataall[i]):
  164. self.sorttableWidgetPHONEDispalydata[str(num)] = sorttableWidgetPHONEDispalydataall[i]
  165. num += 1
  166. else:
  167. self.sorttableWidgetPHONEDispalydata = sorttableWidgetPHONEDispalydataall
  168. except Exception:
  169. logger.error(traceback.format_exc())
  170. def sortTableWidgetDispaly(self):
  171. try:
  172. text = self.text
  173. Partdisplay = self.displayselect_mode # 不显示起飞航班
  174. # print(Partdisplay)
  175. tableWidgetDispalydataAll = {}
  176. if self.displayMode == "A" and (self.selectedbc == "0" or self.date=="4"):
  177. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,"/%s"%self.date,"")
  178. elif self.displayMode == "B"and (self.selectedbc == "0" or self.date=="4"):
  179. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,"/%s"%self.date,"")
  180. elif self.displayMode == "A" and self.selectedbc == "1":
  181. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead","/%s"%self.date,"","")
  182. elif self.displayMode == "B"and self.selectedbc == "1":
  183. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead2","/%s"%self.date,"","")
  184. self.DispalydataAll=tableWidgetDispalydataAll
  185. self.sorttableWidgetDispalydata = {}
  186. num = 0
  187. if tableWidgetDispalydataAll != None:
  188. if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0":
  189. # print(tableWidgetDispalydataAll)
  190. for i in tableWidgetDispalydataAll.keys():
  191. if str(text) in str(tableWidgetDispalydataAll[i]):
  192. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  193. num += 1
  194. elif text == "T1" and Partdisplay == "0":
  195. # print(tableWidgetDispalydataAll)
  196. for i in tableWidgetDispalydataAll.keys():
  197. # print(str(tableWidgetDispalydataAll[i]["8"]))
  198. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  199. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  200. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  201. num += 1
  202. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  203. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  204. num += 1
  205. elif text == "T2" and Partdisplay == "0":
  206. # print(tableWidgetDispalydataAll)
  207. for i in tableWidgetDispalydataAll.keys():
  208. # print(str(tableWidgetDispalydataAll[i]["8"]))
  209. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  210. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  211. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  212. num += 1
  213. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  214. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  215. num += 1
  216. elif text == "T2T6" and Partdisplay == "0":
  217. # print(tableWidgetDispalydataAll)
  218. for i in tableWidgetDispalydataAll.keys():
  219. # print(str(tableWidgetDispalydataAll[i]["8"]))
  220. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  221. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  222. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  223. num += 1
  224. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  225. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  226. num += 1
  227. elif text == "T1T6" and Partdisplay == "0":
  228. # print(tableWidgetDispalydataAll)
  229. for i in tableWidgetDispalydataAll.keys():
  230. # print(str(tableWidgetDispalydataAll[i]["8"]))
  231. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  232. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  233. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  234. num += 1
  235. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  236. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  237. num += 1
  238. elif text == "T6" and Partdisplay == "0":
  239. # print(tableWidgetDispalydataAll)
  240. for i in tableWidgetDispalydataAll.keys():
  241. # print(str(tableWidgetDispalydataAll[i]["8"]))
  242. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  243. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  244. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  245. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  246. num += 1
  247. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  248. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  249. num += 1
  250. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1":
  251. # print(tableWidgetDispalydataAll)
  252. for i in tableWidgetDispalydataAll.keys():
  253. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4':
  254. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  255. num += 1
  256. elif text == "T1" and Partdisplay == "1":
  257. # print(tableWidgetDispalydataAll)
  258. for i in tableWidgetDispalydataAll.keys():
  259. # print(str(tableWidgetDispalydataAll[i]["8"]))
  260. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  261. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  262. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  263. num += 1
  264. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  265. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  266. num += 1
  267. elif text == "T2" and Partdisplay == "1":
  268. # print(tableWidgetDispalydataAll)
  269. for i in tableWidgetDispalydataAll.keys():
  270. # print(str(tableWidgetDispalydataAll[i]["8"]))
  271. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  272. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  273. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  274. num += 1
  275. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  276. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  277. num += 1
  278. elif text == "T2T6" and Partdisplay == "1":
  279. # print(tableWidgetDispalydataAll)
  280. for i in tableWidgetDispalydataAll.keys():
  281. # print(str(tableWidgetDispalydataAll[i]["8"]))
  282. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  283. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  284. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  285. num += 1
  286. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  287. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  288. num += 1
  289. elif text == "T1T6" and Partdisplay == "1":
  290. # print(tableWidgetDispalydataAll)
  291. for i in tableWidgetDispalydataAll.keys():
  292. # print(str(tableWidgetDispalydataAll[i]["8"]))
  293. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  294. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  295. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  296. num += 1
  297. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  298. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  299. num += 1
  300. elif text == "T6" and Partdisplay == "1":
  301. # print(tableWidgetDispalydataAll)
  302. for i in tableWidgetDispalydataAll.keys():
  303. # print(str(tableWidgetDispalydataAll[i]["8"]))
  304. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  305. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  306. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  307. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  308. num += 1
  309. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  310. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  311. num += 1
  312. elif text == "" and Partdisplay == "1":
  313. # print(tableWidgetDispalydataAll)
  314. for i in tableWidgetDispalydataAll.keys():
  315. # print(tableWidgetDispalydataAll[i]["109"])
  316. if tableWidgetDispalydataAll[i]["109"] != '4':
  317. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  318. num += 1
  319. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3":
  320. # print(tableWidgetDispalydataAll)
  321. for i in tableWidgetDispalydataAll.keys():
  322. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1':
  323. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  324. num += 1
  325. elif text == "T1" and Partdisplay == "3":
  326. # print(tableWidgetDispalydataAll)
  327. for i in tableWidgetDispalydataAll.keys():
  328. # print(str(tableWidgetDispalydataAll[i]["8"]))
  329. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  330. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  331. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  332. num += 1
  333. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  334. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  335. num += 1
  336. elif text == "T2" and Partdisplay == "3":
  337. # print(tableWidgetDispalydataAll)
  338. for i in tableWidgetDispalydataAll.keys():
  339. # print(str(tableWidgetDispalydataAll[i]["8"]))
  340. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  341. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  342. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  343. num += 1
  344. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  345. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  346. num += 1
  347. elif text == "T2T6" and Partdisplay == "3":
  348. # print(tableWidgetDispalydataAll)
  349. for i in tableWidgetDispalydataAll.keys():
  350. # print(str(tableWidgetDispalydataAll[i]["8"]))
  351. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  352. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  353. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  354. num += 1
  355. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  356. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  357. num += 1
  358. elif text == "T1T6" and Partdisplay == "3":
  359. # print(tableWidgetDispalydataAll)
  360. for i in tableWidgetDispalydataAll.keys():
  361. # print(str(tableWidgetDispalydataAll[i]["8"]))
  362. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  363. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  364. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  365. num += 1
  366. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  367. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  368. num += 1
  369. elif text == "T6" and Partdisplay == "3":
  370. # print(tableWidgetDispalydataAll)
  371. for i in tableWidgetDispalydataAll.keys():
  372. # print(str(tableWidgetDispalydataAll[i]["8"]))
  373. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  374. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  375. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  376. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  377. num += 1
  378. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  379. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  380. num += 1
  381. elif text == "" and Partdisplay == "3":
  382. # print(tableWidgetDispalydataAll)
  383. for i in tableWidgetDispalydataAll.keys():
  384. # print(tableWidgetDispalydataAll[i]["109"])
  385. if tableWidgetDispalydataAll[i]["109"] == '1':
  386. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  387. num += 1
  388. else:
  389. self.sorttableWidgetDispalydata = tableWidgetDispalydataAll
  390. else:
  391. self.sorttableWidgetDispalydata = self.sortTableWidgetDispaly_bak()
  392. except Exception:
  393. logger.error(traceback.format_exc())
  394. def sortTableWidgetDispaly_bak(self):
  395. try:
  396. text = self.text
  397. Partdisplay = self.displayselect_mode # 不显示起飞航班
  398. # print(Partdisplay)
  399. tableWidgetDispalydataAll = {}
  400. if self.displayMode == "A" and (self.selectedbc == "0" or self.date == "4"):
  401. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,
  402. "/%s" % self.date, "")
  403. elif self.displayMode == "B" and (self.selectedbc == "0" or self.date == "4"):
  404. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,
  405. "/%s" % self.date, "")
  406. elif self.displayMode == "A" and self.selectedbc == "1":
  407. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead", "/%s" % self.date, "",
  408. "")
  409. elif self.displayMode == "B" and self.selectedbc == "1":
  410. tableWidgetDispalydataAll = self.severpost_nomeassge("tableWidgetDispalyRead2", "/%s" % self.date, "", "")
  411. self.DispalydataAll=tableWidgetDispalydataAll
  412. sorttableWidgetDispalydata = {}
  413. num = 0
  414. if tableWidgetDispalydataAll != None:
  415. if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0":
  416. # print(tableWidgetDispalydataAll)
  417. for i in tableWidgetDispalydataAll.keys():
  418. if str(text) in str(tableWidgetDispalydataAll[i]):
  419. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  420. num += 1
  421. elif text == "T1" and Partdisplay == "0":
  422. # print(tableWidgetDispalydataAll)
  423. for i in tableWidgetDispalydataAll.keys():
  424. # print(str(tableWidgetDispalydataAll[i]["8"]))
  425. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  426. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  427. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  428. num += 1
  429. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  430. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  431. num += 1
  432. elif text == "T2" and Partdisplay == "0":
  433. # print(tableWidgetDispalydataAll)
  434. for i in tableWidgetDispalydataAll.keys():
  435. # print(str(tableWidgetDispalydataAll[i]["8"]))
  436. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  437. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  438. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  439. num += 1
  440. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  441. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  442. num += 1
  443. elif text == "T2T6" and Partdisplay == "0":
  444. # print(tableWidgetDispalydataAll)
  445. for i in tableWidgetDispalydataAll.keys():
  446. # print(str(tableWidgetDispalydataAll[i]["8"]))
  447. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  448. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  449. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  450. num += 1
  451. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  452. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  453. num += 1
  454. elif text == "T1T6" and Partdisplay == "0":
  455. # print(tableWidgetDispalydataAll)
  456. for i in tableWidgetDispalydataAll.keys():
  457. # print(str(tableWidgetDispalydataAll[i]["8"]))
  458. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  459. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  460. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  461. num += 1
  462. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  463. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  464. num += 1
  465. elif text == "T6" and Partdisplay == "0":
  466. # print(tableWidgetDispalydataAll)
  467. for i in tableWidgetDispalydataAll.keys():
  468. # print(str(tableWidgetDispalydataAll[i]["8"]))
  469. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  470. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  471. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  472. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  473. num += 1
  474. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  475. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  476. num += 1
  477. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1":
  478. # print(tableWidgetDispalydataAll)
  479. for i in tableWidgetDispalydataAll.keys():
  480. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4':
  481. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  482. num += 1
  483. elif text == "T1" and Partdisplay == "1":
  484. # print(tableWidgetDispalydataAll)
  485. for i in tableWidgetDispalydataAll.keys():
  486. # print(str(tableWidgetDispalydataAll[i]["8"]))
  487. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  488. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  489. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  490. num += 1
  491. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  492. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  493. num += 1
  494. elif text == "T2" and Partdisplay == "1":
  495. # print(tableWidgetDispalydataAll)
  496. for i in tableWidgetDispalydataAll.keys():
  497. # print(str(tableWidgetDispalydataAll[i]["8"]))
  498. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  499. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  500. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  501. num += 1
  502. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  503. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  504. num += 1
  505. elif text == "T2T6" and Partdisplay == "1":
  506. # print(tableWidgetDispalydataAll)
  507. for i in tableWidgetDispalydataAll.keys():
  508. # print(str(tableWidgetDispalydataAll[i]["8"]))
  509. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  510. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  511. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  512. num += 1
  513. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  514. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  515. num += 1
  516. elif text == "T1T6" and Partdisplay == "1":
  517. # print(tableWidgetDispalydataAll)
  518. for i in tableWidgetDispalydataAll.keys():
  519. # print(str(tableWidgetDispalydataAll[i]["8"]))
  520. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  521. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  522. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  523. num += 1
  524. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  525. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  526. num += 1
  527. elif text == "T6" and Partdisplay == "1":
  528. # print(tableWidgetDispalydataAll)
  529. for i in tableWidgetDispalydataAll.keys():
  530. # print(str(tableWidgetDispalydataAll[i]["8"]))
  531. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  532. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  533. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  534. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  535. num += 1
  536. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  537. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  538. num += 1
  539. elif text == "" and Partdisplay == "1":
  540. # print(tableWidgetDispalydataAll)
  541. for i in tableWidgetDispalydataAll.keys():
  542. # print(tableWidgetDispalydataAll[i]["109"])
  543. if tableWidgetDispalydataAll[i]["109"] != '4':
  544. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  545. num += 1
  546. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3":
  547. # print(tableWidgetDispalydataAll)
  548. for i in tableWidgetDispalydataAll.keys():
  549. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1':
  550. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  551. num += 1
  552. elif text == "T1" and Partdisplay == "3":
  553. # print(tableWidgetDispalydataAll)
  554. for i in tableWidgetDispalydataAll.keys():
  555. # print(str(tableWidgetDispalydataAll[i]["8"]))
  556. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  557. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  558. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  559. num += 1
  560. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  561. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  562. num += 1
  563. elif text == "T2" and Partdisplay == "3":
  564. # print(tableWidgetDispalydataAll)
  565. for i in tableWidgetDispalydataAll.keys():
  566. # print(str(tableWidgetDispalydataAll[i]["8"]))
  567. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  568. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  569. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  570. num += 1
  571. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  572. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  573. num += 1
  574. elif text == "T2T6" and Partdisplay == "3":
  575. # print(tableWidgetDispalydataAll)
  576. for i in tableWidgetDispalydataAll.keys():
  577. # print(str(tableWidgetDispalydataAll[i]["8"]))
  578. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  579. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  580. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  581. num += 1
  582. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  583. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  584. num += 1
  585. elif text == "T1T6" and Partdisplay == "3":
  586. # print(tableWidgetDispalydataAll)
  587. for i in tableWidgetDispalydataAll.keys():
  588. # print(str(tableWidgetDispalydataAll[i]["8"]))
  589. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  590. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  591. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  592. num += 1
  593. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  594. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  595. num += 1
  596. elif text == "T6" and Partdisplay == "3":
  597. # print(tableWidgetDispalydataAll)
  598. for i in tableWidgetDispalydataAll.keys():
  599. # print(str(tableWidgetDispalydataAll[i]["8"]))
  600. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  601. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  602. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  603. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  604. num += 1
  605. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  606. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  607. num += 1
  608. elif text == "" and Partdisplay == "3":
  609. # print(tableWidgetDispalydataAll)
  610. for i in tableWidgetDispalydataAll.keys():
  611. # print(tableWidgetDispalydataAll[i]["109"])
  612. if tableWidgetDispalydataAll[i]["109"] == '1':
  613. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  614. num += 1
  615. else:
  616. sorttableWidgetDispalydata = tableWidgetDispalydataAll
  617. return sorttableWidgetDispalydata
  618. except Exception:
  619. logger.error(traceback.format_exc())
  620. def sortTableWidgetDispalyALL(self):
  621. try:
  622. if self.displayMode == "A" and (self.selectedbc == "0" or self.date=="4"):
  623. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispaly", "/%s" % self.selectedtime,"/%s"%self.date,"")
  624. elif self.displayMode == "B"and (self.selectedbc == "0" or self.date=="4"):
  625. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispaly2", "/%s" % self.selectedtime,"/%s"%self.date,"")
  626. elif self.displayMode == "A" and self.selectedbc == "1":
  627. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispalyRead","/%s"%self.date,"","")
  628. elif self.displayMode == "B"and self.selectedbc == "1":
  629. self.sorttableWidgetDispalydata = self.severpost_nomeassge("tableWidgetDispalyRead2","/%s"%self.date,"","")
  630. except Exception:
  631. logger.error(traceback.format_exc())
  632. def SearchsortTableWidgetDispaly(self):
  633. try:
  634. text = self.text
  635. self.seversts = "1"
  636. Partdisplay = self.displayselect_mode # 不显示起飞航班
  637. # print(Partdisplay)
  638. tableWidgetDispalydataAll = self.selectedbc
  639. self.sorttableWidgetDispalydata = {}
  640. num = 0
  641. if tableWidgetDispalydataAll != None:
  642. if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6"and Partdisplay == "0":
  643. # print(tableWidgetDispalydataAll)
  644. for i in tableWidgetDispalydataAll.keys():
  645. if str(text) in str(tableWidgetDispalydataAll[i]):
  646. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  647. num += 1
  648. elif text == "T1" and Partdisplay == "0":
  649. # print(tableWidgetDispalydataAll)
  650. for i in tableWidgetDispalydataAll.keys():
  651. # print(str(tableWidgetDispalydataAll[i]["8"]))
  652. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  653. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  654. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  655. num += 1
  656. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  657. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  658. num += 1
  659. elif text == "T2" and Partdisplay == "0":
  660. # print(tableWidgetDispalydataAll)
  661. for i in tableWidgetDispalydataAll.keys():
  662. # print(str(tableWidgetDispalydataAll[i]["8"]))
  663. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  664. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  665. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  666. num += 1
  667. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  668. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  669. num += 1
  670. elif text == "T2T6" and Partdisplay == "0":
  671. # print(tableWidgetDispalydataAll)
  672. for i in tableWidgetDispalydataAll.keys():
  673. # print(str(tableWidgetDispalydataAll[i]["8"]))
  674. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  675. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  676. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  677. num += 1
  678. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  679. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  680. num += 1
  681. elif text == "T1T6" and Partdisplay == "0":
  682. # print(tableWidgetDispalydataAll)
  683. for i in tableWidgetDispalydataAll.keys():
  684. # print(str(tableWidgetDispalydataAll[i]["8"]))
  685. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  686. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  687. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  688. num += 1
  689. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  690. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  691. num += 1
  692. elif text == "T6" and Partdisplay == "0":
  693. # print(tableWidgetDispalydataAll)
  694. for i in tableWidgetDispalydataAll.keys():
  695. # print(str(tableWidgetDispalydataAll[i]["8"]))
  696. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  697. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  698. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  699. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  700. num += 1
  701. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  702. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  703. num += 1
  704. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1":
  705. # print(tableWidgetDispalydataAll)
  706. for i in tableWidgetDispalydataAll.keys():
  707. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4':
  708. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  709. num += 1
  710. elif text == "T1" and Partdisplay == "1":
  711. # print(tableWidgetDispalydataAll)
  712. for i in tableWidgetDispalydataAll.keys():
  713. # print(str(tableWidgetDispalydataAll[i]["8"]))
  714. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  715. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  716. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  717. num += 1
  718. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  719. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  720. num += 1
  721. elif text == "T2" and Partdisplay == "1":
  722. # print(tableWidgetDispalydataAll)
  723. for i in tableWidgetDispalydataAll.keys():
  724. # print(str(tableWidgetDispalydataAll[i]["8"]))
  725. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  726. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  727. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  728. num += 1
  729. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  730. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  731. num += 1
  732. elif text == "T2T6" and Partdisplay == "1":
  733. # print(tableWidgetDispalydataAll)
  734. for i in tableWidgetDispalydataAll.keys():
  735. # print(str(tableWidgetDispalydataAll[i]["8"]))
  736. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  737. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  738. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  739. num += 1
  740. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  741. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  742. num += 1
  743. elif text == "T1T6" and Partdisplay == "1":
  744. # print(tableWidgetDispalydataAll)
  745. for i in tableWidgetDispalydataAll.keys():
  746. # print(str(tableWidgetDispalydataAll[i]["8"]))
  747. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  748. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  749. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  750. num += 1
  751. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  752. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  753. num += 1
  754. elif text == "T6" and Partdisplay == "1":
  755. # print(tableWidgetDispalydataAll)
  756. for i in tableWidgetDispalydataAll.keys():
  757. # print(str(tableWidgetDispalydataAll[i]["8"]))
  758. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  759. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  760. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  761. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  762. num += 1
  763. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  764. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  765. num += 1
  766. elif text == "" and Partdisplay == "1":
  767. # print(tableWidgetDispalydataAll)
  768. for i in tableWidgetDispalydataAll.keys():
  769. # print(tableWidgetDispalydataAll[i]["109"])
  770. if tableWidgetDispalydataAll[i]["109"] != '4':
  771. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  772. num += 1
  773. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "3":
  774. # print(tableWidgetDispalydataAll)
  775. for i in tableWidgetDispalydataAll.keys():
  776. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1':
  777. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  778. num += 1
  779. elif text == "T1" and Partdisplay == "3":
  780. # print(tableWidgetDispalydataAll)
  781. for i in tableWidgetDispalydataAll.keys():
  782. # print(str(tableWidgetDispalydataAll[i]["8"]))
  783. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  784. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  785. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  786. num += 1
  787. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  788. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  789. num += 1
  790. elif text == "T2" and Partdisplay == "3":
  791. # print(tableWidgetDispalydataAll)
  792. for i in tableWidgetDispalydataAll.keys():
  793. # print(str(tableWidgetDispalydataAll[i]["8"]))
  794. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  795. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  796. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  797. num += 1
  798. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  799. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  800. num += 1
  801. elif text == "T2T6" and Partdisplay == "3":
  802. # print(tableWidgetDispalydataAll)
  803. for i in tableWidgetDispalydataAll.keys():
  804. # print(str(tableWidgetDispalydataAll[i]["8"]))
  805. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  806. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  807. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  808. num += 1
  809. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  810. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  811. num += 1
  812. elif text == "T1T6" and Partdisplay == "3":
  813. # print(tableWidgetDispalydataAll)
  814. for i in tableWidgetDispalydataAll.keys():
  815. # print(str(tableWidgetDispalydataAll[i]["8"]))
  816. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  817. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  818. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  819. num += 1
  820. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  821. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  822. num += 1
  823. elif text == "T6" and Partdisplay == "3":
  824. # print(tableWidgetDispalydataAll)
  825. for i in tableWidgetDispalydataAll.keys():
  826. # print(str(tableWidgetDispalydataAll[i]["8"]))
  827. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  828. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  829. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  830. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  831. num += 1
  832. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  833. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  834. num += 1
  835. elif text == "" and Partdisplay == "3":
  836. # print(tableWidgetDispalydataAll)
  837. for i in tableWidgetDispalydataAll.keys():
  838. # print(tableWidgetDispalydataAll[i]["109"])
  839. if tableWidgetDispalydataAll[i]["109"] == '1':
  840. self.sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  841. num += 1
  842. else:
  843. self.sorttableWidgetDispalydata = tableWidgetDispalydataAll
  844. else:
  845. self.sorttableWidgetDispalydata = self.SearchsortTableWidgetDispaly_bak()
  846. except Exception:
  847. logger.error(traceback.format_exc())
  848. def SearchsortTableWidgetDispaly_bak(self):
  849. try:
  850. text = self.text
  851. self.seversts = "1"
  852. Partdisplay = self.displayselect_mode # 不显示起飞航班
  853. # print(Partdisplay)
  854. tableWidgetDispalydataAll = self.selectedbc
  855. sorttableWidgetDispalydata = {}
  856. num = 0
  857. if tableWidgetDispalydataAll != None:
  858. if text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "0":
  859. # print(tableWidgetDispalydataAll)
  860. for i in tableWidgetDispalydataAll.keys():
  861. if str(text) in str(tableWidgetDispalydataAll[i]):
  862. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  863. num += 1
  864. elif text == "T1" and Partdisplay == "0":
  865. # print(tableWidgetDispalydataAll)
  866. for i in tableWidgetDispalydataAll.keys():
  867. # print(str(tableWidgetDispalydataAll[i]["8"]))
  868. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  869. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  870. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  871. num += 1
  872. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  873. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  874. num += 1
  875. elif text == "T2" and Partdisplay == "0":
  876. # print(tableWidgetDispalydataAll)
  877. for i in tableWidgetDispalydataAll.keys():
  878. # print(str(tableWidgetDispalydataAll[i]["8"]))
  879. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  880. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  881. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  882. num += 1
  883. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  884. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  885. num += 1
  886. elif text == "T2T6" and Partdisplay == "0":
  887. # print(tableWidgetDispalydataAll)
  888. for i in tableWidgetDispalydataAll.keys():
  889. # print(str(tableWidgetDispalydataAll[i]["8"]))
  890. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  891. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  892. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  893. num += 1
  894. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  895. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  896. num += 1
  897. elif text == "T1T6" and Partdisplay == "0":
  898. # print(tableWidgetDispalydataAll)
  899. for i in tableWidgetDispalydataAll.keys():
  900. # print(str(tableWidgetDispalydataAll[i]["8"]))
  901. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  902. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  903. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  904. num += 1
  905. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  906. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  907. num += 1
  908. elif text == "T6" and Partdisplay == "0":
  909. # print(tableWidgetDispalydataAll)
  910. for i in tableWidgetDispalydataAll.keys():
  911. # print(str(tableWidgetDispalydataAll[i]["8"]))
  912. if str(tableWidgetDispalydataAll[i]["8"]) != "":
  913. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  914. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  915. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  916. num += 1
  917. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  918. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  919. num += 1
  920. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6" and Partdisplay == "1":
  921. # print(tableWidgetDispalydataAll)
  922. for i in tableWidgetDispalydataAll.keys():
  923. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] != '4':
  924. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  925. num += 1
  926. elif text == "T1" and Partdisplay == "1":
  927. # print(tableWidgetDispalydataAll)
  928. for i in tableWidgetDispalydataAll.keys():
  929. # print(str(tableWidgetDispalydataAll[i]["8"]))
  930. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  931. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  932. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  933. num += 1
  934. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  935. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  936. num += 1
  937. elif text == "T2" and Partdisplay == "1":
  938. # print(tableWidgetDispalydataAll)
  939. for i in tableWidgetDispalydataAll.keys():
  940. # print(str(tableWidgetDispalydataAll[i]["8"]))
  941. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  942. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  943. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  944. num += 1
  945. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  946. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  947. num += 1
  948. elif text == "T2T6" and Partdisplay == "1":
  949. # print(tableWidgetDispalydataAll)
  950. for i in tableWidgetDispalydataAll.keys():
  951. # print(str(tableWidgetDispalydataAll[i]["8"]))
  952. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  953. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  954. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  955. num += 1
  956. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  957. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  958. num += 1
  959. elif text == "T1T6" and Partdisplay == "1":
  960. # print(tableWidgetDispalydataAll)
  961. for i in tableWidgetDispalydataAll.keys():
  962. # print(str(tableWidgetDispalydataAll[i]["8"]))
  963. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  964. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  965. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  966. num += 1
  967. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  968. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  969. num += 1
  970. elif text == "T6" and Partdisplay == "1":
  971. # print(tableWidgetDispalydataAll)
  972. for i in tableWidgetDispalydataAll.keys():
  973. # print(str(tableWidgetDispalydataAll[i]["8"]))
  974. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] != '4':
  975. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  976. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  977. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  978. num += 1
  979. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  980. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  981. num += 1
  982. elif text == "" and Partdisplay == "1":
  983. # print(tableWidgetDispalydataAll)
  984. for i in tableWidgetDispalydataAll.keys():
  985. # print(tableWidgetDispalydataAll[i]["109"])
  986. if tableWidgetDispalydataAll[i]["109"] != '4':
  987. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  988. num += 1
  989. elif text != "" and text != "T1" and text != "T2" and text != "T6" and text != "T2T6" and text != "T1T6"and Partdisplay == "3":
  990. # print(tableWidgetDispalydataAll)
  991. for i in tableWidgetDispalydataAll.keys():
  992. if str(text) in str(tableWidgetDispalydataAll[i]) and tableWidgetDispalydataAll[i]["109"] == '1':
  993. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  994. num += 1
  995. elif text == "T1" and Partdisplay == "3":
  996. # print(tableWidgetDispalydataAll)
  997. for i in tableWidgetDispalydataAll.keys():
  998. # print(str(tableWidgetDispalydataAll[i]["8"]))
  999. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  1000. if str(tableWidgetDispalydataAll[i]["8"])[0] == "1":
  1001. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1002. num += 1
  1003. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  1004. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1005. num += 1
  1006. elif text == "T2" and Partdisplay == "3":
  1007. # print(tableWidgetDispalydataAll)
  1008. for i in tableWidgetDispalydataAll.keys():
  1009. # print(str(tableWidgetDispalydataAll[i]["8"]))
  1010. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  1011. if str(tableWidgetDispalydataAll[i]["8"])[0] == "2":
  1012. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1013. num += 1
  1014. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  1015. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1016. num += 1
  1017. elif text == "T2T6" and Partdisplay == "3":
  1018. # print(tableWidgetDispalydataAll)
  1019. for i in tableWidgetDispalydataAll.keys():
  1020. # print(str(tableWidgetDispalydataAll[i]["8"]))
  1021. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  1022. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1":
  1023. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1024. num += 1
  1025. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  1026. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1027. num += 1
  1028. elif text == "T1T6" and Partdisplay == "3":
  1029. # print(tableWidgetDispalydataAll)
  1030. for i in tableWidgetDispalydataAll.keys():
  1031. # print(str(tableWidgetDispalydataAll[i]["8"]))
  1032. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  1033. if str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  1034. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1035. num += 1
  1036. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  1037. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1038. num += 1
  1039. elif text == "T6" and Partdisplay == "3":
  1040. # print(tableWidgetDispalydataAll)
  1041. for i in tableWidgetDispalydataAll.keys():
  1042. # print(str(tableWidgetDispalydataAll[i]["8"]))
  1043. if str(tableWidgetDispalydataAll[i]["8"]) != "" and tableWidgetDispalydataAll[i]["109"] == '1':
  1044. if str(tableWidgetDispalydataAll[i]["8"])[0] != "1" and \
  1045. str(tableWidgetDispalydataAll[i]["8"])[0] != "2":
  1046. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1047. num += 1
  1048. elif str(tableWidgetDispalydataAll[i]["8"]) == "" and str(tableWidgetDispalydataAll[i]["109"]) == "1":
  1049. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1050. num += 1
  1051. elif text == "" and Partdisplay == "3":
  1052. # print(tableWidgetDispalydataAll)
  1053. for i in tableWidgetDispalydataAll.keys():
  1054. # print(tableWidgetDispalydataAll[i]["109"])
  1055. if tableWidgetDispalydataAll[i]["109"] == '1':
  1056. sorttableWidgetDispalydata[str(num)] = tableWidgetDispalydataAll[i]
  1057. num += 1
  1058. else:
  1059. sorttableWidgetDispalydata = tableWidgetDispalydataAll
  1060. return sorttableWidgetDispalydata
  1061. except Exception:
  1062. logger.error(traceback.format_exc())
  1063. def sorttableWidgetDisplayChange(self):
  1064. try:
  1065. text = self.text
  1066. logall = self.severpost_nomeassge("tableWidgetDisplayChange", "/%s" % self.selectedtime, "", "")
  1067. self.sortlogchange = {}
  1068. num = 0
  1069. if text != "":
  1070. for i in logall.keys():
  1071. if str(text) in str(logall[i]):
  1072. self.sortlogchange[str(num)] = logall[i]
  1073. num += 1
  1074. else:
  1075. self.sortlogchange = logall
  1076. except Exception:
  1077. logger.error(traceback.format_exc())
  1078. def sorttableWidgetPeopleDisplay(self):
  1079. try:
  1080. if self.displayselect_mode == "" or self.displayselect_mode == []:
  1081. text = self.text
  1082. self.peopleOnJob = [""]
  1083. bc = self.selectedbc
  1084. nowDaystr = self.selectedtime # 选择的日期
  1085. diplaylistall = self.severpost_nomeassge("qtPeopleLoad", "/%s" % nowDaystr, "/%s" % bc, "")
  1086. self.sortdiplaylist = {}
  1087. num = 0
  1088. if text != "":
  1089. for i in diplaylistall.keys():
  1090. if str(text) in str(diplaylistall[i]):
  1091. self.sortdiplaylist[str(num)] = diplaylistall[i]
  1092. num += 1
  1093. else:
  1094. self.sortdiplaylist = diplaylistall
  1095. for i in self.sortdiplaylist.keys():
  1096. self.peopleOnJob.append(self.sortdiplaylist[i]["姓名"])
  1097. else:
  1098. names = self.displayselect_mode
  1099. text = self.text
  1100. self.peopleOnJob = [""]
  1101. bc = self.selectedbc
  1102. nowDaystr = self.selectedtime # 选择的日期
  1103. diplaylistall = self.severpost_nomeassge("qtPeopleLoad", "/%s" % nowDaystr, "/%s" % bc, "")
  1104. self.sortdiplaylist = {}
  1105. num = 0
  1106. if text != "":
  1107. for i in diplaylistall.keys():
  1108. if str(text) in str(diplaylistall[i]):
  1109. for name in names:
  1110. if str(name) in str(diplaylistall[i]):
  1111. self.sortdiplaylist[str(num)] = diplaylistall[i]
  1112. num += 1
  1113. else:
  1114. for i in diplaylistall.keys():
  1115. for name in names:
  1116. if str(name) in str(diplaylistall[i]):
  1117. self.sortdiplaylist[str(num)] = diplaylistall[i]
  1118. num += 1
  1119. for i in self.sortdiplaylist.keys():
  1120. self.peopleOnJob.append(self.sortdiplaylist[i]["姓名"])
  1121. except Exception:
  1122. logger.error(traceback.format_exc())
  1123. def sorttableWidgetLOGDispaly(self):
  1124. try:
  1125. text = self.text
  1126. logall = self.severpost_nomeassge("tableWidgetLOGDispaly", "/%s" % self.selectedtime, "", "")
  1127. self.sortlog = {}
  1128. num = 0
  1129. if text != "":
  1130. for i in logall.keys():
  1131. if str(text) in str(logall[i]):
  1132. self.sortlog[str(num)] = logall[i]
  1133. num += 1
  1134. else:
  1135. self.sortlog = logall
  1136. except Exception:
  1137. logger.error(traceback.format_exc())
  1138. class MainWidget(QWidget, Ui_Form):
  1139. AddPG_signal = QtCore.pyqtSignal(str, str, str)
  1140. LoginWidget_signal = QtCore.pyqtSignal(str)
  1141. addUserWidget_signal = QtCore.pyqtSignal(str)
  1142. def __init__(self):
  1143. super().__init__()
  1144. try:
  1145. self.displaySelectstr3 = "0"
  1146. self.displaySelect_mode = "1"
  1147. self.sum = 0
  1148. self.flightsum = 0
  1149. self.localip = None
  1150. self.severupdatests = "0"
  1151. self.localtoken = None
  1152. self.searchpeoplestr = []
  1153. self.sorttableWidgetDispalydata = {}
  1154. self.sorttableWidgetDispalydataALL = {}
  1155. self.sortlogchange = {}
  1156. self.sortlog = {}
  1157. self.sortdiplaylist = {}
  1158. self.peopleOnJob = [""]
  1159. self.loginSts = False
  1160. self.amroLoginSts = False
  1161. self.findSever = False
  1162. self.FLIGHTonChange_text = ""
  1163. self.changeonChange_text = ""
  1164. self.logonChange_text = ""
  1165. self.threadpool = QThreadPool()
  1166. self.doubleclickLock = 0
  1167. self.vin="328"
  1168. self.timelock=datetime.datetime.now()
  1169. self.doubleclickLockUpdate = 0
  1170. self.maintainAuthCheckSts = 1
  1171. self.peolpleonChange_text = ""
  1172. self.changeupdatetime=datetime.datetime.now()
  1173. self.setupUi(self)
  1174. # self.show()
  1175. self.loginWidget = LoginWidget()
  1176. self.findServerWidget = findServerWidget()
  1177. self.mapWebPage = mapWebWidget()
  1178. self.checkCalllist = checkCalllist()
  1179. self.checkCalllist.checkCalllist_signal.connect(self.checkCalllistclose)
  1180. # self.amroLoginWidget = amroLoginWidget()
  1181. if self.findSever:
  1182. pass
  1183. # if self.loginSts:
  1184. # self.show()
  1185. # else:
  1186. # self.loginWidget.show()
  1187. else:
  1188. self.findServerWidget.show()
  1189. self.findServerWidget.selectServer_signal.connect(self.setServer)
  1190. # self.amroLoginWidget.amroLogin_signal.connect(self.displayMain)
  1191. # data
  1192. except Exception:
  1193. logger.error(traceback.format_exc())
  1194. def setServer(self, *args):
  1195. try:
  1196. #self.ipinfo = args[0] + ':9527'
  1197. self.ipinfo = args[0] + ':7162'
  1198. self.clickrow = ""
  1199. self.clickcolumn = ""
  1200. # print(self.ipinfo)
  1201. self.findServerWidget.close()
  1202. self.loginWidget.ipinfo = self.ipinfo
  1203. self.loginWidget.login_signal.connect(self.displayMain)
  1204. self.loginWidget.login_user.connect(self.setUser)
  1205. checksts="ok"
  1206. ip = "http://" + str(self.ipinfo) + "/static/remoteCheck/16"
  1207. res=requests.get(url=ip, timeout=180).json()
  1208. if res["返回值"] != "ok":
  1209. checksts = res["返回值"]
  1210. if checksts == "ok":
  1211. if self.loginSts:
  1212. self.initDisplay()
  1213. self.show()
  1214. else:
  1215. self.loginWidget.show()
  1216. else:
  1217. QMessageBox.warning(self, "提示", "有新版更新!请前往NAS共享平台[机务一队/天府机务分部/31准备组无纸化办公/1航班助手]获取综合平台最新版本【最新版版本号:%s】!!"%checksts)
  1218. self.close()
  1219. except Exception:
  1220. logger.error(traceback.format_exc())
  1221. def remotelogin(self):
  1222. self.amrologin = amroLoginWidget()
  1223. self.amrologin.ipinfo = self.ipinfo
  1224. self.amrologin.show()
  1225. def remoteCookielogin(self):
  1226. self.amrologin = amroLoginWidget2()
  1227. self.amrologin.ipinfo = self.ipinfo
  1228. self.amrologin.show()
  1229. def setIpPhone(self):
  1230. try:
  1231. res=""
  1232. if os.path.exists("ipPhoneIp.code") is True:
  1233. read_path = os.getcwd() + "\\ipPhoneIp.code"
  1234. with open(read_path, "r", encoding="utf-8") as f2:
  1235. rember_2 = f2.read()
  1236. try:
  1237. ip = "http://" + str(self.ipinfo) + "/static/setIpPhone/%s" % rember_2
  1238. res=requests.get(url=ip, timeout=180).json()["返回值"]
  1239. except Exception:
  1240. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员!")
  1241. logger.error(traceback.format_exc())
  1242. if res =="ok":
  1243. QMessageBox.warning(self, "提示", "服务器IP电话配置成功,请测试后启用自动拨号!")
  1244. else:
  1245. QMessageBox.warning(self, "警告", "服务器IP电话配置失败,建议重启自动拨号电话后再次配置!")
  1246. else:
  1247. QMessageBox.warning(self, "警告", "程序下未找到指定配置文件!")
  1248. except Exception:
  1249. logger.error(traceback.format_exc())
  1250. def setLocalIpPhone(self):
  1251. try:
  1252. self.localipset = localipset()
  1253. self.localipset.localipset_signal.connect(self.setLocalIpPhoneip)
  1254. self.localipset.localip = self.localip
  1255. self.localipset.start()
  1256. except Exception:
  1257. logger.error(traceback.format_exc())
  1258. def setLocalIpPhoneip(self, *args):
  1259. try:
  1260. self.localip = args[0]
  1261. self.QThreadSortNow("setlocalip")
  1262. self.localipset.close()
  1263. # print(self.localip)
  1264. except Exception:
  1265. logger.error(traceback.format_exc())
  1266. def checkCalllistupdate(self):
  1267. try:
  1268. self.checkCalllist.ipinfo = self.ipinfo
  1269. self.checkCalllist.selectedtime = self.selectedtime
  1270. self.checkCalllist.start()
  1271. except Exception:
  1272. logger.error(traceback.format_exc())
  1273. def checkCalllistclose(self, *args):
  1274. try:
  1275. reply = args[0]
  1276. # print(reply)
  1277. if reply == "StandardButton.Yes":
  1278. self.checkCalllist.hide()
  1279. except Exception:
  1280. logger.error(traceback.format_exc())
  1281. def showcheckLogs(self):
  1282. try:
  1283. self.checkLogs = checkLogs()
  1284. self.checkLogs.ipinfo = self.ipinfo
  1285. self.checkLogs.start()
  1286. except Exception:
  1287. logger.error(traceback.format_exc())
  1288. def initDisplay(self):
  1289. try:
  1290. self.oldjsondata = None
  1291. self.cookie = None
  1292. self.fl = None
  1293. self.Auth=9999
  1294. self.tts = QTextToSpeech()
  1295. self.tts.setEngine('sapi')
  1296. nowDay = datetime.datetime.now()
  1297. nowDayStr = nowDay.strftime("%Y%m%d")
  1298. self.dateEdit.setDateTime(nowDay)
  1299. self.selectedtime = self.dateEdit.date().toString('yyyyMMdd')
  1300. # self.setipinfo()
  1301. self.initFlightDatabase()
  1302. # self.radioButtonDay.
  1303. phoneLabel = ["序号", "姓名", "部门", "电话","name"]
  1304. self.tableWidget_3.setColumnCount(len(phoneLabel))
  1305. self.tableWidget_3.verticalHeader().setVisible(False)
  1306. self.tableWidget_3.setHorizontalHeaderLabels(phoneLabel)
  1307. self.lineEdit_phonenum.textChanged.connect(self.changeonPhone)
  1308. self.tableWidget_3.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
  1309. self.tableWidget_3.customContextMenuRequested.connect(self.generateMenu3)
  1310. peopleLabel = ["序号", "姓名", "角色", "总量", "当前", "最后时间"]
  1311. self.tableWidgetPerson.setColumnCount(len(peopleLabel))
  1312. self.tableWidgetPerson.verticalHeader().setVisible(False)
  1313. self.tableWidgetPerson.setHorizontalHeaderLabels(peopleLabel)
  1314. self.tableWidgetPerson.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
  1315. self.tableWidgetPerson.customContextMenuRequested.connect(self.generateMenu2)
  1316. self.pushButton.clicked.connect(self.selectedtime_bc)
  1317. self.radioButtonDay.toggled.connect(self.selected_bc_A)
  1318. self.radioButtonNight.toggled.connect(self.selected_bc_B)
  1319. judge_bc = self.severpost_nomeassge("judge_bc", "", "", "", "")["bc"]
  1320. if judge_bc == "A":
  1321. self.radioButtonDay.setChecked(True)
  1322. elif judge_bc == "B":
  1323. self.radioButtonNight.setChecked(True)
  1324. self.AddPG = AddPGWidget()
  1325. self.AddPG_signal.connect(self.AddPG.getname)
  1326. self.pushButtonAddPG.clicked.connect(self.AddPG_widget)
  1327. self.displayMode = "A"
  1328. self.displayLabel = ["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达",
  1329. "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4",
  1330. "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包",
  1331. "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型",
  1332. "备","附加消息","备","备","备","备"]
  1333. '''
  1334. self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2",
  1335. "工3", "工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员",
  1336. "放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"]
  1337. '''
  1338. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  1339. self.tableWidgetFlight.verticalHeader().setVisible(False)
  1340. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  1341. self.tableWidgetFlight.cellDoubleClicked.connect(self.itemclick2)
  1342. self.tableWidgetFlight.cellClicked.connect(self.itemclick)
  1343. # self.lineEdit_phonenum.setText("")
  1344. # 允许单机右键响应
  1345. self.tableWidgetFlight.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
  1346. # 构建右键的点击事件
  1347. self.tableWidgetFlight.customContextMenuRequested.connect(self.generateMenu)
  1348. loglabel = ["序号", "待办信息", "操作", "编号", "航班编号", "提示内容"]
  1349. self.tableWidget.setColumnCount(len(loglabel))
  1350. self.tableWidget.verticalHeader().setVisible(False)
  1351. self.tableWidget.setHorizontalHeaderLabels(loglabel)
  1352. self.tableWidgetLOG.setColumnCount(2)
  1353. self.tableWidgetLOG.verticalHeader().setVisible(False)
  1354. self.tableWidgetLOG.setHorizontalHeaderLabels(["序号", '日志信息'])
  1355. self.checkBox.stateChanged.connect(self.displayChange)
  1356. self.checkBox.setChecked(True)
  1357. self.checkBox_2.stateChanged.connect(self.displaySelect2)
  1358. self.checkBox_2.setChecked(True)
  1359. self.checkBox_3.stateChanged.connect(self.displaySelect3)
  1360. self.checkBox_3.setChecked(False)
  1361. self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "")
  1362. self.pushbutton_searchflight.clicked.connect(self.FLIGHTonChangeman)
  1363. self.pushButton_searchpeople.clicked.connect(self.searchpeople)
  1364. self.pushButton_5.clicked.connect(self.disearchpeople)
  1365. self.pushButton_2.clicked.connect(self.call)
  1366. self.pushButton_3.clicked.connect(self.calldown)
  1367. self.pushButton_4.clicked.connect(self.relogin)
  1368. self.pushButton_searchchange.clicked.connect(self.changeonChange)
  1369. self.pushButton_searchlog.clicked.connect(self.logonChange)
  1370. self.lineEdit_flight.textEdited[str].connect(lambda: self.changebackground())
  1371. self.lineEdit_people.textEdited[str].connect(lambda: self.changebackground())
  1372. self.lineEdit_change.textEdited[str].connect(lambda: self.changebackground())
  1373. self.lineEdit_log.textEdited[str].connect(lambda: self.changebackground())
  1374. self.lineEdit_flight.textChanged.connect(self.FLIGHTonChange)
  1375. self.lineEdit_log.textChanged.connect(self.logonChange)
  1376. self.lineEdit_people.textChanged.connect(self.peolpleonChange)
  1377. self.lineEdit_change.textChanged.connect(self.changeonChange)
  1378. self.serchTimer = QTimer()
  1379. self.serchTimer.start(3 * 1000)
  1380. self.serchTimer.timeout.connect(self.QThreadSortTimer)
  1381. self.updatecheck()
  1382. self.taskAtuoCheck("1")
  1383. except Exception:
  1384. logger.error(traceback.format_exc())
  1385. def searchpeople(self):
  1386. try:
  1387. self.searchpeoplelist = searchpeople_get()
  1388. self.searchpeoplelist.searchpeoplelist_signal.connect(self.searchpeople_get)
  1389. self.searchpeoplelist.ipinfo = self.ipinfo
  1390. self.searchpeoplelist.selectedtime = self.selectedtime
  1391. self.searchpeoplelist.selectedbc = self.selectedbc
  1392. self.searchpeoplelist.Allpeoplelist = self.sortdiplaylist
  1393. # self.searchpeoplelist.show()
  1394. self.searchpeoplelist.start()
  1395. except Exception:
  1396. logger.error(traceback.format_exc())
  1397. def searchpeople_get(self, *args):
  1398. try:
  1399. # print(args)
  1400. self.searchpeoplestr = args[0]
  1401. self.QThreadSortNow("people")
  1402. except Exception:
  1403. logger.error(traceback.format_exc())
  1404. def disearchpeople(self):
  1405. try:
  1406. self.searchpeoplestr = []
  1407. self.QThreadSortNow("people")
  1408. except Exception:
  1409. logger.error(traceback.format_exc())
  1410. def call(self):
  1411. try:
  1412. if self.localtoken != None and self.localip != None:
  1413. callnum = self.lineEdit_phonenum.text()
  1414. try:
  1415. data = {"PHB_AutoDialNumber": callnum,
  1416. "ReturnPage": "/contacts.htm",
  1417. "AutoDialSubmit": "submit",
  1418. "PHB_AutoDialLine": "1"
  1419. }
  1420. header = {
  1421. "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",
  1422. "Connection": "keep-alive",
  1423. "Cookie": self.localtoken
  1424. }
  1425. requests.post(url="http://%s/contacts.htm" % self.localip, data=data, headers=header)
  1426. except Exception:
  1427. QMessageBox.warning(self, "提示", "IP电话连接失败,请重新配置或再登陆!")
  1428. logger.error(traceback.format_exc())
  1429. else:
  1430. QMessageBox.warning(self, "提示", "未配置本地IP电话,请先配置!")
  1431. except Exception:
  1432. logger.error(traceback.format_exc())
  1433. def calldown(self):
  1434. try:
  1435. if self.localtoken != None and self.localip != None:
  1436. try:
  1437. data1 = {"HangupSubmit": "submit"}
  1438. header1 = {
  1439. "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",
  1440. "Connection": "keep-alive",
  1441. "Cookie": self.localtoken,
  1442. }
  1443. requests.post(url="http://%s/contacts.htm" % self.localip, data=data1, headers=header1)
  1444. except Exception:
  1445. QMessageBox.warning(self, "提示", "IP电话连接失败,请重新配置或再登陆!")
  1446. logger.error(traceback.format_exc())
  1447. else:
  1448. QMessageBox.warning(self, "提示", "未配置本地IP电话,请先配置!")
  1449. except Exception:
  1450. logger.error(traceback.format_exc())
  1451. def relogin(self):
  1452. try:
  1453. if self.localip != None:
  1454. self.QThreadSortNow("setlocalip")
  1455. else:
  1456. QMessageBox.warning(self, "提示", "未配置本地IP电话,请先配置!")
  1457. except Exception:
  1458. logger.error(traceback.format_exc())
  1459. def changebackground(self):
  1460. try:
  1461. FLIGHTonChange_text = self.lineEdit_flight.text()
  1462. peolpleonChange_text = self.lineEdit_people.text()
  1463. changeonChange_text = self.lineEdit_change.text()
  1464. logonChange_text = self.lineEdit_log.text()
  1465. if FLIGHTonChange_text != "":
  1466. self.lineEdit_flight.setStyleSheet("background-color:yellow;color:red;font-weight:bold")
  1467. else:
  1468. self.lineEdit_flight.setStyleSheet("background-color:white")
  1469. if peolpleonChange_text != "":
  1470. self.lineEdit_people.setStyleSheet("background-color:yellow;color:red;font-weight:bold")
  1471. else:
  1472. self.lineEdit_people.setStyleSheet("background-color:white")
  1473. if changeonChange_text != "":
  1474. self.lineEdit_change.setStyleSheet("background-color:yellow;color:red;font-weight:bold")
  1475. else:
  1476. self.lineEdit_change.setStyleSheet("background-color:white")
  1477. if logonChange_text != "":
  1478. self.lineEdit_log.setStyleSheet("background-color:yellow;color:red;font-weight:bold")
  1479. else:
  1480. self.lineEdit_log.setStyleSheet("background-color:white")
  1481. except Exception:
  1482. logger.error(traceback.format_exc())
  1483. def changeonPhone(self):
  1484. try:
  1485. self.changeonPhone_text = self.lineEdit_phonenum.text()
  1486. self.QThreadSortNow("phone")
  1487. except Exception:
  1488. logger.error(traceback.format_exc())
  1489. def FLIGHTonChange(self):
  1490. try:
  1491. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  1492. # print(self.FLIGHTonChange_text)
  1493. self.QThreadSortNow("search")
  1494. except Exception:
  1495. logger.error(traceback.format_exc())
  1496. def FLIGHTonChangeman(self):
  1497. try:
  1498. now=datetime.datetime.now()- datetime.timedelta(seconds=5)
  1499. if now > self.timelock:
  1500. print("点击")
  1501. self.timelock=now + datetime.timedelta(seconds=5)
  1502. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  1503. # print(self.FLIGHTonChange_text)
  1504. #self.QThreadSortNow("ALL")
  1505. self.QThreadSortNow("main")
  1506. except Exception:
  1507. logger.error(traceback.format_exc())
  1508. def peolpleonChange(self):
  1509. try:
  1510. self.peolpleonChange_text = self.lineEdit_people.text()
  1511. self.QThreadSortNow("people")
  1512. except Exception:
  1513. logger.error(traceback.format_exc())
  1514. def changeonChange(self):
  1515. try:
  1516. self.changeonChange_text = self.lineEdit_change.text()
  1517. self.QThreadSortNow("change")
  1518. except Exception:
  1519. logger.error(traceback.format_exc())
  1520. def logonChange(self):
  1521. try:
  1522. self.logonChange_text = self.lineEdit_log.text()
  1523. self.QThreadSortNow("log")
  1524. except Exception:
  1525. logger.error(traceback.format_exc())
  1526. def taskAtuoCheck(self, time):
  1527. try:
  1528. ip = "http://" + str(self.ipinfo) + "/static/taskAtuoCheck/%s" % time
  1529. requests.get(url=ip, timeout=30).json()
  1530. # print("准备组任务自动更新") #客户端连接监测一次,12H监测一次
  1531. # logging.info("准备组任务自动更新")
  1532. except Exception:
  1533. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  1534. logger.error(traceback.format_exc())
  1535. def updatecheck(self):
  1536. try:
  1537. ip = "http://" + str(self.ipinfo) + "/static/updatecheck"
  1538. res = requests.get(url=ip, timeout=30).json()
  1539. if res["返回值"] == "1":
  1540. self.label_11.setText("正 常")
  1541. self.label_11.setStyleSheet(
  1542. "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold")
  1543. if self.severupdatests != "1":
  1544. self.severupdatests = "1"
  1545. try:
  1546. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "服务器状态变更为正常/" + "%s/" % str("系统上报") + "%s" % str(datetime.datetime.now())
  1547. requests.get(url=ip, timeout=30).json()
  1548. except Exception:
  1549. logger.error(traceback.format_exc())
  1550. QMessageBox.warning(self,"日志功能失效", "操作日志功能失效请联系管理员!")
  1551. elif res["返回值"] == "0":
  1552. self.label_11.setText("未更新")
  1553. self.label_11.setStyleSheet("background-color:yellow;red:white;border-radius:5px;padding:2px;font-weight:bold")
  1554. if self.severupdatests != "0":
  1555. self.severupdatests = "0"
  1556. try:
  1557. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "服务器状态变更为未更新,航班数据暂停刷新/" + "%s/" % str("系统上报") + "%s" % str(datetime.datetime.now())
  1558. requests.get(url=ip, timeout=30).json()
  1559. except Exception:
  1560. logger.error(traceback.format_exc())
  1561. QMessageBox.warning(self,"日志功能失效", "操作日志功能失效请联系管理员!")
  1562. QMessageBox.warning(self, "警告", "服务器状态变更为未更新,航班数据暂停刷新,请检查服务器端AMRO登录情况或联系管理员!")
  1563. except Exception:
  1564. self.label_11.setText("已断开")
  1565. self.label_11.setStyleSheet("background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
  1566. if self.severupdatests != "-":
  1567. self.severupdatests = "-"
  1568. try:
  1569. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "服务器状态变更为断开,航班数据暂停刷新/" + "%s/" % str("系统上报") + "%s" % str(datetime.datetime.now())
  1570. requests.get(url=ip, timeout=30).json()
  1571. except Exception:
  1572. logger.error(traceback.format_exc())
  1573. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  1574. self.restartServer(self.ipinfo.split(':')[0],9935)
  1575. logger.error(traceback.format_exc())
  1576. def initFlightDatabase(self):
  1577. try:
  1578. ip = "http://" + str(self.ipinfo) + "/static/initFlightDatabase/" + str(self.selectedtime)
  1579. requests.get(url=ip, timeout=30).json()
  1580. except Exception:
  1581. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  1582. logger.error(traceback.format_exc())
  1583. def severpost_nomeassge(self, postname, postdata, postdata2, postdata3, postdata4):
  1584. try:
  1585. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str(postdata3) + str(postdata4)
  1586. res = requests.get(url=ip, timeout=30).json()
  1587. return res
  1588. except Exception:
  1589. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  1590. logger.error(traceback.format_exc())
  1591. def severpostData_nomeassge(self, postname, data: dict):
  1592. try:
  1593. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname)
  1594. data = json.dumps(data)
  1595. res = requests.post(url=ip, data=data, timeout=120).json()
  1596. return res
  1597. except Exception:
  1598. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  1599. logger.error(traceback.format_exc())
  1600. def AddPG_widget(self):
  1601. if int(self.authority) != 3:
  1602. try:
  1603. self.AddPG.show()
  1604. self.AddPG_signal.emit(self.user, self.selectedtime, self.ipinfo)
  1605. except Exception:
  1606. logger.error(traceback.format_exc())
  1607. else:
  1608. self.show_message2("提示", "权限不够,请联系管理员!")
  1609. def selected_bc_A(self):
  1610. try:
  1611. bc = self.sender()
  1612. if bc.isChecked():
  1613. self.selectedbc = "A"
  1614. # print("白班")
  1615. self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "")
  1616. if self.loginSts == True:
  1617. self.QThreadSortNow("people")
  1618. except Exception:
  1619. logger.error(traceback.format_exc())
  1620. def selected_bc_B(self):
  1621. try:
  1622. bc = self.sender()
  1623. if bc.isChecked():
  1624. self.selectedbc = "B"
  1625. # print("夜班")
  1626. self.severpost_nomeassge("createWorkloadtablesFromPg", "/%s" % self.selectedtime, "", "", "")
  1627. if self.loginSts == True:
  1628. self.QThreadSortNow("people")
  1629. except Exception:
  1630. logger.error(traceback.format_exc())
  1631. def displaySelect2(self):
  1632. try:
  1633. displaySelect = self.sender()
  1634. if displaySelect.isChecked():
  1635. self.displaySelectstr2 = "1"
  1636. if self.loginSts == True:
  1637. if self.displaySelectstr3 == "1":
  1638. self.displaySelect_mode = "3"
  1639. else:
  1640. self.displaySelect_mode = "1"
  1641. #self.QThreadSortNow("main")
  1642. self.QThreadSortNow("search")
  1643. else:
  1644. self.displaySelectstr2 = "0"
  1645. self.displaySelect_mode = "0"
  1646. if self.loginSts == True:
  1647. if self.displaySelectstr3 == "1":
  1648. self.checkBox_3.setChecked(False)
  1649. else:
  1650. # self.QThreadSortNow("main")
  1651. self.QThreadSortNow("search")
  1652. except Exception:
  1653. logger.error(traceback.format_exc())
  1654. def displaySelect3(self):
  1655. try:
  1656. displaySelect = self.sender()
  1657. if displaySelect.isChecked():
  1658. self.displaySelectstr3 = "1"
  1659. self.displaySelect_mode = "3"
  1660. if self.loginSts == True:
  1661. if self.displaySelectstr2 == "0":
  1662. self.checkBox_2.setChecked(True)
  1663. else:
  1664. # self.QThreadSortNow("main")
  1665. self.QThreadSortNow("search")
  1666. else:
  1667. self.displaySelectstr3 = "0"
  1668. if self.loginSts == True:
  1669. if self.displaySelectstr2 == "0":
  1670. self.displaySelect_mode = "0"
  1671. else:
  1672. self.displaySelect_mode = "1"
  1673. # self.QThreadSortNow("main")
  1674. self.QThreadSortNow("search")
  1675. except Exception:
  1676. logger.error(traceback.format_exc())
  1677. def displayChange(self):
  1678. try:
  1679. bc = self.sender()
  1680. if bc.isChecked():
  1681. if self.loginSts == True:
  1682. self.displayMode = "A"
  1683. self.QThreadSortNow("main")
  1684. # print("A模式")
  1685. else:
  1686. if self.loginSts == True:
  1687. self.displayMode = "B"
  1688. self.QThreadSortNow("main")
  1689. # print("B模式")
  1690. except Exception:
  1691. logger.error(traceback.format_exc())
  1692. def selectedtime_bc(self):
  1693. try:
  1694. self.selectedtime = self.dateEdit.date().toString('yyyyMMdd')
  1695. judgedate = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  1696. if self.selectedtime == judgedate:
  1697. QMessageBox.warning(self, "重要提示","明日航班20:30后提供查询功能!由于第二日航班波动较大,22:00前仅提供查询功能,22:00以后提供第二日航班的航班变更以及节点监控功能!")
  1698. self.initFlightDatabase()
  1699. ip = "http://" + str(self.ipinfo) + "/map/" + str(self.selectedtime)
  1700. self.QThreadSortNow("main")
  1701. self.QThreadSortNow("people")
  1702. # print(self.selectedtime)
  1703. except Exception:
  1704. logger.error(traceback.format_exc())
  1705. def show_info(self, title, text):
  1706. try:
  1707. reply = QMessageBox.question(self, title, text,QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.Cancel,QMessageBox.StandardButton.Cancel)
  1708. if reply == QMessageBox.StandardButton.Yes:
  1709. return 1
  1710. else:
  1711. return 0
  1712. except Exception:
  1713. logger.error(traceback.format_exc())
  1714. def displayMain(self, *args):
  1715. try:
  1716. if args[0]:
  1717. self.initDisplay()
  1718. self.loginSts = True
  1719. self.loginWidget.close()
  1720. self.show()
  1721. self.QThreadSortNow("main")
  1722. self.QThreadSortNow("change")
  1723. self.QThreadSortNow("people")
  1724. self.QThreadSortNow("log")
  1725. self.initlocalipback()
  1726. except Exception:
  1727. logger.error(traceback.format_exc())
  1728. def setUser(self, args):
  1729. try:
  1730. self.user = args[1]
  1731. self.authority = args[3]
  1732. self.label_username.setText(self.user)
  1733. except Exception:
  1734. logger.error(traceback.format_exc())
  1735. def AddFlight(self):
  1736. try:
  1737. self.addFlight = addFlightWidget()
  1738. self.addFlight.ipinfo = self.ipinfo
  1739. self.addFlight.user = self.user
  1740. self.addFlight.show()
  1741. except Exception:
  1742. logger.error(traceback.format_exc())
  1743. def HandoverFlight(self):
  1744. try:
  1745. self.handoverFlight = handoverFlightWidget()
  1746. self.handoverFlight.ipinfo = self.ipinfo
  1747. self.handoverFlight.user = self.user
  1748. self.handoverFlight.Allflight = self.sorttableWidgetDispalydataALL
  1749. self.handoverFlight.selectedtime=self.selectedtime
  1750. self.handoverFlight.handoverFlight_signal.connect(self.handoverFlight_update)
  1751. self.handoverFlight.show()
  1752. self.handoverFlight.start()
  1753. except Exception:
  1754. logger.error(traceback.format_exc())
  1755. def handoverFlight_update(self, *args):
  1756. try:
  1757. # print(args)
  1758. self.QThreadSortNow("main")
  1759. except Exception:
  1760. logger.error(traceback.format_exc())
  1761. def showAdduser(self):
  1762. try:
  1763. self.addUser = addUserWidget()
  1764. self.addUser.ipinfo = self.ipinfo
  1765. self.addUser.user = self.user
  1766. self.addUser.authority=self.authority
  1767. self.addUser.show()
  1768. except Exception:
  1769. logger.error(traceback.format_exc())
  1770. def showChangePassword(self):
  1771. try:
  1772. self.changePassword = changePassword()
  1773. self.changePassword.ipinfo = self.ipinfo
  1774. self.changePassword.user = self.user
  1775. self.changePassword.show()
  1776. except Exception:
  1777. logger.error(traceback.format_exc())
  1778. def showchangeAuth(self):
  1779. try:
  1780. self.changeAuth = changeAuth()
  1781. self.changeAuth.ipinfo = self.ipinfo
  1782. self.changeAuth.user = self.user
  1783. self.changeAuth.start()
  1784. except Exception:
  1785. logger.error(traceback.format_exc())
  1786. '''
  1787. def showchangeFlight(self):
  1788. try:
  1789. self.changeFlight = changeFlight()
  1790. self.changeFlight.ipinfo = self.ipinfo
  1791. self.changeFlight.user = self.user
  1792. self.changeFlight.start()
  1793. except Exception:
  1794. logger.error(traceback.format_exc())
  1795. '''
  1796. def openFile(self):
  1797. try:
  1798. fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/')
  1799. # print(fileName)
  1800. data = {"fileName": fileName}
  1801. res = self.severpostData_nomeassge("get_dic", data)["返回值"]
  1802. if res != "ok":
  1803. self.show_message2("警告", "文件错误")
  1804. elif res == "ok":
  1805. self.show_message2("提示", "人员信息添加成功!")
  1806. except Exception:
  1807. logger.error(traceback.format_exc())
  1808. def saveCase(self):
  1809. try:
  1810. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/停场航班导入模板.xlsx", "xlsx(*.xlsx)")
  1811. if fileName:
  1812. wb = Workbook()
  1813. wb.create_sheet(title="停场航班导入模板", index=0)
  1814. ws = wb.active
  1815. ws.title = '航班数据'
  1816. ws = wb['航班数据']
  1817. for row in range(1, 50):
  1818. for cloumn in range(1, 7):
  1819. ws.cell(row, cloumn).number_format = '@'
  1820. ws.cell(1, 1).value = "序号"
  1821. ws.cell(1, 2).value = "日期"
  1822. ws.cell(1, 3).value = "机号"
  1823. ws.cell(1, 4).value = "机位"
  1824. ws.cell(1, 5).value = "机型"
  1825. ws.cell(1, 6).value = "发动机"
  1826. ws.cell(1, 7).value = "录入数据请从第三行开始录入,切勿覆盖第一二行数据!!!"
  1827. ws.cell(2, 1).value = "1"
  1828. ws.cell(2, 2).value = "2024/03/21"
  1829. ws.cell(2, 3).value = "1663"
  1830. ws.cell(2, 4).value = "722"
  1831. ws.cell(2, 5).value = "A321"
  1832. ws.cell(2, 6).value = "V2500"
  1833. ws.cell(2, 7).value = "录入数据请从第三行开始录入,切勿覆盖第一二行数据!!!"
  1834. wb.save(fileName)
  1835. self.show_message2("提示", "导出成功!文件已保存至%s" % fileName)
  1836. except Exception:
  1837. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!")
  1838. logger.error(traceback.format_exc())
  1839. def saveRisktable(self):
  1840. try:
  1841. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/风险数据库.xlsx","xlsx(*.xlsx)")
  1842. if fileName:
  1843. ip = "http://" + str(self.ipinfo) + "/static/saveRisktable"
  1844. res = requests.get(url=ip, timeout=30).json()["返回值"]
  1845. wb = Workbook()
  1846. wb.create_sheet(title="风险数据库.xlsx", index=0)
  1847. ws = wb.active
  1848. ws.title = '风险数据库'
  1849. ws = wb['风险数据库']
  1850. for row in range(1, len(res)+1):
  1851. for cloumn in range(1, 8):
  1852. ws.cell(row, cloumn).number_format = '@'
  1853. ws.cell(1, 1).value = "风险编号"
  1854. ws.cell(1, 2).value = "状态"
  1855. ws.cell(1, 3).value = "提示内容"
  1856. ws.cell(1, 4).value = "触发条件1"
  1857. ws.cell(1, 5).value = "触发条件2"
  1858. ws.cell(1, 6).value = "触发条件3"
  1859. ws.cell(1, 7).value = "触发条件4"
  1860. ws.cell(1, 8).value = "触发条件5"
  1861. if len(res) != 0:
  1862. ii=1
  1863. for i in res:
  1864. for j in range(0, 8):
  1865. #print(ii,j)
  1866. ws.cell(int(ii) + 1, j+1).value = i[j]
  1867. ii+=1
  1868. wb.save(fileName)
  1869. except Exception:
  1870. print(traceback.format_exc())
  1871. def saveAllflight(self):
  1872. try:
  1873. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8"}
  1874. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位"}
  1875. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s全天航班导出(未含保障结束).xlsx" % self.selectedtime,"xlsx(*.xlsx)")
  1876. # print(fileName)
  1877. if fileName:
  1878. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % self.selectedtime
  1879. res = requests.get(url=ip, timeout=30).json()
  1880. # print(res)
  1881. wb = Workbook()
  1882. wb.create_sheet(title="%s全天航班导出(未含保障结束).xlsx" % self.selectedtime, index=0)
  1883. ws = wb.active
  1884. ws.title = '航班数据'
  1885. ws = wb['航班数据']
  1886. for row in range(1, 400):
  1887. for cloumn in range(1, 10):
  1888. ws.cell(row, cloumn).number_format = '@'
  1889. ws.cell(1, 1).value = "序号"
  1890. ws.cell(1, 2).value = "类型"
  1891. ws.cell(1, 3).value = "航班号"
  1892. ws.cell(1, 4).value = "机型"
  1893. ws.cell(1, 5).value = "发动机"
  1894. ws.cell(1, 6).value = "机号"
  1895. ws.cell(1, 7).value = "计达"
  1896. ws.cell(1, 8).value = "预达"
  1897. ws.cell(1, 9).value = "计飞"
  1898. ws.cell(1, 10).value = "机位"
  1899. if len(res) != 0:
  1900. for i in res.keys():
  1901. if res[i]["109"] != "4":
  1902. for j in range(1, 11):
  1903. if j == 2 and "3U" in res[i]["4"] and "CSC" in res[i]["4"]:
  1904. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  1905. elif j == 7 or j == 8:
  1906. text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else ""
  1907. ws.cell(int(i) + 2, j).value = text
  1908. elif j == 9:
  1909. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else ""
  1910. ws.cell(int(i) + 2, j).value = text
  1911. else:
  1912. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  1913. wb.save(fileName)
  1914. self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  1915. except Exception:
  1916. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  1917. logger.error(traceback.format_exc())
  1918. def saveAllflight2(self):
  1919. try:
  1920. time2 = datetime.datetime.strptime(self.selectedtime, "%Y%m%d")
  1921. time1 = str((time2 - datetime.timedelta(days=1)).strftime("%Y%m%d"))
  1922. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8","放行":"10","工1":"11","工2":"12","工3":"13","工4":"14","备注":"30","班组长":"15"}
  1923. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位",11: "放行",12: "工1",13: "工2",14: "工3",15: "工4",16: "备注",17: "班组长"}
  1924. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s航班安排备份导出.xlsx" %(str(time1)+"-"+str(self.selectedtime)[-2:]),"xlsx(*.xlsx)")
  1925. # print(fileName)
  1926. wb = Workbook()
  1927. if fileName:
  1928. for selectedtime in [self.selectedtime,time1]:
  1929. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly11/" + "%s" %selectedtime
  1930. res = requests.get(url=ip, timeout=30).json()
  1931. # print(res)
  1932. wb.create_sheet(title="%s" % selectedtime, index=0)
  1933. ws = wb.active
  1934. ws.title = "%s" % selectedtime
  1935. ws = wb["%s" % selectedtime]
  1936. for row in range(1, 400):
  1937. for cloumn in range(1, 18):
  1938. ws.cell(row, cloumn).number_format = '@'
  1939. ws.cell(1, 1).value = "序号"
  1940. ws.cell(1, 2).value = "类型"
  1941. ws.cell(1, 3).value = "航班号"
  1942. ws.cell(1, 4).value = "机型"
  1943. ws.cell(1, 5).value = "发动机"
  1944. ws.cell(1, 6).value = "机号"
  1945. ws.cell(1, 7).value = "计达"
  1946. ws.cell(1, 8).value = "预达"
  1947. ws.cell(1, 9).value = "计飞"
  1948. ws.cell(1, 10).value = "机位"
  1949. ws.cell(1, 11).value = "放行"
  1950. ws.cell(1, 12).value = "工1"
  1951. ws.cell(1, 13).value = "工2"
  1952. ws.cell(1, 14).value = "工3"
  1953. ws.cell(1, 15).value = "工4"
  1954. ws.cell(1, 16).value = "备注"
  1955. ws.cell(1, 17).value = "班组长"
  1956. if len(res) != 0:
  1957. for i in res.keys():
  1958. for j in range(1, 18):
  1959. if j == 2:
  1960. if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]:
  1961. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  1962. else:
  1963. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  1964. elif j == 7 or j == 8:
  1965. text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else ""
  1966. ws.cell(int(i) + 2, j).value = text
  1967. elif j == 9:
  1968. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else ""
  1969. ws.cell(int(i) + 2, j).value = text
  1970. else:
  1971. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  1972. wb.save(fileName)
  1973. self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  1974. except Exception:
  1975. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  1976. logger.error(traceback.format_exc())
  1977. def saveAllflight3(self):
  1978. try:
  1979. time2 = datetime.datetime.strptime(self.selectedtime, "%Y%m%d")
  1980. time1 = str((time2 - datetime.timedelta(days=1)).strftime("%Y%m%d"))
  1981. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8","工作单":"10","飞单":"11","客舱单":"12","临工单":"13","AMRO记录":"14","备注":"32","备用":"15"}
  1982. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位",11: "工作单",12: "飞单",13: "客舱单",14: "临工单",15: "AMRO记录",16: "备注",17: "备用"}
  1983. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s维修记录备份导出.xlsx" %(str(time1)+"-"+str(self.selectedtime)[-2:]),"xlsx(*.xlsx)")
  1984. # print(fileName)
  1985. wb = Workbook()
  1986. if fileName:
  1987. for selectedtime in [self.selectedtime,time1]:
  1988. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" %selectedtime
  1989. res = requests.get(url=ip, timeout=30).json()
  1990. # print(res)
  1991. wb.create_sheet(title="%s" % selectedtime, index=0)
  1992. ws = wb.active
  1993. ws.title = "%s" % selectedtime
  1994. ws = wb["%s" % selectedtime]
  1995. for row in range(1, 400):
  1996. for cloumn in range(1, 18):
  1997. ws.cell(row, cloumn).number_format = '@'
  1998. ws.cell(1, 1).value = "序号"
  1999. ws.cell(1, 2).value = "类型"
  2000. ws.cell(1, 3).value = "航班号"
  2001. ws.cell(1, 4).value = "机型"
  2002. ws.cell(1, 5).value = "发动机"
  2003. ws.cell(1, 6).value = "机号"
  2004. ws.cell(1, 7).value = "计达"
  2005. ws.cell(1, 8).value = "预达"
  2006. ws.cell(1, 9).value = "计飞"
  2007. ws.cell(1, 10).value = "机位"
  2008. ws.cell(1, 11).value = "工作单"
  2009. ws.cell(1, 12).value = "飞单"
  2010. ws.cell(1, 13).value = "客舱单"
  2011. ws.cell(1, 14).value = "临工单"
  2012. ws.cell(1, 15).value = "AMRO记录"
  2013. ws.cell(1, 16).value = "备注"
  2014. ws.cell(1, 17).value = "备用"
  2015. if len(res) != 0:
  2016. for i in res.keys():
  2017. for j in range(1, 18):
  2018. if j == 2:
  2019. if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]:
  2020. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  2021. else:
  2022. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  2023. elif j == 6:
  2024. text = "B-"+str(res[i][index[index2[j]]])
  2025. ws.cell(int(i) + 2, j).value = text
  2026. elif j == 7 or j == 8:
  2027. text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else ""
  2028. ws.cell(int(i) + 2, j).value = text
  2029. elif j == 9:
  2030. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else ""
  2031. ws.cell(int(i) + 2, j).value = text
  2032. else:
  2033. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  2034. wb.save(fileName)
  2035. self.show_message2("提示", "%s全天航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  2036. except Exception:
  2037. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  2038. logger.error(traceback.format_exc())
  2039. def saveDealflight(self):
  2040. try:
  2041. index = {"序号": "0", "类型": "9", "航班号": "4", "机型": "2", "发动机": "3", "机号": "1", "计达": "5", "预达": "6","计飞": "7", "机位": "8"}
  2042. index2 = {1: "序号", 2: "类型", 3: "航班号", 4: "机型", 5: "发动机", 6: "机号", 7: "计达", 8: "预达", 9: "计飞", 10: "机位"}
  2043. fileName, _ = QFileDialog.getSaveFileName(None, "选取文件夹", "/%s交班航班导出.xlsx" % self.selectedtime,"xlsx(*.xlsx)")
  2044. # print(fileName)
  2045. if fileName:
  2046. ip = "http://" + str(self.ipinfo) + "/static/" + "tableWidgetDispaly22/" + "%s" % self.selectedtime
  2047. res = requests.get(url=ip, timeout=30).json()
  2048. # print(res)
  2049. wb = Workbook()
  2050. wb.create_sheet(title="%s交班航班导出.xlsx" % self.selectedtime, index=0)
  2051. ws = wb.active
  2052. ws.title = '航班数据'
  2053. ws = wb['航班数据']
  2054. for row in range(1, 400):
  2055. for cloumn in range(1, 10):
  2056. ws.cell(row, cloumn).number_format = '@'
  2057. ws.cell(1, 1).value = "序号"
  2058. ws.cell(1, 2).value = "类型"
  2059. ws.cell(1, 3).value = "航班号"
  2060. ws.cell(1, 4).value = "机型"
  2061. ws.cell(1, 5).value = "发动机"
  2062. ws.cell(1, 6).value = "机号"
  2063. ws.cell(1, 7).value = "计达"
  2064. ws.cell(1, 8).value = "预达"
  2065. ws.cell(1, 9).value = "计飞"
  2066. ws.cell(1, 10).value = "机位"
  2067. if len(res) != 0:
  2068. for i in res.keys():
  2069. if res[i]["109"] == "1" or res[i]["109"] == "3":
  2070. for j in range(1, 11):
  2071. if j == 2:
  2072. if "3U" not in res[i]["4"] and "CSC" not in res[i]["4"]:
  2073. ws.cell(int(i) + 2, j).value = "外" + str(res[i][index[index2[j]]])
  2074. else:
  2075. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  2076. elif j == 7 or j == 8:
  2077. text = str(res[i][index[index2[j]]]).replace(":","") if str(res[i][index[index2[j]]]) != "" else ""
  2078. ws.cell(int(i) + 2, j).value = text
  2079. elif j == 9:
  2080. text = str(str(res[i][index[index2[j]]]).split("]")[1]).replace(":","") if "]" in str(res[i][index[index2[j]]]) else ""
  2081. ws.cell(int(i) + 2, j).value = text
  2082. else:
  2083. ws.cell(int(i) + 2, j).value = res[i][index[index2[j]]]
  2084. wb.save(fileName)
  2085. self.show_message2("提示", "%s交班航班导出成功!文件已保存至%s" % (self.selectedtime, fileName))
  2086. except Exception:
  2087. self.show_message2("警告", "导出失败,确认%s是否被打开或联系管理员!!!" % fileName)
  2088. logger.error(traceback.format_exc())
  2089. ################################################################################################################################################
  2090. def updateStopFlight(self):
  2091. try:
  2092. fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/')
  2093. # print(fileName)
  2094. data = {"fileName": fileName}
  2095. res = self.severpostData_nomeassge("updateStopFlight", data)["返回值"]
  2096. if res != "ok":
  2097. self.show_message2("警告", "停场航班添加失败!")
  2098. elif res == "ok":
  2099. self.show_message2("提示", "停场航班添加成功!")
  2100. self.QThreadSortNow("main")
  2101. except Exception:
  2102. logger.error(traceback.format_exc())
  2103. def updateTaskAuto(self):
  2104. try:
  2105. if int(self.authority) <= 1:
  2106. fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/')
  2107. # print(fileName)
  2108. data = {"fileName": fileName}
  2109. res = self.severpostData_nomeassge("updateTaskAuto", data)["返回值"]
  2110. if res != "ok":
  2111. self.show_message2("警告", "文件错误")
  2112. elif res == "ok":
  2113. self.taskAtuoCheck("3")
  2114. self.show_message2("提示", "准备组任务更新成功!")
  2115. else:
  2116. self.show_message2("提示", "权限不够,请联系管理员!")
  2117. except Exception:
  2118. # print('登录服务器失败')
  2119. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2120. logger.error(traceback.format_exc())
  2121. def updateRiskdb(self):
  2122. try:
  2123. if int(self.authority) <= 1:
  2124. fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '/')
  2125. # print(fileName)
  2126. data = {"fileName": fileName}
  2127. res = self.severpostData_nomeassge("updateRiskdb", data)["返回值"]
  2128. if res != "ok":
  2129. self.show_message2("警告", "文件错误")
  2130. elif res == "ok":
  2131. self.show_message2("提示", "风险数据库更新成功!")
  2132. else:
  2133. self.show_message2("提示", "权限不够,请联系管理员!")
  2134. except Exception:
  2135. # print('登录服务器失败')
  2136. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2137. logger.error(traceback.format_exc())
  2138. def show_message2(self, type, str):
  2139. try:
  2140. QMessageBox.warning(self, "%s" % type, "%s" % str)
  2141. except Exception:
  2142. logger.error(traceback.format_exc())
  2143. def QThreadSortDispalyTimer(self, name, dict, dict2, seversts, displayMode):
  2144. try:
  2145. if name == "sortTableWidgetDispaly":
  2146. if displayMode == "A":
  2147. self.displayLabel = ["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达",
  2148. "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4",
  2149. "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包",
  2150. "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型",
  2151. "备","附加消息","备","备","备","备"]
  2152. '''
  2153. self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2",
  2154. "工3","工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员",
  2155. "放行", "航班编号",
  2156. "任务编号", "TATD", "类型", "附加消息"]
  2157. '''
  2158. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  2159. self.tableWidgetFlight.verticalHeader().setVisible(False)
  2160. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  2161. elif displayMode == "B":
  2162. self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单",
  2163. "临工单","AMRO记录", "备用", "到位", "二送", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市",
  2164. "维修人员", "二送人员","放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"]
  2165. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  2166. self.tableWidgetFlight.verticalHeader().setVisible(False)
  2167. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  2168. self.sorttableWidgetDispalydata = {}
  2169. self.sorttableWidgetDispalydata = dict
  2170. if self.doubleclickLockUpdate == 0:
  2171. self.tableWidgetDispaly()
  2172. # print(self.sorttableWidgetDispalydata)
  2173. elif name == "sortTableWidgetDispalyALL":
  2174. self.sorttableWidgetDispalydataALL = {}
  2175. self.sorttableWidgetDispalydataALL = dict
  2176. elif name == "sorttableWidgetDisplayChange":
  2177. self.sortlogchange = {}
  2178. self.sortlogchange = dict
  2179. self.tableWidgetDisplayChange()
  2180. # print(self.sortlogchange)
  2181. elif name == "sorttableWidgetPeopleDisplay":
  2182. self.sortdiplaylist = {}
  2183. self.sortdiplaylist = dict
  2184. self.peopleOnJob = [""]
  2185. self.peopleOnJob = dict2
  2186. self.tableWidgetPeopleDisplay()
  2187. # print(self.peopleOnJob)
  2188. # print(self.sortdiplaylist)
  2189. elif name == "sorttableWidgetLOGDispaly":
  2190. self.sortlog = {}
  2191. self.sortlog = dict
  2192. self.tableWidgetLOGDispaly()
  2193. # print(self.sortlog)
  2194. if seversts == "0":
  2195. self.severupdatests = "-"
  2196. self.label_11.setText("已断开")
  2197. self.label_11.setStyleSheet(
  2198. "background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
  2199. self.restartServer(self.ipinfo.split(':')[0],9935)
  2200. elif seversts == "1" and self.severupdatests == "1":
  2201. self.label_11.setText("正 常")
  2202. self.label_11.setStyleSheet(
  2203. "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold")
  2204. elif seversts == "1" and self.severupdatests == "0":
  2205. self.label_11.setText("未更新")
  2206. self.label_11.setStyleSheet(
  2207. "background-color:yellow;color:red;border-radius:5px;padding:2px;font-weight:bold")
  2208. except Exception:
  2209. logger.error(traceback.format_exc())
  2210. def QThreadSortDispalyNow(self, name, dict, dict2, seversts, displayMode):
  2211. try:
  2212. if name == "sortTableWidgetDispaly":
  2213. if displayMode == "A":
  2214. self.displayLabel=["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达",
  2215. "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4",
  2216. "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包",
  2217. "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型",
  2218. "备","附加消息","备","备","备","备"]
  2219. '''
  2220. self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1", "工2",
  2221. "工3","工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市", "维修人员",
  2222. "放行", "航班编号","任务编号", "TATD", "类型", "附加消息"]
  2223. '''
  2224. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  2225. self.tableWidgetFlight.verticalHeader().setVisible(False)
  2226. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  2227. else:
  2228. self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单",
  2229. "临工单","AMRO记录", "备用", "到位", "二送", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市",
  2230. "维修人员", "二送人员","放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"]
  2231. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  2232. self.tableWidgetFlight.verticalHeader().setVisible(False)
  2233. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  2234. self.sorttableWidgetDispalydata = {}
  2235. self.sorttableWidgetDispalydata = dict
  2236. # print(self.sorttableWidgetDispalydata)
  2237. if self.doubleclickLockUpdate == 0:
  2238. self.tableWidgetDispaly()
  2239. elif name == "SearchsortTableWidgetDispaly":
  2240. if displayMode == "A":
  2241. self.displayLabel = ["备","序号","备","机号","航班信息","机型","机型信息","发动机","备","航班号","备","计达","备","预达",
  2242. "备","计飞","备","机位","备","类型","备","放行","备","工1","备","工2","备","工3","备","工4",
  2243. "备","班组长","备","到位","备","放行","备","销夹","备","随机","备","随机","备","保留","备","工作包",
  2244. "备","进出港城市","备","维修人员","备","放行","备","航班编号","备","任务编号","备","TATD","备","类型",
  2245. "备","附加消息","备","备","备","备"]
  2246. '''
  2247. self.displayLabel = ["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "放行", "工1",
  2248. "工2","工3","工4", "班组长", "到位", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市",
  2249. "维修人员","放行", "航班编号","任务编号", "TATD", "类型", "附加消息"]
  2250. '''
  2251. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  2252. self.tableWidgetFlight.verticalHeader().setVisible(False)
  2253. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  2254. elif displayMode == "B":
  2255. self.displayLabel =["序号", "机号", "机型", "发动机", "航班号", "计达", "预达", "计飞", "机位", "类型", "工作单", "飞单", "客舱单",
  2256. "临工单","AMRO记录", "备用", "到位", "二送", "放行", "销夹", "随机", "随机", "保留", "工作包", "进出港城市",
  2257. "维修人员", "二送人员","放行", "航班编号", "任务编号", "TATD", "类型", "附加消息"]
  2258. self.tableWidgetFlight.setColumnCount(len(self.displayLabel))
  2259. self.tableWidgetFlight.verticalHeader().setVisible(False)
  2260. self.tableWidgetFlight.setHorizontalHeaderLabels(self.displayLabel)
  2261. self.sorttableWidgetDispalydata = {}
  2262. self.sorttableWidgetDispalydata = dict
  2263. if self.doubleclickLockUpdate == 0:
  2264. self.tableWidgetDispaly()
  2265. # print(self.sorttableWidgetDispalydata)
  2266. elif name == "sortTableWidgetDispalyALL":
  2267. self.sorttableWidgetDispalydataALL = {}
  2268. self.sorttableWidgetDispalydataALL = dict
  2269. elif name == "sorttableWidgetDisplayChange":
  2270. self.sortlogchange = {}
  2271. self.sortlogchange = dict
  2272. self.tableWidgetDisplayChange()
  2273. # print(self.sortlogchange)
  2274. elif name == "sorttableWidgetPeopleDisplay":
  2275. self.sortdiplaylist = {}
  2276. self.sortdiplaylist = dict
  2277. self.peopleOnJob = [""]
  2278. self.peopleOnJob = dict2
  2279. self.tableWidgetPeopleDisplay()
  2280. # print(self.peopleOnJob)
  2281. # print(self.sortdiplaylist)
  2282. elif name == "sorttableWidgetLOGDispaly":
  2283. self.sortlog = {}
  2284. self.sortlog = dict
  2285. self.tableWidgetLOGDispaly()
  2286. # print(self.sortlog)
  2287. elif name == "sorttableWidgetPHONEDispaly":
  2288. self.sorttableWidgetPHONEDispalydata = {}
  2289. self.sorttableWidgetPHONEDispalydata = dict
  2290. self.tableWidgetPhoneDispaly()
  2291. if seversts == "0":
  2292. self.severupdatests = "-"
  2293. self.label_11.setText("已断开")
  2294. self.label_11.setStyleSheet(
  2295. "background-color:red;color:white;border-radius:5px;padding:2px;font-weight:bold")
  2296. self.restartServer(self.ipinfo.split(':')[0],9935)
  2297. elif seversts == "1" and self.severupdatests == "1":
  2298. self.label_11.setText("正 常")
  2299. self.label_11.setStyleSheet(
  2300. "background-color:green;color:white;border-radius:5px;padding:2px;font-weight:bold")
  2301. elif seversts == "1" and self.severupdatests == "0":
  2302. self.label_11.setText("未更新")
  2303. self.label_11.setStyleSheet(
  2304. "background-color:yellow;color:red;border-radius:5px;padding:2px;font-weight:bold")
  2305. except Exception:
  2306. logger.error(traceback.format_exc())
  2307. def restartServer(self,serverIP,serverPort):
  2308. client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  2309. client.settimeout(120)
  2310. client.connect((serverIP, serverPort))
  2311. client.send("restart".encode())
  2312. client.close()
  2313. QMessageBox.warning(self, "提示", "服务器端正在尝试自动重启服务器,请等待30S后刷新查看显示状态!若仍然断开,请联系管理员!")
  2314. def initlocalipback(self):
  2315. try:
  2316. if os.path.exists("D:/flightinfo/logs/localip.code") is True:
  2317. read_path = "D:/flightinfo/logs/localip.code"
  2318. with open(read_path, "r", encoding="utf-8") as f2:
  2319. rember_2 = f2.read()
  2320. if ';;' in rember_2:
  2321. self.localip = rember_2.split(';;')[0]
  2322. self.localtoken = rember_2.split(';;')[-1]
  2323. QMessageBox.warning(self, "提示", "本地网络电话获取缓存成功,可拨号尝试,如拨号失败则需重新配置!")
  2324. except Exception:
  2325. logger.error(traceback.format_exc())
  2326. def openmaintainAuthCheck(self):
  2327. self.maintainAuthCheckSts=1
  2328. QMessageBox.warning(self, "提示", "授权检查已开启,将核对人员发动机授权情况!")
  2329. def closemaintainAuthCheck(self):
  2330. self.maintainAuthCheckSts=0
  2331. QMessageBox.warning(self, "提示", "授权检查已关闭,将无法核对人员发动机授权情况!")
  2332. def setlocalipback(self, token):
  2333. try:
  2334. self.localtoken = None
  2335. self.localtoken = token
  2336. if "auth=" in token:
  2337. QMessageBox.warning(self, "提示", "本地网络电话配置成功!")
  2338. save_path = "D:/flightinfo/logs/localip.code"
  2339. with open(save_path, "w", encoding="utf-8") as f1:
  2340. f1.write(str(self.localip) + ";;" + str(self.localtoken))
  2341. self.lineEdit_phonenum.setText("")
  2342. else:
  2343. QMessageBox.warning(self, "提示", "本地网络电话配置失败,本地呼叫无法使用,请确认IP正确,可尝试重启IP电话后再试!")
  2344. except Exception:
  2345. logger.error(traceback.format_exc())
  2346. def QThreadSortTimer(self):
  2347. try:
  2348. nowDay = datetime.datetime.now().strftime("%Y%m%d")
  2349. tomorr = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  2350. yester = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  2351. if self.selectedtime == nowDay:
  2352. datestr = "2"
  2353. elif self.selectedtime == tomorr:
  2354. datestr = "3"
  2355. elif self.selectedtime == yester:
  2356. datestr = "1"
  2357. else:
  2358. datestr = "4"
  2359. ip = "http://"+self.ipinfo+"/static/VinCheck/"+self.vin+"/"+self.displayMode+"/%s"%datestr
  2360. res = requests.get(url=ip, timeout=30).json()["返回值"]
  2361. self.sum += 1
  2362. self.flightsum += 1
  2363. #print(self.doubleclickLockUpdate)
  2364. if self.loginSts == True:
  2365. # print("多线程刷新1")
  2366. self.FLIGHTonChange_text = self.lineEdit_flight.text()
  2367. self.peolpleonChange_text = self.lineEdit_people.text()
  2368. self.changeonChange_text = self.lineEdit_change.text()
  2369. self.logonChange_text = self.lineEdit_log.text()
  2370. if (self.doubleclickLockUpdate==0 and res =="ok" and self.flightsum % 20 == 0) or\
  2371. (self.doubleclickLockUpdate==0 and datestr =="4" and self.flightsum % 20 == 0):
  2372. print(datetime.datetime.now(),"开始数据库刷新", self.vin)
  2373. th1 = QThread()
  2374. self.sortTableWidgetDispalyThread1 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo,
  2375. self.selectedtime, self.FLIGHTonChange_text,
  2376. self.displayMode, "0", self.displaySelect_mode,
  2377. th1)
  2378. self.sortTableWidgetDispalyThread1.sortupdate.connect(self.QThreadSortDispalyTimer)
  2379. self.sortTableWidgetDispalyThread1.moveToThread(th1)
  2380. th1.started.connect(self.sortTableWidgetDispalyThread1.run)
  2381. th1.start()
  2382. if datestr !="4":
  2383. ip = "http://"+self.ipinfo+"/static/updateVin/" + self.displayMode + "/%s" % datestr
  2384. self.vin = requests.get(url=ip, timeout=30).json()["返回值"]
  2385. print(datetime.datetime.now(),"更新刷新",self.vin)
  2386. elif self.doubleclickLockUpdate==0 and res !="ok":
  2387. print(datetime.datetime.now(),"开始读取刷新", self.vin)
  2388. th1234 = QThread()
  2389. self.sortTableWidgetDispalyThread1234 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo,
  2390. self.selectedtime, self.FLIGHTonChange_text,
  2391. self.displayMode, "1", self.displaySelect_mode,
  2392. th1234)
  2393. self.sortTableWidgetDispalyThread1234.sortupdate.connect(self.QThreadSortDispalyTimer)
  2394. self.sortTableWidgetDispalyThread1234.moveToThread(th1234)
  2395. th1234.started.connect(self.sortTableWidgetDispalyThread1234.run)
  2396. th1234.start()
  2397. self.flightsum = 0
  2398. ip = "http://"+self.ipinfo+"/static/getVin/"+ self.displayMode + "/%s" % datestr
  2399. self.vin = requests.get(url=ip, timeout=30).json()["返回值"]
  2400. print(datetime.datetime.now(),"仅仅读取",self.vin)
  2401. '''
  2402. else:
  2403. th11111 = QThread()
  2404. self.sortTableWidgetDispalyThread11111 = sortdisplaySever("sortTableWidgetDispalyALL", self.ipinfo,
  2405. self.selectedtime, self.FLIGHTonChange_text,
  2406. self.displayMode, "1", self.displaySelect_mode,
  2407. th11111)
  2408. self.sortTableWidgetDispalyThread11111.sortupdate.connect(self.QThreadSortDispalyTimer)
  2409. self.sortTableWidgetDispalyThread11111.moveToThread(th11111)
  2410. th11111.started.connect(self.sortTableWidgetDispalyThread11111.run)
  2411. th11111.start()
  2412. '''
  2413. if self.loginSts == True and self.sum % 20 == 0:
  2414. th2 = QThread()
  2415. self.sorttableWidgetDisplayChangeThread2 = sortdisplaySever("sorttableWidgetDisplayChange", self.ipinfo,
  2416. self.selectedtime, self.changeonChange_text,
  2417. "", "", "", th2)
  2418. self.sorttableWidgetDisplayChangeThread2.sortupdate.connect(self.QThreadSortDispalyTimer)
  2419. self.sorttableWidgetDisplayChangeThread2.moveToThread(th2)
  2420. th2.started.connect(self.sorttableWidgetDisplayChangeThread2.run)
  2421. th2.start()
  2422. th3 = QThread()
  2423. self.sorttableWidgetPeopleDisplayThread3 = sortdisplaySever("sorttableWidgetPeopleDisplay", self.ipinfo,
  2424. self.selectedtime,
  2425. self.peolpleonChange_text, "",
  2426. self.selectedbc, "", th3)
  2427. self.sorttableWidgetPeopleDisplayThread3.sortupdate.connect(self.QThreadSortDispalyTimer)
  2428. self.sorttableWidgetPeopleDisplayThread3.moveToThread(th3)
  2429. th3.started.connect(self.sorttableWidgetPeopleDisplayThread3.run)
  2430. th3.start()
  2431. th4 = QThread()
  2432. self.sorttableWidgetLOGDispalyThread4 = sortdisplaySever("sorttableWidgetLOGDispaly", self.ipinfo,
  2433. self.selectedtime, self.logonChange_text, "",
  2434. "", "", th4)
  2435. self.sorttableWidgetLOGDispalyThread4.sortupdate.connect(self.QThreadSortDispalyTimer)
  2436. self.sorttableWidgetLOGDispalyThread4.moveToThread(th4)
  2437. th4.started.connect(self.sorttableWidgetLOGDispalyThread4.run)
  2438. th4.start()
  2439. self.updatecheck()
  2440. if self.loginSts == True and self.sum % 2400 == 0:
  2441. self.taskAtuoCheck("2")
  2442. self.sum=0
  2443. except Exception:
  2444. logger.error(traceback.format_exc())
  2445. def QThreadSortNow(self, name):
  2446. try:
  2447. if "main" in str(name) and self.doubleclickLockUpdate == 0:
  2448. # print(datetime.datetime.now())
  2449. th11 = QThread()
  2450. self.sortTableWidgetDispalyThread11 = sortdisplaySever("sortTableWidgetDispaly", self.ipinfo,
  2451. self.selectedtime, self.FLIGHTonChange_text,
  2452. self.displayMode, "0", self.displaySelect_mode,
  2453. th11)
  2454. self.sortTableWidgetDispalyThread11.sortupdate.connect(self.QThreadSortDispalyNow)
  2455. self.sortTableWidgetDispalyThread11.moveToThread(th11)
  2456. th11.started.connect(self.sortTableWidgetDispalyThread11.run)
  2457. th11.start()
  2458. nowDay = datetime.datetime.now().strftime("%Y%m%d")
  2459. tomorr = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  2460. yester = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  2461. if self.selectedtime == nowDay:
  2462. datestr = "2"
  2463. elif self.selectedtime == tomorr:
  2464. datestr = "3"
  2465. elif self.selectedtime == yester:
  2466. datestr = "1"
  2467. else:
  2468. datestr = "4"
  2469. if datestr != "4":
  2470. ip = "http://" + self.ipinfo + "/static/updateVin/" + self.displayMode + "/%s" % datestr
  2471. self.vin = requests.get(url=ip, timeout=30).json()["返回值"]
  2472. print(datetime.datetime.now(), "人工更新刷新", self.vin)
  2473. elif "ALL" in str(name) and self.doubleclickLockUpdate == 0:
  2474. th111111 = QThread()
  2475. self.sortTableWidgetDispalyThread111111 = sortdisplaySever("sortTableWidgetDispalyALL", self.ipinfo,
  2476. self.selectedtime, self.FLIGHTonChange_text,
  2477. self.displayMode, "1", self.displaySelect_mode,
  2478. th111111)
  2479. self.sortTableWidgetDispalyThread111111.sortupdate.connect(self.QThreadSortDispalyNow)
  2480. self.sortTableWidgetDispalyThread111111.moveToThread(th111111)
  2481. th111111.started.connect(self.sortTableWidgetDispalyThread111111.run)
  2482. th111111.start()
  2483. elif "search" in str(name) and self.doubleclickLockUpdate == 0:
  2484. # print(datetime.datetime.now())
  2485. th111 = QThread()
  2486. self.sortTableWidgetDispalyThread111 = sortdisplaySever("SearchsortTableWidgetDispaly", self.ipinfo,
  2487. self.selectedtime, self.FLIGHTonChange_text,
  2488. self.displayMode, self.sorttableWidgetDispalydataALL, self.displaySelect_mode,
  2489. th111)
  2490. self.sortTableWidgetDispalyThread111.sortupdate.connect(self.QThreadSortDispalyNow)
  2491. self.sortTableWidgetDispalyThread111.moveToThread(th111)
  2492. th111.started.connect(self.sortTableWidgetDispalyThread111.run)
  2493. th111.start()
  2494. elif "change" in str(name):
  2495. # print(datetime.datetime.now())
  2496. th12 = QThread()
  2497. self.sorttableWidgetDisplayChangeThread12 = sortdisplaySever("sorttableWidgetDisplayChange",
  2498. self.ipinfo, self.selectedtime,
  2499. self.changeonChange_text, "", "", "", th12)
  2500. self.sorttableWidgetDisplayChangeThread12.sortupdate.connect(self.QThreadSortDispalyNow)
  2501. self.sorttableWidgetDisplayChangeThread12.moveToThread(th12)
  2502. th12.started.connect(self.sorttableWidgetDisplayChangeThread12.run)
  2503. th12.start()
  2504. elif "people" in str(name):
  2505. # print(datetime.datetime.now())
  2506. th13 = QThread()
  2507. self.sorttableWidgetPeopleDisplayThread13 = sortdisplaySever("sorttableWidgetPeopleDisplay",
  2508. self.ipinfo, self.selectedtime,
  2509. self.peolpleonChange_text, "",
  2510. self.selectedbc, self.searchpeoplestr,
  2511. th13)
  2512. self.sorttableWidgetPeopleDisplayThread13.sortupdate.connect(self.QThreadSortDispalyNow)
  2513. self.sorttableWidgetPeopleDisplayThread13.moveToThread(th13)
  2514. th13.started.connect(self.sorttableWidgetPeopleDisplayThread13.run)
  2515. th13.start()
  2516. elif "log" in str(name):
  2517. # print(datetime.datetime.now())
  2518. th14 = QThread()
  2519. self.sorttableWidgetLOGDispalyThread14 = sortdisplaySever("sorttableWidgetLOGDispaly", self.ipinfo,
  2520. self.selectedtime, self.logonChange_text, "",
  2521. "", "", th14)
  2522. self.sorttableWidgetLOGDispalyThread14.sortupdate.connect(self.QThreadSortDispalyNow)
  2523. self.sorttableWidgetLOGDispalyThread14.moveToThread(th14)
  2524. th14.started.connect(self.sorttableWidgetLOGDispalyThread14.run)
  2525. th14.start()
  2526. elif "setlocalip" in str(name):
  2527. th99 = QThread()
  2528. self.setlocalipThread = setlocalip(self.localip, th99)
  2529. self.setlocalipThread.localipupdate.connect(self.setlocalipback)
  2530. self.setlocalipThread.moveToThread(th99)
  2531. th99.started.connect(self.setlocalipThread.run)
  2532. th99.start()
  2533. elif "phone" in str(name):
  2534. th15 = QThread()
  2535. self.sorttableWidgetPHONEDispaly15 = sortdisplaySever("sorttableWidgetPHONEDispaly", self.ipinfo, "",
  2536. self.changeonPhone_text, "", "", "", th15)
  2537. self.sorttableWidgetPHONEDispaly15.sortupdate.connect(self.QThreadSortDispalyNow)
  2538. self.sorttableWidgetPHONEDispaly15.moveToThread(th15)
  2539. th15.started.connect(self.sorttableWidgetPHONEDispaly15.run)
  2540. th15.start()
  2541. except Exception:
  2542. logger.error(traceback.format_exc())
  2543. def tableWidgetLOGDispaly(self):
  2544. try:
  2545. log = self.sortlog
  2546. self.tableWidgetLOG.setRowCount(len(log.keys()))
  2547. if log != "":
  2548. for i in log.keys():
  2549. self.tableWidgetLOG.setItem(int(i), 0, QTableWidgetItem(str(int(i)+1)))
  2550. self.tableWidgetLOG.setItem(int(i), 1, QTableWidgetItem(str(log[i])))
  2551. self.tableWidgetLOG.item(int(i), 0).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2552. self.tableWidgetLOG.resizeColumnToContents(0)
  2553. self.tableWidgetLOG.setColumnWidth(1, 240)
  2554. self.tableWidgetLOG.resizeRowsToContents()
  2555. except Exception:
  2556. logger.error(traceback.format_exc())
  2557. def itemclick(self, row, column):
  2558. if self.doubleclickLockUpdate == 1 and self.doubleclickLock == 0:
  2559. self.doubleclickLockUpdate = 0
  2560. #self.QThreadSortNow("ALL")
  2561. #self.QThreadSortNow("main")
  2562. try:
  2563. self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged)
  2564. except:
  2565. pass
  2566. def itemclick2(self, row, column):
  2567. try:
  2568. # print(self.doubleclickLock)
  2569. if (int(column) - self.tableWidgetFlight.columnCount() == -1 or 9 < column < 16) and self.doubleclickLock == 0:
  2570. self.doubleclickLockUpdate=1
  2571. self.clickrow = row
  2572. self.clickcolumn = column
  2573. self.olditem = self.tableWidgetFlight.item(row, column).text()
  2574. item = self.tableWidgetFlight.item(row, column)
  2575. # 如果单元格对象不存在,则返回默认的背景色
  2576. if not item:
  2577. self.color=self.tableWidgetFlight.palette().color(QPalette.Base)
  2578. else:
  2579. # 获取并返回单元格的背景色
  2580. self.color=item.background()
  2581. self.tableWidgetFlight.cellChanged.connect(self.cellchanged)
  2582. else:
  2583. self.doubleclickLockUpdate = 0
  2584. except Exception:
  2585. logger.error(traceback.format_exc())
  2586. def cellchanged(self, row, column):
  2587. if self.clickrow == row and self.clickcolumn == column and self.displayMode =="A":
  2588. self.clickrow = None
  2589. self.clickcolumn = None
  2590. try:
  2591. #t1 = datetime.datetime.now()
  2592. self.doubleclickLock = 1
  2593. self.newitem = self.tableWidgetFlight.item(row, column).text().replace("\"","*").replace("\\",";").replace("\'","*").replace("/","、").replace("#","*")
  2594. flightid = self.tableWidgetFlight.item(row, self.tableWidgetFlight.columnCount() - 5).text()
  2595. flighttype = self.tableWidgetFlight.item(row, 9).text()
  2596. acno = self.tableWidgetFlight.item(row, 1).text()
  2597. flightno = self.tableWidgetFlight.item(row, 4).text()
  2598. bgtype = str(self.displayLabel[column]).replace("/","")
  2599. if int(column) - self.tableWidgetFlight.columnCount() == -1:
  2600. item = self.tableWidgetFlight.item(row, column)
  2601. if item.text() != "":
  2602. text = item.text().replace("\"","*").replace("\\",";").replace("\'","*").replace("/","、").replace("#","*")
  2603. else:
  2604. text = "清空项目12345678987654321"
  2605. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(text) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(flighttype) + "%s" % str(self.selectedtime)
  2606. # print(ip)
  2607. 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())
  2608. try:
  2609. requests.get(url=ip, timeout=30).json()
  2610. requests.get(url=ip2, timeout=30).json()
  2611. except Exception:
  2612. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2613. logger.error(traceback.format_exc())
  2614. elif 9 < column < 16 and self.olditem != self.newitem:
  2615. item = self.tableWidgetFlight.item(row, column)
  2616. if item.text() != "":
  2617. text = item.text().replace("\"","*").replace("\\",";").replace("\'","*").replace("/","、").replace("#","*")
  2618. if "!" in str(text):
  2619. text = text.replace("!", "")
  2620. if "√" in str(text):
  2621. text = text.replace("√", "")
  2622. else:
  2623. text = "清空项目12345678987654321"
  2624. ip = "http://" + str(self.ipinfo) + "/static/checkPglist/%s/%s/%s" % (text, self.selectedtime, self.selectedbc)
  2625. # print(ip)
  2626. try:
  2627. res = requests.get(url=ip, timeout=30).json()
  2628. if res["返回值"] == "fail":
  2629. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2630. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2631. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2632. QMessageBox.warning(self, "警告", "%sAMRO未考勤,请核实考勤名单或者检查人员字母!" % text)
  2633. 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):
  2634. ####需要加一把锁,有功能开关调用
  2635. airplanetype=self.tableWidgetFlight.item(row, 2).text()
  2636. engtype=self.tableWidgetFlight.item(row, 3).text()
  2637. if "A3" in airplanetype and engtype[0:3] =="LEA":
  2638. auttype="ALEAP"
  2639. elif "A3" in airplanetype and engtype[0:3] !="LEA":
  2640. auttype = "ACSC"
  2641. elif "737NG" in airplanetype:
  2642. auttype = "737NG"
  2643. elif "737MAX" in airplanetype:
  2644. auttype = "737MAX"
  2645. else:
  2646. auttype = "ALL"
  2647. ipp = "http://" + str(self.ipinfo) + "/static/maintainAuthCheck/%s/%s" % (text, auttype)
  2648. try:
  2649. res = requests.get(url=ipp, timeout=30).json()
  2650. if res["返回值"] == "fail":
  2651. self.tableWidgetFlight.setItem(int(row), column,QTableWidgetItem(str(self.olditem)))
  2652. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2653. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2654. QMessageBox.warning(self, "警告", "%s不满足发动机授权条件!请核对信息或者更新授权信息!" % text)
  2655. elif res["返回值"] == "ok":
  2656. self.tableWidgetFlight.setItem(int(row), column,QTableWidgetItem(str(self.newitem)))
  2657. self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow"))
  2658. self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black"))
  2659. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2660. ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime)
  2661. # print(ip)
  2662. 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())
  2663. try:
  2664. requests.get(url=ip, timeout=30).json()
  2665. requests.get(url=ip2, timeout=30).json()
  2666. except Exception:
  2667. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2668. logger.error(traceback.format_exc())
  2669. except:
  2670. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2671. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2672. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2673. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2674. logger.error(traceback.format_exc())
  2675. elif (res["返回值"] == "OK" and (self.maintainAuthCheckSts == 0 or "3U" in str(flightno) or "CSC" in str(flightno))) or text == "清空项目12345678987654321" or column != 10:
  2676. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.newitem)))
  2677. self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow"))
  2678. self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black"))
  2679. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2680. ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime)
  2681. # print(ip)
  2682. 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())
  2683. try:
  2684. requests.get(url=ip, timeout=30).json()
  2685. requests.get(url=ip2, timeout=30).json()
  2686. except Exception:
  2687. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2688. logger.error(traceback.format_exc())
  2689. else:
  2690. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2691. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2692. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2693. except Exception:
  2694. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2695. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2696. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2697. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2698. logger.error(traceback.format_exc())
  2699. self.doubleclickLockUpdate = 0
  2700. self.doubleclickLock = 0
  2701. self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged)
  2702. self.QThreadSortNow("main")
  2703. #t2 = datetime.datetime.now()
  2704. #print(f'【编辑操作】【客户端计时】:{t2 - t1}')
  2705. except Exception:
  2706. self.doubleclickLockUpdate = 0
  2707. self.clickrow = None
  2708. self.clickcolumn = None
  2709. try:
  2710. self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged)
  2711. except:
  2712. pass
  2713. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2714. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2715. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2716. logger.error(traceback.format_exc())
  2717. self.doubleclickLock = 0
  2718. self.QThreadSortNow("main")
  2719. elif self.clickrow == row and self.clickcolumn == column and self.displayMode =="B":
  2720. self.clickrow = None
  2721. self.clickcolumn = None
  2722. try:
  2723. self.doubleclickLock = 1
  2724. self.newitem = self.tableWidgetFlight.item(row, column).text()
  2725. flightid = self.tableWidgetFlight.item(row, self.tableWidgetFlight.columnCount() - 5).text()
  2726. flighttype = self.tableWidgetFlight.item(row, 9).text()
  2727. acno = self.tableWidgetFlight.item(row, 1).text()
  2728. flightno = self.tableWidgetFlight.item(row, 4).text()
  2729. bgtype = str(self.displayLabel[column]).replace("/","")
  2730. if int(column) - self.tableWidgetFlight.columnCount() == -1:
  2731. item = self.tableWidgetFlight.item(row, column)
  2732. if item.text() != "":
  2733. text = item.text().replace("\"","#").replace("\\",";").replace("\'","#")
  2734. else:
  2735. text = "清空项目12345678987654321"
  2736. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(text) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(flighttype) + "%s" % str(self.selectedtime)
  2737. # print(ip)
  2738. 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())
  2739. try:
  2740. requests.get(url=ip, timeout=30).json()
  2741. requests.get(url=ip2, timeout=30).json()
  2742. except Exception:
  2743. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2744. logger.error(traceback.format_exc())
  2745. elif 9 < column < 16 and self.olditem != self.newitem:
  2746. item = self.tableWidgetFlight.item(row, column)
  2747. if item.text() != "":
  2748. text = item.text().replace("\"","#").replace("\\",";").replace("\'","#")
  2749. if "!" in str(text):
  2750. text = text.replace("!", "")
  2751. if "√" in str(text):
  2752. text = text.replace("√", "")
  2753. else:
  2754. text = "清空项目12345678987654321"
  2755. # print(ip)
  2756. try:
  2757. if text != "清空项目12345678987654321":
  2758. ####需要加一把锁,有功能开关调用
  2759. ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime)
  2760. # print(ip)
  2761. 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())
  2762. try:
  2763. requests.get(url=ip, timeout=30).json()
  2764. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.newitem)))
  2765. self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow"))
  2766. self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black"))
  2767. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2768. requests.get(url=ip2, timeout=30).json()
  2769. except Exception:
  2770. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2771. logger.error(traceback.format_exc())
  2772. elif text == "清空项目12345678987654321":
  2773. ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (column, text, flightid, self.displayMode, flighttype, self.selectedtime)
  2774. # print(ip)
  2775. 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())
  2776. try:
  2777. requests.get(url=ip, timeout=30).json()
  2778. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.newitem)))
  2779. self.tableWidgetFlight.item(int(row), column).setBackground(QColor("yellow"))
  2780. self.tableWidgetFlight.item(int(row), column).setForeground(QColor("black"))
  2781. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2782. requests.get(url=ip2, timeout=30).json()
  2783. except Exception:
  2784. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2785. logger.error(traceback.format_exc())
  2786. else:
  2787. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2788. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2789. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2790. except Exception:
  2791. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2792. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2793. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2794. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  2795. logger.error(traceback.format_exc())
  2796. self.doubleclickLockUpdate = 0
  2797. self.doubleclickLock = 0
  2798. self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged)
  2799. self.QThreadSortNow("main")
  2800. except Exception:
  2801. self.doubleclickLockUpdate = 0
  2802. self.clickrow = None
  2803. self.clickcolumn = None
  2804. try:
  2805. self.tableWidgetFlight.cellChanged.disconnect(self.cellchanged)
  2806. except:
  2807. pass
  2808. self.tableWidgetFlight.setItem(int(row), column, QTableWidgetItem(str(self.olditem)))
  2809. self.tableWidgetFlight.item(int(row), column).setBackground(QColor(self.color))
  2810. self.tableWidgetFlight.item(int(row), column).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2811. logger.error(traceback.format_exc())
  2812. self.doubleclickLock = 0
  2813. self.QThreadSortNow("main")
  2814. def btnClick(self, item):
  2815. if int(self.authority) != 3:
  2816. try:
  2817. btn = self.sender()
  2818. now_2=datetime.datetime.now()- datetime.timedelta(seconds=2)
  2819. print(self.changeupdatetime,now_2)
  2820. if btn:
  2821. row = self.tableWidget.indexAt(btn.pos()).row()
  2822. a = self.tableWidget.item(row, 3).text()
  2823. self.severpost_nomeassge("dealLogs", "/%s" % self.user, "/%s" % a, "", "")
  2824. self.QThreadSortNow("change")
  2825. if self.changeupdatetime < now_2:
  2826. self.changeupdatetime = datetime.datetime.now()
  2827. self.QThreadSortNow("main")
  2828. except Exception:
  2829. logger.error(traceback.format_exc())
  2830. else:
  2831. QMessageBox.warning(self, "提示", "权限不够,请联系管理员!")
  2832. def tableWidgetDisplayChange(self):
  2833. try:
  2834. log = self.sortlogchange
  2835. self.tableWidget.setRowCount(len(log.keys()))
  2836. if log != "":
  2837. for i in log.keys():
  2838. btnList = [QPushButton('处理')]
  2839. self.tableWidget.setItem(int(i), 0, QTableWidgetItem(str(int(i)+1)))
  2840. self.tableWidget.setItem(int(i), 1, QTableWidgetItem(str(log[i][2])))
  2841. self.tableWidget.setItem(int(i), 3, QTableWidgetItem(str(log[i][0])))
  2842. self.tableWidget.setItem(int(i), 4, QTableWidgetItem(str(log[i][1])))
  2843. self.tableWidget.setItem(int(i), 5, QTableWidgetItem(str(log[i][10])))
  2844. self.tableWidget.setCellWidget(int(i), 2, btnList[0])
  2845. self.tableWidget.item(int(i), 0).setForeground(QColor('red'))
  2846. self.tableWidget.item(int(i), 1).setForeground(QColor('red'))
  2847. self.tableWidget.item(int(i), 0).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  2848. self.tableWidget.item(int(i), 1).setToolTip("%s" % str(log[i][10]))
  2849. for btn in btnList:
  2850. btn.clicked.connect(self.btnClick)
  2851. self.tableWidget.setColumnHidden(5, True)
  2852. self.tableWidget.setColumnHidden(4, True)
  2853. self.tableWidget.setColumnHidden(3, True)
  2854. self.tableWidget.resizeColumnToContents(0)
  2855. self.tableWidget.setColumnWidth(2, 40)
  2856. self.tableWidget.setColumnWidth(1, 210)
  2857. self.tableWidget.resizeRowsToContents()
  2858. except Exception:
  2859. logger.error(traceback.format_exc())
  2860. def generateMenu3(self, pos):
  2861. try:
  2862. for i in self.tableWidget_3.selectionModel().selection().indexes():
  2863. menu = QMenu()
  2864. item2 = menu.addAction('拨打IP电话')
  2865. screenPos = self.tableWidget_3.mapToGlobal(pos)
  2866. action = menu.exec(screenPos)
  2867. rowIndex = i.row()
  2868. phonenum = self.tableWidget_3.item(rowIndex, 3).text()
  2869. if action == item2:
  2870. if self.localip != None and self.localtoken != None:
  2871. try:
  2872. data = {"PHB_AutoDialNumber": phonenum,
  2873. "ReturnPage": "/contacts.htm",
  2874. "AutoDialSubmit": "submit",
  2875. "PHB_AutoDialLine": "1"
  2876. }
  2877. header = {
  2878. "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",
  2879. "Connection": "keep-alive",
  2880. "Cookie": self.localtoken
  2881. }
  2882. requests.post(url="http://%s/contacts.htm" % self.localip, data=data, headers=header)
  2883. except Exception:
  2884. self.show_info("警告", "拨号失败,请检查IP后重新配置或联系管理员!")
  2885. logger.error(traceback.format_exc())
  2886. else:
  2887. self.show_info("警告", "使用前请配置IP电话!")
  2888. return
  2889. except Exception:
  2890. logger.error(traceback.format_exc())
  2891. def generateMenu2(self, pos):
  2892. try:
  2893. for i in self.tableWidgetPerson.selectionModel().selection().indexes():
  2894. menu = QMenu()
  2895. item1 = menu.addAction('查看详情')
  2896. item2 = menu.addAction('拨打IP电话')
  2897. screenPos = self.tableWidgetPerson.mapToGlobal(pos)
  2898. action = menu.exec(screenPos)
  2899. rowIndex = i.row()
  2900. colnum = self.tableWidgetPerson.columnCount()
  2901. name = self.tableWidgetPerson.item(rowIndex, 1).text()
  2902. # print(name)
  2903. if action == item2:
  2904. ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name
  2905. infos = requests.get(url=ip, timeout=30).json()
  2906. # print(self.localtoken)
  2907. # '''
  2908. if infos == {}:
  2909. self.show_info("警告", "无法查询到%s个人信息,请更新后尝试!!" % name)
  2910. else:
  2911. try:
  2912. # print(infos["电话"])
  2913. data = {"PHB_AutoDialNumber": infos["电话"],
  2914. "ReturnPage": "/contacts.htm",
  2915. "AutoDialSubmit": "submit",
  2916. "PHB_AutoDialLine": "1"
  2917. }
  2918. header = {
  2919. "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",
  2920. "Connection": "keep-alive",
  2921. "Cookie": self.localtoken
  2922. }
  2923. requests.post(url="http://%s/contacts.htm" % self.localip, data=data, headers=header)
  2924. except Exception:
  2925. logger.error(traceback.format_exc())
  2926. # '''
  2927. return
  2928. elif action == item1:
  2929. ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name
  2930. infos = requests.get(url=ip, timeout=30).json()
  2931. # print(infos)
  2932. # '''
  2933. if infos == {}:
  2934. self.show_info("警告", "无法查询到%s个人信息,请更新后尝试!!" % name)
  2935. else:
  2936. ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name
  2937. infos = requests.get(url=ip, timeout=30).json()
  2938. self.checkLoadSingal = checkLoadSingal()
  2939. self.checkLoadSingal.worknum = infos["工号"]
  2940. self.checkLoadSingal.ipinfo = self.ipinfo
  2941. self.checkLoadSingal.name = name
  2942. self.checkLoadSingal.selectedtime = self.selectedtime
  2943. self.checkLoadSingal.start()
  2944. # print("正在开发")
  2945. else:
  2946. return
  2947. except Exception:
  2948. logger.error(traceback.format_exc())
  2949. def LM_TSK_SURE_PG_NOW(self, id, empNos, type, shiftDate, shift):
  2950. dict = {"taskid": id,
  2951. "empNos": empNos,
  2952. "type": type,
  2953. "shiftDate": shiftDate,
  2954. "shift": shift
  2955. }
  2956. res = self.severpostData_nomeassge("LM_TSK_SURE_PG", data=dict)["返回值"]
  2957. return res
  2958. def send_dingdong(self, a, b, c, d, e, f, g, h, i, j, k, l):
  2959. dict_dingdong = {"acno": a,
  2960. "actype": b,
  2961. "tasktype": c,
  2962. "tatd": d,
  2963. "bay": e,
  2964. "taskid": f,
  2965. "wxemp": g,
  2966. "fxemp": h,
  2967. "wx": i,
  2968. "fx": j,
  2969. "ecsj":k,
  2970. "msgInfo": l
  2971. }
  2972. res = self.severpostData_nomeassge("dingdong", data=dict_dingdong)["返回值"]
  2973. return res
  2974. def getRiskData(self,bay,flighttype):
  2975. if "送" in flighttype or flighttype == "航前":
  2976. type="出港提示"
  2977. else:
  2978. type = "进港提示"
  2979. res=""
  2980. try:
  2981. ip = "http://" + str(self.ipinfo) + "/static/getRiskData/" + "%s/" % bay + "%s" % type
  2982. res=requests.get(url=ip, timeout=30).json()["返回值"]
  2983. except Exception:
  2984. print(traceback.format_exc())
  2985. QMessageBox.warning(self, "风险提示失效", "风险提示推送功能失效请联系管理员!")
  2986. return res
  2987. def generateMenu(self, pos):
  2988. if int(self.authority) < 3 and self.displayMode =="A":
  2989. try:
  2990. zydy = {"短停": "TR", "航后": "AF", "航前": "AP", "特后前": "TAF", "未显示": ""}
  2991. for i in self.tableWidgetFlight.selectionModel().selection().indexes():
  2992. '''
  2993. col_dic = {"0": "序号", "1": "机号", "2": "机型", "3": "发动机", "4": "航班号", "5": "计达", "6": "预达", "7": "计飞",
  2994. "8": "机位", "9": "类型", "10": "放行", "11": "工1", "12": "工2", "13": "工3", "14": "工4", "15": "班组长",
  2995. "16": "到位", "18": "放行","19": "销夹", "17": "二送", "20": "随机", "21": "随机", "22": "保留", "23": "工作包",
  2996. "24": "进出港城市","25": "维修人员", "26": "二送人员", "27": "放行", "28": "航班编号", "29": "任务编号","30":"TATD","31":"类型","32":"附加消息"}
  2997. '''
  2998. menu = QMenu()
  2999. item1 = menu.addAction('维修人员派工')
  3000. item2 = menu.addAction('放行人员派工')
  3001. item3 = menu.addAction('二送人员派工')
  3002. item4 = menu.addAction('推送维修人员')
  3003. item5 = menu.addAction('推送放行人员')
  3004. item6 = menu.addAction('推送二送人员')
  3005. item7 = menu.addAction('确认通知')
  3006. item8 = menu.addAction('人工接机到位')
  3007. item9 = menu.addAction('人工确认放行')
  3008. item10 = menu.addAction('人工确认随机到位')
  3009. item11 = menu.addAction('人工确认二送到位')
  3010. item12 = menu.addAction('人工确认销夹取下')
  3011. item13 = menu.addAction('一键派工&通知')
  3012. item15 = menu.addAction('电话通知')
  3013. item16 = menu.addAction('查看工作包')
  3014. item17 = menu.addAction('删除航班')
  3015. item18 = menu.addAction('工作交接')
  3016. screenPos = self.tableWidgetFlight.mapToGlobal(pos)
  3017. action = menu.exec(screenPos)
  3018. rowIndex = i.row()
  3019. colnum = self.tableWidgetFlight.columnCount()
  3020. # print(colnum)
  3021. acno = self.tableWidgetFlight.item(rowIndex, 1).text()
  3022. flightno = self.tableWidgetFlight.item(rowIndex, 4).text()
  3023. qw1 = self.tableWidgetFlight.item(rowIndex, 11).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 11).text() else self.tableWidgetFlight.item(rowIndex, 11).text()
  3024. qw2 = self.tableWidgetFlight.item(rowIndex, 12).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 12).text() else self.tableWidgetFlight.item(rowIndex, 12).text()
  3025. g1 = self.tableWidgetFlight.item(rowIndex, 13).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 13).text() else self.tableWidgetFlight.item(rowIndex, 13).text()
  3026. g2 = self.tableWidgetFlight.item(rowIndex, 14).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 14).text() else self.tableWidgetFlight.item(rowIndex, 14).text()
  3027. fx = self.tableWidgetFlight.item(rowIndex, 10).text().replace("!", "") if "!" in self.tableWidgetFlight.item(rowIndex, 10).text() else self.tableWidgetFlight.item(rowIndex, 10).text()
  3028. qw1_1 = "" if "√" in qw1 else qw1
  3029. qw2_1 = "" if "√" in qw2 else qw2
  3030. g1_1 = "" if "√" in g1 else g1
  3031. g2_1 = "" if "√" in g2 else g2
  3032. fx_1 = "" if "√" in fx else fx
  3033. qw1 = qw1.replace("√", "") if "√" in qw1 else qw1
  3034. qw2 = qw2.replace("√", "") if "√" in qw2 else qw2
  3035. g1 = g1.replace("√", "") if "√" in g1 else g1
  3036. g2 = g2.replace("√", "") if "√" in g2 else g2
  3037. fx = fx.replace("√", "") if "√" in fx else fx
  3038. fj = str(self.tableWidgetFlight.item(rowIndex, colnum - 1).text())
  3039. dict_people = {"工1": qw1,
  3040. "工2": qw2,
  3041. "工3": g1,
  3042. "工4": g2,
  3043. "放行": fx
  3044. }
  3045. dict_people_noCall = {"工1": qw1_1,
  3046. "工2": qw2_1,
  3047. "工3": g1_1,
  3048. "工4": g2_1,
  3049. "放行": fx_1
  3050. }
  3051. # print(dict_people)
  3052. if action == item1:
  3053. if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(
  3054. self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "" :
  3055. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3056. # print(empNos)
  3057. if empNos["code"] != "fail":
  3058. res=self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["WXempNos"],"WX",empNos["date"],empNos["bc"])
  3059. if res == "ok":
  3060. try:
  3061. 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())
  3062. requests.get(url=ip, timeout=30).json()
  3063. except Exception:
  3064. logger.error(traceback.format_exc())
  3065. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3066. self.show_info("成功提示", "派工成功!")
  3067. if empNos["faillist"] != []:
  3068. try:
  3069. 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())
  3070. requests.get(url=ip, timeout=30).json()
  3071. except Exception:
  3072. logger.error(traceback.format_exc())
  3073. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3074. self.show_info("派工错误", "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"])
  3075. else:
  3076. self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工!!")
  3077. return
  3078. elif action == item18:
  3079. if int(self.authority) <= 2:
  3080. if self.tableWidgetFlight.item(rowIndex, 24).text() !="" and "【交班航班】" not in fj and \
  3081. ("3U" in self.tableWidgetFlight.item(rowIndex, 4).text() or "CSC" in self.tableWidgetFlight.item(rowIndex, 4).text()):
  3082. relay = QMessageBox.warning(self, "警告", "是否确定要对B-%s,%s进行工作交接?"%(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 4).text()),
  3083. QMessageBox.StandardButton.Yes,
  3084. QMessageBox.StandardButton.Close)
  3085. if relay == QMessageBox.StandardButton.Yes:
  3086. data = {"taskid": self.tableWidgetFlight.item(rowIndex, 26).text(),"sts": "1"}
  3087. res = self.severpostData_nomeassge("handoverflight", data=data)["返回值"]
  3088. if res == "ok":
  3089. flightid = self.tableWidgetFlight.item(rowIndex, colnum - 5).text()
  3090. flighttype = self.tableWidgetFlight.item(rowIndex, 9).text()
  3091. fjxx = "【交班航班】" + fj
  3092. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(fjxx) + "%s/" % str(flightid) + "A/%s/" % str(flighttype) + "%s" % str(self.selectedtime)
  3093. try:
  3094. requests.get(url=ip, timeout=30).json()
  3095. except Exception:
  3096. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  3097. logger.error(traceback.format_exc())
  3098. self.QThreadSortNow("main")
  3099. QMessageBox.warning(self, "提示", "B-%s,%s工作交接推送成功"%(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 4).text()))
  3100. else:
  3101. QMessageBox.warning(self, "警告", "航班交接失败,请重新尝试")
  3102. elif "【交班航班】" in fj:
  3103. QMessageBox.warning(self, "提示", "该航班已交接,请勿重复交接!")
  3104. elif "3U" not in self.tableWidgetFlight.item(rowIndex, 4).text() and "CSC" not in self.tableWidgetFlight.item(rowIndex, 4).text():
  3105. QMessageBox.warning(self, "提示", "该航班为非川航航班,无需交接!!!")
  3106. else:
  3107. QMessageBox.warning(self, "提示", "无法对未安排人员的的航班无法进行交接班,请先进行派工后交班!")
  3108. else:
  3109. self.show_info("警告", "权限不够,请联系管理员!!!")
  3110. return
  3111. elif action == item17:
  3112. if int(self.authority) <= 1:
  3113. if "MAN" in str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()):
  3114. ip = "http://" + str(self.ipinfo) + "/static/" + "deleteFlight/" + "%s/%s/%s" % (
  3115. self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), self.user, self.selectedtime)
  3116. res = requests.get(url=ip, timeout=30).json()
  3117. if res["返回值"] == "ok":
  3118. self.show_info("成功提示", "航班删除成功!")
  3119. try:
  3120. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s航班被删除%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3121. requests.get(url=ip, timeout=30).json()
  3122. except Exception:
  3123. logger.error(traceback.format_exc())
  3124. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3125. self.QThreadSortNow("main")
  3126. else:
  3127. self.show_info("提示", "航班删除失败,如需请联系管理员!")
  3128. else:
  3129. self.show_info("警告", "删除航班功能仅限于人工添加的航班,AMRO航班无法删除!!!")
  3130. else:
  3131. self.show_info("警告", "权限不够,请联系管理员!!!")
  3132. return
  3133. elif action == item16:
  3134. 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()) != "":
  3135. taskid = self.tableWidgetFlight.item(rowIndex, colnum - 4).text()
  3136. ip = "http://" + str(self.ipinfo) + "/static/checkWorkjob/%s" % taskid
  3137. infos = requests.get(url=ip, timeout=30).json()
  3138. if infos["返回值"] == "ok":
  3139. self.show_info("成功提示", "工作包查询成功!")
  3140. self.QThreadSortNow("main")
  3141. else:
  3142. self.show_info("警告", "该航班非AMRO航班或者无任务编号,无法查询工作包!!")
  3143. return
  3144. elif action == item15:
  3145. # {"工号":"0","电话":"1","姓名":"2","航班编号":"3","航班号":"4","附加消息":"5","拨号次数":"6","":"8","":"9","":"10"}
  3146. if "人工" not in str(fj):
  3147. for i in dict_people_noCall.keys():
  3148. if dict_people_noCall[i] != "":
  3149. name = str(dict_people_noCall[i])
  3150. if "!" in name:
  3151. name = name.replace("!", "")
  3152. if "√" in name:
  3153. name = name.replace("√", "")
  3154. ip = "http://" + str(self.ipinfo) + "/static/get_empNos_phoone/%s" % name
  3155. infos = requests.get(url=ip, timeout=30).json()
  3156. # print(infos)
  3157. flightnumber = self.tableWidgetFlight.item(rowIndex, 4).text()
  3158. flighttype = self.tableWidgetFlight.item(rowIndex, 9).text()
  3159. flightids = str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) + str(
  3160. flighttype) + str(name) + str(datetime.datetime.now().strftime("%H:%M:%S"))
  3161. if infos == {}:
  3162. self.show_info("警告", "无法查询到%s个人信息,请人工联系或更新后尝试!!" % name)
  3163. ip = "http://" + str(
  3164. self.ipinfo) + "/static/insertLogs/" + "%s%s%s未在通讯录,无法完成自动拨号,请人工联系或更新信息后尝试" % (
  3165. flightnumber, flighttype, name) + "/system/" + str(
  3166. datetime.datetime.now().strftime("%Y-%m-%d %H:%M"))
  3167. requests.get(url=ip, timeout=30).json()
  3168. else:
  3169. callnumber = 0
  3170. data = {"工号": "%s" % infos["工号"], "电话": "%s" % infos["电话"], "姓名": "%s" % name,
  3171. "航班编号": "%s" % flightids, "航班号": "%s" % flightnumber, "附加消息": "%s" % fj,
  3172. "拨号次数": callnumber}
  3173. self.severpostData_nomeassge("insertCalllist", data)
  3174. ip = "http://" + str(self.ipinfo) + "/static/calltry"
  3175. requests.get(url=ip, timeout=30).json()
  3176. self.severpost_nomeassge("infoConfirm", "/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),
  3177. "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(),
  3178. "/%s" % self.displayMode, "/%s" % self.selectedtime)
  3179. try:
  3180. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s电话通知%s/" % (
  3181. acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3182. requests.get(url=ip, timeout=30).json()
  3183. except Exception:
  3184. logger.error(traceback.format_exc())
  3185. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3186. self.QThreadSortNow("main")
  3187. # 需要一次拨号请求
  3188. else:
  3189. ip = "http://" + str(self.ipinfo) + "/static/insertLogs/" + "%s,%s附加消息有需要人工通知的内容,请人工介入,请通知到位后点击确认通知!!" % (acno, flightno) + "/system/" + str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M"))
  3190. requests.get(url=ip, timeout=30).json()
  3191. QMessageBox.warning(self, "人工提醒", "%s,%s附加消息有需要人工通知的内容,将推送航班监控席位由人工通知!" % (acno, flightno) )
  3192. return
  3193. elif action == item2:
  3194. if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(
  3195. self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "":
  3196. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3197. if empNos["code"] != "fail":
  3198. res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["FXempNos"], "FX", empNos["date"], empNos["bc"])
  3199. if res == "ok":
  3200. try:
  3201. 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())
  3202. requests.get(url=ip, timeout=30).json()
  3203. except:
  3204. self.show_info("日志功能失效", "操作日志功能失效请联系管理员")
  3205. self.show_info("成功提示", "派工成功!")
  3206. if empNos["faillist"] != []:
  3207. try:
  3208. 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())
  3209. requests.get(url=ip, timeout=30).json()
  3210. except Exception:
  3211. logger.error(traceback.format_exc())
  3212. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3213. self.show_info("派工错误", "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"])
  3214. else:
  3215. self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工!!")
  3216. return
  3217. elif action == item3:
  3218. 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()) != "":
  3219. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3220. if empNos["code"] != "fail":
  3221. res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["ESempNos"], "ECSJ", empNos["date"], empNos["bc"])
  3222. if res == "ok":
  3223. try:
  3224. 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())
  3225. requests.get(url=ip, timeout=30).json()
  3226. except Exception:
  3227. logger.error(traceback.format_exc())
  3228. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3229. self.show_info("成功提示", "派工成功!")
  3230. if empNos["faillist"] != []:
  3231. try:
  3232. 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())
  3233. requests.get(url=ip, timeout=30).json()
  3234. except Exception:
  3235. logger.error(traceback.format_exc())
  3236. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3237. self.show_info("派工错误", "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"])
  3238. else:
  3239. self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工!!")
  3240. return
  3241. elif action == item4:
  3242. if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(
  3243. self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "":
  3244. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3245. if empNos["code"] != "fail":
  3246. risktips=""
  3247. if self.tableWidgetFlight.item(rowIndex, 8).text() !="":
  3248. res=self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3249. risktips=f"【风险提示】{res}" if res !="" else ""
  3250. msgInfo="进港维修任务保障推送!%s%s" % (fj,risktips)
  3251. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3252. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3253. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3254. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),
  3255. empNos["WXempNos"],"",empNos["WX"],empNos["FX"],"",msgInfo)
  3256. if res != "ok":
  3257. self.show_info("失败提示", "%s维修人员%s派工信息推送失败!" % (self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["WX"]))
  3258. else:
  3259. try:
  3260. 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())
  3261. requests.get(url=ip, timeout=30).json()
  3262. except Exception:
  3263. logger.error(traceback.format_exc())
  3264. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3265. 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)
  3266. self.show_info("成功提示", "%s维修人员%s派工信息推送成功!!!" % (self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["WX"]))
  3267. self.QThreadSortNow("main")
  3268. if empNos["faillist"] != []:
  3269. try:
  3270. 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())
  3271. requests.get(url=ip, timeout=30).json()
  3272. except Exception:
  3273. logger.error(traceback.format_exc())
  3274. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3275. self.show_info("通知错误", "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"])
  3276. else:
  3277. self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工叮咚消息通知!!")
  3278. return
  3279. elif action == item5:
  3280. if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(
  3281. self.tableWidgetFlight.item(rowIndex, colnum - 5).text())and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "":
  3282. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3283. if empNos["code"] != "fail":
  3284. risktips=""
  3285. if self.tableWidgetFlight.item(rowIndex, 8).text() !="":
  3286. res=self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3287. risktips=f"【风险提示】{res}" if res !="" else ""
  3288. msgInfo="放行人员保障推送!%s%s" % (fj,risktips)
  3289. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3290. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3291. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3292. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),
  3293. "", empNos["FXempNos"],empNos["WX"],empNos["FX"],"",msgInfo)
  3294. if res != "ok":
  3295. self.show_info("失败提示", "%s放行人员%s派工信息推送失败!" % (
  3296. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"]))
  3297. else:
  3298. try:
  3299. 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())
  3300. requests.get(url=ip, timeout=30).json()
  3301. except Exception:
  3302. logger.error(traceback.format_exc())
  3303. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3304. self.show_info("成功提示", "%s放行人员%s派工信息推成功!!!" % (
  3305. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"]))
  3306. self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),
  3307. "/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),
  3308. "/%s" % self.displayMode, "/%s" % self.selectedtime)
  3309. self.QThreadSortNow("main")
  3310. if empNos["faillist"] != []:
  3311. try:
  3312. 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())
  3313. requests.get(url=ip, timeout=30).json()
  3314. except Exception:
  3315. logger.error(traceback.format_exc())
  3316. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3317. self.show_info("通知错误", "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"])
  3318. else:
  3319. self.show_info("警告","该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工叮咚消息通知!!")
  3320. return
  3321. elif action == item6:
  3322. if str(self.tableWidgetFlight.item(rowIndex, colnum - 5).text()) != "" and "MAN" not in str(
  3323. self.tableWidgetFlight.item(rowIndex, colnum - 5).text())and str(self.tableWidgetFlight.item(rowIndex, colnum - 4).text()) != "":
  3324. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3325. if empNos["code"] != "fail":
  3326. risktips = ""
  3327. if self.tableWidgetFlight.item(rowIndex, 8).text() != "":
  3328. res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3329. risktips = f"【风险提示】{res}" if res != "" else ""
  3330. msgInfo = "二次送机任务推送!%s%s" % (fj, risktips)
  3331. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3332. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3333. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3334. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),
  3335. empNos["ESempNos"], "",empNos["WX"],empNos["FX"],empNos["ES"],msgInfo)
  3336. if res != "ok":
  3337. self.show_info("失败提示", "%s二次送机人员%s派工信息推送失败!" % (
  3338. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["ES"]))
  3339. else:
  3340. try:
  3341. 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())
  3342. requests.get(url=ip, timeout=30).json()
  3343. except Exception:
  3344. logger.error(traceback.format_exc())
  3345. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3346. self.show_info("成功提示", "%s二次送机人员%s派工信息推送成功!!!" % (
  3347. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["ES"]))
  3348. self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),
  3349. "/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),
  3350. "/%s" % self.displayMode, "/%s" % self.selectedtime)
  3351. self.QThreadSortNow("main")
  3352. if empNos["faillist"] != []:
  3353. try:
  3354. 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())
  3355. requests.get(url=ip, timeout=30).json()
  3356. except Exception:
  3357. logger.error(traceback.format_exc())
  3358. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3359. self.show_info("通知错误", "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"])
  3360. else:
  3361. self.show_info("警告","该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工叮咚消息通知!!")
  3362. return
  3363. elif action == item7:
  3364. self.severpost_nomeassge("infoConfirm", "/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),
  3365. "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(),
  3366. "/%s" % self.displayMode, "/%s" % self.selectedtime)
  3367. try:
  3368. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s点击确认通知%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3369. requests.get(url=ip, timeout=30).json()
  3370. except Exception:
  3371. logger.error(traceback.format_exc())
  3372. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3373. self.QThreadSortNow("main")
  3374. return
  3375. elif action == item8:
  3376. self.severpost_nomeassge("manChangests",
  3377. "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/接机到位",
  3378. "/%s" % self.selectedtime, "/%s" % self.user)
  3379. try:
  3380. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击接机到位%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3381. requests.get(url=ip, timeout=30).json()
  3382. except Exception:
  3383. logger.error(traceback.format_exc())
  3384. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3385. self.QThreadSortNow("main")
  3386. self.QThreadSortNow("change")
  3387. self.QThreadSortNow("log")
  3388. return
  3389. elif action == item9:
  3390. self.severpost_nomeassge("manChangests","/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/放行","/%s" % self.selectedtime, "/%s" % self.user)
  3391. # print("人工确认放行")
  3392. try:
  3393. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击放行%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3394. requests.get(url=ip, timeout=30).json()
  3395. except Exception:
  3396. logger.error(traceback.format_exc())
  3397. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3398. self.QThreadSortNow("main")
  3399. self.QThreadSortNow("change")
  3400. self.QThreadSortNow("log")
  3401. return
  3402. elif action == item10:
  3403. self.severpost_nomeassge("manChangests","/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/随机到位","/%s" % self.selectedtime, "/%s" % self.user)
  3404. # print("人工确认随机到位")
  3405. try:
  3406. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击随机到位%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3407. requests.get(url=ip, timeout=30).json()
  3408. except Exception:
  3409. logger.error(traceback.format_exc())
  3410. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3411. self.QThreadSortNow("main")
  3412. self.QThreadSortNow("change")
  3413. self.QThreadSortNow("log")
  3414. return
  3415. elif action == item11:
  3416. self.severpost_nomeassge("manChangests",
  3417. "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/二送到位",
  3418. "/%s" % self.selectedtime, "/%s" % self.user)
  3419. # print("人工确认二送到位")
  3420. try:
  3421. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击二送到位%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3422. requests.get(url=ip, timeout=30).json()
  3423. except Exception:
  3424. logger.error(traceback.format_exc())
  3425. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3426. self.QThreadSortNow("main")
  3427. self.QThreadSortNow("change")
  3428. self.QThreadSortNow("log")
  3429. return
  3430. elif action == item12:
  3431. self.severpost_nomeassge("manChangests",
  3432. "/%s" % self.tableWidgetFlight.item(rowIndex, colnum - 5).text(), "/销子夹板",
  3433. "/%s" % self.selectedtime, "/%s" % self.user)
  3434. try:
  3435. ip = "http://" + str(self.ipinfo) + "/static/insertLogs2/" + "%s,%s人工点击销子夹板%s/" % (acno, flightno,datetime.datetime.now()) + "%s/" % str(self.user) + "%s" % str(datetime.datetime.now())
  3436. requests.get(url=ip, timeout=30).json()
  3437. except Exception:
  3438. logger.error(traceback.format_exc())
  3439. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3440. self.QThreadSortNow("main")
  3441. self.QThreadSortNow("change")
  3442. self.QThreadSortNow("log")
  3443. return
  3444. elif action == item13:
  3445. msg = {}
  3446. 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()) != "":
  3447. if self.tableWidgetFlight.item(rowIndex, 9).text() != "短停送" and self.tableWidgetFlight.item(rowIndex, 9).text() != "特后前送":
  3448. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3449. # print(empNos)
  3450. try:
  3451. if empNos["code"] != "fail":
  3452. res=self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["WXempNos"],"WX",empNos["date"],empNos["bc"])
  3453. if res == "ok":
  3454. msg["aa"] = "%s维修人员派工成功!"% str(qw1 + "-" + qw2 + "-" + g1 + "-" + g2)
  3455. try:
  3456. 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())
  3457. requests.get(url=ip, timeout=30).json()
  3458. except Exception:
  3459. logger.error(traceback.format_exc())
  3460. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3461. if empNos["faillist"] != []:
  3462. msg["a"] = "以下维修人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3463. try:
  3464. 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())
  3465. requests.get(url=ip, timeout=30).json()
  3466. except Exception:
  3467. logger.error(traceback.format_exc())
  3468. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3469. except:
  3470. pass
  3471. try:
  3472. if empNos["code"] != "fail":
  3473. res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["FXempNos"], "FX", empNos["date"], empNos["bc"])
  3474. if res == "ok":
  3475. msg["bb"] = "放行人员%s派工成功!"%str(fx)
  3476. try:
  3477. 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())
  3478. requests.get(url=ip, timeout=30).json()
  3479. except Exception:
  3480. logger.error(traceback.format_exc())
  3481. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3482. if empNos["faillist"] != []:
  3483. msg["b"] = "以下放行人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3484. try:
  3485. 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())
  3486. requests.get(url=ip, timeout=30).json()
  3487. except Exception:
  3488. logger.error(traceback.format_exc())
  3489. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3490. except:
  3491. pass
  3492. try:
  3493. if empNos["code"] != "fail":
  3494. risktips = ""
  3495. if self.tableWidgetFlight.item(rowIndex, 8).text() != "":
  3496. res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3497. risktips = f"【风险提示】{res}" if res != "" else ""
  3498. msgInfo = "进港维修任务保障推送!%s%s" % (fj, risktips)
  3499. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3500. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3501. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3502. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["WXempNos"],"",empNos["WX"],empNos["FX"],"",msgInfo)
  3503. if res == "ok":
  3504. msg["cc"] = "%s维修人员%s派工信息推送成功!!!" % (self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["WX"])
  3505. 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)
  3506. try:
  3507. 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())
  3508. requests.get(url=ip, timeout=30).json()
  3509. except Exception:
  3510. logger.error(traceback.format_exc())
  3511. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3512. if empNos["faillist"] != []:
  3513. msg["c"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3514. try:
  3515. 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())
  3516. requests.get(url=ip, timeout=30).json()
  3517. except Exception:
  3518. logger.error(traceback.format_exc())
  3519. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3520. except:
  3521. #pass
  3522. print(traceback.format_exc())
  3523. try:
  3524. if empNos["code"] != "fail":
  3525. risktips = ""
  3526. if self.tableWidgetFlight.item(rowIndex, 8).text() != "":
  3527. res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3528. risktips = f"【风险提示】{res}" if res != "" else ""
  3529. msgInfo = "放行任务保障信息!%s%s" % (fj, risktips)
  3530. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3531. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3532. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3533. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),
  3534. "", empNos["FXempNos"],empNos["WX"],empNos["FX"],"",msgInfo)
  3535. if res == "ok":
  3536. msg["dd"] = "%s放行人员%s派工信息推成功!!!" % (
  3537. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"])
  3538. 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)
  3539. try:
  3540. 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())
  3541. requests.get(url=ip, timeout=30).json()
  3542. except Exception:
  3543. logger.error(traceback.format_exc())
  3544. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3545. if empNos["faillist"] != []:
  3546. msg["d"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3547. try:
  3548. 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())
  3549. requests.get(url=ip, timeout=30).json()
  3550. except Exception:
  3551. logger.error(traceback.format_exc())
  3552. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3553. except:
  3554. pass
  3555. else:
  3556. empNos = self.severpostData_nomeassge("get_empNos", dict_people)
  3557. if "【交班航班】" in fj:
  3558. try:
  3559. if empNos["code"] != "fail":
  3560. res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["FXempNos"], "FX", empNos["date"], empNos["bc"])
  3561. if res == "ok":
  3562. msg["bb"] = "放行人员%s派工成功!"%str(fx)
  3563. try:
  3564. 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())
  3565. requests.get(url=ip, timeout=30).json()
  3566. except Exception:
  3567. logger.error(traceback.format_exc())
  3568. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3569. if empNos["faillist"] != []:
  3570. msg["b"] = "以下放行人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3571. try:
  3572. 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())
  3573. requests.get(url=ip, timeout=30).json()
  3574. except Exception:
  3575. logger.error(traceback.format_exc())
  3576. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3577. except:
  3578. pass
  3579. try:
  3580. if empNos["code"] != "fail":
  3581. risktips = ""
  3582. if self.tableWidgetFlight.item(rowIndex, 8).text() != "":
  3583. res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3584. risktips = f"【风险提示】{res}" if res != "" else ""
  3585. msgInfo = "放行任务保障信息!%s%s" % (fj, risktips)
  3586. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3587. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3588. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3589. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),
  3590. "", empNos["FXempNos"],empNos["WX"],empNos["FX"],"",msgInfo)
  3591. if res == "ok":
  3592. msg["dd"] = "%s放行人员%s派工信息推成功!!!" % (
  3593. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["FX"])
  3594. 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)
  3595. try:
  3596. 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())
  3597. requests.get(url=ip, timeout=30).json()
  3598. except Exception:
  3599. logger.error(traceback.format_exc())
  3600. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3601. if empNos["faillist"] != []:
  3602. msg["d"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3603. try:
  3604. 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())
  3605. requests.get(url=ip, timeout=30).json()
  3606. except Exception:
  3607. logger.error(traceback.format_exc())
  3608. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3609. except:
  3610. pass
  3611. # print(empNos)
  3612. if empNos["code"] != "fail":
  3613. res = self.LM_TSK_SURE_PG_NOW(self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),empNos["ESempNos"], "ECSJ", empNos["date"], empNos["bc"])
  3614. if res == "ok":
  3615. msg["ee"] = "%s二次送机派工成功!"%str(g1 + "-" + g2)
  3616. try:
  3617. 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())
  3618. requests.get(url=ip, timeout=30).json()
  3619. except Exception:
  3620. logger.error(traceback.format_exc())
  3621. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3622. if empNos["faillist"] != []:
  3623. msg["e"] = "以下人员派工失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3624. if empNos["code"] != "fail":
  3625. risktips = ""
  3626. if self.tableWidgetFlight.item(rowIndex, 8).text() != "":
  3627. res = self.getRiskData(self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, 9).text())
  3628. risktips = f"【风险提示】{res}" if res != "" else ""
  3629. msgInfo = "二次送机任务推送!%s%s" % (fj, risktips)
  3630. res= self.send_dingdong(self.tableWidgetFlight.item(rowIndex, 1).text(),self.tableWidgetFlight.item(rowIndex, 2).text(),
  3631. self.tableWidgetFlight.item(rowIndex, colnum - 2).text(),
  3632. "进" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[0] + ",出" +self.tableWidgetFlight.item(rowIndex, colnum - 3).text().split("</br>")[1],
  3633. self.tableWidgetFlight.item(rowIndex, 8).text(),self.tableWidgetFlight.item(rowIndex, colnum - 4).text(),
  3634. empNos["ESempNos"], "",empNos["WX"],empNos["FX"],empNos["ES"],msgInfo)
  3635. if res == "ok":
  3636. msg["ff"] = "%s二次送机人员%s派工信息推送成功!!!" % (
  3637. self.tableWidgetFlight.item(rowIndex, 1).text(), empNos["ES"])
  3638. self.severpost_nomeassge("infoConfirm2","/%s" % self.tableWidgetFlight.item(rowIndex, 9).text(),
  3639. "/%s" % self.tableWidgetFlight.item(rowIndex,colnum - 5).text(),
  3640. "/%s" % self.displayMode, "/%s" % self.selectedtime)
  3641. try:
  3642. 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())
  3643. requests.get(url=ip, timeout=30).json()
  3644. except Exception:
  3645. logger.error(traceback.format_exc())
  3646. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3647. if empNos["faillist"] != []:
  3648. msg["f"] = "以下人员通知失败:%s,请确认考勤打卡情况!" % empNos["faillist"]
  3649. try:
  3650. 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())
  3651. requests.get(url=ip, timeout=30).json()
  3652. except Exception:
  3653. logger.error(traceback.format_exc())
  3654. QMessageBox.warning(self, "日志功能失效", "操作日志功能失效请联系管理员!")
  3655. msgs = ""
  3656. for j in ["aa", "bb", "cc", "dd", "ee", "ff", "a", "b", "c", "d", "e", "f"]:
  3657. if j in msg.keys():
  3658. if msgs == "":
  3659. msgs = msg[j]
  3660. else:
  3661. msgs = msgs + "\n" + msg[j]
  3662. self.show_info("一键派工提示信息", msgs)
  3663. self.QThreadSortNow("main")
  3664. else:
  3665. self.show_info("警告", "该航班非AMRO航班或者无任务编号,请确认是否为AMRO航班,如确认请使用AMRO人工派工和叮咚消息通知!!")
  3666. return
  3667. else:
  3668. return
  3669. except Exception:
  3670. logger.error(traceback.format_exc())
  3671. elif self.displayMode=="B":
  3672. for i in self.tableWidgetFlight.selectionModel().selection().indexes():
  3673. menu = QMenu()
  3674. item1 = menu.addAction("工作单确认检查")
  3675. screenPos = self.tableWidgetFlight.mapToGlobal(pos)
  3676. action = menu.exec(screenPos)
  3677. rowIndex = i.row()
  3678. colnum = self.tableWidgetFlight.columnCount()
  3679. flightids=self.tableWidgetFlight.item(rowIndex, colnum - 5).text()
  3680. flighttype = self.tableWidgetFlight.item(rowIndex, 9).text()
  3681. if action == item1:
  3682. nowstr=self.user+str(datetime.datetime.now().timestamp()).split(".")[0]
  3683. ip = "http://" + str(self.ipinfo) + "/static/updateDragDropItem/%s/%s/%s/%s/%s/%s" % (
  3684. "10", nowstr, flightids, self.displayMode, flighttype, self.selectedtime)
  3685. # print(ip)
  3686. #self.tableWidgetFlight.setItem(int(rowIndex), column, QTableWidgetItem(str(nowstr)))
  3687. try:
  3688. requests.get(url=ip, timeout=30).json()
  3689. except Exception:
  3690. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  3691. logger.error(traceback.format_exc())
  3692. self.QThreadSortNow("main")
  3693. return
  3694. else:
  3695. QMessageBox.warning(self, "提示", "权限不够,请联系管理员!")
  3696. def tableWidgetPhoneDispaly(self):
  3697. try:
  3698. phoneLabel = ["序号", "姓名", "部门", "电话","name"]
  3699. col = len(phoneLabel)
  3700. diplaylist = self.sorttableWidgetPHONEDispalydata
  3701. self.tableWidget_3.setRowCount(len(diplaylist.keys()))
  3702. for row in diplaylist.keys():
  3703. for colNum in range(0, col):
  3704. if colNum == 0:
  3705. self.tableWidget_3.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1)))
  3706. self.tableWidget_3.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3707. else:
  3708. self.tableWidget_3.setItem(int(row), colNum,
  3709. QTableWidgetItem(diplaylist[row][phoneLabel[colNum]]))
  3710. self.tableWidget_3.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3711. self.tableWidget_3.resizeColumnsToContents()
  3712. self.tableWidget_3.setColumnHidden(4, True)
  3713. except Exception:
  3714. logger.error(traceback.format_exc())
  3715. def tableWidgetPeopleDisplay(self):
  3716. try:
  3717. peopleLabel = ["序号", "姓名", "角色", "总量", "当前", "最后时间"]
  3718. col = len(peopleLabel)
  3719. diplaylist = self.sortdiplaylist
  3720. self.tableWidgetPerson.setRowCount(len(diplaylist.keys()))
  3721. # print( self.searchpeoplestr )
  3722. for row in diplaylist.keys():
  3723. for colNum in range(0, col):
  3724. if colNum == 0:
  3725. self.tableWidgetPerson.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1)))
  3726. self.tableWidgetPerson.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3727. else:
  3728. self.tableWidgetPerson.setItem(int(row), colNum,
  3729. QTableWidgetItem(diplaylist[row][peopleLabel[colNum]]))
  3730. self.tableWidgetPerson.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3731. self.tableWidgetPerson.resizeColumnsToContents()
  3732. # self.tableWidgetPerson.itemEntered.connect(self.enter_item_slot)
  3733. except Exception:
  3734. logger.error(traceback.format_exc())
  3735. def enter_item_slot(self, item):
  3736. try:
  3737. self.tool_tip = item.text()
  3738. # print("self.tool_tip:", self.tool_tip)
  3739. except Exception:
  3740. logger.error(traceback.format_exc())
  3741. def tableWidgetDispaly(self):
  3742. try:
  3743. selftaxi = ["166", "166L", "166R", "167", "167L", "167R", "168", "169", "170", "171", "172", "173", "174",
  3744. "269", "270", "271", "272", "273", "274", "275", "287", "288", "601", "602", "603", "604",
  3745. "605", "606", "607", "607L", "607R"] # 自滑位
  3746. if self.sorttableWidgetDispalydata != "":
  3747. # print("刷新开始")
  3748. # dateNow=datetime.datetime.now()
  3749. tableWidgetDispalydata = self.sorttableWidgetDispalydata
  3750. col = len(self.displayLabel)
  3751. self.tableWidgetFlight.setRowCount(len(tableWidgetDispalydata.keys()))
  3752. for row in tableWidgetDispalydata.keys():
  3753. for colNum in range(0, col):
  3754. if colNum == 6:
  3755. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3756. str(tableWidgetDispalydata[row][str(colNum)])))
  3757. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3758. QColor(str(tableWidgetDispalydata[row]["99"])))
  3759. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3760. QColor(str(tableWidgetDispalydata[row]["102"])))
  3761. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3762. elif colNum == 7:
  3763. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3764. str(tableWidgetDispalydata[row][str(colNum)])))
  3765. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3766. QColor(str(tableWidgetDispalydata[row]["99"])))
  3767. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3768. QColor(str(tableWidgetDispalydata[row]["103"])))
  3769. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3770. elif colNum == 8:
  3771. if tableWidgetDispalydata[row][str(colNum)] in selftaxi and tableWidgetDispalydata[row][str(colNum)] != "":
  3772. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3773. str(tableWidgetDispalydata[row][str(colNum)])))
  3774. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("lightgreen"))
  3775. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black"))
  3776. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(
  3777. Qt.AlignmentFlag.AlignCenter)
  3778. if "自滑机位" not in tableWidgetDispalydata[row][str(col - 1)]:
  3779. flightid = tableWidgetDispalydata[row][str(col - 5)]
  3780. # print(flightid)
  3781. flighttype = tableWidgetDispalydata[row]["9"]
  3782. fjxx = "自滑机位;" + str(tableWidgetDispalydata[row][str(col - 1)])
  3783. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(
  3784. fjxx) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(
  3785. flighttype) + "%s" % str(self.selectedtime)
  3786. try:
  3787. requests.get(url=ip, timeout=30).json()
  3788. except Exception:
  3789. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  3790. logger.error(traceback.format_exc())
  3791. if self.displayMode =="A":
  3792. for colNum2 in (10, 11, 12, 13, 14):
  3793. if tableWidgetDispalydata[row][str(colNum2)] != "" and "*" not in str(tableWidgetDispalydata[row][str(colNum2)]):
  3794. self.severpost_nomeassge("selftaxiLogs", "/%s请通知%s,%s为自滑位,注意特殊机位保障要求!" % (
  3795. tableWidgetDispalydata[row]["1"], tableWidgetDispalydata[row][str(colNum2)],
  3796. tableWidgetDispalydata[row]["8"]),"/%s" % tableWidgetDispalydata[row][str(col - 5)], "","")
  3797. self.severpost_nomeassge("infoConfirm3","/%s" % tableWidgetDispalydata[row][str(9)],"/%s" % tableWidgetDispalydata[row][str(col - 5)],
  3798. "/%s" % self.displayMode, "/%s" % self.selectedtime)
  3799. elif tableWidgetDispalydata[row][str(colNum)] not in selftaxi or \
  3800. tableWidgetDispalydata[row][str(colNum)] == "":
  3801. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3802. str(tableWidgetDispalydata[row][str(colNum)])))
  3803. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3804. QColor(str(tableWidgetDispalydata[row]["99"])))
  3805. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3806. QColor(str(tableWidgetDispalydata[row]["101"])))
  3807. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(
  3808. Qt.AlignmentFlag.AlignCenter)
  3809. font = QFont()
  3810. # font.setFamily("SimHei")
  3811. font.setFamily("Microsoft YaHei")
  3812. font.setBold(True)
  3813. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  3814. elif colNum == 9:
  3815. if tableWidgetDispalydata[row][str(colNum)] == "短停送" or tableWidgetDispalydata[row][str(colNum)] == "特后前送":
  3816. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3817. str(tableWidgetDispalydata[row][str(colNum)])))
  3818. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3819. QColor(str(tableWidgetDispalydata[row]["99"])))
  3820. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str("blue")))
  3821. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(
  3822. Qt.AlignmentFlag.AlignCenter)
  3823. font = QFont()
  3824. # font.setFamily("SimHei")
  3825. font.setFamily("Microsoft YaHei")
  3826. font.setBold(True)
  3827. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  3828. else:
  3829. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3830. str(tableWidgetDispalydata[row][str(colNum)])))
  3831. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3832. QColor(str(tableWidgetDispalydata[row]["99"])))
  3833. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3834. QColor(str(tableWidgetDispalydata[row]["101"])))
  3835. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(
  3836. Qt.AlignmentFlag.AlignCenter)
  3837. elif 9 < colNum < 15:
  3838. if "√" in tableWidgetDispalydata[row][str(colNum)] or tableWidgetDispalydata[row][str(colNum)] == "":
  3839. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3840. str(tableWidgetDispalydata[row][str(colNum)]).replace("*","")))
  3841. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3842. QColor(str(tableWidgetDispalydata[row]["99"])))
  3843. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3844. QColor(str(tableWidgetDispalydata[row]["101"])))
  3845. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(
  3846. Qt.AlignmentFlag.AlignCenter)
  3847. elif "√" not in tableWidgetDispalydata[row][str(colNum)] and tableWidgetDispalydata[row][
  3848. str(colNum)] != "":
  3849. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3850. str(tableWidgetDispalydata[row][str(colNum)]).replace("*","")))
  3851. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow"))
  3852. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("black"))
  3853. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(
  3854. Qt.AlignmentFlag.AlignCenter)
  3855. elif colNum == col - 1:
  3856. if str(tableWidgetDispalydata[row][str(colNum)]) !="" and str(tableWidgetDispalydata[row][str(colNum)]) != None:
  3857. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  3858. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor("yellow"))
  3859. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor("red"))
  3860. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3861. self.tableWidgetFlight.item(int(row), col - 1).setToolTip("%s" % str(tableWidgetDispalydata[row][str(col - 1)]))
  3862. font = QFont()
  3863. # font.setFamily("SimHei")
  3864. font.setFamily("Microsoft YaHei")
  3865. font.setBold(True)
  3866. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  3867. else:
  3868. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(colNum)])))
  3869. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  3870. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  3871. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3872. self.tableWidgetFlight.item(int(row), col - 1).setToolTip("%s" % str(tableWidgetDispalydata[row][str(col - 1)]))
  3873. font = QFont()
  3874. # font.setFamily("SimHei")
  3875. font.setFamily("Microsoft YaHei")
  3876. font.setBold(True)
  3877. self.tableWidgetFlight.item(int(row), colNum).setFont(font)
  3878. if "二拖" in tableWidgetDispalydata[row][str(colNum)]:
  3879. for selftaxiPostion in selftaxi:
  3880. if selftaxiPostion in tableWidgetDispalydata[row][str(colNum)]:
  3881. for colNum2 in (10, 11, 12, 13, 14):
  3882. if tableWidgetDispalydata[row][str(colNum2)] != "":
  3883. self.severpost_nomeassge("selftaxiLogs",
  3884. "/%s请通知%s,%s二拖机位目的机位为自滑位,注意特殊机位保障要求!" % (
  3885. tableWidgetDispalydata[row]["1"],
  3886. tableWidgetDispalydata[row][str(colNum2)],
  3887. tableWidgetDispalydata[row]["8"]),
  3888. "/%s" % tableWidgetDispalydata[row][
  3889. str(col - 5)], "", "")
  3890. elif colNum == 22:
  3891. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3892. str(tableWidgetDispalydata[row][str(colNum)])))
  3893. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3894. QColor(str(tableWidgetDispalydata[row]["99"])))
  3895. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3896. QColor(str(tableWidgetDispalydata[row]["101"])))
  3897. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3898. self.tableWidgetFlight.item(int(row), 22).setToolTip(
  3899. "%s" % str(tableWidgetDispalydata[row][str(22)]))
  3900. elif 0 < colNum < 5:
  3901. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3902. str(tableWidgetDispalydata[row][str(colNum)])))
  3903. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3904. QColor(str(tableWidgetDispalydata[row]["99"])))
  3905. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3906. QColor(str(tableWidgetDispalydata[row]["101"])))
  3907. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3908. if self.displayMode == "A":
  3909. self.tableWidgetFlight.item(int(row), colNum).setToolTip(
  3910. "%s" % str(tableWidgetDispalydata[row][str(23)]))
  3911. else:
  3912. self.tableWidgetFlight.item(int(row), colNum).setToolTip(
  3913. "%s" % str(tableWidgetDispalydata[row][str(24)]))
  3914. if colNum == 1 and tableWidgetDispalydata[row][str(colNum)] in ["8182","8185","8186"] and tableWidgetDispalydata[row][str(9)] =="航前":
  3915. if "【工具提示】无TPIS,带胎压表" not in tableWidgetDispalydata[row][str(col - 1)]:
  3916. flightid = tableWidgetDispalydata[row][str(col - 5)]
  3917. # print(flightid)
  3918. flighttype = tableWidgetDispalydata[row]["9"]
  3919. fjxx = "【工具提示】无TPIS,带胎压表;" + str(tableWidgetDispalydata[row][str(col - 1)])
  3920. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(
  3921. fjxx) + "%s/" % str(flightid) + "%s/" % str(self.displayMode) + "%s/" % str(
  3922. flighttype) + "%s" % str(self.selectedtime)
  3923. try:
  3924. requests.get(url=ip, timeout=30).json()
  3925. except Exception:
  3926. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  3927. logger.error(traceback.format_exc())
  3928. elif colNum == 0:
  3929. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(int(row)+1)))
  3930. self.tableWidgetFlight.item(int(row), colNum).setBackground(QColor(str(tableWidgetDispalydata[row]["99"])))
  3931. self.tableWidgetFlight.item(int(row), colNum).setForeground(QColor(str(tableWidgetDispalydata[row]["101"])))
  3932. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3933. if self.displayMode == "A":
  3934. self.tableWidgetFlight.item(int(row), colNum).setToolTip(
  3935. "[%s,%s]" % (str(tableWidgetDispalydata[row][str(col-5)]),str(tableWidgetDispalydata[row][str(col-4)])))
  3936. else:
  3937. self.tableWidgetFlight.item(int(row), colNum).setToolTip(
  3938. "[%s,%s]" % (str(tableWidgetDispalydata[row][str(col-5)]),str(tableWidgetDispalydata[row][str(col-4)])))
  3939. else:
  3940. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(
  3941. str(tableWidgetDispalydata[row][str(colNum)])))
  3942. self.tableWidgetFlight.item(int(row), colNum).setBackground(
  3943. QColor(str(tableWidgetDispalydata[row]["99"])))
  3944. self.tableWidgetFlight.item(int(row), colNum).setForeground(
  3945. QColor(str(tableWidgetDispalydata[row]["101"])))
  3946. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  3947. self.tableWidgetFlight.setColumnHidden(col - 2, True)
  3948. self.tableWidgetFlight.setColumnHidden(col - 3, True)
  3949. self.tableWidgetFlight.setColumnHidden(col - 4, True)
  3950. self.tableWidgetFlight.setColumnHidden(col - 5, True)
  3951. self.tableWidgetFlight.setColumnHidden(col - 6, False)
  3952. self.tableWidgetFlight.setColumnHidden(col - 7, False)
  3953. self.tableWidgetFlight.setColumnHidden(col - 1, False)
  3954. if self.displayMode == "A":
  3955. self.tableWidgetFlight.setColumnHidden(col - 8, True)
  3956. self.tableWidgetFlight.setColumnHidden(col - 9, False)
  3957. self.tableWidgetFlight.setColumnHidden(col - 10, True)
  3958. self.tableWidgetFlight.setColumnHidden(col - 11, False)
  3959. self.tableWidgetFlight.setColumnHidden(col - 12, True)
  3960. else:
  3961. self.tableWidgetFlight.setColumnHidden(col - 8, False)
  3962. self.tableWidgetFlight.setColumnHidden(col - 9, True)
  3963. self.tableWidgetFlight.setColumnHidden(col - 10, False)
  3964. self.tableWidgetFlight.setColumnHidden(col - 11, True)
  3965. self.tableWidgetFlight.setColumnHidden(col - 12, True)
  3966. self.tableWidgetFlight.resizeColumnsToContents()
  3967. self.tableWidgetFlight.setColumnWidth(10, 70)
  3968. self.tableWidgetFlight.setColumnWidth(11, 70)
  3969. self.tableWidgetFlight.setColumnWidth(12, 70)
  3970. self.tableWidgetFlight.setColumnWidth(13, 70)
  3971. self.tableWidgetFlight.setColumnWidth(14, 70)
  3972. self.tableWidgetFlight.setColumnWidth(15, 70)
  3973. self.tableWidgetFlight.setColumnWidth(22, 45)
  3974. # print("刷新结束")
  3975. # print(datetime.datetime.now() - dateNow)
  3976. except Exception:
  3977. logger.error(traceback.format_exc())
  3978. def on_completer_activated(self, text):
  3979. try:
  3980. if text:
  3981. index = self.comboBox.findText(text)
  3982. self.comboBox.setCurrentIndex(index)
  3983. except Exception:
  3984. logger.error(traceback.format_exc())
  3985. def LM_TSK_SURE_PG(self):
  3986. try:
  3987. data = {
  3988. "empNos": dict["empNos"], # 员工号
  3989. "taskid": dict["taskid"], # taskid
  3990. "type": dict["type"], # 类型
  3991. "shiftDate": dict["shiftDate"], # 上班日期
  3992. "shift": dict["shift"], # 班次
  3993. }
  3994. self.severpostData_nomeassge("LM_TSK_SURE_PG", data)
  3995. except Exception:
  3996. logger.error(traceback.format_exc())
  3997. def dingdong(self):
  3998. try:
  3999. data = {
  4000. "acno": dict["empNos"], # 机号
  4001. "actype": dict["taskid"], # 机型
  4002. "tasktype": dict["type"], # 任务类型
  4003. "tatd": dict["shiftDate"], # 起飞/落地时间
  4004. "msgInfo": dict["shift"], # 消息
  4005. "bay": dict["empNos"], # 机位
  4006. "wxemp": dict["taskid"], # 维修人员员工号
  4007. "fxemp": dict["type"], # 放行人员员工号
  4008. "wx": dict["shiftDate"], # 维修人员
  4009. "fx": dict["shift"], # 放行人员
  4010. "ecsj": dict["shift"], # 二次送机人员
  4011. }
  4012. self.severpostData_nomeassge("dingdong", data)
  4013. except Exception:
  4014. logger.error(traceback.format_exc())
  4015. def update_pglistA(self, text):
  4016. try:
  4017. self.severpost_nomeassge("getPglist", "A", "", "", "")
  4018. except Exception:
  4019. logger.error(traceback.format_exc())
  4020. def update_pglistB(self, text):
  4021. try:
  4022. self.severpost_nomeassge("getPglist", "B", "", "", "")
  4023. except Exception:
  4024. logger.error(traceback.format_exc())
  4025. def search(self):
  4026. # print('进行查询')
  4027. try:
  4028. self.threadWOrk_get_flight_list()
  4029. if self.cookie != None:
  4030. # print('查询中')
  4031. self.threadWOrk_get_flight_list()
  4032. except Exception:
  4033. logger.error(traceback.format_exc())
  4034. def threadWork_getcookie(self):
  4035. try:
  4036. self.fl = utils.flight_list()
  4037. worker = Worker2(self.fn_cookie, self.fl)
  4038. worker.signals.result.connect(self.print_output_cookie)
  4039. worker.signals.finished.connect(self.thread_complete)
  4040. worker.signals.error.connect(self.thread_error)
  4041. self.threadpool.start(worker)
  4042. except Exception:
  4043. logger.error(traceback.format_exc())
  4044. def threadWOrk_get_flight_list(self):
  4045. try:
  4046. dateNow = datetime.datetime.now()
  4047. dateNowStr = dateNow.strftime("%Y-%m-%d")
  4048. worker = Worker2(self.fn_get_flight_list, self.fl, dateNowStr, self.cookie)
  4049. worker.signals.result.connect(self.print_output_flight_list)
  4050. worker.signals.finished.connect(self.thread_complete)
  4051. worker.signals.error.connect(self.thread_error)
  4052. self.threadpool.start(worker)
  4053. except Exception:
  4054. logger.error(traceback.format_exc())
  4055. def fn_get_flight_list(self, fl, date, cookie):
  4056. try:
  4057. # print(fl.token)
  4058. # flight_list = fl.request_filght_list(date, cookie)
  4059. flight_list = utils.loadjson('./temp/1/fl1688398151.json')
  4060. return flight_list
  4061. except Exception:
  4062. logger.error(traceback.format_exc())
  4063. def fn_cookie(self, fl):
  4064. try:
  4065. # 耗时进程
  4066. # print(fl)
  4067. fl.start()
  4068. cookie = fl.get_cookie()
  4069. return cookie
  4070. except Exception:
  4071. logger.error(traceback.format_exc())
  4072. def print_output_cookie(self, dlist):
  4073. try:
  4074. self.cookie = dlist
  4075. except Exception:
  4076. logger.error(traceback.format_exc())
  4077. def print_output_flight_list(self, dlist):
  4078. try:
  4079. # print(dlist['code'])
  4080. self.tableDisplay2()
  4081. except Exception:
  4082. logger.error(traceback.format_exc())
  4083. def thread_complete(self):
  4084. print("THREAD COMPLETE!")
  4085. def thread_error(self, error):
  4086. print("进程error:{}".format(error))
  4087. class LoginWidget(Ui_login, QWidget):
  4088. login_signal = QtCore.pyqtSignal(bool)
  4089. login_user = QtCore.pyqtSignal(list)
  4090. def __init__(self, parent=None):
  4091. super().__init__(parent)
  4092. try:
  4093. self.setupUi(self)
  4094. # print('login widget')
  4095. self.pushButton.clicked.connect(self.btn)
  4096. # self.setipinfo()
  4097. self.ipinfo = None
  4098. except Exception:
  4099. logger.error(traceback.format_exc())
  4100. def severpost_meassge(self, postname, postdata, postdata2):
  4101. try:
  4102. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2)
  4103. try:
  4104. res = requests.get(url=ip, timeout=30).json()
  4105. # print(res)
  4106. except Exception:
  4107. # print('登录服务器失败')
  4108. logging.info('登录服务器失败')
  4109. res = ""
  4110. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4111. logger.error(traceback.format_exc())
  4112. return res
  4113. except Exception:
  4114. logger.error(traceback.format_exc())
  4115. def btn(self):
  4116. try:
  4117. username = self.lineEditUser.text()
  4118. password = self.lineEditPassword.text()
  4119. try:
  4120. res = self.severpost_meassge("logintable", "/%s" % username, "/%s" % password)["返回值"]
  4121. # print(res)
  4122. except Exception:
  4123. res = ""
  4124. logger.error(traceback.format_exc())
  4125. # print(res)
  4126. if res != "" and int(res[3])<=3:
  4127. self.login_signal.emit(True)
  4128. self.login_user.emit(res)
  4129. else:
  4130. self.show_message()
  4131. except Exception:
  4132. logger.error(traceback.format_exc())
  4133. def show_message(self):
  4134. try:
  4135. QMessageBox.warning(self, "警告", "无此用户或密码错误或账号无权限访问办公平台")
  4136. except Exception:
  4137. logger.error(traceback.format_exc())
  4138. class amroLoginWidget(Ui_amroLogin, QWidget):
  4139. def __init__(self, parent=None):
  4140. super().__init__(parent)
  4141. try:
  4142. self.setupUi(self)
  4143. self.pushButton.clicked.connect(self.btn)
  4144. self.ipinfo = None
  4145. except Exception:
  4146. logger.error(traceback.format_exc())
  4147. def btn(self):
  4148. try:
  4149. username = self.lineEditUsername.text()
  4150. password = self.lineEditPassword.text()
  4151. ip = "http://" + str(self.ipinfo) + "/static/remotelogin/%s/%s" % (username, password)
  4152. try:
  4153. res = requests.get(url=ip, timeout=60)
  4154. if res.text == "ok":
  4155. QMessageBox.warning(self, "提示", "服务器AMRO登录成功!")
  4156. self.close()
  4157. else:
  4158. QMessageBox.warning(self, "提示", "服务器AMRO登录失败,请检查账号密码或服务器端登录或联系管理员检查服务器!")
  4159. except:
  4160. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4161. self.close()
  4162. except Exception:
  4163. logger.error(traceback.format_exc())
  4164. class amroLoginWidget2(Ui_amroLogin2, QWidget):
  4165. def __init__(self, parent=None):
  4166. super().__init__(parent)
  4167. try:
  4168. self.setupUi(self)
  4169. self.pushButton.clicked.connect(self.btn)
  4170. self.ipinfo = None
  4171. except Exception:
  4172. logger.error(traceback.format_exc())
  4173. def btn(self):
  4174. try:
  4175. username = self.lineEditUsername.text()
  4176. password = self.lineEditPassword.text()
  4177. ip = "http://" + str(self.ipinfo) + "/static/remoteCookielogin/%s/%s" % (username, password)
  4178. try:
  4179. res = requests.get(url=ip, timeout=60)
  4180. if res.text == "ok":
  4181. QMessageBox.warning(self, "提示", "服务器AMRO登录成功!")
  4182. self.close()
  4183. else:
  4184. QMessageBox.warning(self, "提示", "服务器AMRO登录失败,请检查账号和Cookie或服务器端登录或联系管理员检查服务器!")
  4185. except:
  4186. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4187. self.close()
  4188. except Exception:
  4189. logger.error(traceback.format_exc())
  4190. class checkCalllist(Ui_checkCalllist, QWidget):
  4191. checkCalllist_signal = QtCore.pyqtSignal(str)
  4192. def __init__(self, parent=None):
  4193. super().__init__(parent)
  4194. try:
  4195. self.setupUi(self)
  4196. self.ipinfo = None
  4197. self.selectedtime = None
  4198. self.pushButton.clicked.connect(self.btn)
  4199. # self.show()
  4200. except Exception:
  4201. logger.error(traceback.format_exc())
  4202. def start(self):
  4203. try:
  4204. selectedtime_time = str(self.selectedtime) + " 00:00:00"
  4205. now = datetime.datetime.strptime(selectedtime_time, "%Y%m%d %H:%M:%S")
  4206. tom = (now + datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
  4207. yesterday = (now - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
  4208. self.label_5.setText("%s/%s" % (str(yesterday)[0:10], str(tom)[0:10]))
  4209. ip = "http://" + str(self.ipinfo) + "/static/checkCalllist" + "/" + str(self.selectedtime)
  4210. try:
  4211. res = requests.get(url=ip, timeout=30).json()
  4212. # print(res)
  4213. except Exception:
  4214. # print('登录服务器失败')
  4215. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4216. logger.error(traceback.format_exc())
  4217. self.peopleLabel = ["序号", "电话", "工号", "姓名", "航班号", "拨号次数", "创建时间", "接通时间"]
  4218. self.tableWidgetFlight.setColumnCount(len(self.peopleLabel))
  4219. self.tableWidgetFlight.verticalHeader().setVisible(False)
  4220. self.tableWidgetFlight.setHorizontalHeaderLabels(self.peopleLabel)
  4221. col = len(self.peopleLabel)
  4222. diplaylist = res
  4223. self.tableWidgetFlight.setRowCount(len(diplaylist.keys()))
  4224. for row in diplaylist.keys():
  4225. for colNum in range(0, col):
  4226. if colNum == 0:
  4227. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row)))
  4228. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4229. else:
  4230. self.tableWidgetFlight.setItem(int(row), colNum,
  4231. QTableWidgetItem(diplaylist[row][self.peopleLabel[colNum]]))
  4232. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4233. self.tableWidgetFlight.resizeColumnsToContents()
  4234. # self.show()
  4235. except Exception:
  4236. logger.error(traceback.format_exc())
  4237. def btn(self):
  4238. try:
  4239. ip = "http://" + str(self.ipinfo) + "/static/checkCalllist" + "/" + str(self.selectedtime)
  4240. self.res = requests.get(url=ip, timeout=30).json()
  4241. except Exception:
  4242. # print('登录服务器失败')
  4243. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4244. logger.error(traceback.format_exc())
  4245. self.res = {}
  4246. col = len(self.peopleLabel)
  4247. diplaylist = self.res
  4248. self.tableWidgetFlight.setRowCount(len(diplaylist))
  4249. rownum = 0
  4250. for row in diplaylist:
  4251. for colNum in range(0, col):
  4252. if colNum == 0:
  4253. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row)))
  4254. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4255. else:
  4256. self.tableWidgetFlight.setItem(int(row), colNum,QTableWidgetItem(diplaylist[row][self.peopleLabel[colNum]]))
  4257. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4258. self.tableWidgetFlight.resizeColumnsToContents()
  4259. def closeEvent(self, event):
  4260. try:
  4261. reply = QMessageBox.question(self, '确认', '你确定要退出程序吗?')
  4262. reply = str(reply)
  4263. if reply == "StandardButton.Yes":
  4264. self.checkCalllist_signal.emit(reply)
  4265. event.ignore()
  4266. else:
  4267. event.ignore()
  4268. except Exception:
  4269. logger.error(traceback.format_exc())
  4270. class checkLoadSingal(Ui_checkLoadSingal, QWidget):
  4271. def __init__(self, parent=None):
  4272. super().__init__(parent)
  4273. try:
  4274. self.setupUi(self)
  4275. self.worknum = None
  4276. self.name = None
  4277. self.selectedtime = None
  4278. self.ipinfo = None
  4279. except Exception:
  4280. logger.error(traceback.format_exc())
  4281. def start(self):
  4282. try:
  4283. # print(self.worknum)
  4284. # print(self.name)
  4285. # print(self.selectedtime)
  4286. # print(self.ipinfo)
  4287. self.label_3.setText(self.name)
  4288. selectedtime_time = str(self.selectedtime) + " 00:00:00"
  4289. now = datetime.datetime.strptime(selectedtime_time, "%Y%m%d %H:%M:%S")
  4290. yesterday = (now - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
  4291. self.label_5.setText("%s/%s" % (str(yesterday)[0:10], str(now)[0:10]))
  4292. # print(now)
  4293. # print(yesterday)
  4294. ip = "http://" + str(self.ipinfo) + "/static/checkLoadSingal" + "/" + str(self.worknum) + "/" + str(
  4295. yesterday) + "/" + str(now)
  4296. try:
  4297. res = requests.get(url=ip, timeout=30).json()
  4298. # print(res)
  4299. except Exception:
  4300. # print('登录服务器失败')
  4301. logging.warning('登录服务器失败, res获取失败')
  4302. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4303. logger.error(traceback.format_exc())
  4304. self.show()
  4305. peopleLabel = ["序号", "保障日期", "类型", "机号", "机位", "开始时间", "结束时间"]
  4306. self.tableWidgetFlight.setColumnCount(len(peopleLabel))
  4307. self.tableWidgetFlight.verticalHeader().setVisible(False)
  4308. self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel)
  4309. col = len(peopleLabel)
  4310. diplaylist = res
  4311. self.tableWidgetFlight.setRowCount(len(diplaylist.keys()))
  4312. for row in diplaylist.keys():
  4313. for colNum in range(0, col):
  4314. if colNum == 0:
  4315. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row)))
  4316. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4317. else:
  4318. self.tableWidgetFlight.setItem(int(row), colNum,
  4319. QTableWidgetItem(diplaylist[row][peopleLabel[colNum]]))
  4320. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4321. self.tableWidgetFlight.resizeColumnsToContents()
  4322. except Exception:
  4323. logger.error(traceback.format_exc())
  4324. class searchpeople_get(Ui_searchpeople_get, QWidget):
  4325. searchpeoplelist_signal = QtCore.pyqtSignal(list)
  4326. def __init__(self, parent=None):
  4327. super().__init__(parent)
  4328. try:
  4329. self.setupUi(self)
  4330. self.pushButton.clicked.connect(self.btn)
  4331. self.searchpeoplelist = None
  4332. self.ipinfo = None
  4333. self.Allpeoplelist = {}
  4334. self.selectedtime = None
  4335. self.selectedbc = None
  4336. except Exception:
  4337. logger.error(traceback.format_exc())
  4338. def btn(self):
  4339. try:
  4340. searchpeoplelist = []
  4341. for row in range(self.tableWidgetFlight.rowCount()):
  4342. item = self.tableWidgetFlight.item(row, 2)
  4343. if item is not None and item.checkState() == Qt.CheckState.Checked:
  4344. name = self.tableWidgetFlight.item(row, 1).text()
  4345. searchpeoplelist.append(name)
  4346. # print(searchpeoplelist)
  4347. self.searchpeoplelist = searchpeoplelist
  4348. self.searchpeoplelist_signal.emit(self.searchpeoplelist)
  4349. self.close()
  4350. except Exception:
  4351. logger.error(traceback.format_exc())
  4352. def start(self):
  4353. try:
  4354. self.show()
  4355. peopleLabel = ["序号", "姓名", "选择"]
  4356. diplaylist = self.Allpeoplelist
  4357. self.tableWidgetFlight.setColumnCount(len(peopleLabel))
  4358. self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel)
  4359. self.tableWidgetFlight.verticalHeader().setVisible(False)
  4360. self.tableWidgetFlight.setRowCount(len(diplaylist.keys()))
  4361. for row in diplaylist.keys():
  4362. for colNum in range(0, 3):
  4363. if colNum == 0:
  4364. self.tableWidgetFlight.setItem(int(row), colNum, QTableWidgetItem(str(row)))
  4365. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4366. elif colNum == 1:
  4367. self.tableWidgetFlight.setItem(int(row), colNum,
  4368. QTableWidgetItem(diplaylist[row][peopleLabel[colNum]]))
  4369. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4370. elif colNum == 2:
  4371. checkbox = QTableWidgetItem()
  4372. checkbox.setCheckState(Qt.CheckState.Unchecked)
  4373. self.tableWidgetFlight.setItem(int(row), colNum, checkbox)
  4374. self.tableWidgetFlight.item(int(row), colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4375. self.tableWidgetFlight.resizeColumnsToContents()
  4376. except Exception:
  4377. logger.error(traceback.format_exc())
  4378. class localipset(Ui_Addloacalip, QWidget):
  4379. localipset_signal = QtCore.pyqtSignal(str)
  4380. def __init__(self, parent=None):
  4381. super().__init__(parent)
  4382. try:
  4383. self.setupUi(self)
  4384. self.pushButton.clicked.connect(self.btn)
  4385. self.localip1 = None
  4386. self.localip = None
  4387. except Exception:
  4388. logger.error(traceback.format_exc())
  4389. def start(self):
  4390. self.show()
  4391. self.lineEditIP.setText(self.localip)
  4392. def btn(self):
  4393. try:
  4394. self.localip1 = self.lineEditIP.text()
  4395. self.localipset_signal.emit(self.localip1)
  4396. self.close()
  4397. except Exception:
  4398. logger.error(traceback.format_exc())
  4399. class checkLogs(Ui_checkLogs, QWidget):
  4400. def __init__(self, parent=None):
  4401. super().__init__(parent)
  4402. self.setupUi(self)
  4403. self.ipinfo = None
  4404. self.endtime = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
  4405. self.starttime = (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y-%m-%d %H:%M:%S")
  4406. self.dateTimeEdit.setDateTime(datetime.datetime.strptime(self.starttime, "%Y-%m-%d %H:%M:%S"))
  4407. self.dateTimeEdit_2.setDateTime(datetime.datetime.strptime(self.endtime, "%Y-%m-%d %H:%M:%S"))
  4408. self.lineEdit.textChanged.connect(self.changed)
  4409. self.peopleLabel = ["序号", "航班编号", "警告信息", "信息状态", "提示信息", "产生时间", "处理人", "处理时间", "变更字段", "显示对象", "提示内容"]
  4410. self.tableWidgetFlight.setColumnCount(len(self.peopleLabel))
  4411. self.tableWidgetFlight.verticalHeader().setVisible(False)
  4412. self.tableWidgetFlight.setHorizontalHeaderLabels(self.peopleLabel)
  4413. self.pushButton.clicked.connect(self.btn)
  4414. def start(self):
  4415. self.show()
  4416. try:
  4417. ip = "http://" + str(self.ipinfo) + "/static/checkLogs/" + self.starttime + "/" + self.endtime
  4418. self.res = requests.get(url=ip, timeout=30).json()
  4419. except Exception:
  4420. # print('登录服务器失败')
  4421. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4422. logger.error(traceback.format_exc())
  4423. self.res = {}
  4424. col = len(self.peopleLabel)
  4425. diplaylist = self.res
  4426. self.tableWidgetFlight.setRowCount(len(diplaylist))
  4427. rownum = 0
  4428. for row in diplaylist:
  4429. for colNum in range(0, col):
  4430. if colNum == 0:
  4431. self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(rownum)))
  4432. self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4433. else:
  4434. self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(row[colNum])))
  4435. self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignLeft)
  4436. rownum += 1
  4437. self.tableWidgetFlight.resizeColumnsToContents()
  4438. def changed(self):
  4439. res = []
  4440. for i in self.res:
  4441. if str(self.lineEdit.text()) in str(i):
  4442. res.append(i)
  4443. col = len(self.peopleLabel)
  4444. diplaylist = res
  4445. self.tableWidgetFlight.setRowCount(len(diplaylist))
  4446. rownum = 0
  4447. for row in diplaylist:
  4448. for colNum in range(0, col):
  4449. if colNum == 0:
  4450. self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(rownum)))
  4451. self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4452. else:
  4453. self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(row[colNum])))
  4454. self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignLeft)
  4455. rownum += 1
  4456. self.tableWidgetFlight.resizeColumnsToContents()
  4457. def btn(self):
  4458. self.starttime = self.dateTimeEdit.text()
  4459. self.endtime = self.dateTimeEdit_2.text()
  4460. try:
  4461. ip = "http://" + str(self.ipinfo) + "/static/checkLogs/" + self.starttime + "/" + self.endtime
  4462. self.res = requests.get(url=ip, timeout=30).json()
  4463. except Exception:
  4464. # print('登录服务器失败')
  4465. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4466. logger.error(traceback.format_exc())
  4467. self.res = {}
  4468. col = len(self.peopleLabel)
  4469. diplaylist = self.res
  4470. self.tableWidgetFlight.setRowCount(len(diplaylist))
  4471. rownum = 0
  4472. for row in diplaylist:
  4473. for colNum in range(0, col):
  4474. if colNum == 0:
  4475. self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(rownum)))
  4476. self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4477. else:
  4478. self.tableWidgetFlight.setItem(rownum, colNum, QTableWidgetItem(str(row[colNum])))
  4479. self.tableWidgetFlight.item(rownum, colNum).setTextAlignment(Qt.AlignmentFlag.AlignLeft)
  4480. rownum += 1
  4481. self.tableWidgetFlight.resizeColumnsToContents()
  4482. class changeAuth(Ui_changeAuth, QWidget):
  4483. def __init__(self, parent=None):
  4484. super().__init__(parent)
  4485. try:
  4486. self.setupUi(self)
  4487. self.ipinfo = None
  4488. self.label_5.setText("")
  4489. self.label_6.setText("")
  4490. self.pushButton.clicked.connect(self.btn)
  4491. self.user = None
  4492. self.comboBox.addItems(['1', '2', '3',"4"])
  4493. self.comboBox.setEditable(True)
  4494. self.filterModel1 = QSortFilterProxyModel(self.comboBox)
  4495. self.filterModel1.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4496. self.filterModel1.setSourceModel(self.comboBox.model())
  4497. self.completer1 = QCompleter(self.filterModel1, self.comboBox)
  4498. self.completer1.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion)
  4499. self.completer1.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4500. self.comboBox.setCompleter(self.completer)
  4501. self.comboBox.lineEdit().textEdited.connect(self.filterModel1.setFilterFixedString)
  4502. self.completer1.activated.connect(self.on_completer_activated1)
  4503. except Exception:
  4504. logger.error(traceback.format_exc())
  4505. def start(self):
  4506. self.show()
  4507. try:
  4508. ip = "http://" + str(self.ipinfo) + "/static/loginDbget/" + str(self.user)
  4509. self.res = requests.get(url=ip, timeout=30).json()
  4510. except Exception:
  4511. # print('登录服务器失败')
  4512. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4513. logger.error(traceback.format_exc())
  4514. self.res = {}
  4515. if self.res != {}:
  4516. namelist = []
  4517. for i in self.res.keys():
  4518. namelist.append(self.res[i]["登录名"])
  4519. print(namelist)
  4520. self.comboBox_2.addItems(namelist)
  4521. self.comboBox_2.setEditable(True)
  4522. self.comboBox_2.currentIndexChanged.connect(self.changed)
  4523. self.filterModel = QSortFilterProxyModel(self.comboBox_2)
  4524. self.filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4525. self.filterModel.setSourceModel(self.comboBox_2.model())
  4526. self.completer = QCompleter(self.filterModel, self.comboBox_2)
  4527. self.completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion)
  4528. self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4529. self.comboBox_2.setCompleter(self.completer)
  4530. self.comboBox_2.lineEdit().textEdited.connect(self.filterModel.setFilterFixedString)
  4531. self.completer.activated.connect(self.on_completer_activated)
  4532. else:
  4533. QMessageBox.warning(self, "提示", "获取数据库为空,请检查数据库或联系管理员")
  4534. def on_completer_activated1(self, text):
  4535. try:
  4536. if text:
  4537. index = self.comboBox.findText(text)
  4538. self.comboBox.setCurrentIndex(index)
  4539. except Exception:
  4540. logger.error(traceback.format_exc())
  4541. def on_completer_activated(self, text):
  4542. try:
  4543. if text:
  4544. print(text)
  4545. index = self.comboBox_2.findText(text)
  4546. self.comboBox_2.setCurrentIndex(index)
  4547. except Exception:
  4548. logger.error(traceback.format_exc())
  4549. def changed(self):
  4550. if self.res != {}:
  4551. self.label_5.setText(self.res[self.comboBox_2.currentText()]["使用人"])
  4552. self.label_6.setText(self.res[self.comboBox_2.currentText()]["权限"])
  4553. def btn(self):
  4554. data = {
  4555. '登录名': "'%s'" % self.comboBox_2.currentText(),
  4556. "权限": "'%s'" % self.comboBox.currentText()
  4557. }
  4558. try:
  4559. ip = "http://" + str(self.ipinfo) + "/static/changeAuth"
  4560. data = json.dumps(data)
  4561. res = requests.post(url=ip, data=data, timeout=30).json()
  4562. if res["返回值"] == "1":
  4563. QMessageBox.warning(self, "提示", "权限变更成功!")
  4564. self.close()
  4565. else:
  4566. QMessageBox.warning(self, "提示", "权限变更失败,请联系管理员检查服务器!")
  4567. except Exception:
  4568. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4569. logger.error(traceback.format_exc())
  4570. class changePassword(Ui_FormChangePssword, QWidget):
  4571. def __init__(self, parent=None):
  4572. super().__init__(parent)
  4573. try:
  4574. self.setupUi(self)
  4575. self.ipinfo = None
  4576. self.pushButton.clicked.connect(self.btn)
  4577. self.user = None
  4578. except Exception:
  4579. logger.error(traceback.format_exc())
  4580. def severpost_meassge(self, postname, postdata, postdata2):
  4581. try:
  4582. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname) + str(postdata) + str(postdata2)
  4583. res = requests.get(url=ip, timeout=30).json()
  4584. return res
  4585. except Exception:
  4586. # print('登录服务器失败')
  4587. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4588. logger.error(traceback.format_exc())
  4589. return ''
  4590. def severpost_data(self, postname, data: dict):
  4591. try:
  4592. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname)
  4593. data = json.dumps(data)
  4594. res = requests.post(url=ip, data=data, timeout=30).json()
  4595. return res
  4596. except Exception:
  4597. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4598. logger.error(traceback.format_exc())
  4599. return 'fail'
  4600. def btn(self):
  4601. try:
  4602. oldpassword = self.lineEditold.text()
  4603. newpassword = self.lineEditnew.text()
  4604. newpassword2 = self.lineEditnew2.text()
  4605. res = self.severpost_meassge("logintable", "/%s" % self.user, "/%s" % oldpassword)["返回值"]
  4606. # print(res)
  4607. if res != "":
  4608. if newpassword == newpassword2:
  4609. dataDic = {'登录名': self.user, '新密码': newpassword, "旧密码": oldpassword}
  4610. res = self.severpost_data("changePassword", dataDic)
  4611. if res["返回值"] == "ok":
  4612. self.close()
  4613. QMessageBox.warning(self, "提示", "密码修改成功!!!")
  4614. else:
  4615. QMessageBox.warning(self, "提示", "密码修改失败,请检查服务器连接状态或联系管理员!!!")
  4616. else:
  4617. QMessageBox.warning(self, "警告", "两次密码输入不同!!!")
  4618. else:
  4619. QMessageBox.warning(self, "警告", "原密码错误!!!")
  4620. except Exception:
  4621. logger.error(traceback.format_exc())
  4622. class AddPGWidget(Ui_FormAddPG, QWidget):
  4623. # AddPG_signal=QtCore.pyqtSignal(str)
  4624. def __init__(self, parent=None):
  4625. super().__init__(parent)
  4626. try:
  4627. self.setupUi(self)
  4628. nowDay = datetime.datetime.now()
  4629. self.dateTimeEdit.setDateTime(nowDay)
  4630. self.pushButton.clicked.connect(self.btn)
  4631. # self.AddPG_signal.connect(self.getname)
  4632. except Exception:
  4633. logger.error(traceback.format_exc())
  4634. def getname(self, name, date, ip):
  4635. try:
  4636. self.getname = name
  4637. self.getdate = date
  4638. self.getip = ip
  4639. # print(self.getname)
  4640. # print(self.getdate)
  4641. except Exception:
  4642. logger.error(traceback.format_exc())
  4643. def severpost_meassge(self, postname, postdata, postdata2, postdata3):
  4644. # print(ip)
  4645. try:
  4646. ip = "http://" + str(self.getip) + "/static/" + str(postname) + str(postdata) + str(postdata2) + str(
  4647. postdata3)
  4648. res = requests.get(url=ip, timeout=30).json()
  4649. if res["返回值"] == "ok":
  4650. QMessageBox.warning(self, "提示", "已创建待办")
  4651. else:
  4652. QMessageBox.warning(self, "提示", "创建待办失败,请检查配置文件或联系管理员检查服务器!")
  4653. except Exception:
  4654. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4655. logger.error(traceback.format_exc())
  4656. def btn(self):
  4657. try:
  4658. dealtext = self.textEdit.toPlainText()
  4659. time = self.dateTimeEdit.dateTime().toString('yyyy-M-d H:mm')
  4660. # print(time)
  4661. self.severpost_meassge("insertLogs", "/%s" % dealtext, "/%s" % self.getname, "/%s" % time)
  4662. self.close()
  4663. except Exception:
  4664. logger.error(traceback.format_exc())
  4665. class addFlightWidget(Ui_FormAddFlight, QWidget):
  4666. def __init__(self, parent=None):
  4667. super().__init__(parent)
  4668. try:
  4669. self.setupUi(self)
  4670. nowDay = datetime.datetime.now()
  4671. self.dateEdit.setDateTime(nowDay)
  4672. self.dateTimeEdit.setDateTime(nowDay)
  4673. self.dateTimeEdit_2.setDateTime(nowDay)
  4674. self.pushButton.clicked.connect(self.btn)
  4675. self.comboBox.addItems(['短停', '航前', '特后前', '航后'])
  4676. self.comboBox.setEditable(True)
  4677. self.comboBox.currentIndexChanged.connect(self.changed)
  4678. self.filterModel = QSortFilterProxyModel(self.comboBox)
  4679. self.filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4680. self.filterModel.setSourceModel(self.comboBox.model())
  4681. self.completer = QCompleter(self.filterModel, self.comboBox)
  4682. self.completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion)
  4683. self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4684. self.comboBox.setCompleter(self.completer)
  4685. self.comboBox.lineEdit().textEdited.connect(self.filterModel.setFilterFixedString)
  4686. self.completer.activated.connect(self.on_completer_activated)
  4687. self.ipinfo = None
  4688. self.user = None
  4689. except Exception:
  4690. logger.error(traceback.format_exc())
  4691. def on_completer_activated(self, text):
  4692. try:
  4693. if text:
  4694. print(text)
  4695. index = self.comboBox.findText(text)
  4696. self.comboBox.setCurrentIndex(index)
  4697. except Exception:
  4698. logger.error(traceback.format_exc())
  4699. def changed(self):
  4700. if self.comboBox.currentText() == "航前":
  4701. self.label_8.setEnabled(False)
  4702. self.dateTimeEdit.setEnabled(False)
  4703. self.label_9.setEnabled(True)
  4704. self.dateTimeEdit_2.setEnabled(True)
  4705. elif self.comboBox.currentText() == "航后":
  4706. self.label_9.setEnabled(False)
  4707. self.dateTimeEdit_2.setEnabled(False)
  4708. self.label_8.setEnabled(True)
  4709. self.dateTimeEdit.setEnabled(True)
  4710. else:
  4711. self.label_8.setEnabled(True)
  4712. self.dateTimeEdit.setEnabled(True)
  4713. self.label_9.setEnabled(True)
  4714. self.dateTimeEdit_2.setEnabled(True)
  4715. def btn(self):
  4716. if self.lineEditPWD.text() != "" and self.lineEditUser.text() != "" and self.lineEditPeople.text() != "" and self.lineEdit.text() != "" and self.lineEdit_2.text() != "":
  4717. ip = "http://" + str(self.ipinfo) + "/static/" + "manAddFlight/" + "%s/%s/%s/%s/%s/%s/%s/%s/%s/%s" % (
  4718. self.comboBox.currentText(), self.lineEditPWD.text(), self.lineEditUser.text(),
  4719. self.lineEditPeople.text(),
  4720. self.lineEdit.text(), self.dateEdit.text(), self.lineEdit_2.text(), self.dateTimeEdit.text(),
  4721. self.dateTimeEdit_2.text(), self.user)
  4722. try:
  4723. res = requests.get(url=ip, timeout=30).json()
  4724. if res["返回值"] == "ok":
  4725. self.close()
  4726. QMessageBox.warning(self, "提示", "航班添加成功!!!")
  4727. else:
  4728. self.close()
  4729. QMessageBox.warning(self, "警告", "航班添加失败")
  4730. except Exception:
  4731. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4732. logger.error(traceback.format_exc())
  4733. else:
  4734. QMessageBox.warning(self, "警告", "请完善航班信息后再提交!")
  4735. class handoverFlightWidget(Ui_handoverFlight, QWidget):
  4736. handoverFlight_signal = QtCore.pyqtSignal(str)
  4737. def __init__(self, parent=None):
  4738. super().__init__(parent)
  4739. try:
  4740. self.setupUi(self)
  4741. self.pushButton.clicked.connect(self.btn)
  4742. self.user = None
  4743. self.ipinfo = None
  4744. self.selectedtime=None
  4745. self.Allflight = {}
  4746. except Exception:
  4747. logger.error(traceback.format_exc())
  4748. def severpostData_nomeassge(self, postname, data: dict):
  4749. try:
  4750. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname)
  4751. data = json.dumps(data)
  4752. res = requests.post(url=ip, data=data, timeout=30).json()
  4753. return res
  4754. except Exception:
  4755. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4756. logger.error(traceback.format_exc())
  4757. def btn(self):
  4758. try:
  4759. list = []
  4760. sts=[]
  4761. list_cz = []
  4762. sts_cz = []
  4763. rows=[]
  4764. for row in range(self.tableWidgetFlight.rowCount()):
  4765. item = self.tableWidgetFlight.item(row, 0)
  4766. if item and item.checkState() == Qt.CheckState.Checked and self.tableWidgetFlight.item(row, 8).text() != "":
  4767. name = self.tableWidgetFlight.item(row, 10).text()
  4768. rows.append(row)
  4769. list.append(name)
  4770. sts.append("1")
  4771. data = {"taskid": ','.join(list),
  4772. "sts": ','.join(sts)}
  4773. if list !=[]:
  4774. res = self.severpostData_nomeassge("handoverflight", data=data)["返回值"]
  4775. if res == "ok" :
  4776. QMessageBox.warning(self, "提示", f"交班提交成功!请核对附加消息交班航班!")
  4777. for ii in rows:
  4778. try:
  4779. if "【交班航班】" not in self.tableWidgetFlight.item(ii, 11).text() and self.tableWidgetFlight.item(ii, 8).text() != "":
  4780. flightid = self.tableWidgetFlight.item(ii, 12).text()
  4781. flighttype = self.tableWidgetFlight.item(ii, 7).text()
  4782. fjxx = "【交班航班】" + self.tableWidgetFlight.item(ii, 11).text()
  4783. ip = "http://" + str(self.ipinfo) + "/static/updateEidteItem/" + "%s/" % str(fjxx) + "%s/" % str(flightid) + "A/%s/" % str(flighttype) + "%s" % str(self.selectedtime)
  4784. try:
  4785. requests.get(url=ip, timeout=30).json()
  4786. self.handoverFlight_signal.emit("1")
  4787. except Exception:
  4788. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4789. logger.error(traceback.format_exc())
  4790. except:
  4791. logger.error(traceback.format_exc())
  4792. self.close()
  4793. else:
  4794. QMessageBox.warning(self, "警告", "航班交接失败,请重新尝试")
  4795. else:
  4796. QMessageBox.warning(self, "警告", "请选择要交接的航班!未进行派工的航班无法进行交接班")
  4797. except Exception:
  4798. print(traceback.format_exc())
  4799. logger.error(traceback.format_exc())
  4800. def start(self):
  4801. try:
  4802. self.show()
  4803. peopleLabel = ["选择","序号", "机号","航班号", "预达", "计飞", "机位", "类型", "维修人员","放行", "任务编号","附加消息","航班编号" ]
  4804. tableWidgetDispalydata = self.Allflight
  4805. self.tableWidgetFlight.setColumnCount(len(peopleLabel))
  4806. self.tableWidgetFlight.setHorizontalHeaderLabels(peopleLabel)
  4807. self.tableWidgetFlight.verticalHeader().setVisible(False)
  4808. self.tableWidgetFlight.setRowCount(len(tableWidgetDispalydata.keys()))
  4809. i = 0
  4810. for row in tableWidgetDispalydata.keys():
  4811. if ("3U" in tableWidgetDispalydata[row][str(4)] or "CSC" in tableWidgetDispalydata[row][str(4)]) and \
  4812. tableWidgetDispalydata[row][str(24)] != "" and "【交班航班】" not in tableWidgetDispalydata[row][str(30)]:
  4813. for colNum in range(0, 13):
  4814. if colNum == 0:
  4815. checkbox = QTableWidgetItem()
  4816. checkbox.setCheckState(Qt.CheckState.Unchecked)
  4817. self.tableWidgetFlight.setItem(i, colNum, checkbox)
  4818. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4819. elif colNum == 1:
  4820. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(i+1)))
  4821. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4822. elif colNum == 2:
  4823. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(1)])))
  4824. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4825. elif colNum == 3:
  4826. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(4)])))
  4827. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4828. elif colNum == 4:
  4829. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(6)])))
  4830. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4831. elif colNum == 5:
  4832. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(7)])))
  4833. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4834. elif colNum == 6:
  4835. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(8)])))
  4836. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4837. elif colNum == 7:
  4838. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(9)])))
  4839. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4840. elif colNum == 8:
  4841. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(24)])))
  4842. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4843. elif colNum == 9:
  4844. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(25)])))
  4845. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4846. elif colNum == 10:
  4847. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(26)])))
  4848. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4849. elif colNum == 12:
  4850. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(26)])))
  4851. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4852. elif colNum == 11:
  4853. self.tableWidgetFlight.setItem(i, colNum, QTableWidgetItem(str(tableWidgetDispalydata[row][str(30)])))
  4854. self.tableWidgetFlight.item(i, colNum).setTextAlignment(Qt.AlignmentFlag.AlignCenter)
  4855. if (i+1)%2 ==0:
  4856. self.tableWidgetFlight.item(i, colNum).setBackground(QColor('#DDE2E3'))
  4857. i += 1
  4858. self.tableWidgetFlight.resizeColumnsToContents()
  4859. self.tableWidgetFlight.setColumnHidden(12, True)
  4860. self.tableWidgetFlight.setColumnHidden(10, True)
  4861. except Exception:
  4862. #print(traceback.format_exc())
  4863. logger.error(traceback.format_exc())
  4864. class addUserWidget(Ui_FormAdduser, QWidget):
  4865. def __init__(self, parent=None):
  4866. super().__init__(parent)
  4867. try:
  4868. self.setupUi(self)
  4869. self.pushButton.clicked.connect(self.btn)
  4870. self.comboBox.addItems(['1', '2', '3',"4"])
  4871. self.comboBox.setEditable(True)
  4872. self.filterModel = QSortFilterProxyModel(self.comboBox)
  4873. self.filterModel.setFilterCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4874. self.filterModel.setSourceModel(self.comboBox.model())
  4875. self.completer = QCompleter(self.filterModel, self.comboBox)
  4876. self.completer.setCompletionMode(QCompleter.CompletionMode.UnfilteredPopupCompletion)
  4877. self.completer.setCaseSensitivity(Qt.CaseSensitivity.CaseInsensitive)
  4878. self.comboBox.setCompleter(self.completer)
  4879. self.comboBox.lineEdit().textEdited.connect(self.filterModel.setFilterFixedString)
  4880. self.completer.activated.connect(self.on_completer_activated)
  4881. self.ipinfo = None
  4882. self.user = None
  4883. self.authority=None
  4884. except Exception:
  4885. logger.error(traceback.format_exc())
  4886. def severpost_meassge(self, postname, data: dict):
  4887. try:
  4888. ip = "http://" + str(self.ipinfo) + "/static/" + str(postname)
  4889. data = json.dumps(data)
  4890. res = requests.post(url=ip, data=data, timeout=30).json()
  4891. return res
  4892. except Exception:
  4893. QMessageBox.warning(self, "提示", "服务器连接超时,请联系管理员检查服务器!")
  4894. logger.error(traceback.format_exc())
  4895. return 'fail'
  4896. def on_completer_activated(self, text):
  4897. try:
  4898. if text:
  4899. index = self.comboBox.findText(text)
  4900. self.comboBox.setCurrentIndex(index)
  4901. except Exception:
  4902. logger.error(traceback.format_exc())
  4903. def btn(self):
  4904. try:
  4905. if int(self.authority) <= 1:
  4906. username = self.lineEditUser.text()
  4907. password = self.lineEditPWD.text()
  4908. authority = self.comboBox.currentText()
  4909. people = self.lineEditPeople.text()
  4910. if username != "" and password != "":
  4911. # print('用户名:{},密码:{},权限:{},使用人:{}'.format(username,password,authority,people))
  4912. dataDic = {
  4913. '登录名': username,
  4914. '密码': password,
  4915. '权限': authority,
  4916. '使用人': people
  4917. }
  4918. res = self.severpost_meassge("addUserWidget", dataDic)
  4919. if res["返回值"] == "1":
  4920. self.close()
  4921. self.show_message("提示", "用户创建成功!!!")
  4922. else:
  4923. self.show_message("警告", "此用户已存在")
  4924. else:
  4925. self.show_message("警告", "用户名或密码不能为空!!!")
  4926. else:
  4927. self.close()
  4928. self.show_message("警告", "权限不够,请联系管理员!!!")
  4929. except Exception:
  4930. logger.error(traceback.format_exc())
  4931. def show_message(self, type, str):
  4932. try:
  4933. QMessageBox.warning(self, "%s" % type, "%s" % str)
  4934. except Exception:
  4935. logger.error(traceback.format_exc())
  4936. class findServerWidget(Ui_FormLink, QWidget):
  4937. selectServer_signal = QtCore.pyqtSignal(str)
  4938. def __init__(self, parent=None):
  4939. super().__init__(parent)
  4940. try:
  4941. self.threadpool = QThreadPool()
  4942. self.setupUi(self)
  4943. self.serverList = []
  4944. self.tableWidget.setColumnCount(2)
  4945. self.tableWidget.setHorizontalHeaderLabels(['服务器地址', '状态'])
  4946. self.threadWork_findServer()
  4947. self.tableWidget.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)
  4948. self.tableWidget.cellDoubleClicked.connect(self.selectServer)
  4949. self.pushButton_manset.clicked.connect(self.setipinfo)
  4950. except Exception:
  4951. logger.error(traceback.format_exc())
  4952. def setipinfo(self):
  4953. try:
  4954. self.ipinfo = ""
  4955. if os.path.exists("server.code") is True:
  4956. read_path = os.getcwd() + "\\server.code"
  4957. with open(read_path, "r", encoding="utf-8") as f2:
  4958. rember_2 = f2.read()
  4959. if ';' in rember_2:
  4960. self.ipinfo = rember_2.split(';')[0]
  4961. self.ipinfo1 = rember_2.split(':')[0]
  4962. ip = "http://" + str(self.ipinfo) + "/static/linktest"
  4963. try:
  4964. res = requests.get(url=ip, timeout=30)
  4965. self.selectServer_signal.emit(self.ipinfo1)
  4966. if res.text == "ok":
  4967. QMessageBox.warning(self, "提示", "服务器人工配置成功!")
  4968. else:
  4969. QMessageBox.warning(self, "提示", "服务器人工配置失败,请检查配置文件或联系管理员检查服务器!")
  4970. except Exception:
  4971. QMessageBox.warning(self, "提示", "服务器人工配置失败,请联系管理员检查服务器!")
  4972. logger.error(traceback.format_exc())
  4973. else:
  4974. QMessageBox.warning(self, "提示", "服务器人工配置失败,请检查配置文件或联系管理员检查服务器!")
  4975. else:
  4976. QMessageBox.warning(self, "提示", "服务器人工配置失败,系统缺少配置文件!")
  4977. except Exception:
  4978. logger.error(traceback.format_exc())
  4979. def setipinfo2(self):
  4980. try:
  4981. self.ipinfo = ""
  4982. if os.path.exists("server.code") is True:
  4983. read_path = os.getcwd() + "\\server.code"
  4984. with open(read_path, "r", encoding="utf-8") as f2:
  4985. rember_2 = f2.read()
  4986. if ';' in rember_2:
  4987. self.ipinfo = rember_2.split(';')[0]
  4988. self.ipinfo1 = rember_2.split(':')[0]
  4989. ip = "http://" + str(self.ipinfo) + "/static/linktest"
  4990. try:
  4991. res = requests.get(url=ip, timeout=30)
  4992. self.selectServer_signal.emit(self.ipinfo1)
  4993. if res.text == "ok":
  4994. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功!")
  4995. else:
  4996. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功,服务器连接失败,请检查配置文件或联系管理员检查服务器!")
  4997. except Exception:
  4998. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置成功,服务器连接失败,请检查配置文件或联系管理员检查服务器!")
  4999. logger.error(traceback.format_exc())
  5000. else:
  5001. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置失败,请检查配置文件或联系管理员检查服务器!")
  5002. else:
  5003. QMessageBox.warning(self, "提示", "服务器搜索失败,自动检索配置文件配置失败,系统缺少配置文件!")
  5004. except Exception:
  5005. logger.error(traceback.format_exc())
  5006. def selectServer(self, row, col):
  5007. # print(self.tableWidget.item(row,col).text())
  5008. try:
  5009. self.selectServer_signal.emit(self.tableWidget.item(row, 0).text())
  5010. except Exception:
  5011. logger.error(traceback.format_exc())
  5012. def threadWork_findServer(self):
  5013. try:
  5014. worker = Worker2(self.fn)
  5015. worker.signals.result.connect(self.print_out_result)
  5016. self.threadpool.start(worker)
  5017. except Exception:
  5018. logger.error(traceback.format_exc())
  5019. def fn(self):
  5020. try:
  5021. serverList = serverFind.findServer()
  5022. return serverList
  5023. except Exception:
  5024. logger.error(traceback.format_exc())
  5025. def print_out_result(self, dlist):
  5026. try:
  5027. self.serverList = dlist
  5028. # print(self.serverList)
  5029. if self.serverList == [] or self.serverList ==None:
  5030. self.setipinfo2()
  5031. else:
  5032. self.tableWidget.setRowCount(len(self.serverList))
  5033. rowNum = 0
  5034. for row in self.serverList:
  5035. colNum = 0
  5036. for col in row:
  5037. self.tableWidget.setItem(rowNum, colNum, QTableWidgetItem(col))
  5038. colNum += 1
  5039. rowNum += 1
  5040. except Exception:
  5041. logger.error(traceback.format_exc())
  5042. class mapWebWidget(Ui_FormMapWeb, QWidget):
  5043. def __init__(self):
  5044. super().__init__()
  5045. self.setupUi(self)
  5046. # self.webEngineView.load(QUrl('http://192.168.2.22:6010/'))
  5047. class Worker2(QRunnable):
  5048. def __init__(self, fn, *args, **kwargs):
  5049. super(Worker2, self).__init__()
  5050. # Store constructor arguments (re-used for processing)
  5051. self.fn = fn
  5052. self.args = args
  5053. self.kwargs = kwargs
  5054. self.signals = WorkerSignals()
  5055. @pyqtSlot()
  5056. def run(self):
  5057. try:
  5058. result = self.fn(
  5059. *self.args, **self.kwargs
  5060. )
  5061. except Exception:
  5062. traceback.print_exc()
  5063. exctype, value = sys.exc_info()[:2]
  5064. self.signals.error.emit((exctype, value, traceback.format_exc()))
  5065. else:
  5066. self.signals.result.emit(result) # Return the result of the processing
  5067. finally:
  5068. self.signals.finished.emit()
  5069. class WorkerSignals(QObject):
  5070. finished = pyqtSignal()
  5071. error = pyqtSignal(tuple)
  5072. result = pyqtSignal(object)
  5073. if __name__ == '__main__':
  5074. app = QApplication(sys.argv)
  5075. mw = MainWidget()
  5076. sys.exit(app.exec())