|  |  | @ -260,17 +260,19 @@ class DataCatalogDAO: | 
			
		
	
		
			
				
					|  |  |  |         await db.execute(stmt) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |              | 
			
		
	
		
			
				
					|  |  |  |     @classmethod | 
			
		
	
		
			
				
					|  |  |  |     async def edit_catalog_child_dao(cls, db: AsyncSession, catalog: dict): | 
			
		
	
		
			
				
					|  |  |  |         """ | 
			
		
	
		
			
				
					|  |  |  |         编辑目录数据库操作 | 
			
		
	
		
			
				
					|  |  |  |         编辑目录数据库操作(子节点先删除再新增) | 
			
		
	
		
			
				
					|  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |         :param db: orm对象 | 
			
		
	
		
			
				
					|  |  |  |         :param catalog: 需要更新的目录字典 | 
			
		
	
		
			
				
					|  |  |  |         :return: | 
			
		
	
		
			
				
					|  |  |  |         :param catalog: 需要更新的目录字典(包含 children 列表) | 
			
		
	
		
			
				
					|  |  |  |         """ | 
			
		
	
		
			
				
					|  |  |  |         content_onum = catalog['content_onum'] | 
			
		
	
		
			
				
					|  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |         # ---------- 更新主目录 ---------- | 
			
		
	
		
			
				
					|  |  |  |         stmt = ( | 
			
		
	
		
			
				
					|  |  |  |             update(DataAstContent) | 
			
		
	
		
			
				
					|  |  |  |             .where(DataAstContent.content_onum == content_onum) | 
			
		
	
	
		
			
				
					|  |  | @ -283,35 +285,25 @@ class DataCatalogDAO: | 
			
		
	
		
			
				
					|  |  |  |                 leaf_node_flag=catalog['leaf_node_flag'], | 
			
		
	
		
			
				
					|  |  |  |                 upd_prsn=catalog['upd_prsn'], | 
			
		
	
		
			
				
					|  |  |  |                 upd_time=datetime.now() | 
			
		
	
		
			
				
					|  |  |  |         ) ) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |             ) | 
			
		
	
		
			
				
					|  |  |  |         ) | 
			
		
	
		
			
				
					|  |  |  |         await db.execute(stmt) | 
			
		
	
		
			
				
					|  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |         # 处理子关系 | 
			
		
	
		
			
				
					|  |  |  |         for child in catalog.get('children', []): | 
			
		
	
		
			
				
					|  |  |  |             rela_onum = child.get('rela_onum') | 
			
		
	
		
			
				
					|  |  |  |             if rela_onum: | 
			
		
	
		
			
				
					|  |  |  |                 st = ( | 
			
		
	
		
			
				
					|  |  |  |                     update(DataAstContentRela) | 
			
		
	
		
			
				
					|  |  |  |                     .where(DataAstContentRela.rela_onum == rela_onum) | 
			
		
	
		
			
				
					|  |  |  |                     .values( | 
			
		
	
		
			
				
					|  |  |  |                         content_onum=child.get('content_onum'), | 
			
		
	
		
			
				
					|  |  |  |                         ast_onum=child.get('ast_onum'), | 
			
		
	
		
			
				
					|  |  |  |                         rela_type=child.get('rela_type'), | 
			
		
	
		
			
				
					|  |  |  |                         rela_eff_begn_date=child.get('rela_eff_begn_date'), | 
			
		
	
		
			
				
					|  |  |  |                         rela_eff_end_date=child.get('rela_eff_end_date'), | 
			
		
	
		
			
				
					|  |  |  |                         upd_prsn=child.get('upd_prsn')) | 
			
		
	
		
			
				
					|  |  |  |         # ---------- 删除原有子关系 ---------- | 
			
		
	
		
			
				
					|  |  |  |         delete_stmt = ( | 
			
		
	
		
			
				
					|  |  |  |             delete(DataAstContentRela) | 
			
		
	
		
			
				
					|  |  |  |             .where(DataAstContentRela.content_onum == content_onum) | 
			
		
	
		
			
				
					|  |  |  |         ) | 
			
		
	
		
			
				
					|  |  |  |         await db.execute(delete_stmt) | 
			
		
	
		
			
				
					|  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |                 await db.execute(st) | 
			
		
	
		
			
				
					|  |  |  |                 await cls.update_leaf_node_flag(db) | 
			
		
	
		
			
				
					|  |  |  |             else: | 
			
		
	
		
			
				
					|  |  |  |         # ---------- 新增子关系 ---------- | 
			
		
	
		
			
				
					|  |  |  |         for child in catalog.get('children', []): | 
			
		
	
		
			
				
					|  |  |  |             child['content_onum'] = content_onum | 
			
		
	
		
			
				
					|  |  |  |             db_child = DataAstContentRela(**child) | 
			
		
	
		
			
				
					|  |  |  |             db.add(db_child) | 
			
		
	
		
			
				
					|  |  |  |                 await db.flush() | 
			
		
	
		
			
				
					|  |  |  |                 await cls.update_leaf_node_flag(db) | 
			
		
	
		
			
				
					|  |  |  |      | 
			
		
	
		
			
				
					|  |  |  |         # 更新叶子节点状态 | 
			
		
	
		
			
				
					|  |  |  |         await cls.update_leaf_node_flag(db) | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  | 
 |