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