更新代码

main
周平 11 months ago
parent 46e8e308f2
commit 6b10daf0fe

@ -68,21 +68,6 @@ class EnterpriseBusiModel(Base):
return f"EnterpriseBusiModel(id={self.id}, suid='{self.suid}', name='{self.name}')"
class EnterpriseBusiModelNode(Base):
__tablename__ = 'enterprise_busi_model_node'
id = Column(Integer, primary_key=True)
suid = Column(String(10), nullable=False, default='')
entity_suid = Column(String(10))
busi_model_id = Column(Integer)
busi_model_suid = Column(String(10))
node_id = Column(Integer)
node_suid = Column(String(10))
create_time = Column(DateTime, default=func.current_timestamp())
def __repr__(self):
return f'<EnterpriseBusiModelNode(id={self.id}, suid={self.suid})>'
class EnterpriseBusiModelRepository(object):
@ -184,6 +169,22 @@ class EnterpriseBusiModelRepository(object):
}
class EnterpriseBusiModelNode(Base):
__tablename__ = 'enterprise_busi_model_node'
id = Column(Integer, primary_key=True)
suid = Column(String(10), nullable=False, default='')
entity_suid = Column(String(10))
busi_model_id = Column(Integer)
busi_model_suid = Column(String(10))
node_id = Column(Integer)
node_suid = Column(String(10))
create_time = Column(DateTime, default=func.current_timestamp())
def __repr__(self):
return f'<EnterpriseBusiModelNode(id={self.id}, suid={self.suid})>'
class EnterpriseBusiModelNodeRepository(object):
# def get_by_id(self, id: int) -> Optional[EnterpriseBusiModelNode]:
# return self.db.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.id == id).first()
@ -220,7 +221,32 @@ class EnterpriseBusiModelNodeRepository(object):
EnterpriseBusiModelNode.busi_model_id == busi_model_id).delete()
session.commit()
def get_busi_model_by_node_id(self, node_id: int) -> Optional[EnterpriseBusiModelNode]:
def get_busi_model_by_node_id(self, node_id: int, page_no: int = 1, page_size: int = 10) -> Dict[Any, Any]:
with get_session() as session:
model = session.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.node_id == node_id).first()
return model
models = (
session.query(
EnterpriseBusiModel.id.label("busi_model_id"),
EnterpriseBusiModel.name.label("busi_model_name"),
EnterpriseBusiModel.create_time
)
.outerjoin(EnterpriseBusiModelNode, EnterpriseBusiModel.id == EnterpriseBusiModelNode.busi_model_id)
.filter(EnterpriseBusiModelNode.node_id == node_id)
.offset((page_no - 1) * page_size)
.limit(page_size)
.all()
)
total_count = session.query(func.count(EnterpriseBusiModelNode.id)).filter(
EnterpriseBusiModelNode.node_id == node_id).scalar()
return {
"count": total_count,
"data": [
{
"busi_model_id": model.busi_model_id,
"busi_model_name": model.busi_model_name,
"create_time": model.create_time.strftime("%Y-%m-%d %H:%M:%S"),
} for model in models
]
}

@ -55,3 +55,16 @@ class EnterpriseBusiModelNodeDeviceRepository(object):
with get_session() as session:
session.bulk_insert_mappings(EnterpriseBusiModelNodeDevice, records)
session.commit()
def check_deployed(self, node_id: int, busi_model_id: int) -> int:
with get_session() as session:
count = (
session.query(EnterpriseBusiModelNodeDevice)
.filter(
EnterpriseBusiModelNodeDevice.node_id==node_id,
EnterpriseBusiModelNodeDevice.busi_model_id==busi_model_id
)
.count()
)
return 1 if count > 0 else 0

@ -232,16 +232,45 @@ class BusimodelHandler(APIHandler):
pageSize = self.get_int_argument('pageSize', 20)
if not node_id:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, '企业节点不能为空')
db_node = DB_Node.EnterpriseNodeRepository()
busi_models = db_node.select_busi_model(node_id, pageNo, pageSize)
self.finish({
'data': busi_models,
'count': len(busi_models)
})
db_model_node = DB_BusiModel.EnterpriseBusiModelNodeRepository()
busi_models = db_model_node.get_busi_model_by_node_id(node_id, pageNo, pageSize)
count = busi_models["count"]
models = busi_models["data"]
db_mode_node_device = DB_BusiModelNodeDevice.EnterpriseBusiModelNodeDeviceRepository()
for busi_model in models:
deployed = db_mode_node_device.check_deployed(node_id, busi_model["busi_model_id"])
busi_model["deployed"] = deployed
self.finish({"count": count, "data": models})
class BusimodelInfoHandler(APIHandler):
"""
- 描述企业节点业务模型部署 -> 业务模型信息
- 请求方式post
- 请求参数
> - node_id, int, 节点id
> - busi_model_id, int业务模型id
- 返回值
```
{
"busi_model_name": "xx", # 业务模型名称
"busi_model_comment": "xxx", # 简介
"base_models": "xxx,xx,xx,xx" # 关联基础模型
"devices": [
{
"device_id": 123,
"device_name": "xxx"
},
...
]
}
```
"""
@authenticated
def post(self):
@ -279,9 +308,6 @@ class BusimodelDeployHandler(APIHandler):
if not entity_suid_row:
raise errors.HTTPAPIError(errors.ERROR_BAD_REQUEST, '企业节点不存在')
records = []
records = []
for device_id in device_ids.split(','):
device = DB_Device.EnterpriseDeviceRepository().get_device(int(device_id))

Loading…
Cancel
Save