generated from zhangwei/Train_Identify
191 lines
8.4 KiB
Python
191 lines
8.4 KiB
Python
import json
|
||
import requests
|
||
|
||
class interfaceToWeb:
|
||
def __init__(self):
|
||
self.url: str = ""
|
||
self.username: str = ""
|
||
self.password: str = ""
|
||
self.authorization: str = ""
|
||
self.token: str = ""
|
||
|
||
def loginWeb(self, url: str, username: str, password: str, authorization: str):
|
||
"""
|
||
登录web
|
||
:param url: 请求地址
|
||
:param username: 用户名
|
||
:param password: 密码
|
||
:param authorization: 授权
|
||
:return:
|
||
"""
|
||
self.url: str = url
|
||
self.username: str = username
|
||
self.password: str = password
|
||
self.authorization: str = authorization
|
||
|
||
headers = {'Authorization': "Basic %s" % str(authorization)}
|
||
|
||
data = {"username": str(username),
|
||
"password": str(password),
|
||
"tenantId": "000000",
|
||
"grant_type": "password"}
|
||
|
||
try:
|
||
res = requests.post(url=url, headers=headers, data=data)
|
||
|
||
if res.status_code == requests.codes.ok:
|
||
jsonData = json.loads(res.text)
|
||
if jsonData.get('access_token', None) is not None and jsonData.get('token_type', None) is not None:
|
||
self.token = "%s %s" % (jsonData.get('token_type'), jsonData.get('access_token'))
|
||
return "", jsonData.get('token_type'), jsonData.get('access_token')
|
||
else:
|
||
return "【登录web】请求成功,但返回信息中不含。请求信息%s token :%s" % (str(data), str(res.text)), None, None
|
||
else:
|
||
return "【登录web】请求登录失败,状态码:%d,请求信息:%s, 返回信息:%s" % (
|
||
res.status_code, str(data), str(res.text)), None, None
|
||
except Exception as e:
|
||
return "【登录web】访问登录失败!疑似网络问题!", None, None
|
||
|
||
|
||
def upload_pinch_coal(self, url: str, load_time: str, carriage_order: int,
|
||
pinch_coal: float,
|
||
track_name: str):
|
||
"""
|
||
上传掐煤量
|
||
:param url: 请求地址
|
||
:param load_time: 装车时间
|
||
:param carriage_order: 车厢节号
|
||
:param pinch_coal: 掐煤量
|
||
:param track_name: 股道名
|
||
:return: 请求结果:str
|
||
"""
|
||
# url = "http://localhost:20004/train-manual/train-manual-detail/api-save"
|
||
headers = {'Content-Type': 'application/json', 'blade-auth': self.token}
|
||
data = {"loadTime": str(load_time),
|
||
"carriageOrder": carriage_order,
|
||
"carriageWeightHouse": pinch_coal,
|
||
# "houseStatus": 4,
|
||
"poundNo": track_name}
|
||
|
||
try:
|
||
res = requests.post(url=url, headers=headers, json=data)
|
||
|
||
if res.status_code == requests.codes.ok:
|
||
jsonData = json.loads(res.text)
|
||
if not jsonData['success']:
|
||
if res.status_code == 401:
|
||
self.loginWeb(self.url, self.username, self.password, self.authorization)
|
||
if self.upload_pinch_coal(url, load_time, carriage_order, pinch_coal, track_name) is "":
|
||
return ""
|
||
|
||
return "【上传掐煤量】联通请求,但返回失败:%s,请求信息:%s" % (jsonData['msg'], str(data))
|
||
else:
|
||
return ""
|
||
else:
|
||
return "【上传掐煤量】请求失败,状态码:%d,请求信息:%s, 返回信息:%s" % (
|
||
res.status_code, str(data), str(res.text))
|
||
except Exception as e:
|
||
return "【上传掐煤量】访问接口失败!疑似网络问题!"
|
||
|
||
|
||
def upload_gross_weight(self, url: str, load_time: str, carriage_order: int,
|
||
gross_weight: float,
|
||
track_name: str):
|
||
"""
|
||
上传装车毛重
|
||
:param url: 请求地址
|
||
:param load_time: 装车时间
|
||
:param carriage_order: 车厢节号
|
||
:param gross_weight: 掐煤量
|
||
:param track_name: 股道名
|
||
:return: 请求结果:str
|
||
"""
|
||
# url = "http://localhost:20004/train-manual/train-manual-detail/api-save"
|
||
headers = {'Content-Type': 'application/json', 'blade-auth': self.token}
|
||
data = {"loadTime": str(load_time),
|
||
"carriageOrder": carriage_order,
|
||
"grossWeightHouse": gross_weight,
|
||
"houseStatus": 4,
|
||
"poundNo": track_name}
|
||
try:
|
||
res = requests.post(url=url, headers=headers, json=data)
|
||
|
||
if res.status_code == requests.codes.ok:
|
||
jsonData = json.loads(res.text)
|
||
if not jsonData['success']:
|
||
if res.status_code == 401:
|
||
self.loginWeb(self.url, self.username, self.password, self.authorization)
|
||
if self.upload_gross_weight(url, load_time, carriage_order, gross_weight, track_name) is "":
|
||
return ""
|
||
return "【上传装车毛重】联通请求,但返回失败:%s,请求信息:%s" % (jsonData['msg'], str(data))
|
||
else:
|
||
return ""
|
||
else:
|
||
return "【上传装车毛重】请求失败,状态码:%d,请求信息:%s, 返回信息:%s" % (
|
||
res.status_code, str(data), str(res.text))
|
||
except Exception as e:
|
||
return "【上传装车毛重】访问接口失败!疑似网络问题!"
|
||
|
||
|
||
def update_load_type(self, url: str, load_time: str, carriage_order: int,
|
||
house_status: int,
|
||
track_name: str):
|
||
"""
|
||
修改装车状态
|
||
:param url: 请求地址
|
||
:param load_time: 装车时间
|
||
:param carriage_order: 车厢节号
|
||
:param house_status: 装车状态
|
||
:param track_name: 股道名
|
||
:return: 请求结果:str
|
||
"""
|
||
headers = {'Content-Type': 'application/json', 'blade-auth': self.token}
|
||
data = {"loadTime": str(load_time),
|
||
"carriageOrder": carriage_order,
|
||
"houseStatus": house_status,
|
||
"poundNo": track_name}
|
||
try:
|
||
res = requests.post(url=url, headers=headers, json=data)
|
||
|
||
if res.status_code == requests.codes.ok:
|
||
jsonData = json.loads(res.text)
|
||
if not jsonData['success']:
|
||
if res.status_code == 401:
|
||
self.loginWeb(self.url, self.username, self.password, self.authorization)
|
||
if self.update_load_type(url, load_time, carriage_order, house_status, track_name) is "":
|
||
return ""
|
||
return "【修改装车状态】联通请求,但返回失败:%s,请求信息:%s" % (jsonData['msg'], str(data))
|
||
else:
|
||
return ""
|
||
else:
|
||
return "【修改装车状态】请求失败,状态码:%d,请求信息:%s, 返回信息:%s" % (
|
||
res.status_code, str(data), str(res.text))
|
||
except Exception as e:
|
||
return "【修改装车状态】访问接口失败!疑似网络问题!"
|
||
|
||
def upload_device_type(self, url: str, data):
|
||
"""
|
||
|
||
:param url: 请求地址
|
||
:param data: 设备状态集合
|
||
:return: 请求结果:str
|
||
"""
|
||
headers = {'Content-Type': 'application/json', 'blade-auth': self.token}
|
||
try:
|
||
res = requests.post(url=url, headers=headers, json=data)
|
||
|
||
if res.status_code == requests.codes.ok:
|
||
jsonData = json.loads(res.text)
|
||
if not jsonData['success']:
|
||
if res.status_code == 401:
|
||
self.loginWeb(self.url, self.username, self.password, self.authorization)
|
||
if self.upload_device_type(url, data) is "":
|
||
return ""
|
||
return "【上传设备状态】联通请求,但返回失败:%s,请求信息:%s" % (jsonData['msg'], str(data))
|
||
else:
|
||
return ""
|
||
else:
|
||
return "【上传设备状态】请求失败,状态码:%d,请求信息:%s, 返回信息:%s" % (
|
||
res.status_code, str(data), str(res.text))
|
||
except Exception as e:
|
||
return "【上传设备状态】访问接口失败!疑似网络问题!" |