|
|
@ -1,16 +1,17 @@
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import json
|
|
|
|
|
|
|
|
import copy
|
|
|
|
import copy
|
|
|
|
|
|
|
|
import json
|
|
|
|
import logging
|
|
|
|
import logging
|
|
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
|
|
|
|
|
|
|
|
from sqlalchemy import Column, Integer, String, DateTime, func
|
|
|
|
from sqlalchemy import Column, Integer, String, DateTime, func
|
|
|
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
|
|
from sqlalchemy.ext.declarative import declarative_base
|
|
|
|
|
|
|
|
|
|
|
|
from website.db_mysql import get_session
|
|
|
|
from website.db.alg_model import alg_model as DB_alg_model
|
|
|
|
from website.util import shortuuid
|
|
|
|
|
|
|
|
from website.db.enterprise_entity.enterprise_entity import EnterpriseEntityRepository
|
|
|
|
from website.db.enterprise_entity.enterprise_entity import EnterpriseEntityRepository
|
|
|
|
from website.db.enterprise_node import enterprise_node as DB_Node
|
|
|
|
from website.db.enterprise_node import enterprise_node as DB_Node
|
|
|
|
from website.db.alg_model import alg_model as DB_alg_model
|
|
|
|
from website.db_mysql import get_session
|
|
|
|
|
|
|
|
from website.util import shortuuid
|
|
|
|
|
|
|
|
|
|
|
|
Base = declarative_base()
|
|
|
|
Base = declarative_base()
|
|
|
|
|
|
|
|
|
|
|
@ -66,6 +67,7 @@ class EnterpriseBusiModel(Base):
|
|
|
|
def __repr__(self):
|
|
|
|
def __repr__(self):
|
|
|
|
return f"EnterpriseBusiModel(id={self.id}, suid='{self.suid}', name='{self.name}')"
|
|
|
|
return f"EnterpriseBusiModel(id={self.id}, suid='{self.suid}', name='{self.name}')"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EnterpriseBusiModelNode(Base):
|
|
|
|
class EnterpriseBusiModelNode(Base):
|
|
|
|
__tablename__ = 'enterprise_busi_model_node'
|
|
|
|
__tablename__ = 'enterprise_busi_model_node'
|
|
|
|
|
|
|
|
|
|
|
@ -77,6 +79,7 @@ class EnterpriseBusiModelNode(Base):
|
|
|
|
node_id = Column(Integer)
|
|
|
|
node_id = Column(Integer)
|
|
|
|
node_suid = Column(String(10))
|
|
|
|
node_suid = Column(String(10))
|
|
|
|
create_time = Column(DateTime, default=func.current_timestamp())
|
|
|
|
create_time = Column(DateTime, default=func.current_timestamp())
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
def __repr__(self):
|
|
|
|
return f'<EnterpriseBusiModelNode(id={self.id}, suid={self.suid})>'
|
|
|
|
return f'<EnterpriseBusiModelNode(id={self.id}, suid={self.suid})>'
|
|
|
|
|
|
|
|
|
|
|
@ -84,11 +87,10 @@ class EnterpriseBusiModelNode(Base):
|
|
|
|
class EnterpriseBusiModelRepository(object):
|
|
|
|
class EnterpriseBusiModelRepository(object):
|
|
|
|
|
|
|
|
|
|
|
|
def get_by_id(self, id: int) -> Optional[EnterpriseBusiModel]:
|
|
|
|
def get_by_id(self, id: int) -> Optional[EnterpriseBusiModel]:
|
|
|
|
with get_session() as session:
|
|
|
|
with get_session() as session:
|
|
|
|
model = session.query(EnterpriseBusiModel).filter(EnterpriseBusiModel.id == id).first()
|
|
|
|
model = session.query(EnterpriseBusiModel).filter(EnterpriseBusiModel.id == id).first()
|
|
|
|
return model
|
|
|
|
return model
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def insert_busi_model(self, data: Dict):
|
|
|
|
def insert_busi_model(self, data: Dict):
|
|
|
|
entity_suid = EnterpriseEntityRepository().get_entity_suid(data['entity_id'])
|
|
|
|
entity_suid = EnterpriseEntityRepository().get_entity_suid(data['entity_id'])
|
|
|
|
data['suid'] = shortuuid.ShortUUID().random(10)
|
|
|
|
data['suid'] = shortuuid.ShortUUID().random(10)
|
|
|
@ -104,7 +106,7 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
'id': base_model_id,
|
|
|
|
'id': base_model_id,
|
|
|
|
'suid': base_model_info.suid,
|
|
|
|
'suid': base_model_info.suid,
|
|
|
|
'name': base_model_info.name,
|
|
|
|
'name': base_model_info.name,
|
|
|
|
})
|
|
|
|
})
|
|
|
|
data['base_models'] = json.dumps(base_model)
|
|
|
|
data['base_models'] = json.dumps(base_model)
|
|
|
|
new_data = copy.copy(data)
|
|
|
|
new_data = copy.copy(data)
|
|
|
|
|
|
|
|
|
|
|
@ -114,7 +116,7 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
session.commit()
|
|
|
|
session.commit()
|
|
|
|
|
|
|
|
|
|
|
|
return model.id, model.suid
|
|
|
|
return model.id, model.suid
|
|
|
|
|
|
|
|
|
|
|
|
def edit_busi_model(self, data: Dict):
|
|
|
|
def edit_busi_model(self, data: Dict):
|
|
|
|
base_model_ids = [int(model_id) for model_id in data['basemodel_ids'].split(',')]
|
|
|
|
base_model_ids = [int(model_id) for model_id in data['basemodel_ids'].split(',')]
|
|
|
|
base_model_db = DB_alg_model.ModelRepositry()
|
|
|
|
base_model_db = DB_alg_model.ModelRepositry()
|
|
|
@ -124,8 +126,8 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
base_model.append({
|
|
|
|
base_model.append({
|
|
|
|
'id': base_model_id,
|
|
|
|
'id': base_model_id,
|
|
|
|
'suid': base_model_suid
|
|
|
|
'suid': base_model_suid
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
data['base_models'] = json.dumps(base_model)
|
|
|
|
data['base_models'] = json.dumps(base_model)
|
|
|
|
with get_session() as session:
|
|
|
|
with get_session() as session:
|
|
|
|
try:
|
|
|
|
try:
|
|
|
@ -136,13 +138,11 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
|
|
|
|
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_busi_model_by_id(self, id: int) -> Optional[EnterpriseBusiModel]:
|
|
|
|
def get_busi_model_by_id(self, id: int) -> Optional[EnterpriseBusiModel]:
|
|
|
|
with get_session() as session:
|
|
|
|
with get_session() as session:
|
|
|
|
model = session.query(EnterpriseBusiModel).filter(EnterpriseBusiModel.id == id).first()
|
|
|
|
model = session.query(EnterpriseBusiModel).filter(EnterpriseBusiModel.id == id).first()
|
|
|
|
return model
|
|
|
|
return model
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def list_enterprise_busi_model(self, entity_id: int, page_no: int, page_size: int) -> Dict[Any, Any]:
|
|
|
|
def list_enterprise_busi_model(self, entity_id: int, page_no: int, page_size: int) -> Dict[Any, Any]:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
获取企业部署的业务模型列表
|
|
|
|
获取企业部署的业务模型列表
|
|
|
@ -155,9 +155,10 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
Returns:
|
|
|
|
Returns:
|
|
|
|
dict: 包含总数和数据列表的字典
|
|
|
|
dict: 包含总数和数据列表的字典
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
with get_session() as session:
|
|
|
|
with get_session() as session:
|
|
|
|
total_count = session.query(func.count(EnterpriseBusiModel.id)).filter(EnterpriseBusiModel.entity_id == entity_id).scalar()
|
|
|
|
total_count = session.query(func.count(EnterpriseBusiModel.id)).filter(
|
|
|
|
|
|
|
|
EnterpriseBusiModel.entity_id == entity_id).scalar()
|
|
|
|
|
|
|
|
|
|
|
|
models = (
|
|
|
|
models = (
|
|
|
|
session.query(
|
|
|
|
session.query(
|
|
|
|
EnterpriseBusiModel.id.label("model_id"),
|
|
|
|
EnterpriseBusiModel.id.label("model_id"),
|
|
|
@ -169,7 +170,7 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
.limit(page_size)
|
|
|
|
.limit(page_size)
|
|
|
|
.all()
|
|
|
|
.all()
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
return {
|
|
|
|
return {
|
|
|
|
"count": total_count,
|
|
|
|
"count": total_count,
|
|
|
|
"data": [
|
|
|
|
"data": [
|
|
|
@ -182,10 +183,11 @@ class EnterpriseBusiModelRepository(object):
|
|
|
|
]
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EnterpriseBusiModelNodeRepository(object):
|
|
|
|
class EnterpriseBusiModelNodeRepository(object):
|
|
|
|
# def get_by_id(self, id: int) -> Optional[EnterpriseBusiModelNode]:
|
|
|
|
# def get_by_id(self, id: int) -> Optional[EnterpriseBusiModelNode]:
|
|
|
|
# return self.db.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.id == id).first()
|
|
|
|
# return self.db.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.id == id).first()
|
|
|
|
|
|
|
|
|
|
|
|
def insert_busi_model_nodes(self, data: Dict):
|
|
|
|
def insert_busi_model_nodes(self, data: Dict):
|
|
|
|
data['suid'] = shortuuid.ShortUUID().random(10)
|
|
|
|
data['suid'] = shortuuid.ShortUUID().random(10)
|
|
|
|
link_node_ids = [int(node_id) for node_id in data['node_ids'].split(',')]
|
|
|
|
link_node_ids = [int(node_id) for node_id in data['node_ids'].split(',')]
|
|
|
@ -204,16 +206,21 @@ class EnterpriseBusiModelNodeRepository(object):
|
|
|
|
)
|
|
|
|
)
|
|
|
|
session.add(model_node)
|
|
|
|
session.add(model_node)
|
|
|
|
session.commit()
|
|
|
|
session.commit()
|
|
|
|
return
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_nodes_by_busi_model(self, busi_model_id: int) -> List[EnterpriseBusiModelNode]:
|
|
|
|
def get_nodes_by_busi_model(self, busi_model_id: int) -> List[EnterpriseBusiModelNode]:
|
|
|
|
with get_session() as session:
|
|
|
|
with get_session() as session:
|
|
|
|
nodes = session.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.busi_model_id == busi_model_id).all()
|
|
|
|
nodes = session.query(EnterpriseBusiModelNode).filter(
|
|
|
|
|
|
|
|
EnterpriseBusiModelNode.busi_model_id == busi_model_id).all()
|
|
|
|
return nodes
|
|
|
|
return nodes
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def delete_by_busi_model_id(self, busi_model_id: int) -> None:
|
|
|
|
def delete_by_busi_model_id(self, busi_model_id: int) -> None:
|
|
|
|
with get_session() as session:
|
|
|
|
with get_session() as session:
|
|
|
|
session.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.busi_model_id == busi_model_id).delete()
|
|
|
|
session.query(EnterpriseBusiModelNode).filter(
|
|
|
|
session.commit()
|
|
|
|
EnterpriseBusiModelNode.busi_model_id == busi_model_id).delete()
|
|
|
|
|
|
|
|
session.commit()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_busi_model_by_node_id(self, node_id: int) -> Optional[EnterpriseBusiModelNode]:
|
|
|
|
|
|
|
|
with get_session() as session:
|
|
|
|
|
|
|
|
model = session.query(EnterpriseBusiModelNode).filter(EnterpriseBusiModelNode.node_id == node_id).first()
|
|
|
|
|
|
|
|
return model
|
|
|
|