|
|
@@ -38,7 +38,8 @@ class CbdScdXyDeviceSaveAPIView(APIView):
|
|
|
def post(self, request):
|
|
|
# 测报灯 杀虫灯 性诱 设备及数据入库
|
|
|
try:
|
|
|
- data = request.data
|
|
|
+ request_data = request.body
|
|
|
+ data = json.loads(request_data)
|
|
|
logger.warning(f"测报灯 杀虫灯 性诱 设备及数据入库原数据: {data}")
|
|
|
topic = data.get("topic")
|
|
|
payload = data.get("payload")
|
|
|
@@ -57,7 +58,7 @@ class CbdScdXyDeviceSaveAPIView(APIView):
|
|
|
elif device_type_id == 8:
|
|
|
model = MongoXYCBData
|
|
|
# 在设备信息表中查找是否有数据,如果没有数据则增加
|
|
|
- device_name = device_type_zh.get(device_type_id)
|
|
|
+ device_name = device_type_zh.get(str(device_type_id))
|
|
|
device, is_created = MongoDevice.objects.get_or_create(
|
|
|
device_id = device_id,
|
|
|
defaults={
|
|
|
@@ -187,12 +188,13 @@ class QxzDeviceAddAPIViw(APIView):
|
|
|
try:
|
|
|
request_data = request.body
|
|
|
request_data = json.loads(request_data)
|
|
|
- logger.error(f"气象站数据入库原数据: {request_data}")
|
|
|
device_id = request_data.get("StationID")
|
|
|
uptime = request_data.get("MonitorTime")
|
|
|
data = request_data.get("data")
|
|
|
terminalStatus = request_data.get("terminalStatus")
|
|
|
cmd = request_data.get("cmd")
|
|
|
+ up = uptime.replace(" ", "")
|
|
|
+ uptime_tp = int((datetime.datetime.strptime(up, "%Y-%m-%d%H:%M:%S")).timestamp())
|
|
|
# 获取该设备的预警配置数据
|
|
|
alarm = MongoQXZ_Alarm.objects.filter(device_id=device_id)
|
|
|
qxz_e_conf = MongoQXZ_Conf.objects.filter(device_id=device_id)
|
|
|
@@ -231,8 +233,6 @@ class QxzDeviceAddAPIViw(APIView):
|
|
|
if result:
|
|
|
result_tp = f"{zh_k[0]}{result}{zh_k[1]},"
|
|
|
result_tp_fin += result_tp
|
|
|
- up = uptime.replace(" ", "")
|
|
|
- uptime_tp = int((datetime.datetime.strptime(up, "%Y-%m-%d%H:%M:%S")).timestamp())
|
|
|
if result_tp_fin:
|
|
|
alarm_new = MongoQXZ_Alarm_Log_New()
|
|
|
alarm_new.warning_content = result_tp_fin
|
|
|
@@ -252,7 +252,7 @@ class QxzDeviceAddAPIViw(APIView):
|
|
|
defaults={
|
|
|
"volt": terminalStatus.get("VOLT"),
|
|
|
"rssi": terminalStatus.get("RSSI"),
|
|
|
- "uptime": uptime
|
|
|
+ "uptime": uptime_tp
|
|
|
}
|
|
|
)
|
|
|
iccid = terminalStatus.get("ICCID")
|
|
|
@@ -260,7 +260,7 @@ class QxzDeviceAddAPIViw(APIView):
|
|
|
lat = terminalStatus.get("latitude")
|
|
|
led = terminalStatus.get("Dotled")
|
|
|
dver = terminalStatus.get("Version")
|
|
|
- device, is_created = MongoDevice.objects.update_or_create(device_id=device_id)
|
|
|
+ device, is_created = MongoDevice.objects.get_or_create(device_id=device_id)
|
|
|
if iccid:
|
|
|
base_info_obj.iccid = iccid
|
|
|
if lng:
|
|
|
@@ -273,7 +273,15 @@ class QxzDeviceAddAPIViw(APIView):
|
|
|
base_info_obj.led = led
|
|
|
if dver:
|
|
|
base_info_obj.dver = dver
|
|
|
+ # 如果经纬度均存在
|
|
|
+ if lat and lng:
|
|
|
+ is_success, province, city, district = get_addr_by_lag_lng(lat, lng)
|
|
|
+ if is_success:
|
|
|
+ device.province = province
|
|
|
+ device.city = city
|
|
|
+ device.district = district
|
|
|
base_info_obj.save()
|
|
|
+ device.uptime = uptime_tp
|
|
|
device.save()
|
|
|
return Response({"code": 0, "msg": "success"})
|
|
|
if cmd:
|