app.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. from random import randrange
  2. from flask import Flask, render_template, request, redirect
  3. from pyecharts import options as opts
  4. from pyecharts.charts import Bar, Geo, Map
  5. from pyecharts.charts import Bar
  6. from pyecharts.faker import Faker
  7. import readdata_amro
  8. import test, readdata
  9. import ddrobot
  10. import amro_progress
  11. app = Flask(__name__)
  12. def bar_base() -> Geo:
  13. c = (
  14. Geo()
  15. .add_schema(maptype="china")
  16. .add("geo", [list(z) for z in zip(Faker.provinces, Faker.values())])
  17. .set_series_opts(label_opts=opts.LabelOpts(is_show=False))
  18. .set_global_opts(
  19. visualmap_opts=opts.VisualMapOpts(is_piecewise=True),
  20. title_opts=opts.TitleOpts(title="Geo-VisualMap(分段型)"),
  21. )
  22. )
  23. return c
  24. @app.route("/")
  25. def index():
  26. return render_template("index2.html")
  27. @app.route("/getData")
  28. def getData():
  29. #flightList = readdata_amro.searchData(AMRO)
  30. flightList = readdata_amro.loadData('20230303')
  31. data = readdata_amro.changedata(flightList)
  32. #data = readdata.getData2()
  33. print(data)
  34. return data
  35. @app.route("/getSelectInf", methods=['POST','GET'])
  36. def getSelectInf():
  37. print("getSelectInf")
  38. chList = readdata.chList
  39. if request.method == 'POST':
  40. result = request.form
  41. print(result['bay'])
  42. flightList = readdata_amro.loadData('20230303')
  43. dic = readdata_amro.changedata(flightList)
  44. data = dic[result['bay']]
  45. ndata = {}
  46. ldata = []
  47. for key in data:
  48. ldata.append(data[key])
  49. for i in range(len(chList)):
  50. ndata[chList[i]] = ldata[i]
  51. print(ndata)
  52. return render_template('table.html', data=ndata)
  53. return 'err'
  54. @app.route("/getDigital")
  55. def getDigital():
  56. flightList = readdata_amro.loadData('20230303')
  57. data = readdata_amro.changeAlldata(flightList)
  58. chList = readdata.chList2
  59. return render_template('table-digital.html', data=data, chList=chList)
  60. @app.route("/sendMsgBay", methods=['POST','GET'])
  61. def sendMsgBay():
  62. chList = readdata.chList
  63. if request.method == 'POST':
  64. result = request.form
  65. print(result['bay'])
  66. dic = readdata.getData2()
  67. data = dic[result['bay']]
  68. ndata = {}
  69. ldata = []
  70. for key in data:
  71. ldata.append(data[key])
  72. for i in range(len(chList)):
  73. ndata[chList[i]] = ldata[i]
  74. print(ndata)
  75. s = "\n> - 机位:{} \n> - 机号:{} 机型:{} {}\n - 任务类型:{}\n - 进港时间:{} 出港时间:{}\n - 航班号:{}\n - 进港起飞:{} 离港到达:{}\n - 放行:{}\n - 工作者:{}\n - 备注:{}".format(
  76. result['bay'],ndata['机号'],ndata['机型'],ndata['发动机'],ndata['任务类型'],ndata['进港时间'],ndata['出港时间'],ndata['航班号'],ndata['进港起飞'],ndata['离港到达'],ndata['放行人员'],ndata['维修人员'],ndata['备注'])
  77. atuser = []
  78. fxList = ndata['放行人员'].split(',')
  79. wxList = ndata['维修人员'].split(',')
  80. for i in fxList:
  81. atuser.append(i)
  82. for n in wxList:
  83. atuser.append(n)
  84. ddrobot.sendMsg(s, atuser)
  85. return "sendMsg"
  86. @app.route("/sendMsgNo", methods=['POST','GET'])
  87. def sendMsgNo():
  88. if request.method == 'POST':
  89. data = readdata.getAllData()
  90. result = request.form
  91. no = int(result['no'])
  92. print(data)
  93. msg = data[no]
  94. print(msg)
  95. s = "\n> - 机位:{} \n> - 机号:{} 机型:{} {}\n - 任务类型:{}\n - 进港时间:{} 出港时间:{}\n - 航班号:{}\n - 进港起飞:{} 离港到达:{}\n - 放行:{}\n - 工作者:{}\n - 备注:{}".format(
  96. msg['bay'], msg['bnum'], msg['actype'], msg['engtype'], msg['tasktype'], msg['timein'], msg['timeout'], msg['ftnum'], msg['pos1'], msg['pos2'], msg['FX'], msg['WX'], msg['remark'])
  97. atuser = []
  98. fxList = msg['FX'].split(',')
  99. wxList = msg['WX'].split(',')
  100. for i in fxList:
  101. atuser.append(i)
  102. for n in wxList:
  103. atuser.append(n)
  104. ddrobot.sendMsg(s, atuser)
  105. return "sendMsgNo"
  106. @app.route("/barChart")
  107. def get_bar_chart():
  108. c = bar_base()
  109. return c.dump_options_with_quotes()
  110. if __name__ == "__main__":
  111. import os
  112. if os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
  113. AMRO = amro_progress.amro()
  114. AMRO.quitWeb()
  115. app.run(host='0.0.0.0',port=6010, debug=True)