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.
		
		
		
		
		
			
		
			
				
					
					
						
							96 lines
						
					
					
						
							4.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							96 lines
						
					
					
						
							4.3 KiB
						
					
					
				| 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='操作成功') | |
| 
 | |
| 
 |