|
@ -1,7 +1,7 @@ |
|
|
from sqlalchemy.ext.asyncio import AsyncSession |
|
|
from sqlalchemy.ext.asyncio import AsyncSession |
|
|
from module_admin.dao.batch_label_config_dao import BatchLabelConfigDAO |
|
|
from module_admin.dao.batch_label_config_dao import BatchLabelConfigDAO |
|
|
from module_admin.entity.vo.common_vo import CrudResponseModel |
|
|
from module_admin.entity.vo.common_vo import CrudResponseModel |
|
|
from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel,BatchDataopLabelConfigModel,BatchDatatypeLabelConfigModel |
|
|
from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel,BatchDataopLabelConfigModel,BatchDatatypeLabelConfigModel,BatchDataopLabelConfigModelVo |
|
|
from exceptions.exception import ServiceException |
|
|
from exceptions.exception import ServiceException |
|
|
import uuid |
|
|
import uuid |
|
|
from utils.common_util import CamelCaseUtil |
|
|
from utils.common_util import CamelCaseUtil |
|
@ -70,14 +70,95 @@ class BatchLabelConfigService: |
|
|
@classmethod |
|
|
@classmethod |
|
|
async def get_dataop_list_services(cls, db: AsyncSession, query_object, is_page: bool = False): |
|
|
async def get_dataop_list_services(cls, db: AsyncSession, query_object, is_page: bool = False): |
|
|
return await BatchLabelConfigDAO.get_dataop_list(db, query_object, is_page) |
|
|
return await BatchLabelConfigDAO.get_dataop_list(db, query_object, is_page) |
|
|
|
|
|
@classmethod |
|
|
|
|
|
async def get_dataop_vo_services(cls, db: AsyncSession, query_object, is_page: bool = False): |
|
|
|
|
|
result = BatchDataopLabelConfigModelVo() # 自定义返回 VO 对象 |
|
|
|
|
|
resultList = await BatchLabelConfigDAO.get_dataop_list_all(db, query_object) |
|
|
|
|
|
if resultList: |
|
|
|
|
|
|
|
|
|
|
|
for item in resultList: |
|
|
|
|
|
if item.optype == "唯一类型": |
|
|
|
|
|
result.config1 = item.config1 |
|
|
|
|
|
result.config2 = item.config2 |
|
|
|
|
|
result.config3 = item.config3 |
|
|
|
|
|
result.config4 = item.config4 |
|
|
|
|
|
result.ssys_cd = item.ssys_cd |
|
|
|
|
|
result.mdl_name = item.mdl_name |
|
|
|
|
|
result.upd_by = item.upd_by |
|
|
|
|
|
result.upd_time = item.upd_time |
|
|
|
|
|
|
|
|
|
|
|
elif item.optype == "忽略类型": |
|
|
|
|
|
result.config5 = item.config1 # 注意:忽略类型只有 config1, config2 |
|
|
|
|
|
result.config6 = item.config2 |
|
|
|
|
|
# 其他公共字段,如果你也想覆盖可再写一次: |
|
|
|
|
|
result.ssys_cd = item.ssys_cd |
|
|
|
|
|
result.mdl_name = item.mdl_name |
|
|
|
|
|
result.upd_by = item.upd_by |
|
|
|
|
|
result.upd_time = item.upd_time |
|
|
|
|
|
|
|
|
|
|
|
return result |
|
|
|
|
|
|
|
|
@classmethod |
|
|
@classmethod |
|
|
async def add_dataop_services(cls, db: AsyncSession, page_object): |
|
|
async def add_dataop_services(cls, db: AsyncSession, page_object): |
|
|
try: |
|
|
try: |
|
|
page_object.onum = str(uuid.uuid4()) |
|
|
|
|
|
await BatchLabelConfigDAO.add_dataop(db, page_object) |
|
|
resultList = await BatchLabelConfigDAO.get_dataop_list_all(db, page_object) |
|
|
|
|
|
|
|
|
|
|
|
# 唯一类型对象 |
|
|
|
|
|
onopLabel = BatchDataopLabelConfigModel( |
|
|
|
|
|
optype="唯一类型", |
|
|
|
|
|
config1=page_object.config1, |
|
|
|
|
|
config2=page_object.config2, |
|
|
|
|
|
config3=page_object.config3, |
|
|
|
|
|
config4=page_object.config4, |
|
|
|
|
|
ssysCd=page_object.ssys_cd, |
|
|
|
|
|
mdlName=page_object.mdl_name, |
|
|
|
|
|
updBy=page_object.upd_by, |
|
|
|
|
|
updTime=page_object.upd_time |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
# 忽略类型对象 |
|
|
|
|
|
inopLabel = BatchDataopLabelConfigModel( |
|
|
|
|
|
optype="忽略类型", |
|
|
|
|
|
config1=page_object.config5, |
|
|
|
|
|
config2=page_object.config6, |
|
|
|
|
|
ssysCd=page_object.ssys_cd, |
|
|
|
|
|
mdlName=page_object.mdl_name, |
|
|
|
|
|
updBy=page_object.upd_by, |
|
|
|
|
|
updTime=page_object.upd_time |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
if resultList: |
|
|
|
|
|
for item in resultList: |
|
|
|
|
|
if item.optype == "唯一类型": |
|
|
|
|
|
update_data = { |
|
|
|
|
|
"config1": onopLabel.config1, |
|
|
|
|
|
"config2": onopLabel.config2, |
|
|
|
|
|
"config3": onopLabel.config3, |
|
|
|
|
|
"config4": onopLabel.config4, |
|
|
|
|
|
"ssys_cd": onopLabel.ssys_cd, |
|
|
|
|
|
"mdl_name": onopLabel.mdl_name, |
|
|
|
|
|
"upd_by": onopLabel.upd_by, |
|
|
|
|
|
"upd_time": onopLabel.upd_time |
|
|
|
|
|
} |
|
|
|
|
|
elif item.optype == "忽略类型": |
|
|
|
|
|
update_data = { |
|
|
|
|
|
"config1": inopLabel.config1, |
|
|
|
|
|
"config2": inopLabel.config2, |
|
|
|
|
|
"ssys_cd": inopLabel.ssys_cd, |
|
|
|
|
|
"mdl_name": inopLabel.mdl_name, |
|
|
|
|
|
"upd_by": inopLabel.upd_by, |
|
|
|
|
|
"upd_time": inopLabel.upd_time |
|
|
|
|
|
} |
|
|
|
|
|
else: |
|
|
|
|
|
continue # 忽略未知类型 |
|
|
|
|
|
await BatchLabelConfigDAO.edit_dataop(db, item.onum, update_data) |
|
|
|
|
|
else: |
|
|
|
|
|
await BatchLabelConfigDAO.add_dataop(db, onopLabel) |
|
|
|
|
|
await BatchLabelConfigDAO.add_dataop(db, inopLabel) |
|
|
|
|
|
|
|
|
await db.commit() |
|
|
await db.commit() |
|
|
return CrudResponseModel(is_success=True, message="新增成功") |
|
|
return CrudResponseModel(is_success=True, message="新增或更新成功") |
|
|
except Exception as e: |
|
|
except Exception as e: |
|
|
await db.rollback() |
|
|
await db.rollback() |
|
|
raise e |
|
|
raise e |
|
|