deepfos 1.1.60__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. deepfos/__init__.py +6 -0
  2. deepfos/_version.py +21 -0
  3. deepfos/algo/__init__.py +0 -0
  4. deepfos/algo/graph.py +171 -0
  5. deepfos/algo/segtree.py +31 -0
  6. deepfos/api/V1_1/__init__.py +0 -0
  7. deepfos/api/V1_1/business_model.py +119 -0
  8. deepfos/api/V1_1/dimension.py +599 -0
  9. deepfos/api/V1_1/models/__init__.py +0 -0
  10. deepfos/api/V1_1/models/business_model.py +1033 -0
  11. deepfos/api/V1_1/models/dimension.py +2768 -0
  12. deepfos/api/V1_2/__init__.py +0 -0
  13. deepfos/api/V1_2/dimension.py +285 -0
  14. deepfos/api/V1_2/models/__init__.py +0 -0
  15. deepfos/api/V1_2/models/dimension.py +2923 -0
  16. deepfos/api/__init__.py +0 -0
  17. deepfos/api/account.py +167 -0
  18. deepfos/api/accounting_engines.py +147 -0
  19. deepfos/api/app.py +626 -0
  20. deepfos/api/approval_process.py +198 -0
  21. deepfos/api/base.py +983 -0
  22. deepfos/api/business_model.py +160 -0
  23. deepfos/api/consolidation.py +129 -0
  24. deepfos/api/consolidation_process.py +106 -0
  25. deepfos/api/datatable.py +341 -0
  26. deepfos/api/deep_pipeline.py +61 -0
  27. deepfos/api/deepconnector.py +36 -0
  28. deepfos/api/deepfos_task.py +92 -0
  29. deepfos/api/deepmodel.py +188 -0
  30. deepfos/api/dimension.py +486 -0
  31. deepfos/api/financial_model.py +319 -0
  32. deepfos/api/journal_model.py +119 -0
  33. deepfos/api/journal_template.py +132 -0
  34. deepfos/api/memory_financial_model.py +98 -0
  35. deepfos/api/models/__init__.py +3 -0
  36. deepfos/api/models/account.py +483 -0
  37. deepfos/api/models/accounting_engines.py +756 -0
  38. deepfos/api/models/app.py +1338 -0
  39. deepfos/api/models/approval_process.py +1043 -0
  40. deepfos/api/models/base.py +234 -0
  41. deepfos/api/models/business_model.py +805 -0
  42. deepfos/api/models/consolidation.py +711 -0
  43. deepfos/api/models/consolidation_process.py +248 -0
  44. deepfos/api/models/datatable_mysql.py +427 -0
  45. deepfos/api/models/deep_pipeline.py +55 -0
  46. deepfos/api/models/deepconnector.py +28 -0
  47. deepfos/api/models/deepfos_task.py +386 -0
  48. deepfos/api/models/deepmodel.py +308 -0
  49. deepfos/api/models/dimension.py +1576 -0
  50. deepfos/api/models/financial_model.py +1796 -0
  51. deepfos/api/models/journal_model.py +341 -0
  52. deepfos/api/models/journal_template.py +854 -0
  53. deepfos/api/models/memory_financial_model.py +478 -0
  54. deepfos/api/models/platform.py +178 -0
  55. deepfos/api/models/python.py +221 -0
  56. deepfos/api/models/reconciliation_engine.py +411 -0
  57. deepfos/api/models/reconciliation_report.py +161 -0
  58. deepfos/api/models/role_strategy.py +884 -0
  59. deepfos/api/models/smartlist.py +237 -0
  60. deepfos/api/models/space.py +1137 -0
  61. deepfos/api/models/system.py +1065 -0
  62. deepfos/api/models/variable.py +463 -0
  63. deepfos/api/models/workflow.py +946 -0
  64. deepfos/api/platform.py +199 -0
  65. deepfos/api/python.py +90 -0
  66. deepfos/api/reconciliation_engine.py +181 -0
  67. deepfos/api/reconciliation_report.py +64 -0
  68. deepfos/api/role_strategy.py +234 -0
  69. deepfos/api/smartlist.py +69 -0
  70. deepfos/api/space.py +582 -0
  71. deepfos/api/system.py +372 -0
  72. deepfos/api/variable.py +154 -0
  73. deepfos/api/workflow.py +264 -0
  74. deepfos/boost/__init__.py +6 -0
  75. deepfos/boost/py_jstream.py +89 -0
  76. deepfos/boost/py_pandas.py +20 -0
  77. deepfos/cache.py +121 -0
  78. deepfos/config.py +6 -0
  79. deepfos/core/__init__.py +27 -0
  80. deepfos/core/cube/__init__.py +10 -0
  81. deepfos/core/cube/_base.py +462 -0
  82. deepfos/core/cube/constants.py +21 -0
  83. deepfos/core/cube/cube.py +408 -0
  84. deepfos/core/cube/formula.py +707 -0
  85. deepfos/core/cube/syscube.py +532 -0
  86. deepfos/core/cube/typing.py +7 -0
  87. deepfos/core/cube/utils.py +238 -0
  88. deepfos/core/dimension/__init__.py +11 -0
  89. deepfos/core/dimension/_base.py +506 -0
  90. deepfos/core/dimension/dimcreator.py +184 -0
  91. deepfos/core/dimension/dimension.py +472 -0
  92. deepfos/core/dimension/dimexpr.py +271 -0
  93. deepfos/core/dimension/dimmember.py +155 -0
  94. deepfos/core/dimension/eledimension.py +22 -0
  95. deepfos/core/dimension/filters.py +99 -0
  96. deepfos/core/dimension/sysdimension.py +168 -0
  97. deepfos/core/logictable/__init__.py +5 -0
  98. deepfos/core/logictable/_cache.py +141 -0
  99. deepfos/core/logictable/_operator.py +663 -0
  100. deepfos/core/logictable/nodemixin.py +673 -0
  101. deepfos/core/logictable/sqlcondition.py +609 -0
  102. deepfos/core/logictable/tablemodel.py +497 -0
  103. deepfos/db/__init__.py +36 -0
  104. deepfos/db/cipher.py +660 -0
  105. deepfos/db/clickhouse.py +191 -0
  106. deepfos/db/connector.py +195 -0
  107. deepfos/db/daclickhouse.py +171 -0
  108. deepfos/db/dameng.py +101 -0
  109. deepfos/db/damysql.py +189 -0
  110. deepfos/db/dbkits.py +358 -0
  111. deepfos/db/deepengine.py +99 -0
  112. deepfos/db/deepmodel.py +82 -0
  113. deepfos/db/deepmodel_kingbase.py +83 -0
  114. deepfos/db/edb.py +214 -0
  115. deepfos/db/gauss.py +83 -0
  116. deepfos/db/kingbase.py +83 -0
  117. deepfos/db/mysql.py +184 -0
  118. deepfos/db/oracle.py +131 -0
  119. deepfos/db/postgresql.py +192 -0
  120. deepfos/db/sqlserver.py +99 -0
  121. deepfos/db/utils.py +135 -0
  122. deepfos/element/__init__.py +89 -0
  123. deepfos/element/accounting.py +348 -0
  124. deepfos/element/apvlprocess.py +215 -0
  125. deepfos/element/base.py +398 -0
  126. deepfos/element/bizmodel.py +1269 -0
  127. deepfos/element/datatable.py +2467 -0
  128. deepfos/element/deep_pipeline.py +186 -0
  129. deepfos/element/deepconnector.py +59 -0
  130. deepfos/element/deepmodel.py +1806 -0
  131. deepfos/element/dimension.py +1254 -0
  132. deepfos/element/fact_table.py +427 -0
  133. deepfos/element/finmodel.py +1485 -0
  134. deepfos/element/journal.py +840 -0
  135. deepfos/element/journal_template.py +943 -0
  136. deepfos/element/pyscript.py +412 -0
  137. deepfos/element/reconciliation.py +553 -0
  138. deepfos/element/rolestrategy.py +243 -0
  139. deepfos/element/smartlist.py +457 -0
  140. deepfos/element/variable.py +756 -0
  141. deepfos/element/workflow.py +560 -0
  142. deepfos/exceptions/__init__.py +239 -0
  143. deepfos/exceptions/hook.py +86 -0
  144. deepfos/lazy.py +104 -0
  145. deepfos/lazy_import.py +84 -0
  146. deepfos/lib/__init__.py +0 -0
  147. deepfos/lib/_javaobj.py +366 -0
  148. deepfos/lib/asynchronous.py +879 -0
  149. deepfos/lib/concurrency.py +107 -0
  150. deepfos/lib/constant.py +39 -0
  151. deepfos/lib/decorator.py +310 -0
  152. deepfos/lib/deepchart.py +778 -0
  153. deepfos/lib/deepux.py +477 -0
  154. deepfos/lib/discovery.py +273 -0
  155. deepfos/lib/edb_lexer.py +789 -0
  156. deepfos/lib/eureka.py +156 -0
  157. deepfos/lib/filterparser.py +751 -0
  158. deepfos/lib/httpcli.py +106 -0
  159. deepfos/lib/jsonstreamer.py +80 -0
  160. deepfos/lib/msg.py +394 -0
  161. deepfos/lib/nacos.py +225 -0
  162. deepfos/lib/patch.py +92 -0
  163. deepfos/lib/redis.py +241 -0
  164. deepfos/lib/serutils.py +181 -0
  165. deepfos/lib/stopwatch.py +99 -0
  166. deepfos/lib/subtask.py +572 -0
  167. deepfos/lib/sysutils.py +703 -0
  168. deepfos/lib/utils.py +1003 -0
  169. deepfos/local.py +160 -0
  170. deepfos/options.py +670 -0
  171. deepfos/translation.py +237 -0
  172. deepfos-1.1.60.dist-info/METADATA +33 -0
  173. deepfos-1.1.60.dist-info/RECORD +175 -0
  174. deepfos-1.1.60.dist-info/WHEEL +5 -0
  175. deepfos-1.1.60.dist-info/top_level.txt +1 -0
@@ -0,0 +1,188 @@
1
+ from typing import Union, Awaitable, List, Any, Dict, Literal
2
+
3
+ from deepfos.lib.decorator import cached_property
4
+ from .base import DynamicRootAPI, ChildAPI, get, post
5
+ from .models.deepmodel import *
6
+
7
+ __all__ = ['DeepModelAPI']
8
+
9
+
10
+ class ObjectAPI(ChildAPI):
11
+ """模型对象相关"""
12
+ endpoint = '/object'
13
+
14
+ @get('all/get')
15
+ def get_all(self, ) -> Union[ObjectOperationParam, Awaitable[ObjectOperationParam]]:
16
+ return {}
17
+
18
+ @get('list')
19
+ def list(self, ) -> Union[List[ObjectBasicDTO], Awaitable[List[ObjectBasicDTO]]]:
20
+ return {}
21
+
22
+ @get('info')
23
+ def info(self, app: str = None, object_code: str = None) -> Union[ObjectParam, Awaitable[ObjectParam]]:
24
+ return {'param': {'app': app, 'objectCode': object_code}}
25
+
26
+
27
+ class RuleAPI(ChildAPI):
28
+ """规则清单相关"""
29
+ endpoint = '/rules'
30
+
31
+ @get('/')
32
+ def info(self, app: str = None, object_code: str = None, trigger_type: Literal['BEFORE_CREATE_SAVE', 'BEFORE_UPDATE_SAVE'] = None) -> Union[List[RuleInfoRes], Awaitable[List[RuleInfoRes]]]:
33
+ """获取业务规则清单
34
+
35
+ Args:
36
+ app: 对象所属app
37
+ object_code: 对象编码
38
+ trigger_type: 规则触发时机(BEFORE_CREATE_SAVE - 数据新建保存前; BEFORE_UPDATE_SAVE - 数据更新保存前)
39
+
40
+ """
41
+ return {'param': {'app': app, 'objectCode': object_code, 'triggerType': trigger_type}}
42
+
43
+
44
+ class SeqAPI(ChildAPI):
45
+ """序列生成相关"""
46
+ endpoint = '/sequence'
47
+
48
+ @post('/instance/edit')
49
+ def edit(self, current_value: int = None, seq_id: str = None, seq_key: str = None, seq_name: str = None) -> Union[None, Awaitable[None]]:
50
+ """修改序列实例
51
+
52
+ Args:
53
+ current_value: 当前值
54
+ seq_id: 序列编号
55
+ seq_key: 序列主键
56
+ seq_name: 序列名称
57
+
58
+ """
59
+ return {'body': {"currentValue": current_value, "sequenceId": seq_id, "sequenceKey": seq_key, "sequenceName": seq_name}}
60
+
61
+ @get('/instance/next-value')
62
+ def next_value(self, code: str = None, seq_key: str = None) -> Union[int, Awaitable[int]]:
63
+ """获取序列实例的最新值
64
+
65
+ Args:
66
+ code: 序列编码
67
+ seq_key: 序列主键
68
+
69
+ """
70
+ return {'param': {'code': code, 'sequenceKey': seq_key}}
71
+
72
+ @get('/instances')
73
+ def list(self, id: str = None, filter_value: str = None) -> Union[List[SequenceInstance], Awaitable[List[SequenceInstance]]]:
74
+ """获取序列的实例清单
75
+
76
+ 无入参获取所有序列,有入参按照入参匹配序列编码
77
+
78
+ Args:
79
+ id: 序列编号
80
+ filter_value: 过滤值
81
+
82
+ """
83
+ return {'param': {'id': id, 'filterValue': filter_value}}
84
+
85
+
86
+ class ShardingAPI(ChildAPI):
87
+ """分库信息"""
88
+ endpoint = '/sharding'
89
+
90
+ @get('database')
91
+ def database(self, ) -> Union[SimpleSpaceConnectionConfig, Awaitable[SimpleSpaceConnectionConfig]]:
92
+ return {}
93
+
94
+
95
+ class DeepQLAPI(ChildAPI):
96
+ """查询器"""
97
+ endpoint = '/public/deepql/actions'
98
+
99
+ @post('query')
100
+ def query(self, module: str = None, query: str = None, variables: Dict = None) -> Union[QueryResult, Awaitable[QueryResult]]:
101
+ return {'body': {'module': module, 'query': query, 'variables': variables}}
102
+
103
+ @post('execute')
104
+ def execute(self, module: str = None, query: str = None, variables: Dict = None) -> Union[Any, Awaitable[Any]]:
105
+ return {'body': {'module': module, 'query': query, 'variables': variables}}
106
+
107
+
108
+ class PresentationAPI(ChildAPI):
109
+ """展示层"""
110
+ endpoint = '/presentation-layer'
111
+
112
+ @get('ql-selector/ql-record-info')
113
+ def ql_record_info(self, qlType: str, recordCode: str) -> Union[QlRecordVO, Awaitable[QlRecordVO]]:
114
+ """获取单条记录
115
+
116
+ Args:
117
+ qlType: 查询类型 'deepql'|'analysisql'
118
+ recordCode: 查询编码
119
+
120
+ """
121
+ return {'param': {'qlType': qlType, 'recordCode': recordCode}}
122
+
123
+ @get('ql-selector/ql-records')
124
+ def ql_records(self, qlType: str = None, qlRecordType: str = None) -> Union[List[QlRecordVO], Awaitable[List[QlRecordVO]]]:
125
+ """获取所有的ql记录
126
+
127
+ Args:
128
+ qlType: 查询类型 'deepql'|'analysisql'
129
+ qlRecordType: 记录类型:个人PERSONAL /公共:PUBLIC
130
+
131
+ Returns:
132
+
133
+ """
134
+ return {'param': {'qlType': qlType, 'qlRecordType': qlRecordType}}
135
+
136
+
137
+ class ExtraAPI(ChildAPI):
138
+ """其他接口"""
139
+ endpoint = '/'
140
+
141
+ @get('git-version')
142
+ def version(self, ) -> Union[str, Awaitable[str]]:
143
+ return {}
144
+
145
+
146
+ class DeepModelAPI(DynamicRootAPI, builtin=True):
147
+ """DeepModel组件接口"""
148
+ module_type = 'DM'
149
+ default_version = (1, 0)
150
+ multi_version = False
151
+ cls_name = 'DeepModelAPI'
152
+ module_name = 'deepfos.api.deepmodel'
153
+ api_version = (1, 0)
154
+
155
+ @cached_property
156
+ def object(self) -> ObjectAPI:
157
+ """模型对象相关"""
158
+ return ObjectAPI(self)
159
+
160
+ @cached_property
161
+ def deepql(self) -> DeepQLAPI:
162
+ """查询器"""
163
+ return DeepQLAPI(self)
164
+
165
+ @cached_property
166
+ def rule(self) -> RuleAPI:
167
+ """规则清单相关"""
168
+ return RuleAPI(self)
169
+
170
+ @cached_property
171
+ def seq(self) -> SeqAPI:
172
+ """序列生成相关"""
173
+ return SeqAPI(self)
174
+
175
+ @cached_property
176
+ def sharding(self) -> ShardingAPI:
177
+ """分库信息"""
178
+ return ShardingAPI(self)
179
+
180
+ @cached_property
181
+ def presentation(self) -> PresentationAPI:
182
+ """展示层"""
183
+ return PresentationAPI(self)
184
+
185
+ @cached_property
186
+ def extra(self) -> ExtraAPI:
187
+ """其他接口"""
188
+ return ExtraAPI(self)
@@ -0,0 +1,486 @@
1
+ """
2
+ APIs provided by dimension-server1-0
3
+
4
+ generated by api_code_gen.py
5
+ - **filename** : ``dimension.py``
6
+ - **json timestamp** : ``2022-09-02 19:26:55``
7
+ """
8
+ from deepfos.api.base import get, post, DynamicRootAPI, ChildAPI
9
+ from .models.dimension import *
10
+ from deepfos.lib.decorator import cached_property
11
+ from typing import List, Dict, Union, Any, Awaitable
12
+
13
+
14
+ __all__ = ['DimensionAPI']
15
+
16
+
17
+ class DimSaveAPI(ChildAPI):
18
+ endpoint = '/dimension-save'
19
+
20
+ @post('dimension-member-change-save')
21
+ def incremental(self, dimension: DimensionMemberChangeSaveSw) -> Union[DimensionChangeSaveResult, Awaitable[DimensionChangeSaveResult]]:
22
+ """
23
+ 维度树形增量编辑成员
24
+
25
+ 给页面提供可拖拉拽的增加编辑删除的增量编辑接口
26
+ """
27
+ return {'body': dimension}
28
+
29
+
30
+ class DimCheckAPI(ChildAPI):
31
+ endpoint = '/dimension/check'
32
+
33
+ @post('exists')
34
+ def exists(self, dimensions: List[ElementBaseInfoParam]) -> Union[Any, Awaitable[Any]]:
35
+ """
36
+ 批量查询维度是否存在
37
+
38
+ """
39
+ return {'body': dimensions}
40
+
41
+ @post('member/exists')
42
+ def member_exists(self, dto: ElementBaseInfoDto) -> Union[Any, Awaitable[Any]]:
43
+ """
44
+ 批量查询维度成员是存在
45
+
46
+ """
47
+ return {'body': dto}
48
+
49
+ @post('member/exists/batch/express')
50
+ def member_exists_batch_express(self, dtos: List[DimensionExpressDto]) -> Union[List[DimensionExpressExistsResult], Awaitable[List[DimensionExpressExistsResult]]]:
51
+ """
52
+ 批量校验表达式成员是否存在
53
+
54
+ 批量校验组成表达式的成员是否都存在
55
+ """
56
+ return {'body': dtos}
57
+
58
+ @post('member/exists/express')
59
+ def member_exists_express(self, dto: DimensionExpressDto) -> Union[DimensionExpressExistsResult, Awaitable[DimensionExpressExistsResult]]:
60
+ """
61
+ 校验表达式成员是否存在
62
+
63
+ 校验组成表达式的成员是否都存在
64
+ """
65
+ return {'body': dto}
66
+
67
+ @post('member/exists/single')
68
+ def member_exists_single(self, dto: ElementBaseInfoDto) -> Union[Any, Awaitable[Any]]:
69
+ """
70
+ 查询单个维度成员是否存在
71
+
72
+ """
73
+ return {'body': dto}
74
+
75
+ @post('member/express/contains')
76
+ def member_express_contains(self, dto: DimensionExpressAndMemberDto) -> Union[DimensionExpressExistsResult, Awaitable[DimensionExpressExistsResult]]:
77
+ """
78
+ 校验成员是否在表达式中
79
+
80
+ 校验维度成员是否被表达式包括
81
+ """
82
+ return {'body': dto}
83
+
84
+ @post('member/multi/express-rs/contains')
85
+ def member_multi_express_rs_contains(self, dtos: List[MemberInExpressAndRsDto]) -> Union[List[MemberInExpressAndRsResult], Awaitable[List[MemberInExpressAndRsResult]]]:
86
+ """
87
+ 批量维度校验成员是否在表达式和权限中
88
+
89
+ 批量维度校验成员是否在表达式和角色方案中
90
+ """
91
+ return {'body': dtos}
92
+
93
+ @post('member/multi/express/contains')
94
+ def member_multi_express_contains(self, dtos: List[DimensionExpressAndMemberDto]) -> Union[List[DimensionExpressExistsResult], Awaitable[List[DimensionExpressExistsResult]]]:
95
+ """
96
+ 批量维度校验成员是否在表达式中
97
+
98
+ """
99
+ return {'body': dtos}
100
+
101
+
102
+ class DimCustomAPI(ChildAPI):
103
+ endpoint = '/dimension/custom'
104
+
105
+ @post('get-around-dimension')
106
+ def get_around_dimension(self, dto: AroundDimensionDto) -> Union[Any, Awaitable[Any]]:
107
+ """
108
+ 获取前后第n个维度成员
109
+
110
+ """
111
+ return {'body': dto}
112
+
113
+ @post('get-dimension-description')
114
+ def get_dimension_description(self, expr_list: List[DimensionDescriptionDto]) -> Union[List[DimensionDescriptionReDto], Awaitable[List[DimensionDescriptionReDto]]]:
115
+ """
116
+ 获取维度成员描述
117
+
118
+ """
119
+ return {'body': expr_list}
120
+
121
+ @post('get-dimension-member-by-level')
122
+ def get_dimension_member_by_level(self, dto: DimensionMemberByLevelDto) -> Union[Any, Awaitable[Any]]:
123
+ """
124
+ 通过层级获取维度成员
125
+
126
+ """
127
+ return {'body': dto}
128
+
129
+ @post('get-dimension-member-by-parent')
130
+ def get_dimension_member_by_parent(self, dto: DimensionMemberByParentDto) -> Union[Any, Awaitable[Any]]:
131
+ """
132
+ 根据父级属性查维度成员
133
+
134
+ """
135
+ return {'body': dto}
136
+
137
+ @post('get-more-level-member')
138
+ def get_more_level_member(self, dto: MoreLevelMemberDto) -> Union[Any, Awaitable[Any]]:
139
+ """
140
+ POV的多层级显示
141
+
142
+ """
143
+ return {'body': dto}
144
+
145
+ @post('get-ud-value-by-express')
146
+ def get_ud_value_by_express(self, dto: UdValueByExpressDto) -> Union[Any, Awaitable[Any]]:
147
+ """
148
+ 根据表达式获取维度自定义属性
149
+
150
+ """
151
+ return {'body': dto}
152
+
153
+ @post('select-dimension-member-list')
154
+ def select_dimension_member_list(self, dto: DimensionMemberListDto) -> Union[Any, Awaitable[Any]]:
155
+ """
156
+ 查询维度成员列表
157
+
158
+ """
159
+ return {'body': dto}
160
+
161
+
162
+ class DimExcelAPI(ChildAPI):
163
+ endpoint = '/dimension/excel'
164
+
165
+ @post('export-dimension-member')
166
+ def export_dimension_member(self, ) -> Union[ResultObj, Awaitable[ResultObj]]:
167
+ """
168
+ 导出Excel维度成员
169
+
170
+ """
171
+ return {}
172
+
173
+ @post('import-dimension-member')
174
+ def import_dimension_member(self, ) -> Union[ResultObj, Awaitable[ResultObj]]:
175
+ """
176
+ Excel导入维度成员
177
+
178
+ """
179
+ return {}
180
+
181
+
182
+ class DimInfoAPI(ChildAPI):
183
+ endpoint = '/dimension/info'
184
+
185
+ @post('build-period-config-and-member')
186
+ def build_period_config_and_member(self, dto: PeriodConfigDto) -> Union[Any, Awaitable[Any]]:
187
+ """
188
+ 编辑期间层级
189
+
190
+ 编辑期间层级生成对应period成员与view视图
191
+ """
192
+ return {'body': dto}
193
+
194
+ @post('initialization-tables')
195
+ def initialization_tables(self, vo: ElementBaseInfoParam) -> Union[Any, Awaitable[Any]]:
196
+ """
197
+ 维度导入导出时,如果没有导表,初始化表
198
+
199
+ """
200
+ return {'body': vo}
201
+
202
+ @get('relation')
203
+ def get_relation(self, elementName: str, folderId: str = None, path: str = None) -> Union[List[RelationVo], Awaitable[List[RelationVo]]]:
204
+ """
205
+ 获取维度关联元素清单
206
+
207
+ """
208
+ return {'param': {'elementName': elementName, 'folderId': folderId, 'path': path}}
209
+
210
+ @post('relation')
211
+ def save_relation(self, vo: DimensionRelationVo) -> Union[Any, Awaitable[Any]]:
212
+ """
213
+ 保存维度关联元素清单
214
+
215
+ """
216
+ return {'body': vo}
217
+
218
+ @post('save-dimension-info-and-ud')
219
+ def save_dimension_info_and_ud(self, dimensionData: str) -> Union[str, Awaitable[str]]:
220
+ """
221
+ 维度新建及编辑
222
+
223
+ """
224
+ return {'body': dimensionData}
225
+
226
+ @post('update-view-member')
227
+ def update_view_member(self, dimension: UpdateViewMemberSw) -> Union[Any, Awaitable[Any]]:
228
+ """
229
+ 更新view成员描述
230
+
231
+ """
232
+ return {'body': dimension}
233
+
234
+
235
+ class DimMemeberAPI(ChildAPI):
236
+ endpoint = '/dimension/member'
237
+
238
+ @post('save-dimension-member')
239
+ def save(self, members: DimensionMemberSaveDto) -> Union[ResultObj, Awaitable[ResultObj]]:
240
+ """
241
+ 保存维度成员信息
242
+
243
+ 全量及增量编辑维度成员
244
+ """
245
+ return {'body': members}
246
+
247
+
248
+ class DimQueryAPI(ChildAPI):
249
+ endpoint = '/dimension/query'
250
+
251
+ @post('date-dimension')
252
+ def date_dimension(self, params: DateDimensionDto) -> Union[Any, Awaitable[Any]]:
253
+ """
254
+ 获取期间维度
255
+
256
+ """
257
+ return {'body': params}
258
+
259
+ @get('find-dimension-type')
260
+ def find_dimension_type(self, folderId: str, path: str = None) -> Union[List[Dict[str, Any]], Awaitable[List[Dict[str, Any]]]]:
261
+ """
262
+ 查询可新建的维度类型
263
+
264
+ """
265
+ return {'param': {'folderId': folderId, 'path': path}}
266
+
267
+ @post('get-access-dimension-member-list')
268
+ def get_access_dimension_member_list(self, allParam: DimensionMemberQuerySw) -> Union[Any, Awaitable[Any]]:
269
+ """
270
+ 维度成员不分层级搜索
271
+
272
+ 维度成员不分层级搜索,通用查询
273
+ """
274
+ return {'body': allParam}
275
+
276
+ @post('get-all-year-period-of-sceanrio')
277
+ def get_all_year_period_of_sceanrio(self, dto: AllYearPeriodOfSceanrioDto) -> Union[Any, Awaitable[Any]]:
278
+ """
279
+ 根据开始结束年期间返回所有组合
280
+
281
+ """
282
+ return {'body': dto}
283
+
284
+ @post('get-authorized-dimension-member-level')
285
+ def get_authorized_dimension_member_level(self, dto: DimensionMemberLevelAuthorizedDto) -> Union[Any, Awaitable[Any]]:
286
+ """
287
+ 维度成员层级搜索
288
+
289
+ 维度成员层级搜索--树形展示,通用查询
290
+ """
291
+ return {'body': dto}
292
+
293
+ @post('get-dimension-list')
294
+ def get_dimension_list(self, dimensions: List[ElementBaseInfoParam]) -> Union[List[Dimension], Awaitable[List[Dimension]]]:
295
+ """
296
+ 获取维度信息
297
+
298
+ 批量获取维度信息
299
+ """
300
+ return {'body': dimensions}
301
+
302
+ @post('get-member-level')
303
+ def get_member_level(self, allParam: Any) -> Union[Any, Awaitable[Any]]:
304
+ """
305
+ 维度成员层级查询
306
+
307
+ """
308
+ return {'body': allParam}
309
+
310
+ @post('get-open-period-config')
311
+ def get_open_period_config(self, param: ElementBaseQueryParam) -> Union[Any, Awaitable[Any]]:
312
+ """
313
+ 查询期间维度配置列表
314
+
315
+ """
316
+ return {'body': param}
317
+
318
+ @get('get-period-by-level')
319
+ def get_period_by_level(self, periodLevel: str, dimensionName: str, folderId: str = None, path: str = None) -> Union[List, Awaitable[List]]:
320
+ """
321
+ 根据期间层级查询期间维度成员
322
+
323
+ """
324
+ return {
325
+ 'param': {
326
+ 'dimensionName': dimensionName,
327
+ 'folderId': folderId,
328
+ 'path': path,
329
+ 'periodLevel': periodLevel,
330
+ },
331
+ }
332
+
333
+ @post('get-view-by-express')
334
+ def get_view_by_express(self, dto: ViewExpressDto) -> Union[List[ViewDto], Awaitable[List[ViewDto]]]:
335
+ """
336
+ 根据view表达式,period维度名,folderId查询view成员
337
+
338
+ """
339
+ return {'body': dto}
340
+
341
+ @post('get-view-by-period')
342
+ def get_view_by_period(self, dto: ElementQueryBaseDto) -> Union[List[ViewDto], Awaitable[List[ViewDto]]]:
343
+ """
344
+ 根据period维度名,folderId查询所有view维度成员
345
+
346
+ """
347
+ return {'body': dto}
348
+
349
+ @post('open-dimension-info-by-id')
350
+ def open_dimension_info_by_id(self, dto: ElementBaseInfoDto) -> Union[Dimension, Awaitable[Dimension]]:
351
+ """
352
+ 打开维度主体信息
353
+
354
+ 查看维度主体信息
355
+ """
356
+ return {'body': dto}
357
+
358
+ @get('select-dimension-member')
359
+ def select_dimension_member(self, dimensionName: str, folderId: str = None, id: str = None, memberName: str = None, path: str = None, resultString: str = None) -> Union[Dict[str, Any], Awaitable[Dict[str, Any]]]:
360
+ """
361
+ 查询单个维度成员信息
362
+
363
+ """
364
+ return {
365
+ 'param': {
366
+ 'dimensionName': dimensionName,
367
+ 'folderId': folderId,
368
+ 'id': id,
369
+ 'memberName': memberName,
370
+ 'path': path,
371
+ 'resultString': resultString,
372
+ },
373
+ }
374
+
375
+ @post('select-dimension-member-by-name-function')
376
+ def select_dimension_member_by_name_function(self, dto: DimensionMemberByNameFunctionDto) -> Union[List[DimensionMemberBean], Awaitable[List[DimensionMemberBean]]]:
377
+ """
378
+ 通过表达式查询维度成员
379
+
380
+ """
381
+ return {'body': dto}
382
+
383
+ @post('select-dimension-member-by-name-function-batch')
384
+ def select_dimension_member_by_name_function_batch(self, dtoList: List[DimensionMemberByNameFunctionDto]) -> Union[Any, Awaitable[Any]]:
385
+ """
386
+ 通过表达式查询维度成员 - 批量
387
+
388
+ 通过表达式查询维度成员
389
+ """
390
+ return {'body': dtoList}
391
+
392
+
393
+ class DimFinanceAPI(ChildAPI):
394
+ endpoint = '/finance/dimension'
395
+
396
+ @post('check-and-save-dimension-member')
397
+ def check_and_save_dimension_member(self, data: DimensionMemberDto) -> Union[Any, Awaitable[Any]]:
398
+ """
399
+ 校验维度成员是否存在并保存
400
+
401
+ """
402
+ return {'body': data}
403
+
404
+ @post('save-dimension-and-member')
405
+ def save_dimension_and_member(self, dimensionList: List[Dict]) -> Union[Any, Awaitable[Any]]:
406
+ """
407
+ 保存维度和成员
408
+
409
+ """
410
+ return {'body': dimensionList}
411
+
412
+ @post('save-verify')
413
+ def save_verify(self, datas: List[Dict]) -> Union[Any, Awaitable[Any]]:
414
+ """
415
+ 校验维度是否存在
416
+
417
+ """
418
+ return {'body': datas}
419
+
420
+
421
+ class DimensionAPI(DynamicRootAPI, builtin=True):
422
+ """维度组件接口"""
423
+ module_type = 'DIM'
424
+ default_version = (1, 0)
425
+ multi_version = True
426
+ cls_name = 'DimensionAPI'
427
+ module_name = 'deepfos.api.dimension'
428
+ api_version = (1, 0)
429
+
430
+ @cached_property
431
+ def save(self) -> DimSaveAPI:
432
+ """
433
+ 维度树操作
434
+ """
435
+ return DimSaveAPI(self)
436
+
437
+ @cached_property
438
+ def check(self) -> DimCheckAPI:
439
+ """
440
+ 维度校验
441
+ """
442
+ return DimCheckAPI(self)
443
+
444
+ @cached_property
445
+ def custom(self) -> DimCustomAPI:
446
+ """
447
+ 维度特殊查询,主要提供给财务数据模型
448
+ """
449
+ return DimCustomAPI(self)
450
+
451
+ @cached_property
452
+ def excel(self) -> DimExcelAPI:
453
+ """
454
+ 维度导入导出
455
+ """
456
+ return DimExcelAPI(self)
457
+
458
+ @cached_property
459
+ def info(self) -> DimInfoAPI:
460
+ """
461
+ 维度主体信息操作
462
+ """
463
+ return DimInfoAPI(self)
464
+
465
+ @cached_property
466
+ def member(self) -> DimMemeberAPI:
467
+ """
468
+ 维度成员操作
469
+ """
470
+ return DimMemeberAPI(self)
471
+
472
+ @cached_property
473
+ def query(self) -> DimQueryAPI:
474
+ """
475
+ 维度查询
476
+ """
477
+ return DimQueryAPI(self)
478
+
479
+ @cached_property
480
+ def finance(self) -> DimFinanceAPI:
481
+ """
482
+ 财务数据模型操作维度
483
+ """
484
+ return DimFinanceAPI(self)
485
+
486
+