更新代码

main
周平
parent 7a44899f2f
commit ada8cb2053

@ -29,6 +29,11 @@ model_type_map = {
}
# 1000/all/默认, 1001/在线1002/离线1003/运行中1004/故障
device_status_default = 1000
device_status_online = 1001
device_status_offline = 1002
device_status_ongoing = 1003
device_status_error = 1004
device_status_map = {
1000: u"全部",
1001: u"在线",

@ -63,6 +63,15 @@ class ModelRepositry(object):
return model
def get_model_by_ids(self, model_ids: list) -> list:
with get_session() as session:
models = session.query(Model).filter(Model.id.in_(model_ids)).all()
if not models:
return []
return models
def get_model_count(self) -> int:
with get_session() as session:
return session.query(Model).count()

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
from typing import List
import logging
from typing import List
from sqlalchemy import Column, Integer, String, DateTime, func, text
from sqlalchemy.ext.declarative import declarative_base
@ -95,3 +96,22 @@ class EnterpriseBusiModelNodeDeviceRepository(object):
sql, {"node_id": node_id, "busi_model_id": busi_model_id}
)
return to_json_list(res)
def get_busi_model_by_device(self, device_id: int = 0, device_suid: str = "") -> list:
with get_session() as session:
sql = """
select d.busi_model_id, m.name, m.base_models
from enterprise_busi_model_node_device d, enterprise_busi_model m
where d.busi_model_id=m.id"""
p = {}
if device_id:
sql += " and d.device_id=:device_id"
p.update({"device_id": device_id})
if device_suid:
sql += " and d.device_suid=:device_suid"
p.update({"device_suid": device_suid})
res = session.execute(text(sql), p)
return to_json_list(res)

@ -5,6 +5,7 @@ import logging
from sqlalchemy import Column, Integer, String, DateTime, func
from sqlalchemy.ext.declarative import declarative_base
from website import consts
from website import errors
from website.db.device_classification.device_classification import DeviceClassification
from website.db.enterprise_entity.enterprise_entity import EnterpriseEntityRepository
@ -276,6 +277,7 @@ class EnterpriseDeviceRepository(object):
for device in devices:
device_dict = {
"id": device.id,
"suid": device.suid,
"name": device.name,
"addr": device.addr,
"device_model": device.device_model,
@ -297,6 +299,7 @@ class EnterpriseDeviceRepository(object):
return 0
def list_entity_devices(self, entity_id: int, pageNo: int, pageSize: int, classification: str, status: int) -> dict:
"""获取企业的设备列表"""
with get_session() as session:
try:
session_count = (
@ -308,7 +311,7 @@ class EnterpriseDeviceRepository(object):
)
if classification:
session_count.filter(EnterpriseDevice.classification == classification)
if status:
if status in consts.device_status_map and status != consts.device_status_default:
session_count.filter(EnterpriseDevice.status == status)
count = session_count.count()
@ -324,10 +327,11 @@ class EnterpriseDeviceRepository(object):
if status:
session_device.filter(EnterpriseDevice.status == status)
devices = session_device.order_by(EnterpriseDevice.id.desc()).limit(pageSize).offset((pageNo - 1) * pageSize).all()
devices = session_device.order_by(EnterpriseDevice.id.desc()).limit(pageSize).offset(
(pageNo - 1) * pageSize).all()
except Exception as e:
logging.error("Failed to list devices")
raise e
return {"count": count, "devices": devices}
return {"count": count, "devices": devices}

@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
import json
import logging
import random
from sqlalchemy import text
@ -8,6 +9,7 @@ from website.db.enterprise_device import enterprise_device as DB_Device
from website.db.device_classification import (
device_classification as DB_DeviceClassification,
)
from website.db.enterprise_busi_model import enterprise_busi_model_node_device as DB_BusiModelNodeDevice
from website.handler import APIHandler, authenticated
from website.util import shortuuid
from website import consts
@ -406,6 +408,20 @@ class StatusInfoHandler(APIHandler):
@authenticated
def post(self):
device_id = self.get_int_argument("device_id")
if not device_id:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备id不能为空")
db_device = DB_Device.EnterpriseDeviceRepository()
res = db_device.get_devices(device_ids=[device_id])
if not res:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, "设备不存在")
res = res[0]
db_busi_model = DB_BusiModelNodeDevice.EnterpriseBusiModelNodeDeviceRepository()
busi_models = db_busi_model.get_busi_model_by_device(device_id=device_id)
for busi_model in busi_models:
base_model_ids = json.loads(busi_model["base_models"])
self.finish()

@ -2,7 +2,6 @@
from website.handlers.enterprise_device import handler
handlers = [
("/enterprise/device/classification/add", handler.DeviceClassificationAddHandler),
("/enterprise/device/classification", handler.DeviceClassificationHandler),

Loading…
Cancel
Save