SeverStart.py 63 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454
  1. import concurrent.futures
  2. import datetime
  3. import os
  4. import random
  5. import time
  6. import traceback
  7. import requests
  8. import socket
  9. from flask import Flask, render_template, request, redirect, url_for, jsonify
  10. from Functions import utils, DataComputer as DataComputer, ipcall, flaskDBUtils4PG as flaskDBUtils
  11. import json
  12. from unitls.settings import DBServer, flightDB4, DataTransferMode,Server_Class,Main_Sever
  13. from unitls.LogerinTxt import app_logger
  14. from unitls.StaticDataclass import initialize_file,write_status_to_file
  15. from waitress import serve
  16. from Functions.DButilsFunction import flightDB, judge_bc as Judge_bc, initFlightDatabase as InitFlightDatabase,\
  17. insertTaskDataToTable, sortFlighttime, sortFlighttime2, checkTFUairplane, createWorkloadtablesFromPg as CreateWorkloadtablesFromPg,\
  18. checkFlightAlert,dingdingDelete_flight,dingdingFlightsts,dingdinginfoget,calledChecked as CalledChecked,\
  19. infoConfirm as InfoConfirm, infoConfirm3 as InfoConfirm3, infoConfirm2 as InfoConfirm2, maintainAuthCheck as MaintainAuthCheck,\
  20. checkLoadSingal as CheckLoadSingal, changepassword as Changepassword, postgresql_local, mapDispaly as MapDispaly,\
  21. checkPglist as CheckPglist, updateEidteItem as UpdateEidteItem, updateDragDropItem as UpdateDragDropItem,\
  22. qtPeopleLoad as QtPeopleLoad,tableWidgetDispaly as TableWidgetDispaly, tableWidgetDispaly2 as TableWidgetDispaly2,\
  23. tableWidgetDispalyRead2 as TableWidgetDispalyRead2, tableWidgetDispalyRead as TableWidgetDispalyRead,\
  24. bakupdata as Bakupdata, getphonelist as Getphonelist, MM_GJJH_LIST as mM_GJJH_LIST,checkCalllist as CheckCalllist,\
  25. tableWidgetLOGDispaly as TableWidgetLOGDispaly, tableWidgetDisplayChange as TableWidgetDisplayChange,\
  26. manAddFlight as ManAddFlight, get_dic as Get_dic,manChangests as ManChangests,insertLogs as InsertLogs, insertLogs2 as InsertLogs2,\
  27. selftaxiLogs as SelftaxiLogs,taskAtuoCheck as TaskAtuoCheck,deleteFlight as DeleteFlight,\
  28. get_empNos as Get_empNos,updateTaskAuto as UpdateTaskAuto,insertCalllist as InsertCalllist,insertWorkjob as InsertWorkjob,\
  29. getRiskData as GetRiskData,saveRisktable as SaveRisktable,updateRiskdb as UpdateRiskdb,updateStopFlight as UpdateStopFlight,\
  30. dealLogs as DealLogs,update_Pglist as Update_Pglist,getWorkjobInfo as GetWorkjobInfo,mandealAllLogs as MandealAllLogs,\
  31. calltry as Calltry, callon as Callon,get_empNos_phoone as Get_empNos_phoone,FlightSearchInsert,TaskListInsert,checkWorkerlaod_new,\
  32. GetPglistInDatabase,Getworkload ,HandoverStsChange,ManCahangeWorkload,UpdateNoteItem,postgresql_bakup
  33. from urllib3.exceptions import InsecureRequestWarning
  34. requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
  35. app = Flask(__name__)
  36. dir = os.getcwd()
  37. app.config["SECRET_KEY"] = "Can't not guess it ."
  38. dbhost, dbport, dbuser, dbpassword,online_host, online_port, online_user, online_password = DBServer()
  39. mainseverip, maindatabase=Main_Sever()
  40. backupactive = False #备用服务器激活标注
  41. database="flaskDatabase"
  42. databaseDB4 = flightDB4()
  43. databaseWorkLoad = 'workLoad'
  44. databaseLoginDB = 'loginDB'
  45. flightDataTransfer,displayDataTransfer=DataTransferMode()
  46. ServerClas = Server_Class()
  47. severVersion = "17.0.2"
  48. displayVersion = "17.0.0"
  49. print(f"当前客户端版本:{severVersion}/白板版本:{displayVersion}")
  50. print(f"当前服务器为:【{ServerClas}】")
  51. print(f"当前服务器航班数据传输模式为:【{flightDataTransfer}】")
  52. print(f"当前服务器显示计算请求模式为:【{displayDataTransfer}】")
  53. VinA1="328"
  54. VinA2="328"
  55. VinA3="328"
  56. VinB1="328"
  57. VinB2="328"
  58. VinB3="328"
  59. # 获取本地IP地址
  60. def get_local_ip():
  61. try:
  62. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  63. s.connect(("8.8.8.8", 80)) # 连接到Google DNS服务器
  64. ip = s.getsockname()[0]
  65. s.close()
  66. return ip
  67. except:
  68. return socket.gethostbyname(socket.gethostname())
  69. def check_a_availability():
  70. """检查A服务器的可用性"""
  71. try:
  72. ip = "http://" + mainseverip + ":7162/static/health"
  73. response = requests.get(ip, timeout=5)
  74. return response.status_code != 200 #看是否连接成功
  75. except Exception as e:
  76. return True #出问题了
  77. # 健康检查接口
  78. @app.route('/static/health')
  79. def health_check():
  80. try:
  81. # 检查数据库连接
  82. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  83. db.close()
  84. return jsonify({"status": "ok", "timestamp": datetime.datetime.now().isoformat()}), 200
  85. except Exception as e:
  86. return jsonify({"status": "error", "message": str(e)}), 500
  87. @app.route('/')
  88. def root():
  89. return render_template('index.html')
  90. @app.route('/changeSinglepoepleNotice/<boolsts>')
  91. def changeSinglepoepleNotice(boolsts):
  92. global singlePeopleNotice
  93. singlePeopleNotice = str(boolsts) == "1"
  94. write_status_to_file(singlePeopleNotice,'D:\\flightinfo\\DATABASE\\singlepoeple_notice.txt')
  95. return jsonify({"status": "success", "new_value": singlePeopleNotice})
  96. @app.route('/getSinglepoepleNotice')
  97. def getSinglepoepleNotice():
  98. global singlePeopleNotice
  99. return jsonify({"singlepoepleNotice": singlePeopleNotice})
  100. @app.route('/findserver')
  101. def findserver():
  102. return ServerClas
  103. @app.route('/home/<name>')
  104. def home(name):
  105. return render_template('index.html', name=name)
  106. @app.route('/checkLogin')
  107. def checkLogin():
  108. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  109. cookie = flaskDBUtils.getToken(db)
  110. if str(flaskDBUtils.checkLogin(db)) == '1':
  111. logincode = fl.checkCookieSts(cookie)
  112. if logincode and logincode != 200:
  113. flaskDBUtils.logout(db)
  114. time.sleep(0.1)
  115. #db.close()
  116. return str(flaskDBUtils.checkLogin(db))
  117. @app.route('/login',methods=["GET","POST"])
  118. def login():
  119. remote_addr = request.remote_addr
  120. if request.method == "GET":
  121. return render_template('login.html')
  122. else:
  123. db = flaskDBUtils.flaskDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=database)
  124. if 'cookie' in request.form.keys():
  125. user = request.form.get('user')
  126. token = "_amro_sk="+request.form.get("cookie")
  127. flaskDBUtils.login(db, user, token)
  128. else:
  129. user = request.form.get('user')
  130. pwd = request.form.get('pwd')
  131. #print(user, pwd)
  132. token = fl.start(user, pwd)
  133. flaskDBUtils.login(db, user, token)
  134. if token == None:
  135. return redirect(url_for('login'))
  136. else:
  137. print(datetime.datetime.now(),"[%s]已获取Token"%remote_addr)
  138. db.close()
  139. return redirect(url_for('home', name=user))
  140. @app.route('/static/remoteCookielogin/<username>/<cookie>',methods=["GET","POST"])
  141. def remoteCookielogin(username,cookie):
  142. remote_addr = request.remote_addr
  143. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  144. user = username
  145. token = "_amro_sk=" + cookie
  146. flaskDBUtils.login(db, user, token)
  147. db.close()
  148. if token != None:
  149. print(datetime.datetime.now(),"[%s]远程登录已获取Token"%remote_addr)
  150. return "ok"
  151. else:
  152. return "fail"
  153. @app.route('/static/remotelogin/<username>/<password>',methods=["GET","POST"])
  154. def remotelogin(username,password):
  155. remote_addr = request.remote_addr
  156. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  157. user = username
  158. pwd =password
  159. #print(user, pwd)
  160. token = fl.start(user, pwd)
  161. flaskDBUtils.login(db, user, token)
  162. if token != None:
  163. print(datetime.datetime.now(),"[%s]远程登录已获取Token"%remote_addr)
  164. return "ok"
  165. else:
  166. return "fail"
  167. @app.route('/static/remotelogout')
  168. def remotelogout():
  169. remote_addr = request.remote_addr
  170. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  171. flaskDBUtils.logout(db)
  172. db.close()
  173. print(datetime.datetime.now(), "[%s]远程注销服务器AMRO账号"%remote_addr)
  174. return "ok"
  175. @app.route('/static/checkjobcard', methods=['GET', 'POST'])
  176. def checkjobcard():
  177. remote_addr = request.remote_addr
  178. if request.method == 'GET':
  179. file_path = request.args.get('path')
  180. else:
  181. file_path = request.form.get('path')
  182. try:
  183. res= fl.request_jobcard("_udid=80c6089a041646db9c1d9f1a2bc1381a", file_path)
  184. print(datetime.datetime.now(), "[%s]调取电签工卡查询" % remote_addr)
  185. except Exception as e:
  186. app_logger.log_error(e)
  187. res = ""
  188. return res
  189. @app.route('/static/VinCheck/<vinLcoal>/<mode>/<num>')
  190. def VinCheck(vinLcoal,mode,num):
  191. if int(num) !=4:
  192. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  193. vinOnline = flaskDBUtils.getVin(db,mode,int(num))
  194. db.close()
  195. if vinLcoal == vinOnline:
  196. a = "检验一致"
  197. res = {"返回值":"ok"}
  198. else:
  199. a = "服务器有更新"
  200. res = {"返回值": "update"}
  201. else:
  202. a = "非昨天、今天、明天无需获取"
  203. res = {"返回值": "ok"}
  204. remote_addr = request.remote_addr
  205. print(datetime.datetime.now(), "[%s]刷新识别码监测:%s" % (remote_addr,a))
  206. return res
  207. @app.route('/static/remoteCheck/<checknumber>') #操作系统版本验证
  208. def remoteCheck(checknumber):
  209. if checknumber ==severVersion:
  210. res={"返回值":"ok"}
  211. else:
  212. res={"返回值":severVersion}
  213. return res
  214. @app.route('/static/remoteCheck2/<checknumber>') #电子白板系统版本验证
  215. def remoteCheck2(checknumber):
  216. if checknumber ==displayVersion:
  217. res={"返回值": "ok"}
  218. else:
  219. res={"返回值": displayVersion}
  220. return res
  221. @app.route('/logout')
  222. def logout():
  223. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  224. flaskDBUtils.logout(db)
  225. db.close()
  226. return redirect(url_for('root'))
  227. @app.route('/static/setIpPhone/<ip>')
  228. def setIpPhone(ip):
  229. remote_addr = request.remote_addr
  230. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  231. token=si.start(ip)
  232. if token != "fail":
  233. res={"返回值":"ok"}
  234. flaskDBUtils.setIpPhone(db, ip, token)
  235. print(datetime.datetime.now(), "[%s]自动网页电话登录成功[%s,%s]" % (remote_addr,ip, token))
  236. else:
  237. res={"返回值":"fail"}
  238. flaskDBUtils.setIpPhone(db, ip, None)
  239. print(datetime.datetime.now(), "[%s]自动网页电话登录失败[%s]" % (remote_addr,ip))
  240. db.close()
  241. return res
  242. @app.route('/bakupdata')
  243. def bakupdata():
  244. remote_addr = request.remote_addr
  245. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  246. Bakupdata(fdb)
  247. fdb.close()
  248. print(datetime.datetime.now(), "[%s]5分钟间隔自动备份"%remote_addr)
  249. return "ok"
  250. @app.route('/postgresql')
  251. def postgresql():
  252. try:
  253. if flightDataTransfer == 1:
  254. local = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  255. try:
  256. postgresql_local(local,online_host,online_port,online_user,online_password,databaseDB4)
  257. except:
  258. local.close()
  259. print(datetime.datetime.now(), "[远端链接失败]云端数据库服务器")
  260. return "fail"
  261. local.close()
  262. if displayDataTransfer == 1:
  263. res= DataComputer.mytask()
  264. if res == "ok":
  265. url = "https://"+online_host+":7162/computerDispalydata"
  266. #url = "https://192.168.2.87:5070/computerDispalydata"
  267. try:
  268. ress=requests.get(url, verify=False)
  269. ress.raise_for_status() # 检查HTTP状态码是否为成功
  270. data = ress.json()
  271. #ress=requests.post(url, cert=('D:\\flightinfo\\DATABASE\\sichuanair.com.pem','D:\\flightinfo\\DATABASE\\sichuanair.com.key')).json()
  272. if data == "ok":
  273. #if data.get("result") == "ok":
  274. print(datetime.datetime.now(), "远端显示中心计算请求成功")
  275. else:
  276. print(datetime.datetime.now(), "[返回为fail]远端显示中心计算请求失败")
  277. except Exception as e:
  278. print(e)
  279. print(datetime.datetime.now(), "[请求被拒绝]远端显示中心计算请求失败")
  280. return "ok"
  281. except:
  282. print(traceback.format_exc())
  283. return "fail"
  284. @app.route('/static/maintainAuthCheck/<name>/<flighttype>')
  285. def maintainAuthCheck(name,flighttype):
  286. remote_addr = request.remote_addr
  287. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  288. res=MaintainAuthCheck(fdb,name,flighttype)
  289. fdb.close()
  290. print(datetime.datetime.now(), "[%s]维修权限验证"%remote_addr)
  291. return res
  292. def updatetimer1():
  293. global VinA1, VinA2,VinA3,VinB1, VinB2, VinB3
  294. #print(VinA1, VinA2,VinA3,VinB1, VinB2, VinB3)
  295. db = flaskDBUtils.flaskDB(host = dbhost , port = dbport , user = dbuser , password = dbpassword ,database = database)
  296. try:
  297. res = flaskDBUtils.getallVin(db)
  298. db.close()
  299. today = datetime.datetime.now().strftime("%Y%m%d")
  300. tomorrow = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  301. yesterday = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  302. dict={"A1":[VinA1,res[0],yesterday],"A2":[VinA2,res[1],today], "A3":[VinA3,res[2],tomorrow], "B1":[VinB1,res[3], yesterday], "B2":[VinB2,res[4], today], "B3":[VinB3,res[5], tomorrow]}
  303. for key,value in dict.items():
  304. if value[0] == value[1]:
  305. tableWidgetDispaly(value[2],key[-1])
  306. tableWidgetDispaly2(value[2],key[-1])
  307. if key== "A1":
  308. VinA1=updateVin(key[0],key[-1])["返回值"]
  309. elif key== "A2":
  310. VinA2=updateVin(key[0],key[-1])["返回值"]
  311. elif key== "A3":
  312. VinA3=updateVin(key[0],key[-1])["返回值"]
  313. elif key== "B1":
  314. VinB1=updateVin(key[0],key[-1])["返回值"]
  315. elif key== "B2":
  316. VinB2=updateVin(key[0],key[-1])["返回值"]
  317. elif key== "B3":
  318. VinB3=updateVin(key[0],key[-1])["返回值"]
  319. else:
  320. if key == "A1":
  321. VinA1=value[1]
  322. elif key== "A2":
  323. VinA2=value[1]
  324. elif key== "A3":
  325. VinA3=value[1]
  326. elif key== "B1":
  327. VinB1=value[1]
  328. elif key== "B2":
  329. VinB2=value[1]
  330. elif key== "B3":
  331. VinB3=value[1]
  332. #print(VinA1 , VinA2 , VinA3 , VinB1 , VinB2 , VinB3)
  333. except Exception as e:
  334. print(traceback.format_exc())
  335. db.close()
  336. def updatetimer():
  337. db = flaskDBUtils.flaskDB(host = dbhost , port = dbport , user = dbuser , password = dbpassword ,database = database)
  338. try:
  339. today = datetime.datetime.now().strftime("%Y%m%d")
  340. tomorrow = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  341. yesterday = (datetime.datetime.now() - datetime.timedelta(days=1)).strftime("%Y%m%d")
  342. dict={"1":yesterday,"2":today, "3":tomorrow}
  343. for key,value in dict.items():
  344. tableWidgetDispaly(value,key)
  345. tableWidgetDispaly2(value,key)
  346. flaskDBUtils.updateALlVin(db)
  347. #print(VinA1 , VinA2 , VinA3 , VinB1 , VinB2 , VinB3)
  348. except Exception as e:
  349. print(traceback.format_exc())
  350. db.close()
  351. def task_function(taskname, paramaDict):
  352. #ts = time.time()
  353. #print('开始请求:{}'.format(taskname))
  354. time.sleep(random.randint(10,100)/100)
  355. if taskname == "taskflightdata":
  356. result = fl.request_task_filght_list(paramaDict['nowDayStr'], paramaDict['token'])
  357. elif taskname == "Thirdtaskflightdata":
  358. result = fl.request_task_filght_third_list(paramaDict['nowDayStr'], paramaDict['token'])
  359. elif taskname == "flightsearch":
  360. result = fl.request_LM_FLIGHT_SEARCH_LIST(paramaDict['nowDayStr'], paramaDict['token'])
  361. elif taskname == "flightsearch_1":
  362. result = fl.request_LM_FLIGHT_SEARCH_LIST(paramaDict['nowDay_1'], paramaDict['token'])
  363. elif taskname == "TaskList":
  364. result = fl.request_LM_TASK_ARCHIVE_LIST(paramaDict['nowDayStr'], paramaDict['token'])
  365. elif taskname == "TaskList_1":
  366. result = fl.request_LM_TASK_ARCHIVE_LIST(paramaDict['nowDay_1'], paramaDict['token'])
  367. else:
  368. result = {'code': 404}
  369. #print("{} 请求耗时:{}".format(taskname, time.time()-ts))
  370. return result
  371. @app.route('/getFlightData2/<type>')
  372. async def getFlightData2(type):
  373. global singlePeopleNotice,loaclseverip
  374. db = flaskDBUtils.flaskDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=database)
  375. fdb = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseDB4)
  376. workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
  377. if (mainseverip and mainseverip == loaclseverip) or mainseverip == "" or (mainseverip and mainseverip != loaclseverip and check_a_availability()):
  378. try:
  379. #print(type)
  380. ts = time.time()
  381. taskname_queue = ["taskflightdata","Thirdtaskflightdata","flightsearch","TaskList","flightsearch_1","TaskList_1"]
  382. taskparama_queue = []
  383. date_time = Judge_bc()["date"]
  384. nowDay = datetime.datetime.now()
  385. nowDayStr = nowDay.strftime("%Y%m%d")
  386. now_130 = (datetime.datetime.now() + datetime.timedelta(minutes=300)).strftime("%Y%m%d")
  387. nowStr = nowDay.strftime("%Y%m%d %H:%M:%S")
  388. print(datetime.datetime.now(), "[判断:%s,当前:%s,+130:%s]" % (date_time, nowDayStr, now_130))
  389. if date_time == nowDayStr and now_130 == nowDayStr: # 当班次判断为09:00-1900时,只查当日 1900取决于300min不取决于班次判断
  390. nowDay_1 =nowDayStr
  391. nowday_11=nowDayStr
  392. searchDay=f"{nowDayStr[:4]}-{nowDayStr[4:6]}-{nowDayStr[6:]}"
  393. elif date_time == nowDayStr and now_130 != nowDayStr: # 当班次判断为1900-2400时,今日和明日
  394. nowDay_1 = (datetime.date.today() + datetime.timedelta(days=1)).strftime("%Y%m%d")
  395. nowday_11=nowDayStr
  396. searchDay=f"{nowDayStr[:4]}-{nowDayStr[4:6]}-{nowDayStr[6:]}"
  397. else: #当班次判断为000-0900时,查昨日和今日
  398. nowDay_1 = date_time
  399. nowday_11= nowDayStr
  400. searchDay=f"{date_time[:4]}-{date_time[4:6]}-{date_time[6:]}"
  401. print('nowDay_1:{},nowday_11:{},searchDay:{}'.format(nowDay_1,nowday_11,searchDay))
  402. if type == "A":
  403. if str(flaskDBUtils.checkLogin(db)) == '1':
  404. token = flaskDBUtils.getToken(db)
  405. #print('db-token:{}'.format(token))
  406. print(datetime.datetime.now(), "A动态获取获取[%s/%s]" % (nowDayStr, nowDay_1))
  407. taskparama_queue.append({'nowDayStr':searchDay, 'token': token})
  408. taskparama_queue.append({'nowDayStr':searchDay, 'token': token})
  409. taskparama_queue.append({'nowDayStr':nowday_11, 'token': token})
  410. taskparama_queue.append({'nowDayStr':nowday_11, 'token': token})
  411. taskparama_queue.append({'nowDay_1': nowDay_1, 'token': token})
  412. taskparama_queue.append({'nowDay_1': nowDay_1, 'token': token})
  413. flaskDBUtils.clearinfolog(db)
  414. with concurrent.futures.ThreadPoolExecutor() as executor:
  415. if nowday_11 == nowDay_1: #如果两个日期相同,只查一次避免相同
  416. results = executor.map(task_function, taskname_queue[:4], taskparama_queue[:4])
  417. else:
  418. results = executor.map(task_function, taskname_queue, taskparama_queue)
  419. resultsList = []
  420. for result in results:
  421. resultsList.append(result)
  422. taskflightdata= resultsList[0]
  423. Thirdtaskflightdata= resultsList[1]
  424. flightsearchdata= resultsList[2]
  425. tasklistdata= resultsList[3]
  426. if nowday_11 != nowDay_1: ##如果两个日期相同,就没有另外一天的数据
  427. flightsearchdata_1= resultsList[4]
  428. tasklistdata_1= resultsList[5]
  429. if taskflightdata['code'] and taskflightdata['code'] != 200:
  430. flaskDBUtils.logout(db)
  431. flaskDBUtils.insertinfolog(db, nowStr, str(taskflightdata['code']))
  432. InitFlightDatabase(fdb,workLoad, nowDayStr)
  433. InitFlightDatabase(fdb,workLoad, nowDay_1)
  434. sortFlighttime(fdb,workLoad)
  435. sortFlighttime2(fdb,workLoad)
  436. checkTFUairplane(fdb)
  437. checkWorkerlaod_new(fdb,workLoad,nowDayStr,nowDay_1)
  438. checkFlightAlert(fdb, singlePeopleNotice)
  439. dingdingDelete_flight(fdb)
  440. dingdingFlightsts(fdb)
  441. dingdinginfoget(fdb)
  442. CalledChecked(fdb)
  443. print(datetime.datetime.now(), "A静态刷新")
  444. code=str(taskflightdata['code'])
  445. else:
  446. #ts2 = time.time()
  447. InitFlightDatabase(fdb,workLoad, nowDayStr)
  448. InitFlightDatabase(fdb,workLoad, nowDay_1)
  449. insertTaskDataToTable(fdb, nowDayStr, taskflightdata['data'], Thirdtaskflightdata['data'])
  450. FlightSearchInsert(fdb, nowDayStr, flightsearchdata['data'])
  451. TaskListInsert(fdb, nowDayStr, tasklistdata['data'])
  452. if nowday_11 != nowDay_1: ##如果两个日期相同,就没有另外一天的数据,无需写入
  453. insertTaskDataToTable(fdb, nowDay_1, taskflightdata['data'], Thirdtaskflightdata['data'])
  454. FlightSearchInsert(fdb, nowDay_1, flightsearchdata_1['data'])
  455. TaskListInsert(fdb, nowDay_1, tasklistdata_1['data'])
  456. sortFlighttime(fdb,workLoad)
  457. sortFlighttime2(fdb,workLoad)
  458. checkTFUairplane(fdb)
  459. checkWorkerlaod_new(fdb,workLoad,nowDayStr,nowDay_1)
  460. checkFlightAlert(fdb, singlePeopleNotice)
  461. dingdingDelete_flight(fdb)
  462. dingdingFlightsts(fdb)
  463. dingdinginfoget(fdb)
  464. CalledChecked(fdb)
  465. flaskDBUtils.insertinfolog(db,nowStr,str(taskflightdata['code']))
  466. updatetimer()
  467. print(datetime.datetime.now(), "A动态刷新")
  468. #print('数据库耗时:{}'.format(time.time()-ts2))
  469. code = str(taskflightdata['code'])+str(time.time()-ts)
  470. else:
  471. code = '未登录'
  472. else: #type==B
  473. InitFlightDatabase(fdb,workLoad, nowDayStr)
  474. InitFlightDatabase(fdb,workLoad, nowDay_1)
  475. sortFlighttime(fdb,workLoad)
  476. sortFlighttime2(fdb,workLoad)
  477. checkTFUairplane(fdb)
  478. checkWorkerlaod_new(fdb,workLoad,nowDayStr,nowDay_1)
  479. checkFlightAlert(fdb, singlePeopleNotice)
  480. dingdingDelete_flight(fdb)
  481. dingdingFlightsts(fdb)
  482. dingdinginfoget(fdb)
  483. CalledChecked(fdb)
  484. print(datetime.datetime.now(),"B静态刷新")
  485. code = "200"
  486. if mainseverip and mainseverip != loaclseverip and type == "B":
  487. print(datetime.datetime.now(), '[系统警告]主服务器通讯失败,备份服务器工作中')
  488. main_fdb=flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseDB4)
  489. main_db = flaskDBUtils.flaskDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=database)
  490. main_loginTabledb = flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
  491. loginTabledb = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
  492. try:
  493. postgresql_bakup(fdb, main_fdb,1)
  494. postgresql_bakup(db, main_db,3)
  495. postgresql_bakup(loginTabledb, main_loginTabledb,2)
  496. main_fdb.close()
  497. main_db.close()
  498. main_loginTabledb.close()
  499. except Exception as e:
  500. main_fdb.close()
  501. main_db.close()
  502. main_loginTabledb.close()
  503. print(datetime.datetime.now(), '[系统警告]向主数据传输失败')
  504. fdb.close()
  505. workLoad.close()
  506. db.close()
  507. return code
  508. except Exception as e:
  509. fdb.close()
  510. workLoad.close()
  511. db.close()
  512. app_logger.log_error(e)
  513. return '未登录'
  514. else:
  515. #需要加入数据库同步
  516. if type == "B":
  517. print(datetime.datetime.now(), '[主从备份]非主服务器,该服务器仅同步')
  518. main_fdb=flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseDB4)
  519. main_db = flaskDBUtils.flaskDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=database)
  520. main_loginTabledb = flightDB(host=maindatabase, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
  521. loginTabledb = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseLoginDB)
  522. try:
  523. postgresql_bakup(main_fdb,fdb,1)
  524. postgresql_bakup(main_db, db, 3)
  525. postgresql_bakup(main_loginTabledb, loginTabledb, 2)
  526. db.close()
  527. fdb.close()
  528. workLoad.close()
  529. main_fdb.close()
  530. main_db.close()
  531. main_loginTabledb.close()
  532. return '200'
  533. except Exception as e:
  534. print(e)
  535. db.close()
  536. fdb.close()
  537. workLoad.close()
  538. main_fdb.close()
  539. main_db.close()
  540. main_loginTabledb.close()
  541. print(datetime.datetime.now(), '[系统警告]从主数据备份失败')
  542. return '200'
  543. else:
  544. return "200"
  545. @app.route('/static/getPglist/<bcstr>')
  546. def getPglist(bcstr):
  547. try:
  548. remote_addr = request.remote_addr
  549. #print('获取派工数据')
  550. bc=bcstr
  551. #bc = "B" #需要获取
  552. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  553. token = flaskDBUtils.getToken(db)
  554. db.close()
  555. #token = utils.flight_list.get_cookie()
  556. nowDay = datetime.datetime.now()
  557. nowDayStr = nowDay.strftime("%Y%m%d")
  558. nowDayStr2 = nowDay.strftime("%Y-%m-%d")
  559. # (self, taskid:str, shiftDate:str, shift:str, cookie):
  560. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  561. taskids=fdb.queryTabel("TaskFlightinfo{}".format(nowDayStr),"航班编号","进出港航班号 like '%3U%'")
  562. if taskids[0][0] != "":
  563. Pglistdata=fl.request_LM_TSK_EMP_PGLIST(taskids[0][0],nowDayStr2,bc,token)
  564. Update_Pglist(fdb,nowDayStr,bc,Pglistdata['data'])
  565. fdb.close()
  566. print(datetime.datetime.now(),"[%s]获取派工人员清单请求"%remote_addr)
  567. return str(Pglistdata['code'])
  568. else:
  569. return '404'
  570. except Exception as e:
  571. app_logger.log_error("获取派工失败")
  572. app_logger.log_error(e)
  573. return '404'
  574. @app.route('/static/getPglistInDatabase')
  575. def getPglistInDatabase():
  576. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  577. try:
  578. res = Judge_bc()
  579. ress = GetPglistInDatabase(fdb,res)
  580. fdb.close()
  581. return {"返回值":ress}
  582. except Exception as e:
  583. fdb.close()
  584. app_logger.log_error(e)
  585. return {"返回值":[]}
  586. @app.route('/static/getworkload',methods=["GET","POST"])
  587. def getworkload():
  588. names = json.loads(request.get_data())
  589. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  590. workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
  591. try:
  592. res=Getworkload(fdb,workLoad,names)
  593. return res
  594. except Exception as e:
  595. fdb.close()
  596. workLoad.close()
  597. app_logger.log_error(e)
  598. return {}
  599. @app.route('/static/manchangecosttime',methods=["GET","POST"])
  600. def manchangecosttime():
  601. remote_addr = request.remote_addr
  602. data = json.loads(request.get_data())
  603. workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
  604. res=ManCahangeWorkload(workLoad,data)
  605. workLoad.close()
  606. return {"返回值":res}
  607. @app.route('/static/handoverflight',methods=["GET","POST"])
  608. def handoverflight():
  609. remote_addr = request.remote_addr
  610. data = json.loads(request.get_data())
  611. workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
  612. res=HandoverStsChange(workLoad,data)
  613. workLoad.close()
  614. return {"返回值":res}
  615. @app.route('/static/handoverflightAMRO',methods=["GET","POST"])
  616. def handoverflightAMRO():
  617. remote_addr = request.remote_addr
  618. data = json.loads(request.get_data())
  619. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  620. token = flaskDBUtils.getToken(db)
  621. #token = utils.flight_list.get_cookie()
  622. Pglistdata=fl.request_LM_TSK_HANDOVER(data,token)
  623. if Pglistdata['code'] == 200:
  624. res = {"返回值": "ok"}
  625. else:
  626. res = {"返回值": "fail"}
  627. print(datetime.datetime.now(),"[%s]使用AMRO工作交接功能"%remote_addr)
  628. return res
  629. @app.route('/static/MM_GJJH_LIST/<team>')
  630. def MM_GJJH_LIST(team):
  631. remote_addr = request.remote_addr
  632. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  633. token = flaskDBUtils.getToken(db)
  634. db.close()
  635. Pglistdata=fl.request_MM_GJJH_LIST(token)
  636. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  637. mM_GJJH_LIST(fdb,team,Pglistdata['data'])
  638. fdb.close()
  639. print(datetime.datetime.now(),"[%s]%s工具接还查询"%(remote_addr,team))
  640. return str(Pglistdata['code'])
  641. @app.route('/static/checkWorkjob/<taskid>')
  642. def checkWorkjob(taskid):
  643. remote_addr = request.remote_addr
  644. res = {"返回值": "fail"}
  645. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  646. token = flaskDBUtils.getToken(db)
  647. db.close()
  648. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  649. getinfos=GetWorkjobInfo(fdb,taskid)
  650. if getinfos !={}:
  651. getworkjob = fl.checkWorkjob(getinfos["taskids"], getinfos["acno"], getinfos["taskType"], getinfos["actype"], getinfos["startDate"], getinfos["endDate"], token)
  652. res=InsertWorkjob(fdb,getworkjob["data"],taskid)
  653. print(datetime.datetime.now(), "[%s]获取%s工作包请求"%(remote_addr,getinfos["acno"]))
  654. fdb.close()
  655. return res
  656. @app.route('/static/mandealAllLogs/<mode>/<user>')
  657. def mandealAllLogs(mode,user):
  658. remote_addr = request.remote_addr
  659. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  660. MandealAllLogs(fdb, user,mode)
  661. fdb.close()
  662. print(datetime.datetime.now(),"[%s]%s人工处理所有待办"%(remote_addr,user))
  663. return "ok"
  664. @app.route('/static/calltry')
  665. def calltry():
  666. remote_addr = request.remote_addr
  667. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  668. phoneip=flaskDBUtils.getIpPhoneip(db)
  669. db.close()
  670. ip=phoneip["ip"]
  671. token = phoneip["token"]
  672. db.close()
  673. #print("客户端点击尝试拨打请求获取的IP:%s"%phoneip)
  674. if ip !="" and token!="":
  675. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  676. A=Calltry(fdb, ip,token)
  677. fdb.close()
  678. if A != "fail":
  679. res = {"返回值": "ok"}
  680. print(datetime.datetime.now(),"[%s]尝试自动拨打请求%s"%(remote_addr,A))
  681. else:
  682. res = { "返回值" : "fail" }
  683. else:
  684. res = {"返回值": "fail"}
  685. return res
  686. @app.route('/static/manAddFlight/<flighttype>/<acno>/<eng>/<actype>/<flightno>/<flightdate>/<bay>/<eta>/<etd>/<user>')
  687. def manAddFlight(flighttype,acno,eng,actype,flightno,flightdate,bay,eta,etd,user):
  688. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  689. res=ManAddFlight(fdb,flighttype,acno,eng,actype,flightno,flightdate,bay,eta,etd,user)
  690. print(datetime.datetime.now(),"%s人工添加航班%s"%(user,flightno))
  691. fdb.close()
  692. return res
  693. @app.route('/static/getphonelist')
  694. def getphonelist():
  695. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  696. res=Getphonelist(fdb)
  697. remote_addr = request.remote_addr
  698. fdb.close()
  699. print(datetime.datetime.now(),"[%s]客户端获取通讯录名单"%remote_addr)
  700. return res
  701. @app.route('/static/deleteFlight/<flightid>/<user>/<time>')
  702. def deleteFlight(flightid,user,time):
  703. remote_addr = request.remote_addr
  704. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  705. res=DeleteFlight(fdb,flightid,time)
  706. fdb.close()
  707. print(datetime.datetime.now(),"[%s]%s删除航班操作(%s)"%(remote_addr,user,flightid))
  708. return res
  709. '''
  710. @app.route('/static/called/<phonenum>')
  711. def called(phonenum):
  712. remote_addr = request.remote_addr
  713. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  714. Called(fdb,phonenum)
  715. fdb.close()
  716. res = {"返回值": "ok"}
  717. print(datetime.datetime.now(),"[%s]%s通话建立请求"%(remote_addr,phonenum))
  718. return res
  719. '''
  720. @app.route('/static/called/')
  721. def calledChecked():
  722. remote_addr = request.remote_addr
  723. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  724. CalledChecked(fdb)
  725. fdb.close()
  726. res = {"返回值": "ok"}
  727. print(datetime.datetime.now(),"[%s]通话建立情况检查请求"%remote_addr)
  728. return res
  729. @app.route('/static/dingdong',methods=["GET","POST"])
  730. def dingdong():
  731. remote_addr = request.remote_addr
  732. data = json.loads(request.get_data())
  733. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  734. token=flaskDBUtils.getToken(db)
  735. db.close()
  736. LM_TSK_DINGDONG=fl.request_LM_TSK_DINGDONG(data,token)
  737. #print(data)
  738. if LM_TSK_DINGDONG['code'] and LM_TSK_DINGDONG['code'] == 200:
  739. res = {"返回值": "ok"}
  740. else:
  741. res = {"返回值": "fail"}
  742. print(datetime.datetime.now(),"[%s]使用叮咚消息"%remote_addr)
  743. return res
  744. @app.route('/static/LM_TSK_SURE_PG',methods=["GET","POST"])
  745. def LM_TSK_SURE_PG():
  746. remote_addr = request.remote_addr
  747. data = json.loads(request.get_data())
  748. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  749. token = flaskDBUtils.getToken(db)
  750. db.close()
  751. LM_TSK_SURE_PG=fl.request_LM_TSK_SURE_PG(data,token)
  752. #print(data)
  753. if LM_TSK_SURE_PG['code'] and LM_TSK_SURE_PG['code'] == 200:
  754. res = {"返回值": "ok"}
  755. else:
  756. res = {"返回值": "fail"}
  757. print(datetime.datetime.now(),"[%s]使用派工"%remote_addr)
  758. return res
  759. @app.route('/static/insertCalllist',methods=["GET","POST"])
  760. def insertCalllist():
  761. remote_addr = request.remote_addr
  762. data = json.loads(request.get_data())
  763. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  764. res=InsertCalllist(fdb, data)
  765. fdb.close()
  766. print(datetime.datetime.now(),"[%s]录入拨号数据库"%remote_addr)
  767. #print(datetime.datetime.now(),data)
  768. return res
  769. @app.route('/static/get_empNos_phoone/<name>')
  770. def get_empNos_phoone(name):
  771. remote_addr = request.remote_addr
  772. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  773. res=Get_empNos_phoone(fdb, name)
  774. fdb.close()
  775. print(datetime.datetime.now(),"[%s]获取员工号和电话号码"%remote_addr)
  776. #print(datetime.datetime.now(),data)
  777. return res
  778. @app.route('/static/get_empNos',methods=["GET","POST"])
  779. def get_empNos():
  780. remote_addr = request.remote_addr
  781. data = json.loads(request.get_data())
  782. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  783. res=Get_empNos(fdb, data)
  784. fdb.close()
  785. print(datetime.datetime.now(),"[%s]获取员工号"%remote_addr)
  786. #print(datetime.datetime.now(),data)
  787. return res
  788. @app.route('/static/linktest')
  789. def linktest():
  790. return "ok"
  791. @app.route('/static/updatecheck')
  792. def updatecheck():
  793. try:
  794. remote_addr = request.remote_addr
  795. flaskDB =flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  796. updatests=flaskDBUtils.updatecheck(flaskDB)
  797. res = {"返回值":updatests}
  798. flaskDB.close()
  799. #print(res)
  800. print(datetime.datetime.now(),"[%s]客户端自动检查更新请求"%remote_addr)
  801. return res
  802. except:
  803. return {"返回值": "0"}
  804. @app.route('/static/calling/<phonenum0>') #呼出通话建立
  805. def calling(phonenum0):
  806. remote_addr = request.remote_addr
  807. #print(phonenum0)
  808. flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  809. now=datetime.datetime.now()
  810. a=flaskDBUtils.callingphoneUpdate(flaskDB,phonenum0,now)
  811. res = {"返回值":"ok"}
  812. flaskDB.close()
  813. #print(res)
  814. print(datetime.datetime.now(),"[%s]%s自动电话通话正在呼出"%(remote_addr,phonenum0))
  815. return res
  816. @app.route('/static/calldown') #通话结束
  817. def calldown():
  818. remote_addr = request.remote_addr
  819. flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  820. now=datetime.datetime.now()
  821. a=flaskDBUtils.callingphoneUpdate(flaskDB,None,now)
  822. res = {"返回值":"ok"}
  823. flaskDB.close()
  824. #print(res)
  825. print(datetime.datetime.now(),"[%s]自动电话缓存恢复初始值"%remote_addr)
  826. return res
  827. @app.route('/static/callon') #呼出通话建立
  828. def callon():
  829. remote_addr = request.remote_addr
  830. flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  831. phonenum=flaskDBUtils.getPhoneNum(flaskDB)
  832. flaskDB.close()
  833. if phonenum != None:
  834. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  835. Callon(fdb,phonenum)
  836. fdb.close()
  837. #print(res)
  838. print(datetime.datetime.now(),"[%s]%s自动电话通话建立写入"%(remote_addr,phonenum))
  839. res = {"返回值": "ok"}
  840. return res
  841. @app.route('/static/initFlightDatabase/<selectedtime>')
  842. def initFlightDatabase(selectedtime):
  843. remote_addr = request.remote_addr
  844. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  845. workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
  846. InitFlightDatabase(fdb,workLoad,selectedtime)
  847. fdb.close()
  848. workLoad.close()
  849. res = {"返回值": "ok"}
  850. print(datetime.datetime.now(),"[%s]初始化航班信息数据库"%remote_addr)
  851. return res
  852. @app.route('/static/selftaxiLogs/<text>/<flightid>')
  853. def selftaxiLogs(text,flightid):
  854. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  855. SelftaxiLogs(fdb,text,flightid)
  856. fdb.close()
  857. res = {"返回值": "ok"}
  858. return res
  859. @app.route('/static/checkCalllist/<time>')
  860. def checkCalllist(time):
  861. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  862. res=CheckCalllist(fdb,time)
  863. fdb.close()
  864. return res
  865. @app.route('/static/insertLogs/<text>/<name>/<time>')
  866. def insertLogs(text,name,time):
  867. remote_addr = request.remote_addr
  868. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  869. InsertLogs(fdb,text,name,time)
  870. fdb.close()
  871. res = {"返回值": "ok"}
  872. print(datetime.datetime.now(),"[%s]%s插入日志信息"%(remote_addr,name))
  873. return res
  874. @app.route('/static/insertLogs2/<text>/<name>/<time>')
  875. def insertLogs2(text,name,time):
  876. remote_addr = request.remote_addr
  877. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  878. InsertLogs2(fdb,text,name,time)
  879. fdb.close()
  880. res = {"返回值": "ok"}
  881. print(datetime.datetime.now(),"[%s]%s插入日志信息"%(remote_addr,name))
  882. return res
  883. @app.route('/static/checkLoadSingal/<worknum>/<time1>/<time2>')
  884. def checkLoadSingal(worknum,time1,time2):
  885. remote_addr = request.remote_addr
  886. wdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseWorkLoad)
  887. res=CheckLoadSingal(wdb,worknum,time1,time2)
  888. wdb.close()
  889. print(datetime.datetime.now(),"[%s]查询个人工作量请求"%remote_addr)
  890. return res
  891. @app.route('/static/loginTable/<username>/<password>')
  892. def loginTable(username,password):
  893. remote_addr = request.remote_addr
  894. res1={"返回值":""}
  895. #t1 = datetime.datetime.now()
  896. loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
  897. #t2 = datetime.datetime.now()
  898. #print(f'登录时间:{t2 - t1}')
  899. res=loginTabledb.queryTabel('logintable', '*', "登录名='{}' and 密码='{}'".format(username,password))
  900. loginTabledb.close()
  901. if res !=[]:
  902. res1["返回值"]=res[0]
  903. print(datetime.datetime.now(),"[%s]%s尝试登录" %(remote_addr,username))
  904. #t3 = datetime.datetime.now()
  905. #print(f'处理时间:{t3-t2}')
  906. return res1
  907. @app.route('/static/authorityCheck/<username>')
  908. def authorityCheck(username):
  909. remote_addr = request.remote_addr
  910. res1={"返回值":""}
  911. loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
  912. res=loginTabledb.queryTabel('logintable', '*', "登录名='{}'".format(username))
  913. loginTabledb.close()
  914. if res !=[]:
  915. res1["返回值"]=res[0]
  916. print(datetime.datetime.now(),"[%s]%s验证权限请求" %(remote_addr,username))
  917. return res1
  918. @app.route('/static/loginDbget/<username>')
  919. def loginDbget(username):
  920. remote_addr = request.remote_addr
  921. res1= {}
  922. loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
  923. res=loginTabledb.getAlldata('logintable')
  924. loginTabledb.close()
  925. if res !=[] and username in str(res):
  926. for i in res:
  927. res2={}
  928. res2["登录名"] = i[1]
  929. res2["权限"] = i[3]
  930. res2["使用人"] = i[4]
  931. res1[i[1]] = res2
  932. print(datetime.datetime.now(),"[%s]%s权限修改信息获取" % (remote_addr,username))
  933. return res1
  934. @app.route('/static/changePassword',methods=["GET","POST"])
  935. def changePassword():
  936. remote_addr = request.remote_addr
  937. data = json.loads(request.get_data())
  938. loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
  939. Changepassword(loginTabledb,data["登录名"], data["旧密码"], data["新密码"])
  940. loginTabledb.close()
  941. res1 = {"返回值": "ok"}
  942. print(datetime.datetime.now(),"[%s]%s更改密码请求" % (remote_addr,data["登录名"]))
  943. return res1
  944. @app.route('/static/addUserWidget',methods=["GET","POST"])
  945. def addUserWidget():
  946. remote_addr = request.remote_addr
  947. res1={"返回值":""}
  948. data = json.loads(request.get_data())
  949. loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
  950. res=loginTabledb.queryTabel('logintable', '*', "登录名='%s'"%data["登录名"])
  951. if res:
  952. res=loginTabledb.insertData('logintable', data)
  953. if res == "ok":
  954. res1["返回值"] = "1"
  955. else:
  956. res1["返回值"] = "0"
  957. else:
  958. res1["返回值"] = "2"
  959. loginTabledb.close()
  960. print(datetime.datetime.now(),"[%s]创建新用户:%s请求" % (remote_addr,data["登录名"]))
  961. return res1
  962. @app.route('/static/changeAuth',methods=["GET","POST"])
  963. def changeAuth():
  964. remote_addr = request.remote_addr
  965. res1={"返回值":""}
  966. data = json.loads(request.get_data())
  967. loginTabledb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseLoginDB)
  968. res=loginTabledb.queryTabel('logintable', '*', "登录名='%s'"%str(data["登录名"]).replace("'",""))
  969. if res != []:
  970. loginTabledb.upDateItem('logintable',data,"登录名='%s'"%str(data["登录名"]).replace("'",""))
  971. res1["返回值"]="1"
  972. else:
  973. res1["返回值"] = "2"
  974. loginTabledb.close()
  975. print(datetime.datetime.now(),"[%s]权限变更写入:%s请求" % (remote_addr,data["登录名"]))
  976. return res1
  977. @app.route('/static/infoConfirm/<type>/<flightid>/<displaymode>/<selectedtime>')
  978. def infoConfirm(type,flightid,displaymode,selectedtime):
  979. remote_addr = request.remote_addr
  980. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  981. InfoConfirm(fdb,type,flightid,displaymode,selectedtime)
  982. fdb.close()
  983. res = {"返回值": "ok"}
  984. print(datetime.datetime.now(), "[%s]确认通知操作"%remote_addr)
  985. return res
  986. @app.route('/static/infoConfirm3/<type>/<flightid>/<displaymode>/<selectedtime>')
  987. def infoConfirm3(type,flightid,displaymode,selectedtime):
  988. remote_addr = request.remote_addr
  989. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  990. InfoConfirm3(fdb,type,flightid,displaymode,selectedtime)
  991. fdb.close()
  992. res = {"返回值": "ok"}
  993. print(datetime.datetime.now(),"[%s]确认自滑推送操作"%remote_addr)
  994. return res
  995. @app.route('/static/infoConfirm2/<type>/<flightid>/<displaymode>/<selectedtime>')
  996. def infoConfirm2(type,flightid,displaymode,selectedtime):
  997. remote_addr = request.remote_addr
  998. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  999. InfoConfirm2(fdb,type,flightid,displaymode,selectedtime)
  1000. fdb.close()
  1001. res = {"返回值": "ok"}
  1002. print(datetime.datetime.now(),"[%s]确认推送操作"%remote_addr)
  1003. return res
  1004. @app.route('/static/manChangests/<text>/<type>/<selectedtime>/<username>')
  1005. def manChangests(text,type,selectedtime,username):
  1006. remote_addr = request.remote_addr
  1007. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1008. ManChangests(fdb,text,type,selectedtime,username)
  1009. fdb.close()
  1010. res = {"返回值": "ok"}
  1011. print(datetime.datetime.now(),"[%s][%s]%s人工改变航班状态"%(remote_addr,username,text))
  1012. return res
  1013. @app.route('/static/updateDragDropItem/<column>/<text>/<flightid>/<displayMode>/<flighttype>/<selectedtime>')
  1014. def updateDragDropItem(column,text,flightid,displayMode,flighttype,selectedtime):
  1015. #t1 = datetime.datetime.now()
  1016. remote_addr = request.remote_addr
  1017. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1018. #print(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
  1019. #t2 = datetime.datetime.now()
  1020. #print(f'编辑登录时间:{t2 - t1}')
  1021. res = UpdateDragDropItem(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
  1022. fdb.close()
  1023. res1={"返回值":"OK"}
  1024. print(datetime.datetime.now(),"[%s]拖拽更新请求"%remote_addr)
  1025. #t3 = datetime.datetime.now()
  1026. #print(f'编辑处理时间:{t3 - t2}')
  1027. return res1
  1028. @app.route('/static/updateEidteItem/<text>/<flightid>/<displayMode>/<flighttype>/<selectedtime>')
  1029. def updateEidteItem(text,flightid,displayMode,flighttype,selectedtime):
  1030. remote_addr = request.remote_addr
  1031. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1032. #print(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
  1033. UpdateEidteItem(fdb,text,flightid,displayMode,flighttype,selectedtime)
  1034. fdb.close()
  1035. res1={"返回值":"OK"}
  1036. print(datetime.datetime.now(),"[%s]附加消息请求"%remote_addr)
  1037. return res1
  1038. @app.route('/static/updateNoteItem/<text>/<name>')
  1039. def updateNoteItem(text,name):
  1040. try:
  1041. remote_addr = request.remote_addr
  1042. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1043. UpdateNoteItem(fdb,text,name)
  1044. fdb.close()
  1045. res1={"返回值":"OK"}
  1046. print(datetime.datetime.now(),"[%s]排班辅助备注修改"%remote_addr)
  1047. return res1
  1048. except Exception as e:
  1049. res1={"返回值":"fail"}
  1050. print("有bug,请联系管理员")
  1051. app_logger.log_error(e)
  1052. return res1
  1053. @app.route('/static/checkPglist/<name>/<selectedtime>/<bc>')
  1054. def checkPglist(name,selectedtime,bc):
  1055. remote_addr = request.remote_addr
  1056. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1057. #print(fdb,column,text,flightid,displayMode,flighttype,selectedtime)
  1058. res = CheckPglist(fdb,name,selectedtime,bc)
  1059. fdb.close()
  1060. #print(res)
  1061. if res == "YES":
  1062. res1 = {"返回值": "OK"}
  1063. print(datetime.datetime.now(), "[%s]人工录入派工核查成功"%remote_addr)
  1064. else:
  1065. res1 = {"返回值": "fail"}
  1066. print(datetime.datetime.now(), "[%s]人工录入派工核查失败"%remote_addr)
  1067. return res1
  1068. @app.route('/static/tableWidgetLOGDispaly/<selectedtime>')
  1069. def tableWidgetLOGDispaly(selectedtime):
  1070. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1071. res=TableWidgetLOGDispaly(fdb,selectedtime)
  1072. fdb.close()
  1073. remote_addr = request.remote_addr
  1074. print(datetime.datetime.now(),"[%s]日志刷新请求"%remote_addr)
  1075. return res
  1076. @app.route('/static/qtPeopleLoad/<selectedtime>/<bc>')
  1077. def qtPeopleLoad(selectedtime,bc):
  1078. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1079. workLoad = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseWorkLoad)
  1080. res=QtPeopleLoad(fdb,workLoad,bc,selectedtime)
  1081. workLoad.close()
  1082. fdb.close()
  1083. remote_addr = request.remote_addr
  1084. print(datetime.datetime.now(),"[%s]人员工作状态刷新请求"%remote_addr)
  1085. return res
  1086. @app.route('/static/getVin/<mode>/<num>')
  1087. def getVin(mode,num):
  1088. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  1089. vin=flaskDBUtils.getVin(db,mode,int(num)) # 刷新航班
  1090. db.close()
  1091. res = {"返回值": "%s"%vin}
  1092. remote_addr = request.remote_addr
  1093. print(datetime.datetime.now(), "[%s]获取在线Vin码"%remote_addr)
  1094. return res
  1095. @app.route('/static/updateVin/<mode>/<num>')
  1096. def updateVin(mode,num):
  1097. db = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  1098. vin=flaskDBUtils.updateVin(db,mode,int(num)) # 刷新航班
  1099. db.close()
  1100. res = {"返回值": "%s"%vin}
  1101. remote_addr = request.remote_addr
  1102. print(datetime.datetime.now(), "[%s]更新在线Vin码"%remote_addr)
  1103. return res
  1104. @app.route('/static/tableWidgetDispalyRead/<date>')
  1105. def tableWidgetDispalyRead(date):
  1106. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1107. res=TableWidgetDispalyRead(fdb,date)
  1108. fdb.close()
  1109. #print(datetime.datetime.now(),res)
  1110. remote_addr = request.remote_addr
  1111. print(datetime.datetime.now(),"[%s]A模式只读航班信息刷新请求"%remote_addr)
  1112. return res
  1113. @app.route('/static/tableWidgetDispalyRead2/<date>')
  1114. def tableWidgetDispalyRead2(date):
  1115. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1116. res=TableWidgetDispalyRead2(fdb,date)
  1117. fdb.close()
  1118. #print(datetime.datetime.now(),res)
  1119. remote_addr = request.remote_addr
  1120. print(datetime.datetime.now(),"[%s]B模式只读航班信息刷新请求"%remote_addr)
  1121. return res
  1122. @app.route('/static/tableWidgetDispaly/<selectedtime>/<date>')
  1123. def tableWidgetDispaly(selectedtime,date):
  1124. #t1 = datetime.datetime.now()
  1125. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1126. #t2 = datetime.datetime.now()
  1127. #print(f'航班刷新登录时间:{t2 - t1}')
  1128. res=TableWidgetDispaly(fdb,selectedtime,date)
  1129. fdb.close()
  1130. #print(datetime.datetime.now(),res)
  1131. remote_addr = request.remote_addr
  1132. print(datetime.datetime.now(),"[%s]A模式航班信息刷新请求[%s]"%(remote_addr,date))
  1133. #t3 = datetime.datetime.now()
  1134. #print(f'航班刷新处理时间:{t3 - t2}')
  1135. return res
  1136. @app.route('/static/tableWidgetDispaly11/<selectedtime>')
  1137. def tableWidgetDispaly11(selectedtime):
  1138. remote_addr = request.remote_addr
  1139. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1140. res=TableWidgetDispaly(fdb,selectedtime,"4")
  1141. fdb.close()
  1142. #print(datetime.datetime.now(),res)
  1143. print(datetime.datetime.now(),"[%s]文件存储1航班信息刷新请求"%remote_addr)
  1144. return res
  1145. @app.route('/static/tableWidgetDispaly22/<selectedtime>')
  1146. def tableWidgetDispaly22(selectedtime):
  1147. remote_addr = request.remote_addr
  1148. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1149. res=TableWidgetDispaly2(fdb,selectedtime,"4")
  1150. fdb.close()
  1151. print(datetime.datetime.now(),"[%s]文件存储2航班信息刷新请求"%remote_addr)
  1152. return res
  1153. @app.route('/static/tableWidgetDispaly2/<selectedtime>/<date>')
  1154. def tableWidgetDispaly2(selectedtime,date):
  1155. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1156. res=TableWidgetDispaly2(fdb,selectedtime,date)
  1157. fdb.close()
  1158. remote_addr = request.remote_addr
  1159. print(datetime.datetime.now(),"[%s]B模式航班信息刷新请求[%s]"%(remote_addr,date))
  1160. return res
  1161. @app.route('/static/mapDispaly/<selectedtime>')
  1162. def mapDispaly(selectedtime):
  1163. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1164. res = MapDispaly(fdb, selectedtime)
  1165. fdb.close()
  1166. #print(datetime.datetime.now(),'获取的机位数据:{}'.format(res))
  1167. remote_addr = request.remote_addr
  1168. print(datetime.datetime.now(),"[%s]地图显示刷新请求"%remote_addr)
  1169. return res
  1170. @app.route('/static/judge_bc')
  1171. def judge_bc():
  1172. remote_addr = request.remote_addr
  1173. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1174. aa=Judge_bc()
  1175. fdb.close()
  1176. print(datetime.datetime.now(),"[%s]判断班次请求"%remote_addr)
  1177. return aa
  1178. @app.route('/static/dealLogs/<user>/<id>')
  1179. def dealLogs(user,id):
  1180. remote_addr = request.remote_addr
  1181. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1182. DealLogs(fdb,user,id)
  1183. fdb.close()
  1184. res = {"返回值": "ok"}
  1185. print(datetime.datetime.now(),"[%s]%s处理待办信息" % (remote_addr,user))
  1186. return res
  1187. @app.route('/static/checkLogs/<start>/<end>')
  1188. def checkLogs(start,end):
  1189. try:
  1190. remote_addr = request.remote_addr
  1191. res={}
  1192. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1193. res=fdb.sort_queryTable("*",'logs',"产生时间<'%s' and 产生时间>'%s'"%(end,start),"产生时间","desc")
  1194. fdb.close()
  1195. print(datetime.datetime.now(),"[%s]查询全部日志请求"%remote_addr)
  1196. return jsonify(res)
  1197. except:
  1198. return jsonify({})
  1199. @app.route('/static/tableWidgetDisplayChange/<selectedtime>')
  1200. def tableWidgetDisplayChange(selectedtime):
  1201. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1202. res=TableWidgetDisplayChange(fdb,selectedtime)
  1203. fdb.close()
  1204. remote_addr = request.remote_addr
  1205. print(datetime.datetime.now(),"[%s]待办信息刷新请求"%remote_addr)
  1206. return res
  1207. @app.route('/static/get_dic',methods=["GET","POST"])
  1208. def get_dic():
  1209. remote_addr = request.remote_addr
  1210. data = json.loads(request.get_data())
  1211. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1212. ress=Get_dic(fdb,data["fileName"])
  1213. fdb.close()
  1214. res = {"返回值": ress}
  1215. print(datetime.datetime.now(),"[%s]获取人员信息EXCEL表格"%remote_addr)
  1216. return res
  1217. @app.route('/static/handovechange',methods=["GET","POST"])
  1218. def handovechange():
  1219. remote_addr = request.remote_addr
  1220. data = json.loads(request.get_data())
  1221. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1222. Get_dic(fdb,data["fileName"])
  1223. fdb.close()
  1224. res = {"返回值": "ok"}
  1225. print(datetime.datetime.now(),"[%s]获取人员信息EXCEL表格"%remote_addr)
  1226. return res
  1227. @app.route('/static/updateStopFlight',methods=["GET","POST"])
  1228. def updateStopFlight():
  1229. try:
  1230. remote_addr = request.remote_addr
  1231. data = json.loads(request.get_data())
  1232. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1233. workLoad = flightDB(host=dbhost, port=dbport, user=dbuser, password=dbpassword, database=databaseWorkLoad)
  1234. res=UpdateStopFlight(fdb,workLoad,data["fileName"])
  1235. fdb.close()
  1236. workLoad.close()
  1237. print(datetime.datetime.now(),"[%s]上传停场航班EXCEL数据"%remote_addr)
  1238. return res
  1239. except:
  1240. fdb.close()
  1241. workLoad.close()
  1242. print(datetime.datetime.now(), "[%s]上传停场航班EXCEL数据失败" % remote_addr)
  1243. return {"返回值": "fail"}
  1244. @app.route('/static/updateTaskAuto',methods=["GET","POST"])
  1245. def updateTaskAuto():
  1246. try:
  1247. remote_addr = request.remote_addr
  1248. data = json.loads(request.get_data())
  1249. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1250. UpdateTaskAuto(fdb,data["fileName"])
  1251. fdb.close()
  1252. res = {"返回值": "ok"}
  1253. print(datetime.datetime.now(),"[%s]获取准备组任务EXCEL表格"%remote_addr)
  1254. return res
  1255. except:
  1256. print(datetime.datetime.now(), "[%s]获取准备组任务EXCEL表格失败" % remote_addr)
  1257. return {"返回值":"fail"}
  1258. #新增内容
  1259. @app.route('/static/saveRisktable')
  1260. def saveRisktable():
  1261. remote_addr = request.remote_addr
  1262. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1263. res=SaveRisktable(fdb)
  1264. fdb.close()
  1265. print(datetime.datetime.now(),"[%s]导出风险数据库"%remote_addr)
  1266. return {"返回值":res}
  1267. @app.route('/static/getRiskData/<bay>/<time>/<acno>/<actype>')
  1268. def getRiskData(bay,time,acno,actype):
  1269. remote_addr = request.remote_addr
  1270. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1271. res=GetRiskData(fdb,bay,time,acno,actype)
  1272. fdb.close()
  1273. print(datetime.datetime.now(),"[%s]导出风险数据库"%remote_addr)
  1274. return {"返回值":res}
  1275. @app.route('/static/updateRiskdb',methods=["GET","POST"])
  1276. def updateRiskdb():
  1277. remote_addr = request.remote_addr
  1278. data = json.loads(request.get_data())
  1279. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1280. UpdateRiskdb(fdb,data["fileName"])
  1281. fdb.close()
  1282. res = {"返回值": "ok"}
  1283. print(datetime.datetime.now(),"[%s]获取风险数据库EXCEL表格"%remote_addr)
  1284. return res
  1285. @app.route('/static/taskAtuoCheck/<time>')
  1286. def taskAtuoCheck(time):
  1287. remote_addr = request.remote_addr
  1288. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1289. TaskAtuoCheck(fdb,time)
  1290. fdb.close()
  1291. res = {"返回值": "ok"}
  1292. print(datetime.datetime.now(),"[%s]确认准备组任务待办信息情况"%remote_addr)
  1293. return res
  1294. @app.route('/static/createWorkloadtablesFromPg/<selectedtime>')
  1295. def createWorkloadtablesFromPg(selectedtime):
  1296. remote_addr = request.remote_addr
  1297. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1298. workLoad = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseWorkLoad)
  1299. CreateWorkloadtablesFromPg(fdb,workLoad,selectedtime)
  1300. fdb.close()
  1301. workLoad.close()
  1302. res={"返回值":"ok"}
  1303. print(datetime.datetime.now(),"[%s]通过派工信息创建人员工作统计表"%remote_addr)
  1304. return res
  1305. @app.route('/table')
  1306. def table():
  1307. flaskDB = flaskDBUtils.flaskDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=database)
  1308. result = flaskDBUtils.getinfolog(flaskDB)
  1309. flaskDB.close()
  1310. dl = []
  1311. if result !=None:
  1312. for i in result:
  1313. dl.append([i[0], i[1], i[2]])
  1314. data = {
  1315. "data":dl
  1316. }
  1317. #print(data)
  1318. #print('get table data')
  1319. return data
  1320. @app.route("/map/<selectedtime>")
  1321. def index(selectedtime):
  1322. return render_template("map.html", selectedtime=selectedtime)
  1323. @app.route("/map/getSelectInf/<selectedtime>", methods=['POST','GET'])
  1324. def getSelectInf(selectedtime):
  1325. if request.method == 'POST':
  1326. result = request.form
  1327. fdb = flightDB(host=dbhost,port=dbport,user=dbuser,password=dbpassword,database=databaseDB4)
  1328. res = MapDispaly(fdb, selectedtime)
  1329. data = res[result['bay']]
  1330. fdb.close()
  1331. return render_template('table.html', data=data)
  1332. return 'err'
  1333. #'''
  1334. @app.before_first_request
  1335. def init():
  1336. print('#### Flask Start... ####')
  1337. global fl,si,singlePeopleNotice,loaclseverip
  1338. fl = utils.flight_list()
  1339. si = ipcall.searchinfo()
  1340. loaclseverip = get_local_ip()
  1341. print(f"当前服务器IP:{loaclseverip}")
  1342. singlePeopleNotice = initialize_file('D:\\flightinfo\\DATABASE\\singlepoeple_notice.txt',False)
  1343. if __name__ == '__main__':
  1344. serve(app, host='0.0.0.0',port=7162, threads=20)
  1345. '''
  1346. if __name__ == '__main__':
  1347. if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
  1348. fl = utils.flight_list()
  1349. si = ipcall.searchinfo()
  1350. loaclseverip=get_local_ip()
  1351. singlePeopleNotice = initialize_file('D:\\flightinfo\\DATABASE\\singlepoeple_notice.txt', False)
  1352. app.run(host='0.0.0.0', port=7162, debug=True)
  1353. #'''