You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					97 lines
				
				4.3 KiB
			
		
		
			
		
	
	
					97 lines
				
				4.3 KiB
			| 
											8 months ago
										 | import json | ||
|  | import uuid | ||
|  | 
 | ||
|  | from typing import Optional, List | ||
|  | from sqlalchemy.ext.asyncio import AsyncSession | ||
|  | from module_admin.entity.vo.common_vo import CrudResponseModel | ||
|  | from module_admin.entity.vo.user_vo import CurrentUserModel | ||
|  | from module_admin.entity.vo.dataint_vo import SscfPageObject, SaveSscfModel, TreeOperateModel | ||
|  | from module_admin.entity.do.dataint_do import SysSscf | ||
|  | from module_admin.dao.sscf_dao import SscfDao | ||
|  | from exceptions.exception import ServiceException, ServiceWarning | ||
|  | from datetime import datetime | ||
|  | from utils.common_util import CamelCaseUtil | ||
|  | 
 | ||
|  | 
 | ||
|  | class SscfService: | ||
|  |     """
 | ||
|  |     智能问答服务层 | ||
|  |     """
 | ||
|  | 
 | ||
|  |     @classmethod | ||
|  |     async def get_sscf_list_services(cls, result_db: AsyncSession, sscf_query: SscfPageObject, current_user: CurrentUserModel): | ||
|  |         result = await SscfDao.get_sscf_list(result_db, sscf_query) | ||
|  |         return CamelCaseUtil.transform_result(result) | ||
|  | 
 | ||
|  |     @classmethod | ||
|  |     async def get_dasset_tree_services(cls, result_db: AsyncSession, current_user: CurrentUserModel): | ||
|  |         result = await SscfDao.get_dasset_tree(result_db) | ||
|  |         return CamelCaseUtil.transform_result(result) | ||
|  | 
 | ||
|  |     @classmethod | ||
|  |     async def save_dasset_tree_services(cls, result_db: AsyncSession, treeOperate: TreeOperateModel, current_user: CurrentUserModel): | ||
|  |         tree = await SscfDao.get_dasset_tree_by_code(result_db, treeOperate.dasset_code) | ||
|  |         if treeOperate.operate == 'ADD': | ||
|  |             if tree: | ||
|  |                 raise ServiceException(message="已存在code为:"+treeOperate.dasset_code+"的目录,无法重复新增,请修改code后新增") | ||
|  |             else: | ||
|  |                 await SscfDao.insert_dasset_tree(result_db, treeOperate) | ||
|  |                 await result_db.commit() | ||
|  |         if treeOperate.operate == 'UPDATE': | ||
|  |             if tree: | ||
|  |                 if tree.onum == treeOperate.onum: | ||
|  |                     treeObj = dict( | ||
|  |                         onum=treeOperate.onum, | ||
|  |                         dasset_code=treeOperate.dasset_code, | ||
|  |                         dasset_name=treeOperate.dasset_name | ||
|  |                     ) | ||
|  |                     await SscfDao.save_dasset_tree(result_db, treeObj) | ||
|  |                     await result_db.commit() | ||
|  |                 else: | ||
|  |                     raise ServiceException(message="已存在code为:"+treeOperate.dasset_code+"的目录") | ||
|  |             else: | ||
|  |                 treeObj = dict( | ||
|  |                     onum=treeOperate.onum, | ||
|  |                     dasset_code=treeOperate.dasset_code, | ||
|  |                     dasset_name=treeOperate.dasset_name | ||
|  |                 ) | ||
|  |                 await SscfDao.save_dasset_tree(result_db, treeObj) | ||
|  |                 await result_db.commit() | ||
|  |         if treeOperate.operate == 'DELETE': | ||
|  |             if tree: | ||
|  |                 await SscfDao.delete_dasset_tree(result_db, treeOperate.onum) | ||
|  |                 await result_db.commit() | ||
|  |             else: | ||
|  |                 raise ServiceException(mssage="不存在code为:"+treeOperate.dasset_code+"的目录") | ||
|  |         return CrudResponseModel(is_success=True, message='操作成功') | ||
|  | 
 | ||
|  |     @classmethod | ||
|  |     async def save_sscf(cls, result_db: AsyncSession, saveSscfModel: SaveSscfModel, current_user: CurrentUserModel): | ||
|  |         if saveSscfModel.onum is None: | ||
|  |             # add | ||
|  |             saveSscfModel.onum = uuid.uuid4() | ||
|  |             addObj = SysSscf(**saveSscfModel.model_dump()) | ||
|  |             addObj.create_by = current_user.user.user_name | ||
|  |             addObj.create_time = datetime.now() | ||
|  |             addObj.update_by = current_user.user.user_name | ||
|  |             addObj.update_time = datetime.now() | ||
|  |             await SscfDao.insert_sscf(result_db, addObj) | ||
|  |         else: | ||
|  |             # update | ||
|  |             oldObj = await SscfDao.get_sscf_by_id(result_db, saveSscfModel.onum) | ||
|  |             if oldObj is None: | ||
|  |                 raise ServiceException(message='所改对象不存在') | ||
|  |             saveObj = saveSscfModel.model_dump(exclude_unset=True) | ||
|  |             saveObj['update_by'] = current_user.user.user_name | ||
|  |             saveObj['update_time'] = datetime.now() | ||
|  |             await SscfDao.update_sscf(result_db, saveObj) | ||
|  |         await result_db.commit() | ||
|  |         return CrudResponseModel(is_success=True, message='操作成功') | ||
|  | 
 | ||
|  |     @classmethod | ||
|  |     async def delete_sscf(cls, db: AsyncSession, array: List[str]): | ||
|  |         await SscfDao.delete_sscf(db, array) | ||
|  |         await db.commit() | ||
|  |         return CrudResponseModel(is_success=True, message='操作成功') | ||
|  | 
 |