123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977 |
- import concurrent.futures
- import datetime
- import os
- import random
- import socket
- import time
- import traceback
- from datetime import timedelta
- import sqlite3
- import requests
- from flask import Flask , render_template
- from flask import request , jsonify
- from flask_jwt_extended import JWTManager , create_refresh_token
- from flask_jwt_extended import jwt_required , get_jwt_identity , create_access_token
- from waitress import serve
- from Functions import utils , DataComputer as DataComputer , ipcall , flaskDBUtils4PG as flaskDBUtils
- from Functions.DButilsFunction import flightDB , judge_bc as Judge_bc , initFlightDatabase as InitFlightDatabase , \
- insertTaskDataToTable , sortFlighttime , sortFlighttime2 , checkTFUairplane , \
- createWorkloadtablesFromPg as CreateWorkloadtablesFromPg , \
- checkFlightAlert , calledChecked as CalledChecked , \
- infoConfirm as InfoConfirm , infoConfirm3 as InfoConfirm3 , infoConfirm2 as InfoConfirm2 , \
- maintainAuthCheck as MaintainAuthCheck , \
- checkLoadSingal as CheckLoadSingal , changepassword as Changepassword , postgresql_local , \
- mapDispaly as MapDispaly , \
- checkPglist as CheckPglist , updateEidteItem as UpdateEidteItem , updateDragDropItem as UpdateDragDropItem , \
- qtPeopleLoad as QtPeopleLoad , tableWidgetDispaly as TableWidgetDispaly , \
- tableWidgetDispaly2 as TableWidgetDispaly2 , \
- tableWidgetDispalyRead2 as TableWidgetDispalyRead2 , tableWidgetDispalyRead as TableWidgetDispalyRead , \
- bakupdata as Bakupdata , getphonelist as Getphonelist , MM_GJJH_LIST as mM_GJJH_LIST , \
- checkCalllist as CheckCalllist , \
- tableWidgetLOGDispaly as TableWidgetLOGDispaly , tableWidgetDisplayChange as TableWidgetDisplayChange , \
- manAddFlight as ManAddFlight , get_dic as Get_dic , manChangests as ManChangests , insertLogs as InsertLogs , \
- insertLogs2 as InsertLogs2 , \
- selftaxiLogs as SelftaxiLogs , taskAtuoCheck as TaskAtuoCheck , deleteFlight as DeleteFlight , \
- get_empNos as Get_empNos , updateTaskAuto as UpdateTaskAuto , insertCalllist as InsertCalllist , \
- insertWorkjob as InsertWorkjob , \
- getRiskData as GetRiskData , saveRisktable as SaveRisktable , updateRiskdb as UpdateRiskdb , \
- updateStopFlight as UpdateStopFlight , \
- dealLogs as DealLogs , update_Pglist as Update_Pglist , getWorkjobInfo as GetWorkjobInfo , \
- mandealAllLogs as MandealAllLogs , \
- calltry as Calltry , callon as Callon , get_empNos_phoone as Get_empNos_phoone , FlightSearchInsert , \
- TaskListInsert , checkWorkerlaod_new , \
- GetPglistInDatabase , Getworkload , HandoverStsChange , ManCahangeWorkload , UpdateNoteItem , postgresql_bakup , \
- UpdatePeopleScheduleFromOnline , FlightPlanInsert , checkFlightplan
- from unitls.LogerinTxt import app_logger
- from unitls.StaticDataclass import initialize_file , write_status_to_file
- from unitls.settings import DBServer, flightDB4 , DataTransferMode , Server_Class , Main_Sever , databasefileDB , \
- Oline_flight
- import hmac
- import hashlib
- import json
- #requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
- '''
- 200 OK:请求成功,常用于GET和POST请求。
- 201 Created:请求成功并创建了新资源。
- 301 Moved Permanently:资源已永久移动到新位置。
- 302 Found:资源临时移动。
- 400 Bad Request:请求语法错误,服务器无法理解。
- 401 Unauthorized:请求需要身份验证。
- 403 Forbidden:服务器拒绝执行请求。
- 404 Not Found:服务器无法找到请求的资源。
- 500 Internal Server Error:服务器内部错误,无法完成请求。
- 503 Service Unavailable:服务器因超载或维护暂时无法处理请求。
- '''
- #初始化Flask应用
- app = Flask(__name__)
- app.config['initialized'] = False
- app.config['JWT_SECRET_KEY'] = 'your-secret-key' # 设置JWT密钥
- # 设置普通JWT过期时间
- app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(hours=1)
- # 设置刷新JWT过期时间
- app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)
- app.config["SECRET_KEY"] = "Can't not guess it ."
- jwt = JWTManager(app)
- dir = os.getcwd()
- dbhost, dbport, dbuser, dbpassword,online_host, online_port, online_user, online_password = DBServer()
- mainseverip, maindatabase=Main_Sever()
- backupactive = False #备用服务器激活标注
- database="flaskDatabase"
- databaseDB4 = flightDB4()
- databaseWorkLoad = 'workLoad'
- databaseLoginDB = 'loginDB'
- databasefileDB=databasefileDB()
- SameDatabase,HighRefreh,Online_flight_sts=Oline_flight()
- flightDataTransfer,displayDataTransfer=DataTransferMode()
- ServerClas = Server_Class()
- severVersion = "18.0.0"
- displayVersion = "18.0.0"
- print(f"当前客户端版本:{severVersion}/白板版本:{displayVersion}")
- print(f"当前服务器为:【{ServerClas}】")
- print(f"当前服务器航班数据传输模式为:【{flightDataTransfer}】")
- print(f"当前服务器显示计算请求模式为:【{displayDataTransfer}】")
- print(f"在线编辑模式:【{Online_flight_sts}】")
- print(f"一期二期服务器是否统一:【{SameDatabase}】")
- print(f"在线编辑高刷模式:【{HighRefreh}】")
- VinA1="328"
- VinA2="328"
- VinA3="328"
- VinB1="328"
- VinB2="328"
- VinB3="328"
- SIGNATURE_KEY=b"secret-key-neverout" # 用于请求签名的密钥
- REQUEST_VALID_DURATION = 30 # 请求有效期(秒)
- # 获取本地IP地址
- def get_local_ip():
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- s.connect(("8.8.8.8", 80)) # 连接到Google DNS服务器
- ip = s.getsockname()[0]
- s.close()
- return ip
- except:
- return socket.gethostbyname(socket.gethostname())
- def generate_signature() :
- """
- 生成请求签名
- :param data: 请求的JSON数据
- :return: (时间戳, 签名)
- """
- # 1. 获取当前Unix时间戳(秒级)
- timestamp = str(int(time.time()))
- data = { "timestamp" : timestamp }
- # 2. 对数据进行JSON序列化,确保排序一致
- # sort_keys=True 保证键的顺序一致,否则签名会不匹配
- data_str = json.dumps(data , sort_keys = True).encode('utf-8')
- # 3. 组合数据:数据字符串 + | + 时间戳
- signature_base = f"{data_str.decode('utf-8')}|{timestamp}".encode('utf-8')
- # 4. 使用HMAC-SHA256算法生成签名
- signature = hmac.new(
- SIGNATURE_KEY ,
- signature_base ,
- hashlib.sha256
- ).hexdigest()
- return timestamp , signature
- def verify_request(timestamp , signature , data) :
- """验证请求的合法性"""
- try :
- # 1. 验证时间戳是否在有效范围内
- request_time = datetime.datetime.fromtimestamp(int(timestamp))
- current_time = datetime.datetime.now()
- # 检查时间是否在有效期内
- if abs((current_time - request_time).total_seconds()) > REQUEST_VALID_DURATION :
- return False
- # 2. 验证签名
- # 将数据、时间戳和密钥组合生成签名
- data_str = json.dumps(data , sort_keys = True) # 确保数据顺序一致
- signature_base = f"{data_str}|{timestamp}".encode('utf-8')
- # 计算HMAC SHA256签名
- computed_signature = hmac.new(
- SIGNATURE_KEY,
- signature_base,
- hashlib.sha256
- ).hexdigest()
- # 比较签名(使用hmac.compare_digest更安全)
- if not hmac.compare_digest(computed_signature, signature):
- return False
- return True
- except Exception as e :
- return False
- def check_a_availability():
- """检查A服务器的可用性"""
- try:
- timestamp, signature = generate_signature()
- header = {'Content-Type' : 'application/json',
- 'X-Timestamp' : timestamp,
- 'X-Signature' : signature,
- }
- response = requests.get("http://" + mainseverip + ':5001/static/health' , headers = header)
- #ip = "http://" + mainseverip + ":5001/static/health"
- #response = requests.get(ip, timeout=5)
- return response.status_code != 200 #看是否连接成功
- except Exception as e:
- return True #出问题了
- def create_user_table():
- conn = sqlite3.connect('users.db')
- c = conn.cursor()
- cur_str = """
- CREATE TABLE IF NOT EXISTS users (ID INTEGER PRIMARY KEY AUTOINCREMENT,
- username TEXT NOT NULL,
- password TEXT NOT NULL,
- roles TEXT NOT NULL )
- """
- c.execute(cur_str)
- conn.commit()
- conn.close()
- print("Table created successfully")
- '''
- def insert_user(username, password, roles):
- conn = sqlite3.connect('users.db')
- c = conn.cursor()
- result = query_user(username)
- if not result:
- cur_str="""
- INSERT INTO users (username, password, roles) VALUES ("{}", "{}", "{}")""".format(username, password, roles)
- c.execute(cur_str)
- conn.commit()
- print("User ({}) inserted successfully".format(username))
- else:
- print("User {} already exists".format(username))
- conn.close()
- def query_user(username):
- conn = sqlite3.connect('users.db')
- c = conn.cursor()
- cur_str="""
- SELECT * FROM users WHERE username = "{}" """.format(username)
- result = c.execute(cur_str).fetchall()
- return result
- def verify_user(username, password):
- result = query_user(username)
- if not result:
- print("User ({}) doesn't exist".format(username))
- return False
- else:
- if result[0][2] == password:
- return True
- else:
- return False
- '''
- def returnTrue(message, data):
- return jsonify(msg=message, data=data)
- def tableWidgetDispalyN(selectedtime,date):
- #t1 = datetime.datetime.now()
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- #t2 = datetime.datetime.now()
- #print(f'航班刷新登录时间:{t2 - t1}')
- res=TableWidgetDispaly(fdb,selectedtime,date)
- fdb.close()
- #print(datetime.datetime.now(),res)
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]A模式航班信息刷新请求[%s]"%(remote_addr,date))
- #t3 = datetime.datetime.now()
- #print(f'航班刷新处理时间:{t3 - t2}')
- return res
- def tableWidgetDispaly2N(selectedtime,date):
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDispaly2(fdb,selectedtime,date)
- fdb.close()
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]B模式航班信息刷新请求[%s]"%(remote_addr,date))
- return res
- def updatetimer():
- db = flaskDBUtils.flaskDB(host = dbhost , port = dbport , user = dbuser , password = dbpassword ,database = database)
- try:
- today = datetime.datetime.now().strftime("%Y%m%d")
- tomorrow = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y%m%d")
- yesterday = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y%m%d")
- dict={"1":yesterday,"2":today, "3":tomorrow}
- for key,value in dict.items():
- tableWidgetDispalyN(value,key)
- tableWidgetDispaly2N(value,key)
- flaskDBUtils.updateALlVin(db)
- #print(VinA1 , VinA2 , VinA3 , VinB1 , VinB2 , VinB3)
- except Exception as e:
- print(traceback.format_exc())
- db.close()
- def task_function(taskname, paramaDict):
- #ts = time.time()
- #print('开始请求:{}'.format(taskname))
- time.sleep(random.randint(10,100)/100)
- if taskname == "taskflightdata":
- result = fl.request_task_filght_list(paramaDict['nowDayStr'], paramaDict['token'])
- elif taskname == "Thirdtaskflightdata":
- result = fl.request_task_filght_third_list(paramaDict['nowDayStr'], paramaDict['token'])
- elif taskname == "flightsearch":
- result = fl.request_LM_FLIGHT_SEARCH_LIST(paramaDict['nowDayStr'], paramaDict['token'])
- elif taskname == "flightsearch_1":
- result = fl.request_LM_FLIGHT_SEARCH_LIST(paramaDict['nowDay_1'], paramaDict['token'])
- elif taskname == "TaskList":
- result = fl.request_LM_TASK_ARCHIVE_LIST(paramaDict['nowDayStr'], paramaDict['token'])
- elif taskname == "TaskList_1":
- result = fl.request_LM_TASK_ARCHIVE_LIST(paramaDict['nowDay_1'], paramaDict['token'])
- elif taskname == "FlightplanInfo":
- result = fl.request_flight_from_flightplan(paramaDict['nowDay_1'],paramaDict['nowDayStr'], paramaDict['token'])
- else:
- result = {'code': 404}
- #print("{} 请求耗时:{}".format(taskname, time.time()-ts))
- return result
- '''
- #用户注册与登录
- @app.route('/register', methods=['POST'])
- def register():
- data = request.get_json()
- print(data)
- username = data.get('username')
- password = data.get('password')
- insert_user(username, password, 'general')
- return jsonify({'msg': 'User created successfully'}), 201
- @app.route('/getAccessToken', methods=['POST'])
- def get_access_token():
- data = request.get_json()
- username = data.get('username')
- password = data.get('password')
- if verify_user(username, password):
- access_token = create_access_token(identity=username)
- refresh_token = create_refresh_token(identity=username)
- return jsonify(access_token=access_token, refresh_token=refresh_token, msg="Login {} success".format(username)), 200
- return jsonify({'msg': 'Invalid credentials'}), 401
- '''
- # 健康检查接口,暂时不做要求,后期做白名单或者删掉
- @app.route('/static/health') #签名检测
- def health_check():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp,signature, {"timestamp": timestamp}):
- try:
- # 检查数据库连接
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- db.close()
- return jsonify({"status": "ok", "msg":{"timestamp": datetime.datetime.now().isoformat()}}), 200
- except Exception as e:
- return jsonify({"status": "error", "msg": str(e)}), 500
- else:
- return jsonify({"status": "error", "msg": "签名验证未通过"}), 401
- @app.route("/map/<selectedtime>/<token>")
- def index(selectedtime,token):
- return render_template("map.html", selectedtime=selectedtime,token=token)
- @app.route('/loginTable', methods=['POST']) #签名检测
- def loginTable():
- data = request.get_json()
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp,signature,data):
- username = data.get('username')
- password = data.get('password')
- remote_addr = request.remote_addr
- res1={"返回值":""}
- #t1 = datetime.datetime.now()
- loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
- #t2 = datetime.datetime.now()
- #print(f'登录时间:{t2 - t1}')
- res=loginTabledb.queryTabel('logintable', '*', "登录名='{}' and 密码='{}'".format(username,password))
- loginTabledb.close()
- if res !=[]:
- access_token = create_access_token(identity=username)
- refresh_token = create_refresh_token(identity=username)
- res1["返回值"]=res[0]
- return jsonify(data=res1, access_token=access_token, refresh_token=refresh_token), 200
- print(datetime.datetime.now(),"[%s]%s尝试登录" %(remote_addr,username))
- #t3 = datetime.datetime.now()
- #print(f'处理时间:{t3-t2}')
- return jsonify(msg=(datetime.datetime.now(),"[%s]%s尝试登录失败" %(remote_addr,username)), data=res1), 401
- else:
- return jsonify(msg=(datetime.datetime.now(),"签名验证未通过" ), data={"返回值":"fail"}), 401
- @app.route('/static/remoteCheck', methods=['POST']) #操作系统版本验证 #签名检测
- def remoteCheck():
- data = request.get_json()
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp,signature,data):
- checknumber = data.get('checknumber')
- if checknumber ==severVersion:
- res={"返回值":"ok"}
- else:
- res={"返回值":severVersion}
- res['msg']="check server version"
- return jsonify(res)
- else:
- res = { "返回值" : "签名验证未通过" }
- return jsonify(res), 401
- @app.route('/static/remoteCheck2', methods=['POST']) #电子白板系统版本验证#签名检测
- def remoteCheck2():
- data = request.get_json()
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp,signature,data):
- checknumber = data.get('checknumber')
- if checknumber ==displayVersion:
- res={"返回值": "ok"}
- else:
- res={"返回值": displayVersion}
- res['msg']="check display version"
- return jsonify(res)
- else:
- res = { "返回值" : "签名验证未通过" }
- return jsonify(res), 401
- @app.route('/bakupdata')#签名检测
- def bakupdata():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp , signature , {"timestamp": timestamp}) :
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- Bakupdata(fdb)
- fdb.close()
- print(datetime.datetime.now(), "[%s]5分钟间隔自动备份"%remote_addr)
- return jsonify(status="ok")
- else:
- return jsonify(status="fail",msg= '签名验证失败'), 401
- @app.route('/postgresql')#签名检测
- def postgresql():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp , signature , {"timestamp": timestamp}) :
- try:
- if flightDataTransfer == 1:
- local = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- try:
- postgresql_local(local,online_host,online_port,online_user,online_password,databaseDB4)
- except:
- local.close()
- print(datetime.datetime.now(), "[远端链接失败]云端数据库服务器")
- return jsonify(status="fail")
- local.close()
- if displayDataTransfer == 1:
- res= DataComputer.mytask()
- if res == "ok":
- url = "https://"+online_host+":7162/computerDispalydata"
- #url = "https://192.168.2.87:5070/computerDispalydata"
- try:
- ress=requests.get(url, verify=False)
- ress.raise_for_status() # 检查HTTP状态码是否为成功
- data = ress.json()
- #ress=requests.post(url, cert=('D:\\flightinfo\\DATABASE\\sichuanair.com.pem','D:\\flightinfo\\DATABASE\\sichuanair.com.key')).json()
- if data == "ok":
- #if data.get("result") == "ok":
- print(datetime.datetime.now(), "远端显示中心计算请求成功")
- else:
- print(datetime.datetime.now(), "[返回为fail]远端显示中心计算请求失败")
- except Exception as e:
- print(e)
- print(datetime.datetime.now(), "[请求被拒绝]远端显示中心计算请求失败")
- return jsonify(status="ok", msg=("远端显示中心计算请求成功"))
- except:
- print(traceback.format_exc())
- return jsonify(status="fail", msg=("[返回为fail]远端显示中心计算请求失败"))
- else:
- return jsonify(status="fail",msg= '签名验证失败'), 401
- @app.route('/getFlightData2', methods=['POST'])#签名检测
- async def getFlightData2():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp , signature, {"timestamp": timestamp}):
- data = request.get_json()
- type = data.get('type')
- global singlePeopleNotice,loaclseverip
- db = flaskDBUtils.flaskDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=database)
- fdb = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseDB4)
- onlinefileDB=None
- workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
- if Online_flight_sts == "1":
- onlinefileDB = flightDB(host=online_host, port=dbport, user=dbuser, password=dbpassword, database=databasefileDB)
- if (mainseverip and mainseverip == loaclseverip) or mainseverip == "" or (mainseverip and mainseverip != loaclseverip and check_a_availability()):
- try:
- #print(type)
- ts = time.time()
- taskname_queue = ["taskflightdata","Thirdtaskflightdata","flightsearch","TaskList","FlightplanInfo","flightsearch_1","TaskList_1"] #FlightplanInfo 飞机排班系统的航班嘻嘻你
- taskparama_queue = []
- date_time = Judge_bc()["date"]
- nowDay = datetime.datetime.now()
- nowDayStr = nowDay.strftime("%Y%m%d")
- now_130 = (datetime.datetime.now() + datetime.timedelta(minutes=300)).strftime("%Y%m%d")
- nowStr = nowDay.strftime("%Y%m%d %H:%M:%S")
- print(datetime.datetime.now(), "[判断:%s,当前:%s,+130:%s]" % (date_time, nowDayStr, now_130))
- if date_time == nowDayStr and now_130 == nowDayStr: # 当班次判断为09:00-1900时,只查当日 1900取决于300min不取决于班次判断
- nowDay_1 =nowDayStr
- nowday_11=nowDayStr
- searchDay=f"{nowDayStr[:4]}-{nowDayStr[4:6]}-{nowDayStr[6:]}"
- start=nowDay.strftime('%Y-%m-%d 00:00:00')
- end= nowDay.strftime('%Y-%m-%d 00:00:00')
- elif date_time == nowDayStr and now_130 != nowDayStr: # 当班次判断为1900-2400时,今日和明日
- nowDay_1 = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
- nowday_11=nowDayStr
- searchDay=f"{nowDayStr[:4]}-{nowDayStr[4:6]}-{nowDayStr[6:]}"
- start=nowDay.strftime('%Y-%m-%d 00:00:00')
- end= (datetime.date.today() + datetime.timedelta(days=1)).strftime('%Y-%m-%d 00:00:00')
- else: #当班次判断为000-0900时,查昨日和今日
- nowDay_1 = date_time
- nowday_11= nowDayStr
- searchDay=f"{date_time[:4]}-{date_time[4:6]}-{date_time[6:]}"
- start=f"{date_time[:4]}-{date_time[4:6]}-{date_time[6:]} 00:00:00"
- end=nowDay.strftime('%Y-%m-%d 00:00:00')
- print('nowDay_1:{},nowday_11:{},searchDay:{}'.format(nowDay_1,nowday_11,searchDay))
- if type == "A":
- if str(flaskDBUtils.checkLogin(db)) == '1':
- token,x_access_token = flaskDBUtils.getToken(db)
- #print('db-token:{}'.format(token))
- print(datetime.datetime.now(), "A动态获取获取[%s/%s]" % (nowDayStr, nowDay_1))
- taskparama_queue.append({'nowDayStr':searchDay, 'token': token})
- taskparama_queue.append({'nowDayStr':searchDay, 'token': token})
- taskparama_queue.append({'nowDayStr':nowday_11, 'token': token})
- taskparama_queue.append({'nowDayStr':nowday_11, 'token': token})
- taskparama_queue.append({'nowDayStr':end,'nowDay_1': start, 'token': x_access_token})
- taskparama_queue.append({'nowDay_1': nowDay_1, 'token': token})
- taskparama_queue.append({'nowDay_1': nowDay_1, 'token': token})
- flaskDBUtils.clearinfolog(db)
- with concurrent.futures.ThreadPoolExecutor() as executor:
- if nowday_11 == nowDay_1: #如果两个日期相同,只查一次避免相同
- results = executor.map(task_function, taskname_queue[:5], taskparama_queue[:5])
- else:
- results = executor.map(task_function, taskname_queue, taskparama_queue)
- resultsList = []
- for result in results:
- resultsList.append(result)
- taskflightdata= resultsList[0]
- Thirdtaskflightdata= resultsList[1]
- flightsearchdata= resultsList[2]
- tasklistdata= resultsList[3]
- infoFromflightplan= resultsList[4] #飞机排班数据
- #print(infoFromflightplan)
- if nowday_11 != nowDay_1: ##如果两个日期相同,就没有另外一天的数据
- flightsearchdata_1= resultsList[5]
- tasklistdata_1= resultsList[6]
- if taskflightdata['code'] and taskflightdata['code'] != 200:
- flaskDBUtils.logout(db)
- flaskDBUtils.insertinfolog(db, nowStr, str(taskflightdata['code']))
- InitFlightDatabase(fdb,workLoad, nowDayStr)
- InitFlightDatabase(fdb,workLoad, nowDay_1)
- sortFlighttime(fdb,workLoad)
- sortFlighttime2(fdb,workLoad)
- checkTFUairplane(fdb,onlinefileDB)
- checkWorkerlaod_new(fdb,workLoad,nowDayStr,nowDay_1)
- checkFlightAlert(fdb, singlePeopleNotice)
- #dingdingDelete_flight(fdb)
- #dingdingFlightsts(fdb)
- #dingdinginfoget(fdb)
- CalledChecked(fdb)
- if Online_flight_sts == "1" and SameDatabase == "0":
- res = UpdatePeopleScheduleFromOnline(fdb, onlinefileDB)
- if res:
- updatetimer()
- else:
- updatetimer()
- print(datetime.datetime.now(), "A静态刷新")
- code=str(taskflightdata['code'])
- else:
- #ts2 = time.time()
- InitFlightDatabase(fdb,workLoad, nowDayStr)
- InitFlightDatabase(fdb,workLoad, nowDay_1)
- insertTaskDataToTable(fdb, nowDayStr, taskflightdata['data'], Thirdtaskflightdata['data'])
- FlightSearchInsert(fdb, nowDayStr, flightsearchdata['data'])
- TaskListInsert(fdb, nowDayStr, tasklistdata['data'])
- if infoFromflightplan['code'] and infoFromflightplan['code'] == 200:
- FlightPlanInsert(fdb, nowDayStr, infoFromflightplan['result'])
- if nowday_11 != nowDay_1: ##如果两个日期相同,就没有另外一天的数据,无需写入
- insertTaskDataToTable(fdb, nowDay_1, taskflightdata['data'], Thirdtaskflightdata['data'])
- FlightSearchInsert(fdb, nowDay_1, flightsearchdata_1['data'])
- TaskListInsert(fdb, nowDay_1, tasklistdata_1['data'])
- if infoFromflightplan['code'] and infoFromflightplan['code'] == 200:
- FlightPlanInsert(fdb, nowDay_1, infoFromflightplan['result'])
- checkFlightplan(fdb,workLoad)
- sortFlighttime(fdb,workLoad)
- sortFlighttime2(fdb,workLoad)
- checkTFUairplane(fdb,onlinefileDB)
- checkWorkerlaod_new(fdb,workLoad,nowDayStr,nowDay_1)
- checkFlightAlert(fdb, singlePeopleNotice)
- #dingdingDelete_flight(fdb)
- #dingdingFlightsts(fdb)
- #dingdinginfoget(fdb)
- CalledChecked(fdb)
- flaskDBUtils.insertinfolog(db,nowStr,str(taskflightdata['code']))
- if Online_flight_sts == "1":
- if SameDatabase == "0":
- UpdatePeopleScheduleFromOnline(fdb , onlinefileDB)
- updatetimer()
- print(datetime.datetime.now(), "A动态刷新")
- #print('数据库耗时:{}'.format(time.time()-ts2))
- code = str(taskflightdata['code'])+";刷新用时:"+str(time.time()-ts)
- else:
- code = '未登录'
- else: #type==B
- InitFlightDatabase(fdb,workLoad, nowDayStr)
- InitFlightDatabase(fdb,workLoad, nowDay_1)
- sortFlighttime(fdb,workLoad)
- sortFlighttime2(fdb,workLoad)
- checkTFUairplane(fdb,onlinefileDB)
- checkWorkerlaod_new(fdb,workLoad,nowDayStr,nowDay_1)
- checkFlightAlert(fdb, singlePeopleNotice)
- #dingdingDelete_flight(fdb)
- #dingdingFlightsts(fdb)
- #dingdinginfoget(fdb)
- CalledChecked(fdb)
- if Online_flight_sts == "1" and SameDatabase == "0":
- res=UpdatePeopleScheduleFromOnline(fdb, onlinefileDB)
- if res:
- updatetimer()
- else:
- updatetimer()
- print(datetime.datetime.now(),"B静态刷新")
- code = "200"
- if mainseverip and mainseverip != loaclseverip and type == "B":
- print(datetime.datetime.now(), '[系统警告]主服务器通讯失败,备份服务器工作中')
- main_fdb=flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseDB4)
- main_db = flaskDBUtils.flaskDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=database)
- main_loginTabledb = flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
- loginTabledb = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
- try:
- postgresql_bakup(fdb, main_fdb,1)
- postgresql_bakup(db, main_db,3)
- postgresql_bakup(loginTabledb, main_loginTabledb,2)
- main_fdb.close()
- main_db.close()
- main_loginTabledb.close()
- except Exception as e:
- main_fdb.close()
- main_db.close()
- main_loginTabledb.close()
- print(datetime.datetime.now(), '[系统警告]向主数据传输失败')
- fdb.close()
- workLoad.close()
- db.close()
- if Online_flight_sts == "1":
- onlinefileDB.close()
- return jsonify(code=code, msg='正常刷新')
- except Exception as e:
- fdb.close()
- workLoad.close()
- db.close()
- if Online_flight_sts == "1":
- onlinefileDB.close()
- app_logger.log_error(e)
- return jsonify(code='未登录', msg=str(e))
- else:
- #需要加入数据库同步
- if type == "B":
- print(datetime.datetime.now(), '[主从备份]非主服务器,该服务器仅同步')
- main_fdb=flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseDB4)
- main_db = flaskDBUtils.flaskDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=database)
- main_loginTabledb = flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
- loginTabledb = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
- try:
- postgresql_bakup(main_fdb,fdb,1)
- postgresql_bakup(main_db, db, 3)
- postgresql_bakup(main_loginTabledb, loginTabledb, 2)
- db.close()
- fdb.close()
- workLoad.close()
- main_fdb.close()
- main_db.close()
- main_loginTabledb.close()
- return '200'
- except Exception as e:
- print(e)
- db.close()
- fdb.close()
- workLoad.close()
- main_fdb.close()
- main_db.close()
- main_loginTabledb.close()
- print(datetime.datetime.now(), '[系统警告]从主数据备份失败')
- return '200'
- else:
- return "200"
- else:
- return jsonify(code='未登录',msg= '签名验证失败'), 401
- @app.route('/static/linktest')#签名检测
- def linktest():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp , signature , { "timestamp": timestamp}) :
- return jsonify(status="ok", msg="linktest")
- else:
- return jsonify(status="fail",msg= '签名验证失败'), 401
- @app.route('/checkLogin')#签名检测
- def checkLogin():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp , signature , { "timestamp": timestamp}) :
- sts= False
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- cookie,x_access_token = flaskDBUtils.getToken(db)
- if str(flaskDBUtils.checkLogin(db)) == '1':
- logincode = fl.checkCookieSts(cookie)
- if logincode and logincode != 200:
- sts= False
- flaskDBUtils.logout(db)
- time.sleep(0.1)
- elif logincode and logincode == 200:
- sts= True
- if str(flaskDBUtils.checkLoginflightplan(db)) == '1':
- flightplanlogincode = fl.checkCookieStsFLIGHTplan(x_access_token)
- if flightplanlogincode and flightplanlogincode != 200:
- sts= False
- flaskDBUtils.logoutflightplan(db)
- time.sleep(0.1)
- elif flightplanlogincode and flightplanlogincode == 200:
- sts= True
- #db.close()
- if sts:
- return jsonify(code="1", msg="登录正常")
- else:
- return jsonify(code="0", msg="登录超时")
- else:
- return jsonify(code="0",msg= '签名验证失败'), 401
- @app.route('/table')#签名检测
- def table():
- signature = request.headers.get('X-Signature')
- timestamp = request.headers.get('X-Timestamp')
- if verify_request(timestamp , signature , { "timestamp": timestamp}) :
- flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- result = flaskDBUtils.getinfolog(flaskDB)
- flaskDB.close()
- dl = []
- if result !=None:
- for i in result:
- dl.append([i[0], i[1], i[2]])
- data = {
- "data":dl,
- 'msg':"get table data"
- }
- #print(data)
- #print('get table data')
- return jsonify(data)
- else:
- return jsonify({"data":[],'msg':"无数据"})
- else:
- return jsonify({"data":[],'msg':"签名验证失败"}), 401
- #------------------------------------------------------------------------------------------------
- #受保护的路由
- @app.route("/map/getSelectInf", methods=['POST'])
- @jwt_required()
- def getSelectInf():
- data = request.get_json()
- selectedtime=data["selectedtime"]
- bay = data["bay"]
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res = MapDispaly(fdb, selectedtime)
- try:
- data = res[bay]
- fdb.close()
- return render_template('notuse/table.html' , data=data)
- except Exception:
- fdb.close()
- return render_template('notuse/table.html' , data={})
- @app.route('/changeSinglepoepleNotice', methods=['POST'])
- @jwt_required()
- def changeSinglepoepleNotice():
- global singlePeopleNotice
- data = request.get_json()
- boolsts = data.get('boolsts')
- singlePeopleNotice = str(boolsts) == "1"
- write_status_to_file(singlePeopleNotice,'D:\\flightinfo\\DATABASE\\singlepoeple_notice.txt')
- return jsonify({"status": "success", "new_value": singlePeopleNotice, "msg":"changeSinglepoepleNotice"})
- @app.route('/getSinglepoepleNotice')
- @jwt_required()
- def getSinglepoepleNotice():
- global singlePeopleNotice
- return jsonify({"singlepoepleNotice": singlePeopleNotice, "msg":"getSinglepoepleNotice"})
- @app.route('/protected', methods=['GET'])
- @jwt_required()
- def protected():
- current_user_id = get_jwt_identity()
- return jsonify({'msg': f'Hello user {current_user_id}'}), 200
- @app.route('/findserver')
- def findserver():
- return jsonify(msg=ServerClas)
- @app.route('/static/remoteCookielogin',methods=["POST"])
- @jwt_required()
- def remoteCookielogin():
- remote_addr = request.remote_addr
- data = request.get_json()
- username = data.get('username')
- cookie = data.get('cookie')
- cookie2 = data.get('cookie2')
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- user = username
- token = "{}".format(cookie)
- token2 = "{}".format(cookie2)
- flaskDBUtils.login(db, user, token, token2)
- db.close()
- if token != None:
- print(datetime.datetime.now(),"[%s]远程登录已获取Token"%remote_addr)
- return jsonify(msg=(datetime.datetime.now(),"[%s]远程登录已获取Token"%remote_addr), status = "ok")
- else:
- return jsonify(status="fail", msg=(datetime.datetime.now(),"[%s]远程登录获取Token失败!"%remote_addr))
- @app.route('/static/remotelogin',methods=["POST"])
- @jwt_required()
- def remotelogin():
- remote_addr = request.remote_addr
- data = request.get_json()
- username = data.get('username')
- password = data.get('password')
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- user = username
- pwd =password
- #print(user, pwd)
- token,x_access_token = fl.start(user, pwd)
- flaskDBUtils.login(db, user, token,x_access_token)
- if token != None:
- print(datetime.datetime.now(),"[%s]远程登录已获取Token"%remote_addr)
- return jsonify(msg=(datetime.datetime.now(),"[%s]远程登录已获取Token"%remote_addr), status = "ok")
- else:
- return jsonify(status="fail", msg=(datetime.datetime.now(),"[%s]远程登录获取Token失败!"%remote_addr))
- @app.route('/static/remotelogout')
- @jwt_required()
- def remotelogout():
- remote_addr = request.remote_addr
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- flaskDBUtils.logout(db)
- db.close()
- print(datetime.datetime.now(), "[%s]远程注销服务器AMRO账号"%remote_addr)
- return jsonify(stauts="ok", msg=("[%s]远程注销服务器AMRO账号"%remote_addr))
- @app.route('/static/checkjobcard', methods=['GET', 'POST'])
- @jwt_required()
- def checkjobcard():
- remote_addr = request.remote_addr
- if request.method == 'GET':
- file_path = request.args.get('path')
- else:
- file_path = request.form.get('path')
- try:
- res= fl.request_jobcard("_udid=80c6089a041646db9c1d9f1a2bc1381a", file_path)
- print(datetime.datetime.now(), "[%s]调取电签工卡查询" % remote_addr)
- except Exception as e:
- app_logger.log_error(e)
- res = ""
- return jsonify(msg=res)
- @app.route('/static/VinCheck', methods=['POST'])
- @jwt_required()
- def VinCheck():
- data = request.get_json()
- vinLcoal = data.get('vinLcoal')
- mode = data.get('mode')
- num = data.get('num')
- if int(num) !=4:
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- vinOnline = flaskDBUtils.getVin(db,mode,int(num))
- db.close()
- if vinLcoal == vinOnline:
- a = "检验一致"
- res = {"返回值":"ok"}
- else:
- a = "服务器有更新"
- res = {"返回值": "update"}
- else:
- a = "非昨天、今天、明天无需获取"
- res = {"返回值": "ok"}
- remote_addr = request.remote_addr
- res['msg'] = ("[%s]刷新识别码监测:%s" % (remote_addr,a))
- print(datetime.datetime.now(), "[%s]刷新识别码监测:%s" % (remote_addr,a))
- return jsonify(res)
- @app.route('/static/setIpPhone', methods=['POST'])
- @jwt_required()
- def setIpPhone():
- data = request.get_json()
- ip = data.get('ip')
- remote_addr = request.remote_addr
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token=si.start(ip)
- if token != "fail":
- res={"返回值":"ok"}
- flaskDBUtils.setIpPhone(db, ip, token)
- print(datetime.datetime.now(), "[%s]自动网页电话登录成功[%s,%s]" % (remote_addr,ip, token))
- res['msg'] = ("[%s]自动网页电话登录成功[%s,%s]" % (remote_addr,ip, token))
- else:
- res={"返回值":"fail"}
- flaskDBUtils.setIpPhone(db, ip, None)
- print(datetime.datetime.now(), "[%s]自动网页电话登录失败[%s]" % (remote_addr,ip))
- res['msg']=("[%s]自动网页电话登录失败[%s]" % (remote_addr,ip))
- db.close()
- return jsonify(res)
- @app.route('/static/maintainAuthCheck', methods=['POST'])
- @jwt_required()
- def maintainAuthCheck():
- data = request.get_json()
- name = data.get('name')
- flighttype = data.get('flighttype')
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=MaintainAuthCheck(fdb,name,flighttype)
- fdb.close()
- print(datetime.datetime.now(), "[%s]维修权限验证"%remote_addr)
- res['msg'] = ("[%s]维修权限验证"%remote_addr)
- return jsonify(res)
- @app.route('/static/getPglist', methods=['POST'])
- @jwt_required()
- def getPglist():
- data = request.get_json()
- bcstr = data.get('bcstr')
- try:
- remote_addr = request.remote_addr
- #print('获取派工数据')
- bc=bcstr
- #bc = "B" #需要获取
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token,x_access_token = flaskDBUtils.getToken(db)
- db.close()
- #token = utils.flight_list.get_cookie()
- nowDay = datetime.datetime.now()
- nowDayStr = nowDay.strftime("%Y%m%d")
- nowDayStr2 = nowDay.strftime("%Y-%m-%d")
- # (self, taskid:str, shiftDate:str, shift:str, cookie):
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- taskids=fdb.queryTabel("TaskFlightinfo{}".format(nowDayStr),"航班编号","进出港航班号 like '%3U%'")
- if taskids[0][0] != "":
- Pglistdata=fl.request_LM_TSK_EMP_PGLIST(taskids[0][0],nowDayStr2,bc,token)
- Update_Pglist(fdb,nowDayStr,bc,Pglistdata['data'])
- fdb.close()
- print(datetime.datetime.now(),"[%s]获取派工人员清单请求"%remote_addr)
- return jsonify(code=Pglistdata['code'], msg=(datetime.datetime.now(),"[%s]获取派工人员清单请求"%remote_addr))
- else:
- return jsonify(code='404', msg="获取派工失败"), 404
- except Exception as e:
- app_logger.log_error("获取派工失败")
- app_logger.log_error(e)
- return jsonify(code='404', msg="获取派工失败"), 500
- @app.route('/static/getPglistInDatabase')
- @jwt_required()
- def getPglistInDatabase():
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- try:
- res = Judge_bc()
- ress = GetPglistInDatabase(fdb,res)
- fdb.close()
- return jsonify({"返回值":ress, "msg":"get PglistInDatabase success"})
- except Exception as e:
- fdb.close()
- app_logger.log_error(e)
- return jsonify({"返回值":[], "msg":"get PglistInDatabase fail"})
- @app.route('/static/getworkload',methods=["POST"])
- @jwt_required()
- def getworkload():
- data = request.get_json()
- names = data.get('names')
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
- try:
- res=Getworkload(fdb,workLoad,names)
- return jsonify(data=res, msg="get workload success")
- except Exception as e:
- fdb.close()
- workLoad.close()
- app_logger.log_error(e)
- return jsonify(data={}, msg="get workload fail")
- @app.route('/static/manchangecosttime',methods=["POST"])
- @jwt_required()
- def manchangecosttime():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
- res=ManCahangeWorkload(workLoad,data)
- workLoad.close()
- return jsonify({"返回值":res, "msg":"manchangecosttime workload success"})
- @app.route('/static/handoverflight',methods=["POST"])
- @jwt_required()
- def handoverflight():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
- res=HandoverStsChange(workLoad,data)
- workLoad.close()
- return jsonify({"返回值":res, "msg":"handoverflight workload success"})
- @app.route('/static/handoverflightAMRO',methods=["POST"])
- @jwt_required()
- def handoverflightAMRO():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token,x_access_token = flaskDBUtils.getToken(db)
- #token = utils.flight_list.get_cookie()
- Pglistdata=fl.request_LM_TSK_HANDOVER(data,token)
- if Pglistdata['code'] == 200:
- res = {"返回值": "ok"}
- else:
- res = {"返回值": "fail"}
- print(datetime.datetime.now(),"[%s]使用AMRO工作交接功能"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]使用AMRO工作交接功能"%remote_addr)
- return jsonify(res)
- @app.route('/static/MM_GJJH_LIST', methods=["POST"])
- @jwt_required()
- def MM_GJJH_LIST():
- remote_addr = request.remote_addr
- data = request.get_json()
- team = data.get('team')
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token,x_access_token = flaskDBUtils.getToken(db)
- db.close()
- Pglistdata=fl.request_MM_GJJH_LIST(token)
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- mM_GJJH_LIST(fdb,team,Pglistdata['data'])
- fdb.close()
- print(datetime.datetime.now(),"[%s]%s工具接还查询"%(remote_addr,team))
- return jsonify(code=str(Pglistdata['code']), msg=(datetime.datetime.now(),"[%s]%s工具接还查询"%(remote_addr,team)))
- @app.route('/static/checkWorkjob', methods=["POST"])
- @jwt_required()
- def checkWorkjob():
- remote_addr = request.remote_addr
- data = request.get_json()
- taskid = data.get('taskid')
- res = {"返回值": "fail"}
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token,x_access_token = flaskDBUtils.getToken(db)
- db.close()
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- getinfos=GetWorkjobInfo(fdb,taskid)
- if getinfos !={}:
- getworkjob = fl.checkWorkjob(getinfos["taskids"], getinfos["acno"], getinfos["taskType"], getinfos["actype"], getinfos["startDate"], getinfos["endDate"], token)
- res=InsertWorkjob(fdb,getworkjob["data"],taskid)
- print(datetime.datetime.now(), "[%s]获取%s工作包请求"%(remote_addr,getinfos["acno"]))
- fdb.close()
- res['msg'] = ("[%s]获取%s工作包请求"%(remote_addr,getinfos["acno"]))
- return jsonify(res)
- @app.route('/static/mandealAllLogs', methods=["POST"])
- @jwt_required()
- def mandealAllLogs():
- remote_addr = request.remote_addr
- data = request.get_json()
- mode = data.get('mode')
- user = data.get('user')
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- MandealAllLogs(fdb, user,mode)
- fdb.close()
- print(datetime.datetime.now(),"[%s]%s人工处理所有待办"%(remote_addr,user))
- return jsonify(status="ok", msg=(datetime.datetime.now(),"[%s]%s人工处理所有待办"%(remote_addr,user)))
- @app.route('/static/calltry')
- @jwt_required()
- def calltry():
- remote_addr = request.remote_addr
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- phoneip=flaskDBUtils.getIpPhoneip(db)
- db.close()
- ip=phoneip["ip"]
- token = phoneip["token"]
- db.close()
- #print("客户端点击尝试拨打请求获取的IP:%s"%phoneip)
- if ip !="" and token!="":
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- A=Calltry(fdb, ip,token)
- fdb.close()
- if A != "fail":
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]尝试自动拨打请求%s"%(remote_addr,A))
- res['msg'] = (datetime.datetime.now(),"[%s]尝试自动拨打请求%s"%(remote_addr,A))
- else:
- res = { "返回值" : "fail" , "msg":"auto call fail"}
- else:
- res = {"返回值": "fail", "msg":"auto call fail"}
- return jsonify(res)
- @app.route('/static/manAddFlight', methods=["POST"])
- @jwt_required()
- def manAddFlight():
- data = request.get_json()
- flighttype = data.get('flighttype')
- acno = data.get('acno')
- eng = data.get('eng')
- actype = data.get('actype')
- flightno = data.get('flightno')
- flightdate = data.get('flightdate')
- bay = data.get('bay')
- eta = data.get('eta')
- etd = data.get('etd')
- user = data.get('user')
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=ManAddFlight(fdb,flighttype,acno,eng,actype,flightno,flightdate,bay,eta,etd,user)
- print(datetime.datetime.now(),"%s人工添加航班%s"%(user,flightno))
- fdb.close()
- res['msg'] = (datetime.datetime.now(),"%s人工添加航班%s"%(user,flightno))
- return jsonify(res)
- @app.route('/static/getphonelist')
- @jwt_required()
- def getphonelist():
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=Getphonelist(fdb)
- remote_addr = request.remote_addr
- fdb.close()
- print(datetime.datetime.now(),"[%s]客户端获取通讯录名单"%remote_addr)
- return jsonify(data=res, msg=(datetime.datetime.now(),"[%s]客户端获取通讯录名单"%remote_addr))
- @app.route('/static/deleteFlight', methods=['POST'])
- @jwt_required()
- def deleteFlight():
- remote_addr = request.remote_addr
- data = request.get_json()
- flightid = data.get('flightid')
- user = data.get('user')
- time = data.get('time')
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=DeleteFlight(fdb,flightid,time)
- fdb.close()
- print(datetime.datetime.now(),"[%s]%s删除航班操作(%s)"%(remote_addr,user,flightid))
- res['msg'] = (datetime.datetime.now(),"[%s]%s删除航班操作(%s)"%(remote_addr,user,flightid))
- return jsonify(res)
- @app.route('/static/called/')
- @jwt_required()
- def calledChecked():
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- CalledChecked(fdb)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]通话建立情况检查请求"%remote_addr)
- res['msg']=(datetime.datetime.now(),"[%s]通话建立情况检查请求"%remote_addr)
- return res
- @app.route('/static/dingdong',methods=["POST"])
- @jwt_required()
- def dingdong():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token,x_access_token =flaskDBUtils.getToken(db)
- db.close()
- LM_TSK_DINGDONG=fl.request_LM_TSK_DINGDONG(data,token)
- #print(data)
- if LM_TSK_DINGDONG['code'] and LM_TSK_DINGDONG['code'] == 200:
- res = {"返回值": "ok", "msg": (datetime.datetime.now(),"[%s]使用叮咚消息success"%remote_addr)}
- else:
- res = {"返回值": "fail", "msg": (datetime.datetime.now(),"[%s]使用叮咚消息fail"%remote_addr)}
- print(datetime.datetime.now(),"[%s]使用叮咚消息"%remote_addr)
- return jsonify(res)
- @app.route('/static/LM_TSK_SURE_PG',methods=["POST"])
- @jwt_required()
- def LM_TSK_SURE_PG():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- token,x_access_token = flaskDBUtils.getToken(db)
- db.close()
- LM_TSK_SURE_PG=fl.request_LM_TSK_SURE_PG(data,token)
- #print(data)
- if LM_TSK_SURE_PG['code'] and LM_TSK_SURE_PG['code'] == 200:
- res = {"返回值": "ok", "msg":(datetime.datetime.now(),"[%s]使用派工success"%remote_addr)}
- else:
- res = {"返回值": "fail", "msg":(datetime.datetime.now(),"[%s]使用派工fail"%remote_addr)}
- print(datetime.datetime.now(),"[%s]使用派工"%remote_addr)
- return jsonify(res)
- @app.route('/static/insertCalllist',methods=["POST"])
- @jwt_required()
- def insertCalllist():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=InsertCalllist(fdb, data)
- fdb.close()
- print(datetime.datetime.now(),"[%s]录入拨号数据库"%remote_addr)
- #print(datetime.datetime.now(),data)
- res['msg']=(datetime.datetime.now(),"[%s]录入拨号数据库"%remote_addr)
- return jsonify(res)
- @app.route('/static/get_empNos_phoone', methods=['POST'])
- @jwt_required()
- def get_empNos_phoone():
- remote_addr = request.remote_addr
- data = request.get_json()
- name = data.get("name")
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=Get_empNos_phoone(fdb, name)
- fdb.close()
- print(datetime.datetime.now(),"[%s]获取员工号和电话号码"%remote_addr)
- #print(datetime.datetime.now(),data)
- return res
- @app.route('/static/get_empNos',methods=["POST"])
- @jwt_required()
- def get_empNos():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=Get_empNos(fdb, data)
- fdb.close()
- print(datetime.datetime.now(),"[%s]获取员工号"%remote_addr)
- #print(datetime.datetime.now(),data)
- res['msg'] = (datetime.datetime.now(),"[%s]获取员工号"%remote_addr)
- return res
- @app.route('/static/updatecheck')
- @jwt_required()
- def updatecheck():
- try:
- remote_addr = request.remote_addr
- flaskDB =flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- updatests=flaskDBUtils.updatecheck(flaskDB)
- res = {"返回值":updatests}
- flaskDB.close()
- #print(res)
- print(datetime.datetime.now(),"[%s]客户端自动检查更新请求"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]客户端自动检查更新请求"%remote_addr)
- return jsonify(res)
- except:
- return jsonify({"返回值": "0", 'msg':(datetime.datetime.now(),"[%s]客户端自动检查更新请求fail"%remote_addr)})
- @app.route('/static/calling', methods=['POST']) #呼出通话建立
- @jwt_required()
- def calling():
- remote_addr = request.remote_addr
- data = request.get_json()
- phonenum0 = data.get("phonenum0")
- #print(phonenum0)
- flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- now=datetime.datetime.now()
- a=flaskDBUtils.callingphoneUpdate(flaskDB,phonenum0,now)
- res = {"返回值":"ok"}
- flaskDB.close()
- #print(res)
- print(datetime.datetime.now(),"[%s]%s自动电话通话正在呼出"%(remote_addr,phonenum0))
- res['msg'] = (datetime.datetime.now(),"[%s]%s自动电话通话正在呼出"%(remote_addr,phonenum0))
- return jsonify(res)
- @app.route('/static/calldown') #通话结束
- @jwt_required()
- def calldown():
- remote_addr = request.remote_addr
- flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- now=datetime.datetime.now()
- a=flaskDBUtils.callingphoneUpdate(flaskDB,None,now)
- res = {"返回值":"ok"}
- flaskDB.close()
- #print(res)
- print(datetime.datetime.now(),"[%s]自动电话缓存恢复初始值"%remote_addr)
- res['msg'] =(datetime.datetime.now(),"[%s]自动电话缓存恢复初始值"%remote_addr)
- return jsonify(res)
- @app.route('/static/callon') #呼出通话建立
- @jwt_required()
- def callon():
- remote_addr = request.remote_addr
- flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- phonenum=flaskDBUtils.getPhoneNum(flaskDB)
- flaskDB.close()
- if phonenum != None:
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- Callon(fdb,phonenum)
- fdb.close()
- #print(res)
- print(datetime.datetime.now(),"[%s]%s自动电话通话建立写入"%(remote_addr,phonenum))
- return jsonify({"返回值": "ok", "msg":(datetime.datetime.now(),"[%s]%s自动电话通话建立写入"%(remote_addr,phonenum))})
- res = {"返回值": "ok", "msg":"phonenum=None"}
- return jsonify(res)
- @app.route('/static/initFlightDatabase', methods=["POST"])
- @jwt_required()
- def initFlightDatabase():
- data = request.get_json()
- selectedtime = data.get("selectedtime")
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
- InitFlightDatabase(fdb,workLoad,selectedtime)
- fdb.close()
- workLoad.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]初始化航班信息数据库"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]初始化航班信息数据库"%remote_addr)
- return jsonify(res)
- @app.route('/static/selftaxiLogs', methods=["POST"])
- @jwt_required()
- def selftaxiLogs():
- data = request.get_json()
- text = data.get("text")
- flightid = data.get("flightid")
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- SelftaxiLogs(fdb,text,flightid)
- fdb.close()
- res = {"返回值": "ok"}
- res['msg'] = "selftaxiLogs"
- return jsonify(res)
- @app.route('/static/checkCalllist', methods=["POST"])
- @jwt_required()
- def checkCalllist():
- data = request.get_json()
- time = data.get("time")
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=CheckCalllist(fdb,time)
- fdb.close()
- return jsonify(data=res, msg="checkCalllist")
- @app.route('/static/insertLogs', methods=["POST"])
- @jwt_required()
- def insertLogs():
- data = request.get_json()
- time = data.get("time")
- text = data.get("text")
- name = data.get("name")
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- InsertLogs(fdb,text,name,time)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]%s插入日志信息"%(remote_addr,name))
- res['msg'] = (datetime.datetime.now(),"[%s]%s插入日志信息"%(remote_addr,name))
- return jsonify(res)
- @app.route('/static/insertLogs2', methods=["POST"])
- @jwt_required()
- def insertLogs2():
- data = request.get_json()
- time = data.get("time")
- name = data.get("name")
- text = data.get("text")
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- InsertLogs2(fdb,text,name,time)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]%s插入日志信息"%(remote_addr,name))
- res['msg'] = (datetime.datetime.now(),"[%s]%s插入日志信息"%(remote_addr,name))
- return jsonify(res)
- @app.route('/static/checkLoadSingal', methods=["POST"])
- @jwt_required()
- def checkLoadSingal():
- data = request.get_json()
- time1 = data.get("time1")
- time2 = data.get("time2")
- worknum = data.get("worknum")
- remote_addr = request.remote_addr
- wdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseWorkLoad)
- res=CheckLoadSingal(wdb,worknum,time1,time2)
- wdb.close()
- print(datetime.datetime.now(),"[%s]查询个人工作量请求"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]查询个人工作量请求"%remote_addr)
- return jsonify(res)
- @app.route('/static/authorityCheck', methods=["POST"])
- @jwt_required()
- def authorityCheck():
- remote_addr = request.remote_addr
- data = request.get_json()
- username = data.get("username")
- res1={"返回值":""}
- loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
- res=loginTabledb.queryTabel('logintable', '*', "登录名='{}'".format(username))
- loginTabledb.close()
- if res !=[]:
- res1["返回值"]=res[0]
- print(datetime.datetime.now(),"[%s]%s验证权限请求" %(remote_addr,username))
- res1['msg']=(datetime.datetime.now(),"[%s]%s验证权限请求" %(remote_addr,username))
- return jsonify(res1)
- @app.route('/static/loginDbget', methods=["POST"])
- @jwt_required()
- def loginDbget():
- data = request.get_json()
- username = data.get("username")
- remote_addr = request.remote_addr
- res1= {}
- loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
- res=loginTabledb.getAlldata('logintable')
- loginTabledb.close()
- if res !=[] and username in str(res):
- for i in res:
- res2={}
- res2["登录名"] = i[1]
- res2["权限"] = i[3]
- res2["使用人"] = i[4]
- res1[i[1]] = res2
- print(datetime.datetime.now(),"[%s]%s权限修改信息获取" % (remote_addr,username))
- return jsonify(data=res1, msg=(datetime.datetime.now(),"[%s]%s权限修改信息获取" % (remote_addr,username)))
- @app.route('/static/changePassword',methods=["POST"])
- @jwt_required()
- def changePassword():
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
- Changepassword(loginTabledb,data["登录名"], data["旧密码"], data["新密码"])
- loginTabledb.close()
- res1 = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]%s更改密码请求" % (remote_addr,data["登录名"]))
- res1['msg'] = (datetime.datetime.now(),"[%s]%s更改密码请求" % (remote_addr,data["登录名"]))
- return jsonify(res1)
- @app.route('/static/addUserWidget',methods=["POST"])
- @jwt_required()
- def addUserWidget():
- remote_addr = request.remote_addr
- res1={"返回值":""}
- data = request.get_json()["data"]
- loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
- res=loginTabledb.queryTabel('logintable', '*', "登录名='%s'"%data["登录名"])
- if res:
- res=loginTabledb.insertData('logintable', data)
- if res == "ok":
- res1["返回值"] = "1"
- else:
- res1["返回值"] = "0"
- else:
- res1["返回值"] = "2"
- loginTabledb.close()
- print(datetime.datetime.now(),"[%s]创建新用户:%s请求" % (remote_addr,data["登录名"]))
- res1['msg'] = (datetime.datetime.now(),"[%s]创建新用户:%s请求" % (remote_addr,data["登录名"]))
- return jsonify(res1)
- @app.route('/static/changeAuth',methods=["POST"])
- @jwt_required()
- def changeAuth():
- remote_addr = request.remote_addr
- res1={"返回值":""}
- data = request.get_json()["data"]
- loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
- res=loginTabledb.queryTabel('logintable', '*', "登录名='%s'"%str(data["登录名"]).replace("'",""))
- if res != []:
- loginTabledb.upDateItem('logintable',data,"登录名='%s'"%str(data["登录名"]).replace("'",""))
- res1["返回值"]="1"
- else:
- res1["返回值"] = "2"
- loginTabledb.close()
- print(datetime.datetime.now(),"[%s]权限变更写入:%s请求" % (remote_addr,data["登录名"]))
- res1['msg'] = (datetime.datetime.now(),"[%s]权限变更写入:%s请求" % (remote_addr,data["登录名"]))
- return jsonify(res1)
- @app.route('/static/infoConfirm',methods=["POST"])
- @jwt_required()
- def infoConfirm():
- remote_addr = request.remote_addr
- data = request.get_json()
- type, flightid, displaymode, selectedtime = data['type'], data['flightid'], data['displaymode'], data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- InfoConfirm(fdb,type,flightid,displaymode,selectedtime)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(), "[%s]确认通知操作"%remote_addr)
- res['msg'] = ("[%s]确认通知操作"%remote_addr)
- return jsonify(res)
- @app.route('/static/infoConfirm3',methods=["POST"])
- @jwt_required()
- def infoConfirm3():
- remote_addr = request.remote_addr
- data = request.get_json()
- type,flightid,displaymode,selectedtime = data['type'], data['flightid'], data['displaymode'], data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- InfoConfirm3(fdb,type,flightid,displaymode,selectedtime)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]确认自滑推送操作"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]确认自滑推送操作"%remote_addr)
- return jsonify(res)
- @app.route('/static/infoConfirm2',methods=["POST"])
- @jwt_required()
- def infoConfirm2():
- remote_addr = request.remote_addr
- data = request.get_json()
- type, flightid, displaymode, selectedtime = data['type'], data['flightid'], data['displaymode'], data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- InfoConfirm2(fdb,type,flightid,displaymode,selectedtime)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]确认推送操作"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]确认推送操作"%remote_addr)
- return jsonify(res)
- @app.route('/static/manChangests',methods=["POST"])
- @jwt_required()
- def manChangests():
- remote_addr = request.remote_addr
- data = request.get_json()
- text, type, selectedtime, username = data['text'], data['type'], data['selectedtime'], data['username']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- ManChangests(fdb,text,type,selectedtime,username)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s][%s]%s人工改变航班状态"%(remote_addr,username,text))
- res['msg'] = (datetime.datetime.now(),"[%s][%s]%s人工改变航班状态"%(remote_addr,username,text))
- return jsonify(res)
- @app.route('/static/updateDragDropItem',methods=["POST"])
- @jwt_required()
- def updateDragDropItem():
- #t1 = datetime.datetime.now()
- remote_addr = request.remote_addr
- data = request.get_json()
- column, text, flightid, displayMode, flighttype, selectedtime = data['column'], data['text'], data['flightid'], data['displaymode'], data['flighttype'], data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- #print(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
- #t2 = datetime.datetime.now()
- #print(f'编辑登录时间:{t2 - t1}')
- res = UpdateDragDropItem(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
- fdb.close()
- res1={"返回值":res}
- print(datetime.datetime.now(),"[%s]拖拽更新请求"%remote_addr)
- #t3 = datetime.datetime.now()
- #print(f'编辑处理时间:{t3 - t2}')
- res1['msg'] = (datetime.datetime.now(),"[%s]拖拽更新请求"%remote_addr)
- return jsonify(res1)
- @app.route('/static/updateEidteItem',methods=["POST"])
- @jwt_required()
- def updateEidteItem():
- remote_addr = request.remote_addr
- data = request.get_json()
- text, flightid, displayMode, flighttype, selectedtime = data['text'], data['flightid'], data['displaymode'], data['flighttype'], data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- #print(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
- UpdateEidteItem(fdb,text,flightid,displayMode,flighttype,selectedtime)
- fdb.close()
- res1={"返回值":"OK"}
- print(datetime.datetime.now(),"[%s]附加消息请求"%remote_addr)
- res1['msg'] = (datetime.datetime.now(),"[%s]附加消息请求"%remote_addr)
- return jsonify(res1)
- @app.route('/static/updateNoteItem',methods=["POST"])
- @jwt_required()
- def updateNoteItem():
- try:
- remote_addr = request.remote_addr
- data = request.get_json()
- text, name = data['text'], data['name']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- UpdateNoteItem(fdb,text,name)
- fdb.close()
- res1={"返回值":"OK"}
- print(datetime.datetime.now(),"[%s]排班辅助备注修改"%remote_addr)
- return jsonify(res1)
- except Exception as e:
- res1={"返回值":"fail"}
- res1['msg'] = "error:"+str(e)
- print("有bug,请联系管理员")
- app_logger.log_error(e)
- return jsonify(res1)
- @app.route('/static/checkPglist',methods=["POST"])
- @jwt_required()
- def checkPglist():
- remote_addr = request.remote_addr
- data = request.get_json()
- name, selectedtime, bc = data['name'], data['selectedtime'], data['bc']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- #print(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
- res = CheckPglist(fdb,name,selectedtime,bc)
- fdb.close()
- #print(res)
- if res == "YES":
- res1 = {"返回值": "OK"}
- print(datetime.datetime.now(), "[%s]人工录入派工核查成功"%remote_addr)
- else:
- res1 = {"返回值": "fail"}
- print(datetime.datetime.now(), "[%s]人工录入派工核查失败"%remote_addr)
- return jsonify(res1)
- @app.route('/static/tableWidgetLOGDispaly', methods=["POST"])
- @jwt_required()
- def tableWidgetLOGDispaly():
- data = request.get_json()
- selectedtime = data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetLOGDispaly(fdb,selectedtime)
- fdb.close()
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]日志刷新请求"%remote_addr)
- return jsonify(data=res)
- @app.route('/static/qtPeopleLoad',methods=["POST"])
- @jwt_required()
- def qtPeopleLoad():
- data = request.get_json()
- selectedtime, bc = data['selectedtime'], data['bc']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- workLoad = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseWorkLoad)
- res=QtPeopleLoad(fdb,workLoad,bc,selectedtime)
- workLoad.close()
- fdb.close()
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]人员工作状态刷新请求"%remote_addr)
- return jsonify(data=res)
- @app.route('/static/getVin',methods=["POST"])
- @jwt_required()
- def getVin():
- data = request.get_json()
- mode, num = data['mode'], data['num']
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- vin=flaskDBUtils.getVin(db,mode,int(num)) # 刷新航班
- db.close()
- res = {"返回值": "%s"%vin}
- remote_addr = request.remote_addr
- print(datetime.datetime.now(), "[%s]获取在线Vin码"%remote_addr)
- return jsonify(res)
- @app.route('/static/updateVin',methods=["POST"])
- @jwt_required()
- def updateVin():
- data = request.get_json()
- mode, num = data['mode'], data['num']
- db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
- vin=flaskDBUtils.updateVin(db,mode,int(num)) # 刷新航班
- db.close()
- res = {"返回值": "%s"%vin}
- remote_addr = request.remote_addr
- print(datetime.datetime.now(), "[%s]更新在线Vin码"%remote_addr)
- return jsonify(res)
- @app.route('/static/tableWidgetDispalyRead',methods=["POST"])
- @jwt_required()
- def tableWidgetDispalyRead():
- data = request.get_json()
- date = data['date']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDispalyRead(fdb,date)
- fdb.close()
- #print(datetime.datetime.now(),res)
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]A模式只读航班信息刷新请求"%remote_addr)
- # res['msg'] = (datetime.datetime.now(),"[%s]A模式只读航班信息刷新请求"%remote_addr)
- return jsonify(data=res)
- @app.route('/static/tableWidgetDispalyRead2',methods=["POST"])
- @jwt_required()
- def tableWidgetDispalyRead2():
- data = request.get_json()
- date = data['date']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDispalyRead2(fdb,date)
- fdb.close()
- #print(datetime.datetime.now(),res)
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]B模式只读航班信息刷新请求"%remote_addr)
- return jsonify(data=res)
- @app.route('/static/tableWidgetDispaly',methods=["POST"])
- @jwt_required()
- def tableWidgetDispaly():
- #t1 = datetime.datetime.now()
- data = request.get_json()
- selectedtime, date = data['selectedtime'], data['date']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- #t2 = datetime.datetime.now()
- #print(f'航班刷新登录时间:{t2 - t1}')
- res=TableWidgetDispaly(fdb,selectedtime,date)
- fdb.close()
- #print(datetime.datetime.now(),res)
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]A模式航班信息刷新请求[%s]"%(remote_addr,date))
- #t3 = datetime.datetime.now()
- #print(f'航班刷新处理时间:{t3 - t2}')
- return jsonify(data=res)
- @app.route('/static/tableWidgetDispaly11',methods=["POST"])
- @jwt_required()
- def tableWidgetDispaly11():
- data = request.get_json()
- selectedtime = data['selectedtime']
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDispaly(fdb,selectedtime,"4")
- fdb.close()
- #print(datetime.datetime.now(),res)
- print(datetime.datetime.now(),"[%s]文件存储1航班信息刷新请求"%remote_addr)
- return jsonify(data=res)
- @app.route('/static/tableWidgetDispaly22',methods=["POST"])
- @jwt_required()
- def tableWidgetDispaly22():
- data = request.get_json()
- selectedtime = data['selectedtime']
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDispaly2(fdb,selectedtime,"4")
- fdb.close()
- print(datetime.datetime.now(),"[%s]文件存储2航班信息刷新请求"%remote_addr)
- return jsonify(data=res)
- @app.route('/static/tableWidgetDispaly2',methods=["POST"])
- @jwt_required()
- def tableWidgetDispaly2():
- data = request.get_json()
- selectedtime, date = data['selectedtime'], data['date']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDispaly2(fdb,selectedtime,date)
- fdb.close()
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]B模式航班信息刷新请求[%s]"%(remote_addr,date))
- return jsonify(data=res)
- @app.route('/static/mapDispaly',methods=["POST"])
- @jwt_required()
- def mapDispaly():
- data = request.get_json()
- selectedtime = data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res = MapDispaly(fdb, selectedtime)
- fdb.close()
- #print(datetime.datetime.now(),'获取的机位数据:{}'.format(res))
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]地图显示刷新请求"%remote_addr)
- return jsonify(res)
- @app.route('/static/judge_bc')
- @jwt_required()
- def judge_bc():
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- aa=Judge_bc()
- fdb.close()
- print(datetime.datetime.now(),"[%s]判断班次请求"%remote_addr)
- return jsonify(data=aa)
- @app.route('/static/dealLogs',methods=["POST"])
- @jwt_required()
- def dealLogs():
- data = request.get_json()
- user, id = data['user'], data['id']
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- DealLogs(fdb,user,id)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]%s处理待办信息" % (remote_addr,user))
- return jsonify(res)
- @app.route('/static/checkLogs',methods=["POST"])
- @jwt_required()
- def checkLogs():
- try:
- remote_addr = request.remote_addr
- data = request.get_json()
- start, end = data['start'], data['end']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=fdb.sort_queryTable("*",'logs',"产生时间<'%s' and 产生时间>'%s'"%(end,start),"产生时间","desc")
- fdb.close()
- print(datetime.datetime.now(),"[%s]查询全部日志请求"%remote_addr)
- return jsonify(data=res)
- except:
- return jsonify(data={})
- @app.route('/static/tableWidgetDisplayChange',methods=["POST"])
- @jwt_required()
- def tableWidgetDisplayChange():
- data = request.get_json()
- selectedtime = data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=TableWidgetDisplayChange(fdb,selectedtime)
- fdb.close()
- remote_addr = request.remote_addr
- print(datetime.datetime.now(),"[%s]待办信息刷新请求"%remote_addr)
- return jsonify(data=res, msg=(datetime.datetime.now(),"[%s]待办信息刷新请求"%remote_addr))
- @app.route('/static/get_dic',methods=["POST"])
- @jwt_required()
- def get_dic():
- try:
- remote_addr = request.remote_addr
- data = request.get_json()['data']
- fdb = flightDB(host = dbhost , port = dbport , user = dbuser , password = dbpassword , database = databaseDB4)
- ress = Get_dic(fdb , data)
- fdb.close()
- res = {"返回值": ress}
- print(datetime.datetime.now(),"[%s]获取人员信息EXCEL表格"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]获取人员信息EXCEL表格"%remote_addr)
- return jsonify(res)
- except:
- fdb.close()
- print(datetime.datetime.now(), "[%s]获取人员信息EXCEL表格失败" % remote_addr)
- res={ "返回值" : "fail" }
- return jsonify(res)
- @app.route('/static/updateStopFlight',methods=["POST"])
- @jwt_required()
- def updateStopFlight():
- try:
- remote_addr = request.remote_addr
- data = request.get_json()['data']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
- ress=UpdateStopFlight(fdb,workLoad,data)
- fdb.close()
- workLoad.close()
- res = { "返回值" : ress}
- print(datetime.datetime.now(),"[%s]上传停场航班EXCEL数据"%remote_addr)
- return jsonify(res)
- except:
- fdb.close()
- workLoad.close()
- print(datetime.datetime.now(), "[%s]上传停场航班EXCEL数据失败" % remote_addr)
- return jsonify({"返回值": "fail", "msg":(datetime.datetime.now(), "[%s]上传停场航班EXCEL数据失败" % remote_addr)})
- @app.route('/static/updateTaskAuto',methods=["POST"])
- @jwt_required()
- def updateTaskAuto():
- try:
- remote_addr = request.remote_addr
- data = request.get_json()['data']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- ress=UpdateTaskAuto(fdb,data)
- fdb.close()
- res = {"返回值":ress}
- print(datetime.datetime.now(),"[%s]获取准备组任务EXCEL表格"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]获取准备组任务EXCEL表格"%remote_addr)
- return jsonify(res)
- except:
- print(datetime.datetime.now(), "[%s]获取准备组任务EXCEL表格失败" % remote_addr)
- return jsonify({"返回值":"fail","msg":("[%s]获取准备组任务EXCEL表格失败" % remote_addr)})
- @app.route('/static/saveRisktable')
- @jwt_required()
- def saveRisktable():
- remote_addr = request.remote_addr
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=SaveRisktable(fdb)
- fdb.close()
- print(datetime.datetime.now(),"[%s]导出风险数据库"%remote_addr)
- return {"返回值":res, "msg":(datetime.datetime.now(),"[%s]导出风险数据库"%remote_addr)}
- @app.route('/static/getRiskData',methods=["POST"])
- @jwt_required()
- def getRiskData():
- remote_addr = request.remote_addr
- data = request.get_json()
- bay, time, acno, actype = data['bay'], data['time'], data['acno'], data['actype']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- res=GetRiskData(fdb,bay,time,acno,actype)
- fdb.close()
- print(datetime.datetime.now(),"[%s]导出风险数据库"%remote_addr)
- return {"返回值":res, "msg":(datetime.datetime.now(),"[%s]导出风险数据库"%remote_addr)}
- @app.route('/static/updateRiskdb',methods=["POST"])
- @jwt_required()
- def updateRiskdb():
- try:
- remote_addr = request.remote_addr
- data = request.get_json()["data"]
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- ress=UpdateRiskdb(fdb,data)
- fdb.close()
- res = {"返回值": ress}
- print(datetime.datetime.now(),"[%s]获取风险数据库EXCEL表格"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]获取风险数据库EXCEL表格"%remote_addr)
- return jsonify(res)
- except:
- fdb.close()
- print(datetime.datetime.now(), "[%s]获取风险数据库EXCEL表格失败" % remote_addr)
- return jsonify({"返回值": "fail", "msg":("[%s]获取风险数据库EXCEL表格失败" % remote_addr)})
- @app.route('/static/taskAtuoCheck',methods=["POST"])
- @jwt_required()
- def taskAtuoCheck():
- remote_addr = request.remote_addr
- data = request.get_json()
- time = data['time']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- TaskAtuoCheck(fdb,time)
- fdb.close()
- res = {"返回值": "ok"}
- print(datetime.datetime.now(),"[%s]确认准备组任务待办信息情况"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]确认准备组任务待办信息情况"%remote_addr)
- return jsonify(res)
- @app.route('/static/createWorkloadtablesFromPg',methods=["POST"])
- @jwt_required()
- def createWorkloadtablesFromPg():
- remote_addr = request.remote_addr
- data = request.get_json()
- selectedtime = data['selectedtime']
- fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
- workLoad = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseWorkLoad)
- CreateWorkloadtablesFromPg(fdb,workLoad,selectedtime)
- fdb.close()
- workLoad.close()
- res={"返回值":"ok"}
- print(datetime.datetime.now(),"[%s]通过派工信息创建人员工作统计表"%remote_addr)
- res['msg'] = (datetime.datetime.now(),"[%s]通过派工信息创建人员工作统计表"%remote_addr)
- return jsonify(res)
- #--------------------------------------------------------------------------------------------------------
- @app.route('/getdict', methods=['GET'])
- @jwt_required()
- def getdict():
- data = {
- 'data':['1','2','3','4','5','6','7','8','9'],
- 'data2':'data2_data2'
- }
- return returnTrue('this is message', data), 200
- #令牌刷新机制
- @app.route('/refresh', methods=['POST'])
- @jwt_required(refresh=True)
- def refresh():
- current_user_id = get_jwt_identity()
- new_access_token = create_access_token(identity=current_user_id)
- return jsonify(access_token=new_access_token, msg='Refresh access_token success'), 200
- '''
- #用户角色与权限管理
- @app.route('/admin', methods=['GET'])
- @jwt_required()
- def admin():
- current_user_id = get_jwt_identity()
- user = query_user(current_user_id)
- if user[0][3] != 'admin':
- return jsonify({'message': 'Access denied'}), 403
- return jsonify({'message': 'Hello admin'}), 200
- '''
- #'''
- @app.before_first_request
- def init():
- if not app.config['initialized']:
- print('#### Flask Start... ####')
- global fl,si,singlePeopleNotice,loaclseverip
- fl = utils.flight_list()
- si = ipcall.searchinfo()
- loaclseverip = get_local_ip()
- print(f"当前服务器IP:{loaclseverip}")
- singlePeopleNotice = initialize_file('D:\\flightinfo\\DATABASE\\singlepoeple_notice.txt',False)
- app.config['initialized'] = True
- #if __name__ == '__main__':
- # app.run(debug=True, host='0.0.0.0', port=5001)
- if __name__ == '__main__':
- serve(app, host='0.0.0.0',port=5001, threads=32)
- #serve(app, host='0.0.0.0',port=5001, threads=64)
|