|
@@ -8,9 +8,9 @@
|
|
|
# run again. Do not edit this file unless you know what you are doing.
|
|
# run again. Do not edit this file unless you know what you are doing.
|
|
|
|
|
|
|
|
# pyinstaller -n "杀虫灯检验工具(v3.2)" -D -w f:\image_down_code\scd_zhijian.py -i .\LOGO.ico
|
|
# pyinstaller -n "杀虫灯检验工具(v3.2)" -D -w f:\image_down_code\scd_zhijian.py -i .\LOGO.ico
|
|
|
-
|
|
|
|
|
|
|
+from aliyunsdkcore.vendored.requests.auth import HTTPBasicAuth
|
|
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
|
-
|
|
|
|
|
|
|
+import hashlib
|
|
|
import os
|
|
import os
|
|
|
import sys
|
|
import sys
|
|
|
import re
|
|
import re
|
|
@@ -446,36 +446,66 @@ class SCDThread(QtCore.QThread):
|
|
|
return d_id,deviceId,platform
|
|
return d_id,deviceId,platform
|
|
|
|
|
|
|
|
def sim_info(self,iccid):
|
|
def sim_info(self,iccid):
|
|
|
- """查询卡信息"""
|
|
|
|
|
- url = "http://8.136.98.49:10001/iotcard/platsimview/inquiries/"
|
|
|
|
|
|
|
+ # 时间戳 用于获取sign
|
|
|
|
|
+ timestamp = int(time.time())
|
|
|
|
|
+ current_milli_time = lambda: int(round(time.time() * 1000))
|
|
|
|
|
+ data_1 = "appid=%s&iccid=%s×tamp=%s%s"%("102420177762",iccid,current_milli_time(),"6397d7e6a56589f1d93284e9800493e1")
|
|
|
|
|
+ sign = hashlib.sha256(data_1.encode('utf-8')).hexdigest()
|
|
|
|
|
+ data = {"appid": "102420177762", "iccid": iccid, "timestamp":current_milli_time(),"sign":sign}
|
|
|
|
|
+ url = "https://api.simboss.com/2.0/device/detail"
|
|
|
try:
|
|
try:
|
|
|
- response = requests.request("POST", url, data={"iccid":iccid})
|
|
|
|
|
|
|
+ status = 1
|
|
|
|
|
+ ret = requests.post(url, data=data)
|
|
|
|
|
+ code = json.loads(ret.text)["code"]
|
|
|
|
|
+ if code == "0":
|
|
|
|
|
+ status = 1
|
|
|
|
|
+ else:
|
|
|
|
|
+ url = 'http://sim.brlink.cn/api/open/iotcard/card'
|
|
|
|
|
+ appkey = "iaO2DKgS8KdlnVgU"
|
|
|
|
|
+ appsecret = "qzKgO4sBdzMrjRwv9H22S9ufepNv8Hl5ehPqkYVD31DCICjyKwqUdj7zihQQKfgx"
|
|
|
|
|
+ status = 2
|
|
|
|
|
+ ret = requests.post(url,json={'iccid':iccid},auth=HTTPBasicAuth(appkey,appsecret),timeout=(5,10))
|
|
|
|
|
+ codes = json.loads(ret.text)["code"]
|
|
|
|
|
+ if codes == 0:
|
|
|
|
|
+ status = 2
|
|
|
|
|
+ else:
|
|
|
|
|
+ url = "https://jsnl.xmnengjia.com/open/api/module/cards"
|
|
|
|
|
+ data = {"iccids":[iccid]}
|
|
|
|
|
+ data = json.dumps(data)
|
|
|
|
|
+ ret = requests.post(url,data=data,timeout=(10,30))
|
|
|
|
|
+ print(ret.text)
|
|
|
|
|
+ status = 3
|
|
|
except:
|
|
except:
|
|
|
- return [0,"查询卡信息异常稍后重试"]
|
|
|
|
|
- else:
|
|
|
|
|
- res_data = json.loads(response.text)
|
|
|
|
|
- if res_data["msg"]=="success" and res_data["data"]:
|
|
|
|
|
- expiry_date = res_data["data"]["expiry_date"]
|
|
|
|
|
- if expiry_date == "未知":
|
|
|
|
|
- return [0,"未查询到卡信息"]
|
|
|
|
|
- elif expiry_date == "未激活":
|
|
|
|
|
- return [3, "未激活"]
|
|
|
|
|
|
|
+ status = 0
|
|
|
|
|
+ ret = 0
|
|
|
|
|
+ day = 0
|
|
|
|
|
+ if ret:
|
|
|
|
|
+ try:
|
|
|
|
|
+ result = json.loads(ret.text)
|
|
|
|
|
+ expiry_date = result.get("data", {}).get("expiry_date")
|
|
|
|
|
+ now_date = int(time.time())
|
|
|
|
|
+ time_difference = int((expiry_date - now_date) / 3600 / 24)
|
|
|
|
|
+ print(time_difference)
|
|
|
|
|
+ if time_difference < 30:
|
|
|
|
|
+ return [0,"有效期剩余{}天".format(time_difference)]
|
|
|
|
|
+ elif time_difference >= 181:
|
|
|
|
|
+ return [1,"有效期剩余{}天".format(time_difference)]
|
|
|
else:
|
|
else:
|
|
|
- time_difference = self.__time_dif(expiry_date)
|
|
|
|
|
- if time_difference < 30:
|
|
|
|
|
- return [0,"有效期剩余{}天".format(time_difference)]
|
|
|
|
|
- elif time_difference >= 181:
|
|
|
|
|
- return [1,"有效期剩余{}天".format(time_difference)]
|
|
|
|
|
- else:
|
|
|
|
|
- return [2,"有效期剩余{}天".format(time_difference)]
|
|
|
|
|
- else:
|
|
|
|
|
- return [0,"查询无结果"]
|
|
|
|
|
|
|
+ return [2,"有效期剩余{}天".format(time_difference)]
|
|
|
|
|
+ except:
|
|
|
|
|
+ return [0, "查询无结果"]
|
|
|
|
|
+ else:
|
|
|
|
|
+ return [0, "查询无结果"]
|
|
|
|
|
+
|
|
|
|
|
|
|
|
def __bigdata_verify(self,data_cursor,proess):
|
|
def __bigdata_verify(self,data_cursor,proess):
|
|
|
ds_verify,ct_verify,cv_verify,bv_verify,rps_verify = [1,"合格"],[0,"无电击数据"],[0,"不存在充电状态"],[1,"合格"],[0,"无雨控数据"]
|
|
ds_verify,ct_verify,cv_verify,bv_verify,rps_verify = [1,"合格"],[0,"无电击数据"],[0,"不存在充电状态"],[1,"合格"],[0,"无雨控数据"]
|
|
|
tt_verify,stm8vs_verify,dver_verify,lng_verify,lat_verify = [1,"合格"],[1,self.set_stm8vs],[1,self.set_dver],[1,"合格"],[1,"合格"]
|
|
tt_verify,stm8vs_verify,dver_verify,lng_verify,lat_verify = [1,"合格"],[1,self.set_stm8vs],[1,self.set_dver],[1,"合格"],[1,"合格"]
|
|
|
ws_list,ws_count = [],0
|
|
ws_list,ws_count = [],0
|
|
|
iccid = ""
|
|
iccid = ""
|
|
|
|
|
+ # 经纬度展示不合格条数
|
|
|
|
|
+ lng_lst = []
|
|
|
|
|
+ lat_lst = []
|
|
|
for index,i in enumerate(data_cursor):
|
|
for index,i in enumerate(data_cursor):
|
|
|
addtime = i["addtime"]
|
|
addtime = i["addtime"]
|
|
|
data_strftime = datetime.datetime.fromtimestamp(addtime).strftime("%Y-%m-%d %H:%M:%S")
|
|
data_strftime = datetime.datetime.fromtimestamp(addtime).strftime("%Y-%m-%d %H:%M:%S")
|
|
@@ -526,12 +556,19 @@ class SCDThread(QtCore.QThread):
|
|
|
if device_data.get("dver","0") != self.set_dver:
|
|
if device_data.get("dver","0") != self.set_dver:
|
|
|
dver_verify[0],dver_verify[1] = 0, device_data.get("dver","0")
|
|
dver_verify[0],dver_verify[1] = 0, device_data.get("dver","0")
|
|
|
|
|
|
|
|
- if float(device_data.get("lng","0")) < 113.7536111 and float(device_data.get("lng","0")) > 113.7869444:
|
|
|
|
|
- lng_verify[0],lng_verify[1] = 0, data_strftime+"超出范围"
|
|
|
|
|
-
|
|
|
|
|
- if float(device_data.get("lat","0")) < 35.0125 and float(device_data.get("lat","0")) > 35.0458333:
|
|
|
|
|
- lat_verify[0],lat_verify[1] = 0, data_strftime+"超出范围"
|
|
|
|
|
-
|
|
|
|
|
|
|
+ # if float(device_data.get("lng","0")) < 113.7536111 or float(device_data.get("lng","0")) > 113.7869444:
|
|
|
|
|
+ # lng_verify[0],lng_verify[1] = 0, data_strftime+"超出范围"
|
|
|
|
|
+
|
|
|
|
|
+ # if float(device_data.get("lat","0")) < 35.0125 or float(device_data.get("lat","0")) > 35.0458333:
|
|
|
|
|
+ # lat_verify[0],lat_verify[1] = 0, data_strftime+"超出范围"
|
|
|
|
|
+ try:
|
|
|
|
|
+ lng_lst.append(float(device_data.get("lng")))
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ lng_lst.append(0)
|
|
|
|
|
+ try:
|
|
|
|
|
+ lat_lst.append(float(device_data.get("lat")))
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ lat_lst.append(0)
|
|
|
prosee = proess + ((index+1)/data_cursor.count()*(1/len(self.device_list))*100)
|
|
prosee = proess + ((index+1)/data_cursor.count()*(1/len(self.device_list))*100)
|
|
|
if int(prosee) == 100:
|
|
if int(prosee) == 100:
|
|
|
self.proess_signal.emit(99)
|
|
self.proess_signal.emit(99)
|
|
@@ -558,9 +595,23 @@ class SCDThread(QtCore.QThread):
|
|
|
else:
|
|
else:
|
|
|
ws_verify=[0,"缺少待机状态"]
|
|
ws_verify=[0,"缺少待机状态"]
|
|
|
if iccid:
|
|
if iccid:
|
|
|
|
|
+ print("iccid", iccid)
|
|
|
sim_verify = self.sim_info(iccid)
|
|
sim_verify = self.sim_info(iccid)
|
|
|
else:
|
|
else:
|
|
|
sim_verify = [0,"数据内无iccid"]
|
|
sim_verify = [0,"数据内无iccid"]
|
|
|
|
|
+ # 经纬度处理
|
|
|
|
|
+ lg = 0
|
|
|
|
|
+ lt = 0
|
|
|
|
|
+ for i in lng_lst:
|
|
|
|
|
+ if i < 113.7536111 or i > 113.7869444:
|
|
|
|
|
+ lg += 1
|
|
|
|
|
+ for k in lat_lst:
|
|
|
|
|
+ if k < 35.0125 or k > 35.0458333:
|
|
|
|
|
+ lt += 1
|
|
|
|
|
+ if lg != 0:
|
|
|
|
|
+ lng_verify = [0, f"{str(min(lng_lst))}~{str(max(lng_lst))},不合格条数{str(lg)}"]
|
|
|
|
|
+ if lt != 0:
|
|
|
|
|
+ lat_verify = [0, f"{str(min(lat_lst))}~{str(max(lat_lst))},不合格条数{str(lt)}"]
|
|
|
return [ds_verify,ws_verify,ct_verify,cv_verify,bv_verify,rps_verify,tt_verify,stm8vs_verify,sim_verify,dver_verify,lng_verify,lat_verify]
|
|
return [ds_verify,ws_verify,ct_verify,cv_verify,bv_verify,rps_verify,tt_verify,stm8vs_verify,sim_verify,dver_verify,lng_verify,lat_verify]
|
|
|
|
|
|
|
|
def __siqing_verify(self,data_result,status_result,proess):
|
|
def __siqing_verify(self,data_result,status_result,proess):
|