基础接口添加

iot
DESKTOP-1JS6RSM\Admin 3 months ago
parent 6753312961
commit 4647d9faa7

@ -1,22 +1,21 @@
from iti.applications.extensions import db from iti.applications.extensions import db
from iti.applications.common.crud import IdModelMixin, TimeModelMixin from iti.applications.common.crud import TimeModelMixin
from iti.applications.common.utils import BaseSchema from iti.applications.common.utils import BaseSchema
from apiflask.fields import String, Integer, DateTime from apiflask.fields import String, Integer, DateTime
import uuid
class IotDevice(db.Model, IdModelMixin, TimeModelMixin): class IotDevice(db.Model, TimeModelMixin):
""" """
设备信息表 设备信息表
""" """
__tablename__ = "iot_device" __tablename__ = "iot_device"
id = db.Column( id = db.Column(
db.String(36), db.Integer,
primary_key=True, primary_key=True,
default=lambda: str(uuid.uuid4().hex), autoincrement=True,
comment="标识", comment="标识",
) )
workshop_id = db.Column(db.String(36), nullable=False, unique=True, comment="车间ID") workshop_id = db.Column(db.Integer, nullable=False, default=0, unique=True, comment="车间ID")
device_name = db.Column(db.String(255), nullable=False, unique=True, comment="设备名称") device_name = db.Column(db.String(255), nullable=False, unique=True, comment="设备名称")
device_number = db.Column(db.String(20), nullable=False, comment="设备编号") device_number = db.Column(db.String(20), nullable=False, comment="设备编号")
description = db.Column(db.Text, nullable=True, comment="设备描述") description = db.Column(db.Text, nullable=True, comment="设备描述")
@ -32,8 +31,8 @@ class IotDeviceSchema(BaseSchema):
class Meta: class Meta:
name = "IotDevice" name = "IotDevice"
id = String() id = Integer()
workshop_id = String() workshop_id = Integer()
device_name = String() device_name = String()
device_number = String() device_number = String()
description = String() description = String()

@ -1,23 +1,22 @@
from iti.applications.extensions import db from iti.applications.extensions import db
from iti.applications.common.crud import IdModelMixin, TimeModelMixin from iti.applications.common.crud import TimeModelMixin
from iti.applications.common.utils import BaseSchema from iti.applications.common.utils import BaseSchema
from apiflask.fields import String, Integer, DateTime from apiflask.fields import String, Integer, DateTime
import uuid
class IotEndpoint(db.Model, IdModelMixin, TimeModelMixin): class IotEndpoint(db.Model, TimeModelMixin):
""" """
采集端信息表 采集端信息表
""" """
__tablename__ = "iot_endpoint" __tablename__ = "iot_endpoint"
id = db.Column( id = db.Column(
db.String(36), db.Integer,
primary_key=True, primary_key=True,
default=lambda: str(uuid.uuid4().hex), autoincrement=True,
comment="标识", comment="标识",
) )
device_id = db.Column(db.String(36), nullable=False, unique=True, comment="设备ID") device_id = db.Column(db.Integer, nullable=False, default=0, unique=True, comment="设备ID")
endpoint_name = db.Column(db.String(255), nullable=False, unique=True, comment="采集端名称") endpoint_name = db.Column(db.String(255), nullable=False, unique=True, comment="采集端名称")
endpoint_number = db.Column(db.String(20), nullable=False, comment="采集端编号") endpoint_number = db.Column(db.String(20), nullable=False, comment="采集端编号")
description = db.Column(db.Text, nullable=True, comment="采集端描述") description = db.Column(db.Text, nullable=True, comment="采集端描述")
@ -35,8 +34,8 @@ class IotEndpointSchema(BaseSchema):
class Meta: class Meta:
name = "IotEndpoint" name = "IotEndpoint"
id = String() id = Integer()
device_id = String() device_id = Integer()
endpoint_name = String() endpoint_name = String()
endpoint_number = String() endpoint_number = String()
description = String() description = String()

@ -1,23 +1,22 @@
from iti.applications.extensions import db from iti.applications.extensions import db
from iti.applications.common.crud import IdModelMixin, TimeModelMixin from iti.applications.common.crud import TimeModelMixin
from iti.applications.common.utils import BaseSchema from iti.applications.common.utils import BaseSchema
from apiflask.fields import String, Integer, DateTime from apiflask.fields import String, Integer, DateTime
import uuid
class IotNode(db.Model, IdModelMixin, TimeModelMixin): class IotNode(db.Model, TimeModelMixin):
""" """
节点信息表 节点信息表
""" """
__tablename__ = "iot_node" __tablename__ = "iot_node"
id = db.Column( id = db.Column(
db.String(36), db.Integer,
primary_key=True, primary_key=True,
default=lambda: str(uuid.uuid4().hex), autoincrement=True,
comment="标识", comment="标识",
) )
endpoint_id = db.Column(db.String(36), nullable=False, unique=True, comment="采集端ID") endpoint_id = db.Column(db.Integer, nullable=False, default=0, unique=True, comment="采集端ID")
title = db.Column(db.String(255), nullable=False, unique=True, comment="节点ID") title = db.Column(db.String(255), nullable=False, unique=True, comment="节点ID")
mark = db.Column(db.String(255), nullable=False, comment="采集标识") mark = db.Column(db.String(255), nullable=False, comment="采集标识")
mark_type = db.Column(db.Integer, nullable=True, comment="采集类型 1:只读 2:只写 3:读写") mark_type = db.Column(db.Integer, nullable=True, comment="采集类型 1:只读 2:只写 3:读写")
@ -38,8 +37,8 @@ class IotNodeSchema(BaseSchema):
class Meta: class Meta:
name = "IotNode" name = "IotNode"
id = String() id = Integer()
endpoint_id = String() endpoint_id = Integer()
title = String() title = String()
mark = String() mark = String()
mark_type = Integer() mark_type = Integer()

@ -1,19 +1,18 @@
from iti.applications.extensions import db from iti.applications.extensions import db
from iti.applications.common.crud import IdModelMixin, TimeModelMixin, RemarkModelMixin from iti.applications.common.crud import TimeModelMixin, RemarkModelMixin
from iti.applications.common.utils import BaseSchema from iti.applications.common.utils import BaseSchema
from apiflask.fields import String, Integer, DateTime from apiflask.fields import String, Integer, DateTime
import uuid
class IotWorkshop(db.Model, IdModelMixin, TimeModelMixin, RemarkModelMixin): class IotWorkshop(db.Model, TimeModelMixin, RemarkModelMixin):
""" """
车间信息表 车间信息表
""" """
__tablename__ = "iot_workshop" __tablename__ = "iot_workshop"
id = db.Column( id = db.Column(
db.String(36), db.Integer,
primary_key=True, primary_key=True,
default=lambda: str(uuid.uuid4().hex), autoincrement=True,
comment="标识", comment="标识",
) )
workshop_name = db.Column(db.String(255), nullable=False, unique=True, comment="车间名称") workshop_name = db.Column(db.String(255), nullable=False, unique=True, comment="车间名称")
@ -30,7 +29,7 @@ class IotWorkshopSchema(BaseSchema):
class Meta: class Meta:
name = "IotWorkshop" name = "IotWorkshop"
id = String() id = Integer()
workshop_name = String() workshop_name = String()
workshop_number = String() workshop_number = String()
total_area = String() total_area = String()

@ -26,7 +26,7 @@ bp = APIBlueprint("iot_device", __name__, url_prefix="/device", tag="设备管
@permission("iot:device:list") @permission("iot:device:list")
@bp.input(DeviceQuery.Schema(partial=True), location="query") @bp.input(DeviceQuery.Schema(partial=True), location="query")
@bp.output(IotDeviceSchema(many=True)) @bp.output(IotDeviceSchema(many=True))
def list_workshop(query_data: DeviceQuery): def list_device(query_data: DeviceQuery):
""" """
获取设备列表 获取设备列表
""" """
@ -40,7 +40,7 @@ def list_workshop(query_data: DeviceQuery):
@permission("iot:device:list") @permission("iot:device:list")
@bp.input(DeviceQuery.Schema(partial=True), location="query") @bp.input(DeviceQuery.Schema(partial=True), location="query")
@bp.output(page_schema(IotDeviceSchema(many=True))) @bp.output(page_schema(IotDeviceSchema(many=True)))
def page_user(query_data: DeviceQuery): def page_device(query_data: DeviceQuery):
""" """
分页获取设备列表 分页获取设备列表
""" """
@ -53,7 +53,7 @@ def page_user(query_data: DeviceQuery):
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:device:add") @permission("iot:device:add")
@bp.input(DeviceAddRequest, location="json") @bp.input(DeviceAddRequest, location="json")
def add_workshop(json_data: dict): def add_device(json_data: dict):
""" """
添加设备信息 添加设备信息
""" """
@ -65,12 +65,12 @@ def add_workshop(json_data: dict):
return success() return success()
@bp.put("/<string:id>") @bp.put("/<int:id>")
@jwt_required() @jwt_required()
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:device:update") @permission("iot:device:update")
@bp.input(DeviceUpdateRequest(partial=True), location="json") @bp.input(DeviceUpdateRequest(partial=True), location="json")
def update_workshop(id: str, json_data: dict): def update_device(id: int, json_data: dict):
""" """
更新设备信息 更新设备信息
""" """
@ -86,6 +86,24 @@ def update_workshop(id: str, json_data: dict):
return success() return success()
@bp.delete("/<int:id>")
@jwt_required()
@bp.doc(security="JWT")
@permission("iot:device:delete")
def delete_device(id: int):
"""
删除设备信息
"""
device = db.session.scalar(select(IotDevice).filter_by(id=id))
if not device:
raise BizException("设备不存在")
# 删除设备
db.session.delete(device)
db.session.commit()
return success()
def get_list_or_page(query_data: DeviceQuery): def get_list_or_page(query_data: DeviceQuery):
""" """

@ -26,7 +26,7 @@ bp = APIBlueprint("iot_endpoint", __name__, url_prefix="/endpoint", tag="采集
@permission("iot:endpoint:list") @permission("iot:endpoint:list")
@bp.input(EndpointQuery.Schema(partial=True), location="query") @bp.input(EndpointQuery.Schema(partial=True), location="query")
@bp.output(IotEndpointSchema(many=True)) @bp.output(IotEndpointSchema(many=True))
def list_workshop(query_data: EndpointQuery): def list_endpoint(query_data: EndpointQuery):
""" """
获取采集端列表 获取采集端列表
""" """
@ -40,7 +40,7 @@ def list_workshop(query_data: EndpointQuery):
@permission("iot:endpoint:list") @permission("iot:endpoint:list")
@bp.input(EndpointQuery.Schema(partial=True), location="query") @bp.input(EndpointQuery.Schema(partial=True), location="query")
@bp.output(page_schema(IotEndpointSchema(many=True))) @bp.output(page_schema(IotEndpointSchema(many=True)))
def page_user(query_data: EndpointQuery): def page_endpoint(query_data: EndpointQuery):
""" """
分页获取采集端列表 分页获取采集端列表
""" """
@ -53,24 +53,24 @@ def page_user(query_data: EndpointQuery):
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:endpoint:add") @permission("iot:endpoint:add")
@bp.input(EndpointAddRequest, location="json") @bp.input(EndpointAddRequest, location="json")
def add_workshop(json_data: dict): def add_endpoint(json_data: dict):
""" """
添加采集端信息 添加采集端信息
""" """
device = IotEndpoint(**json_data) endpoint = IotEndpoint(**json_data)
device.status = 0 endpoint.status = 0
db.session.add(device) db.session.add(endpoint)
db.session.commit() db.session.commit()
return success() return success()
@bp.put("/<string:id>") @bp.put("/<int:id>")
@jwt_required() @jwt_required()
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:endpoint:update") @permission("iot:endpoint:update")
@bp.input(EndpointUpdateRequest(partial=True), location="json") @bp.input(EndpointUpdateRequest(partial=True), location="json")
def update_workshop(id: str, json_data: dict): def update_endpoint(id: int, json_data: dict):
""" """
更新采集端信息 更新采集端信息
""" """
@ -86,6 +86,23 @@ def update_workshop(id: str, json_data: dict):
return success() return success()
@bp.delete("/<int:id>")
@jwt_required()
@bp.doc(security="JWT")
@permission("iot:endpoint:delete")
def delete_endpoint(id: int):
"""
删除采集端信息
"""
endpoint = db.session.scalar(select(IotEndpoint).filter_by(id=id))
if not endpoint:
raise BizException("采集端不存在")
# 删除
db.session.delete(endpoint)
db.session.commit()
return success()
def get_list_or_page(query_data: EndpointQuery): def get_list_or_page(query_data: EndpointQuery):
""" """

@ -21,12 +21,12 @@ from iti.applications.common import permission
bp = APIBlueprint("iot_node", __name__, url_prefix="/node", tag="采集节点管理") bp = APIBlueprint("iot_node", __name__, url_prefix="/node", tag="采集节点管理")
@bp.get("/list") @bp.get("/list")
# @jwt_required() @jwt_required()
# @bp.doc(security="JWT") @bp.doc(security="JWT")
# @permission("iot:node:list") @permission("iot:node:list")
@bp.input(NodeQuery.Schema(partial=True), location="query") @bp.input(NodeQuery.Schema(partial=True), location="query")
@bp.output(IotNodeSchema(many=True)) @bp.output(IotNodeSchema(many=True))
def list_workshop(query_data: NodeQuery): def list_node(query_data: NodeQuery):
""" """
获取采集节点列表 获取采集节点列表
""" """
@ -40,7 +40,7 @@ def list_workshop(query_data: NodeQuery):
@permission("iot:node:list") @permission("iot:node:list")
@bp.input(NodeQuery.Schema(partial=True), location="query") @bp.input(NodeQuery.Schema(partial=True), location="query")
@bp.output(page_schema(IotNodeSchema(many=True))) @bp.output(page_schema(IotNodeSchema(many=True)))
def page_user(query_data: NodeQuery): def page_node(query_data: NodeQuery):
""" """
分页获取采集节点列表 分页获取采集节点列表
""" """
@ -53,7 +53,7 @@ def page_user(query_data: NodeQuery):
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:node:add") @permission("iot:node:add")
@bp.input(NodeAddRequest, location="json") @bp.input(NodeAddRequest, location="json")
def add_workshop(json_data: dict): def add_node(json_data: dict):
""" """
添加采集节点信息 添加采集节点信息
""" """
@ -65,12 +65,12 @@ def add_workshop(json_data: dict):
return success() return success()
@bp.put("/<string:id>") @bp.put("/<int:id>")
@jwt_required() @jwt_required()
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:node:update") @permission("iot:node:update")
@bp.input(NodeUpdateRequest(partial=True), location="json") @bp.input(NodeUpdateRequest(partial=True), location="json")
def update_workshop(id: str, json_data: dict): def update_node(id: int, json_data: dict):
""" """
更新采集节点信息 更新采集节点信息
""" """
@ -86,6 +86,24 @@ def update_workshop(id: str, json_data: dict):
return success() return success()
@bp.delete("/<int:id>")
@jwt_required()
@bp.doc(security="JWT")
@permission("iot:node:delete")
def delete_node(id: int):
"""
删除采集节点信息
"""
node = db.session.scalar(select(IotNode).filter_by(id=id))
if not node:
raise BizException("采集节点不存在")
# 删除
db.session.delete(node)
db.session.commit()
return success()
def get_list_or_page(query_data: NodeQuery): def get_list_or_page(query_data: NodeQuery):
""" """

@ -21,11 +21,11 @@ class DeviceQuery(Pagination):
}, },
}, },
) )
workshop_id: str = field( workshop_id: int = field(
default=None, default=None,
metadata={ metadata={
"required": False, "required": False,
"metadata": {"example": "ase1f2", "description": "车间ID"}, "metadata": {"example": 1, "description": "车间ID"},
}, },
) )
status: int = field( status: int = field(
@ -43,9 +43,9 @@ class DeviceAddRequest(BaseSchema):
新增设备信息 新增设备信息
""" """
workshop_id = fields.String( workshop_id = fields.Integer(
required=False, required=False,
metadata={"example": "车间ID", "description": "车间ID"}, metadata={"example": 1, "description": "车间ID"},
load_default=None, load_default=None,
) )
device_name = fields.String( device_name = fields.String(
@ -80,9 +80,9 @@ class DeviceUpdateRequest(BaseSchema):
更新设备信息 更新设备信息
""" """
workshop_id = fields.String( workshop_id = fields.Integer(
required=False, required=False,
metadata={"example": "车间ID", "description": "车间ID"}, metadata={"example": 1, "description": "车间ID"},
load_default=None, load_default=None,
) )
device_name = fields.String( device_name = fields.String(

@ -21,11 +21,11 @@ class EndpointQuery(Pagination):
}, },
}, },
) )
device_id: str = field( device_id: int = field(
default=None, default=None,
metadata={ metadata={
"required": False, "required": False,
"metadata": {"example": "ase1f2", "description": "设备ID"}, "metadata": {"example": 1, "description": "设备ID"},
}, },
) )
status: int = field( status: int = field(
@ -43,9 +43,9 @@ class EndpointAddRequest(BaseSchema):
采集端新增信息 采集端新增信息
""" """
device_id = fields.String( device_id = fields.Integer(
required=False, required=False,
metadata={"example": "设备ID", "description": "设备ID"}, metadata={"example": 1, "description": "设备ID"},
load_default=None, load_default=None,
) )
endpoint_name = fields.String( endpoint_name = fields.String(
@ -90,9 +90,9 @@ class EndpointUpdateRequest(BaseSchema):
更新采集端信息 更新采集端信息
""" """
device_id = fields.String( device_id = fields.Integer(
required=False, required=False,
metadata={"example": "设备ID", "description": "设备ID"}, metadata={"example": 1, "description": "设备ID"},
load_default=None, load_default=None,
) )
endpoint_name = fields.String( endpoint_name = fields.String(

@ -12,11 +12,11 @@ class NodeQuery(Pagination):
节点信息查询请求 节点信息查询请求
""" """
endpoint_id: str = field( endpoint_id: int = field(
default=None, default=None,
metadata={ metadata={
"required": False, "required": False,
"metadata": {"example": "ase1f2", "description": "采集端ID"}, "metadata": {"example": 1, "description": "采集端ID"},
}, },
) )
status: int = field( status: int = field(
@ -34,9 +34,9 @@ class NodeAddRequest(BaseSchema):
节点新增信息 节点新增信息
""" """
endpoint_id = fields.String( endpoint_id = fields.Integer(
required=False, required=False,
metadata={"example": "采集端ID", "description": "采集端ID"}, metadata={"example": 1, "description": "采集端ID"},
load_default=None, load_default=None,
) )
title = fields.String( title = fields.String(
@ -96,9 +96,9 @@ class NodeUpdateRequest(BaseSchema):
节点更新信息 节点更新信息
""" """
endpoint_id = fields.String( endpoint_id = fields.Integer(
required=False, required=False,
metadata={"example": "采集端ID", "description": "采集端ID"}, metadata={"example": 1, "description": "采集端ID"},
load_default=None, load_default=None,
) )
title = fields.String( title = fields.String(

@ -40,7 +40,7 @@ def list_workshop(query_data: WorkshopQuery):
@permission("iot:workshop:list") @permission("iot:workshop:list")
@bp.input(WorkshopQuery.Schema(partial=True), location="query") @bp.input(WorkshopQuery.Schema(partial=True), location="query")
@bp.output(page_schema(IotWorkshopSchema(many=True))) @bp.output(page_schema(IotWorkshopSchema(many=True)))
def page_user(query_data: WorkshopQuery): def page_workshop(query_data: WorkshopQuery):
""" """
分页获取车间列表 分页获取车间列表
""" """
@ -64,12 +64,12 @@ def add_workshop(json_data: dict):
db.session.commit() db.session.commit()
return success() return success()
@bp.put("/<string:id>") @bp.put("/<int:id>")
@jwt_required() @jwt_required()
@bp.doc(security="JWT") @bp.doc(security="JWT")
@permission("iot:workshop:update") @permission("iot:workshop:update")
@bp.input(WorkshopUpdateRequest(partial=True), location="json") @bp.input(WorkshopUpdateRequest(partial=True), location="json")
def update_workshop(id: str, json_data: dict): def update_workshop(id: int, json_data: dict):
""" """
更新车间信息 更新车间信息
""" """
@ -85,6 +85,24 @@ def update_workshop(id: str, json_data: dict):
return success() return success()
@bp.delete("/<int:id>")
@jwt_required()
@bp.doc(security="JWT")
@permission("iot:device:delete")
def delete_workshop(id: int):
"""
删除车间信息
"""
workshop = db.session.scalar(select(IotWorkshop).filter_by(id=id))
if not workshop:
raise BizException("车间信息不存在")
# 删除
db.session.delete(workshop)
db.session.commit()
return success()
def get_list_or_page(query_data: WorkshopQuery): def get_list_or_page(query_data: WorkshopQuery):
""" """

Loading…
Cancel
Save