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.
		
		
		
		
		
			
		
			
				
					
					
						
							202 lines
						
					
					
						
							12 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							202 lines
						
					
					
						
							12 KiB
						
					
					
				| from datetime import datetime | |
| from pydantic import BaseModel, ConfigDict, Field, Extra | |
| from pydantic.alias_generators import to_camel | |
| from pydantic_validation_decorator import NotBlank, Size | |
| from typing import Literal, Optional, List, Dict, Any | |
| from module_admin.annotation.pydantic_annotation import as_query | |
| 
 | |
| 
 | |
| class DataCatalogRequest(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True, from_attributes=True) | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='目录序号') | |
|     content_name: Optional[str] = Field(default=None, alias="contentName", description='目录名称') | |
|     content_stat: Optional[str] = Field(default=None, alias="contentStat", description='目录状态') | |
|     content_intr: Optional[str] = Field(default=None, alias="contentIntr", description='目录简介') | |
|     content_pic: Optional[str] = Field(default=None, alias="contentPic", description='目录负责人') | |
|     supr_content_onum: Optional[int] = Field(default=None, alias="suprContentOnum", description='上级目录序号') | |
|     leaf_node_flag: Optional[int] = Field(default=None, alias="leafNodeFlag", description='叶子结点标志(自动计算)') | |
|     upd_prsn: Optional[str] = Field(default=None, alias="updPrsn", description='更新人员(必填)') | |
|     upd_time: Optional[datetime] = Field(default=None, alias="updTime", description='更新时间') | |
|     # 校验逻辑保持不变 | |
|     @NotBlank(field_name='content_name', message='目录名称不能为空') | |
|     @Size(field_name='content_name', min_length=0, max_length=255, message='目录名称长度不能超过255个字符') | |
|     @NotBlank(field_name='upd_prsn', message='更新人员不能为空') | |
|     @Size(field_name='upd_prsn', min_length=0, max_length=255, message='更新人员长度不能超过255个字符') | |
|     @NotBlank(field_name='content_stat', message='目录状态不能为空')   | |
|     @Size(field_name='content_stat', min_length=0, max_length=255) | |
|     def validate_fields(self): | |
|         pass | |
| 
 | |
| 
 | |
| class DataCatalogResponse(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) | |
|     content_onum: Optional[int] = Field(default=None,alias="contentOnum", description='目录ID') | |
|     content_name: Optional[str] = Field(default=None,alias="contentName", description='目录名称') | |
|     content_stat: Optional[str] = Field(default=None,alias="contentStat", description='目录状态') | |
|     content_intr: Optional[str] = Field(default=None,alias="contentIntr", description='目录简介') | |
|     content_pic: Optional[str] = Field(default=None,alias="contentPic", description='目录负责人') | |
|     supr_content_onum: Optional[int] = Field(default=None,alias="suprContentOnum", description='上级目录序号') | |
|     leaf_node_flag: Optional[int] = Field(default=None,alias="leafNodeFlag", description='叶子结点标志') | |
|     upd_prsn: Optional[str] = Field(default=None,alias="updPrsn", description='更新人员') | |
|     upd_time: Optional[datetime] = Field(default=None,alias="updTime", description='更新时间') | |
| 
 | |
| class DataCatalogQueryModel(DataCatalogRequest): | |
|     """ | |
|     目录管理不分页查询模型 | |
|     """ | |
|     begin_time: Optional[str] = Field(default=None, description='开始时间') | |
|     end_time: Optional[str] = Field(default=None, description='结束时间') | |
| 
 | |
| @as_query | |
| class DataCatalogPageQueryModel(DataCatalogQueryModel): | |
|     """ | |
|     目录管理分页查询模型 | |
|     """ | |
|     page_num: int = Field(default=1, description='当前页码') | |
|     page_size: int = Field(default=10, description='每页记录数') | |
| 
 | |
| 
 | |
| class DeleteDataCatalogModel(BaseModel): | |
|     """ | |
|     删除目录模型 | |
|     """ | |
|     model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True) | |
|     content_onums: str = Field(alias="contentOnums", description='需要删除的目录ID') | |
| 
 | |
| 
 | |
| 
 | |
| class DataCatalogChild(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) | |
|     rela_onum: Optional[int] = Field(default=None, alias="relaOnum", description='目录关系序号') | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='目录序号') | |
|     ast_onum: Optional[int] = Field(default=None, alias="astOnum", description='资产序号') | |
|     rela_type: Optional[str] = Field(default="归属关系", alias="relaType", description='关系类型') | |
|     rela_eff_begn_date: Optional[datetime] = Field(default=None, alias="relaEffBegnDate", description='关系有效起始日期') | |
|     rela_eff_end_date: Optional[datetime] = Field(default=None, alias="relaEffEndDate", description='关系有效终止日期') | |
|     upd_prsn: Optional[str] = Field(default=None, alias="updPrsn", description='更新人员') | |
|     rela_status: Optional[str] = Field(default=None, alias="relaStatus", description='关系状态') | |
| 
 | |
| class DataCatalogResponseWithChildren(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='目录ID') | |
|     content_name: Optional[str] = Field(default=None, alias="contentName", description='目录名称') | |
|     content_stat: Optional[str] = Field(default=None, alias="contentStat", description='目录状态') | |
|     content_intr: Optional[str] = Field(default=None, alias="contentIntr", description='目录简介') | |
|     content_pic: Optional[str] = Field(default=None, alias="contentPic", description='目录负责人') | |
|     supr_content_onum: Optional[int] = Field(default=None, alias="suprContentOnum", description='上级目录序号') | |
|     leaf_node_flag: Optional[int] = Field(default=None, alias="leafNodeFlag", description='叶子结点标志') | |
|     upd_prsn: Optional[str] = Field(default=None, alias="updPrsn", description='更新人员') | |
|     upd_time: Optional[datetime] = Field(default=None, alias="updTime", description='更新时间') | |
|     children: List[DataCatalogChild] = Field(default_factory=list, description='子关系列表') | |
| 
 | |
| 
 | |
| # 数据资产树模型 | |
| 
 | |
| class DataAssetCatalogTreeNode(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) | |
|     data_ast_eng_name: Optional[str] = Field(default=None, alias="dataAssetCatalogNo", description='数据资产序号') | |
|     data_ast_cn_name: Optional[str] = Field(default=None, alias="dataAssetCatalogName", description='数据资产名称') | |
|     ast_no: Optional[int] = Field(default=None, alias="dataAssetCatalogAstno", description='资产编号') | |
|     children: List['DataAssetCatalogTreeNode'] = Field(default_factory=list, description='子节点列表') | |
| 
 | |
| 
 | |
| class DataAssetCatalogTreeResponse(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) | |
|     # data_ast_src: Optional[str] = Field(default=None, alias="dataAssetSysName", description='数据资产系统名称') | |
|     data_ast_src: Optional[int] = Field(default=None, alias="dataAstSrc", description='数据资产系统') | |
|     children: List[DataAssetCatalogTreeNode] = Field(default_factory=list, description='子节点列表') | |
| 
 | |
| 
 | |
| class DataCatalogMovedRequest(BaseModel): | |
|     model_config = ConfigDict( | |
|         alias_generator=to_camel, | |
|         populate_by_name=True,   | |
|         extra='ignore',         # 使用字符串形式替代Extra.ignore | |
|         from_attributes=True | |
|     ) | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='移动前的目录序号') | |
|     supr_content_onum: Optional[int] = Field(default=None, alias="suprContentOnum", description='移动前的上级目录序号') | |
|     supr_content_onum_after: Optional[int] = Field(default=None, alias="suprContentOnumAfter", description='移动后的上级目录序号') | |
| 
 | |
| class DataCatalogMergeRequest(BaseModel): | |
|     model_config = ConfigDict( | |
|         alias_generator=to_camel, | |
|         populate_by_name=True, | |
|         extra='ignore', | |
|         from_attributes=True | |
|     ) | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='移动前的目录序号') | |
|     supr_content_onum: Optional[int] = Field(default=None, alias="suprContentOnum", description='移动前的上级目录序号') | |
|     content_onum_after: Optional[int] = Field(default=None, alias="contentOnumAfter", description='合并前的上级目录序号') | |
|     supr_content_onum_after: Optional[int] = Field(default=None, alias="suprContentOnumAfter", description='合并后的上级目录序号') | |
| 
 | |
| class DataCatalogMoverelRequest(BaseModel): | |
|     model_config = ConfigDict( | |
|         alias_generator=to_camel, | |
|         populate_by_name=True, | |
|         extra='ignore', | |
|         from_attributes=True | |
|     ) | |
|     rela_onum: Optional[int] = Field(default=None, alias="relaOnum", description='关系序号') | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='目录序号') | |
|     content_onum_after: Optional[int] = Field(default=None, alias="contentOnumAfter", description='移动后的目录序号') | |
| 
 | |
| 
 | |
| 
 | |
| class DataCatalogMoverelRequest(BaseModel): | |
|     model_config = ConfigDict( | |
|         alias_generator=to_camel, | |
|         populate_by_name=True, | |
|         extra='ignore', | |
|         from_attributes=True | |
|     ) | |
|     rela_onum: Optional[int] = Field(default=None, alias="relaOnum", description='关系序号') | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='目录序号') | |
|     content_onum_after: Optional[int] = Field(default=None, alias="contentOnumAfter", description='移动后的目录序号') | |
|     upd_prsn: Optional[str] = Field(default=None, alias="updPrsn", description='更新人员') | |
| 
 | |
| 
 | |
| class DataAstBookmarkRelaRequest(BaseModel): | |
|     model_config = ConfigDict( | |
|         alias_generator=to_camel, | |
|         populate_by_name=True, | |
|         extra='ignore', | |
|         from_attributes=True | |
|     ) | |
|     rela_onum: Optional[int] = Field(default=None, alias="relaOnum", description='唯一关系序号') | |
|     user_id: Optional[str] = Field(default=None, alias="userId", description='用户ID') | |
|     data_ast_no: Optional[str] = Field(default=None, alias="dataAstNo", description='数据资产编号') | |
|     bookmark_orde: Optional[int] = Field(default=0, alias="bookmarkOrde", description='收藏顺序') | |
|     bookmark_time: Optional[datetime] = Field(default_factory=datetime.now, alias="bookmarkTime", description='收藏时间') | |
|     content_onum: Optional[int] = Field(default=None, alias="contentOnum", description='目录序号') | |
|     rela_type: Optional[str] = Field(default="归属关系", alias="relaType", description='关系类型') | |
|     rela_eff_begn_date: Optional[datetime] = Field(default=None, alias="relaEffBegnDate", description='关系有效起始日期') | |
|     rela_eff_end_date: Optional[datetime] = Field(default=None, alias="relaEffEndDate", description='关系有效终止日期') | |
| 
 | |
| 
 | |
| 
 | |
| class DataAstIndxRequest(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True, from_attributes=True) | |
|     ast_no: Optional[str] = Field(default=None, alias="astNo", description='资产编号') | |
|     indx_no: Optional[str] = Field(default=None, alias="indxNo", description='指标编号') | |
|     indx_name: Optional[str] = Field(default=None, alias="indxName", description='指标名称') | |
|     indx_val: Optional[float] = Field(default=None, alias="indxVal", description='指标值') | |
| 
 | |
| class DataAstIndxResponse(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) | |
|     ast_no: Optional[str] = Field(default=None, alias="astNo", description='资产编号') | |
|     indx_no: Optional[str] = Field(default=None, alias="indxNo", description='指标编号') | |
|     indx_name: Optional[str] = Field(default=None, alias="indxName", description='指标名称') | |
|     indx_val: Optional[float] = Field(default=None, alias="indxVal", description='指标值') | |
| 
 | |
| class DataAstSecuRequest(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True, from_attributes=True) | |
|     data_ast_src: Optional[str] = Field(default=None, alias="dataAstSrc", description='数据源连接') | |
|     # data_ast_src: Optional[int] = Field(default=None, alias="dataAstSrc", description='数据源连接') | |
|     data_ast_eng_name: Optional[str] = Field(default=None, alias="dataAstEngName", description='表英文名') | |
| 
 | |
| class DataAstSecuResponse(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel, populate_by_name=True, from_attributes=True) | |
|     data_ast_src: Optional[str] = Field(default=None, alias="dataAstSrc", description='数据源连接') | |
|     # data_astk_src: Optional[int] = Field(default=None, alias="dataAstSrc", description='数据源连接') | |
|     data_ast_eng_name: Optional[str] = Field(default=None, alias="dataAstEngName", description='表英文名') |