QTMain_old.py 330 KB

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