@things-factory/kpi 9.1.19 → 10.0.0-beta.2
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.
- package/client/pages/kpi/kpi-list-page.ts +339 -525
- package/client/pages/kpi/kpi-tree-page.ts +135 -207
- package/client/pages/kpi-metric/kpi-metric-list-page.ts +146 -226
- package/client/pages/kpi-metric-value/kpi-metric-value-editor-page.ts +187 -295
- package/client/pages/kpi-metric-value/kpi-metric-value-list-page.ts +123 -194
- package/client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.ts +57 -91
- package/client/pages/kpi-statistic/kpi-statistic-editor-page.ts +180 -278
- package/client/pages/kpi-statistic/kpi-statistic-list-page.ts +186 -286
- package/client/pages/kpi-value/kpi-value-editor-page.ts +189 -292
- package/client/pages/kpi-value/kpi-value-list-page.ts +170 -264
- package/dist-client/pages/kpi/kpi-list-page.d.ts +0 -6
- package/dist-client/pages/kpi/kpi-list-page.js +150 -282
- package/dist-client/pages/kpi/kpi-list-page.js.map +1 -1
- package/dist-client/pages/kpi/kpi-tree-page.d.ts +1 -7
- package/dist-client/pages/kpi/kpi-tree-page.js +76 -127
- package/dist-client/pages/kpi/kpi-tree-page.js.map +1 -1
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.d.ts +0 -6
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.js +62 -116
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.d.ts +1 -7
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js +82 -140
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.d.ts +0 -6
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js +54 -98
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js.map +1 -1
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.d.ts +1 -7
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js +30 -57
- package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js.map +1 -1
- package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.d.ts +1 -7
- package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js +91 -153
- package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js.map +1 -1
- package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.d.ts +0 -6
- package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js +81 -155
- package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-editor-page.d.ts +1 -7
- package/dist-client/pages/kpi-value/kpi-value-editor-page.js +80 -136
- package/dist-client/pages/kpi-value/kpi-value-editor-page.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-list-page.d.ts +0 -6
- package/dist-client/pages/kpi-value/kpi-value-list-page.js +73 -134
- package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/index.d.ts +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -18
- package/client/tsconfig.json +0 -11
- package/dist-server/tsconfig.json +0 -10
- package/server/@types/index.d.ts +0 -11
- package/server/calculator/evaluator.ts +0 -45
- package/server/calculator/functions.ts +0 -67
- package/server/calculator/index.ts +0 -4
- package/server/calculator/parser.ts +0 -137
- package/server/calculator/provider.ts +0 -10
- package/server/controllers/index.ts +0 -2
- package/server/controllers/kpi-metric-value-provider.ts +0 -79
- package/server/controllers/kpi-value-provider.ts +0 -51
- package/server/index.ts +0 -6
- package/server/migrations/1752190849680-seed-kpi-metrics.ts +0 -124
- package/server/migrations/1752190849681-seed-kpi.ts +0 -356
- package/server/migrations/1752192090123-add-grades-to-kpi.ts +0 -67
- package/server/migrations/1752192090124-add-kpi-statistics.ts +0 -719
- package/server/migrations/1752192090128-seed-kpi-org-scope.ts +0 -132
- package/server/migrations/1752192090129-seed-kpi-values.ts +0 -207
- package/server/migrations/grade-data/x11-performance-table.json +0 -962
- package/server/migrations/grade-data/x12-performance-table.json +0 -611
- package/server/migrations/grade-data/x14-performance-table.json +0 -42
- package/server/migrations/grade-data/x21-performance-table.json +0 -889
- package/server/migrations/grade-data/x22-performance-table.json +0 -1064
- package/server/migrations/grade-data/x23-performance-table.json +0 -42
- package/server/migrations/grade-data/x31-performance-table.json +0 -644
- package/server/migrations/grade-data/x32-performance-table.json +0 -993
- package/server/migrations/grade-data/x33-performance-table.json +0 -195
- package/server/migrations/grade-data/x34-performance-table.json +0 -12
- package/server/migrations/grade-data/x35-performance-table.json +0 -42
- package/server/migrations/grade-data/x41-performance-table.json +0 -825
- package/server/migrations/grade-data/x42-performance-table.json +0 -786
- package/server/migrations/grade-data/x43-performance-table.json +0 -12
- package/server/migrations/grade-data/x44-performance-table.json +0 -42
- package/server/migrations/grade-data/x51-performance-table.json +0 -924
- package/server/migrations/grade-data/x52-performance-table.json +0 -42
- package/server/migrations/grade-data/x61-performance-table.json +0 -261
- package/server/migrations/grade-data/x62-performance-table.json +0 -42
- package/server/migrations/index.ts +0 -9
- package/server/migrations/seed-data/kpi-metrics-seed.json +0 -454
- package/server/migrations/seed-data/kpi-org-scope-seed.json +0 -1676
- package/server/migrations/seed-data/kpi-scopes-seed.json +0 -121
- package/server/migrations/seed-data/kpi-values-seed.json +0 -402
- package/server/migrations/seed-data/kpis-seed.json +0 -488
- package/server/migrations/seed-data/scope-definitions-seed.json +0 -90
- package/server/routes.ts +0 -81
- package/server/service/index.ts +0 -51
- package/server/service/kpi/aggregate-kpi.ts +0 -103
- package/server/service/kpi/event-subscriber.ts +0 -29
- package/server/service/kpi/index.ts +0 -9
- package/server/service/kpi/kpi-formula.service.ts +0 -164
- package/server/service/kpi/kpi-grade.types.ts +0 -28
- package/server/service/kpi/kpi-history.ts +0 -126
- package/server/service/kpi/kpi-mutation.ts +0 -553
- package/server/service/kpi/kpi-query.ts +0 -224
- package/server/service/kpi/kpi-type.ts +0 -151
- package/server/service/kpi/kpi.ts +0 -254
- package/server/service/kpi-alert/index.ts +0 -3
- package/server/service/kpi-alert/kpi-alert-query.ts +0 -59
- package/server/service/kpi-alert/kpi-alert-type.ts +0 -20
- package/server/service/kpi-metric/aggregate-kpi-metric.ts +0 -132
- package/server/service/kpi-metric/index.ts +0 -7
- package/server/service/kpi-metric/kpi-metric-mutation.ts +0 -309
- package/server/service/kpi-metric/kpi-metric-query.ts +0 -70
- package/server/service/kpi-metric/kpi-metric-type.ts +0 -111
- package/server/service/kpi-metric/kpi-metric.ts +0 -134
- package/server/service/kpi-metric-value/index.ts +0 -7
- package/server/service/kpi-metric-value/kpi-metric-value-mutation.ts +0 -270
- package/server/service/kpi-metric-value/kpi-metric-value-query.ts +0 -62
- package/server/service/kpi-metric-value/kpi-metric-value-type.ts +0 -82
- package/server/service/kpi-metric-value/kpi-metric-value.ts +0 -93
- package/server/service/kpi-org-scope/index.ts +0 -6
- package/server/service/kpi-org-scope/kpi-org-scope-mutation.ts +0 -173
- package/server/service/kpi-org-scope/kpi-org-scope-query.ts +0 -127
- package/server/service/kpi-org-scope/kpi-org-scope-type.ts +0 -68
- package/server/service/kpi-org-scope/kpi-org-scope.ts +0 -123
- package/server/service/kpi-scope/index.ts +0 -11
- package/server/service/kpi-scope/kpi-scope-mutation.ts +0 -129
- package/server/service/kpi-scope/kpi-scope-query.ts +0 -63
- package/server/service/kpi-scope/kpi-scope-type.ts +0 -96
- package/server/service/kpi-scope/kpi-scope.ts +0 -143
- package/server/service/kpi-statistic/index.ts +0 -7
- package/server/service/kpi-statistic/kpi-statistic-batch.service.ts +0 -231
- package/server/service/kpi-statistic/kpi-statistic-calculation.service.ts +0 -410
- package/server/service/kpi-statistic/kpi-statistic-mutation.ts +0 -291
- package/server/service/kpi-statistic/kpi-statistic-query.ts +0 -146
- package/server/service/kpi-statistic/kpi-statistic-type.ts +0 -152
- package/server/service/kpi-statistic/kpi-statistic.ts +0 -199
- package/server/service/kpi-value/index.ts +0 -7
- package/server/service/kpi-value/kpi-value-mutation.ts +0 -432
- package/server/service/kpi-value/kpi-value-query.ts +0 -61
- package/server/service/kpi-value/kpi-value-score.service.ts +0 -106
- package/server/service/kpi-value/kpi-value-type.ts +0 -122
- package/server/service/kpi-value/kpi-value.ts +0 -160
- package/server/service/utils/value-date-util.ts +0 -119
- package/server/tsconfig.json +0 -10
- package/server/types/global.d.ts +0 -8
|
@@ -1,488 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"name": "Z. 전체스코어",
|
|
4
|
-
"description": "전체 스코어",
|
|
5
|
-
"formula": null,
|
|
6
|
-
"active": true,
|
|
7
|
-
"state": "RELEASE",
|
|
8
|
-
"viz_type": null,
|
|
9
|
-
"viz_meta": null,
|
|
10
|
-
"schedule": null,
|
|
11
|
-
"schedule_id": null,
|
|
12
|
-
"timezone": null,
|
|
13
|
-
"grades": null,
|
|
14
|
-
"period_type": "DAY",
|
|
15
|
-
"weight": 1.0,
|
|
16
|
-
"score_formula": null,
|
|
17
|
-
"is_leaf": false,
|
|
18
|
-
"parent_name": null
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"name": "Y1. 일정성과",
|
|
22
|
-
"description": "프로젝트 일정 준수 및 일정 이탈 수준 평가",
|
|
23
|
-
"formula": null,
|
|
24
|
-
"active": true,
|
|
25
|
-
"state": "RELEASE",
|
|
26
|
-
"viz_type": null,
|
|
27
|
-
"viz_meta": null,
|
|
28
|
-
"schedule": null,
|
|
29
|
-
"schedule_id": null,
|
|
30
|
-
"timezone": null,
|
|
31
|
-
"grades": null,
|
|
32
|
-
"period_type": "DAY",
|
|
33
|
-
"weight": 1.0,
|
|
34
|
-
"score_formula": null,
|
|
35
|
-
"is_leaf": false,
|
|
36
|
-
"parent_name": "Z. 전체스코어"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"name": "Y2. 비용성과",
|
|
40
|
-
"description": "프로젝트 비용 집행 및 비용성과 수준 평가",
|
|
41
|
-
"formula": null,
|
|
42
|
-
"active": true,
|
|
43
|
-
"state": "RELEASE",
|
|
44
|
-
"viz_type": null,
|
|
45
|
-
"viz_meta": null,
|
|
46
|
-
"schedule": null,
|
|
47
|
-
"schedule_id": null,
|
|
48
|
-
"timezone": null,
|
|
49
|
-
"grades": null,
|
|
50
|
-
"period_type": "DAY",
|
|
51
|
-
"weight": 1.0,
|
|
52
|
-
"score_formula": null,
|
|
53
|
-
"is_leaf": false,
|
|
54
|
-
"parent_name": "Z. 전체스코어"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"name": "Y3. 품질성과",
|
|
58
|
-
"description": "품질 불합격률, 품질성과 수준 등 품질 관련 성과 측정",
|
|
59
|
-
"formula": null,
|
|
60
|
-
"active": true,
|
|
61
|
-
"state": "RELEASE",
|
|
62
|
-
"viz_type": null,
|
|
63
|
-
"viz_meta": null,
|
|
64
|
-
"schedule": null,
|
|
65
|
-
"schedule_id": null,
|
|
66
|
-
"timezone": null,
|
|
67
|
-
"grades": null,
|
|
68
|
-
"period_type": "DAY",
|
|
69
|
-
"weight": 1.0,
|
|
70
|
-
"score_formula": null,
|
|
71
|
-
"is_leaf": false,
|
|
72
|
-
"parent_name": "Z. 전체스코어"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"name": "Y4. 안전성과",
|
|
76
|
-
"description": "재해율, SL-PA 등 안전 관련 성과 평가",
|
|
77
|
-
"formula": null,
|
|
78
|
-
"active": true,
|
|
79
|
-
"state": "RELEASE",
|
|
80
|
-
"viz_type": null,
|
|
81
|
-
"viz_meta": null,
|
|
82
|
-
"schedule": null,
|
|
83
|
-
"schedule_id": null,
|
|
84
|
-
"timezone": null,
|
|
85
|
-
"grades": null,
|
|
86
|
-
"period_type": "DAY",
|
|
87
|
-
"weight": 1.0,
|
|
88
|
-
"score_formula": null,
|
|
89
|
-
"is_leaf": false,
|
|
90
|
-
"parent_name": "Z. 전체스코어"
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"name": "Y5. 환경성과",
|
|
94
|
-
"description": "건설폐기물 등 환경 관련 성과 평가",
|
|
95
|
-
"formula": null,
|
|
96
|
-
"active": true,
|
|
97
|
-
"state": "RELEASE",
|
|
98
|
-
"viz_type": null,
|
|
99
|
-
"viz_meta": null,
|
|
100
|
-
"schedule": null,
|
|
101
|
-
"schedule_id": null,
|
|
102
|
-
"timezone": null,
|
|
103
|
-
"grades": null,
|
|
104
|
-
"period_type": "DAY",
|
|
105
|
-
"weight": 1.0,
|
|
106
|
-
"score_formula": null,
|
|
107
|
-
"is_leaf": false,
|
|
108
|
-
"parent_name": "Z. 전체스코어"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
"name": "Y6. 생산성성과",
|
|
112
|
-
"description": "투입인력 생산성 등 생산성 관련 성과 평가",
|
|
113
|
-
"formula": null,
|
|
114
|
-
"active": true,
|
|
115
|
-
"state": "RELEASE",
|
|
116
|
-
"viz_type": null,
|
|
117
|
-
"viz_meta": null,
|
|
118
|
-
"schedule": null,
|
|
119
|
-
"schedule_id": null,
|
|
120
|
-
"timezone": null,
|
|
121
|
-
"grades": null,
|
|
122
|
-
"period_type": "DAY",
|
|
123
|
-
"weight": 1.0,
|
|
124
|
-
"score_formula": null,
|
|
125
|
-
"is_leaf": false,
|
|
126
|
-
"parent_name": "Z. 전체스코어"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"name": "X11. 연면적 대비 공사기간",
|
|
130
|
-
"description": "연면적 대비 공사기간 평가",
|
|
131
|
-
"formula": "[실제공사기간] / [연면적]",
|
|
132
|
-
"active": true,
|
|
133
|
-
"state": "DRAFT",
|
|
134
|
-
"viz_type": null,
|
|
135
|
-
"viz_meta": null,
|
|
136
|
-
"schedule": null,
|
|
137
|
-
"schedule_id": null,
|
|
138
|
-
"timezone": null,
|
|
139
|
-
"grades": null,
|
|
140
|
-
"period_type": "DAY",
|
|
141
|
-
"weight": 1.0,
|
|
142
|
-
"score_formula": null,
|
|
143
|
-
"is_leaf": true,
|
|
144
|
-
"parent_name": "Y1. 일정성과"
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"name": "X12. 설계변경에 따른 공기 증감률",
|
|
148
|
-
"description": "설계변경에 따른 공기 증감률 평가",
|
|
149
|
-
"formula": "([실제공사기간] - [계획공사기간]) / [계획공사기간]",
|
|
150
|
-
"active": true,
|
|
151
|
-
"state": "DRAFT",
|
|
152
|
-
"viz_type": null,
|
|
153
|
-
"viz_meta": null,
|
|
154
|
-
"schedule": null,
|
|
155
|
-
"schedule_id": null,
|
|
156
|
-
"timezone": null,
|
|
157
|
-
"grades": "[{\"name\":\"1\",\"minValue\":0,\"maxValue\":5,\"score\":1,\"description\":\"샘플값\"}]",
|
|
158
|
-
"period_type": "DAY",
|
|
159
|
-
"weight": 1.0,
|
|
160
|
-
"score_formula": null,
|
|
161
|
-
"is_leaf": true,
|
|
162
|
-
"parent_name": "Y1. 일정성과"
|
|
163
|
-
},
|
|
164
|
-
{
|
|
165
|
-
"name": "X13. 일정 이탈 수준",
|
|
166
|
-
"description": "프로젝트 일정 이탈 수준 평가",
|
|
167
|
-
"formula": "[일정 이탈 수준]",
|
|
168
|
-
"active": true,
|
|
169
|
-
"state": "DRAFT",
|
|
170
|
-
"viz_type": null,
|
|
171
|
-
"viz_meta": null,
|
|
172
|
-
"schedule": null,
|
|
173
|
-
"schedule_id": null,
|
|
174
|
-
"timezone": null,
|
|
175
|
-
"grades": null,
|
|
176
|
-
"period_type": "DAY",
|
|
177
|
-
"weight": 1.0,
|
|
178
|
-
"score_formula": null,
|
|
179
|
-
"is_leaf": true,
|
|
180
|
-
"parent_name": "Y1. 일정성과"
|
|
181
|
-
},
|
|
182
|
-
{
|
|
183
|
-
"name": "X14. 일정성과 수준 평가",
|
|
184
|
-
"description": "일정성과 종합 평가",
|
|
185
|
-
"formula": "[일정성과 수준 평가]",
|
|
186
|
-
"active": true,
|
|
187
|
-
"state": "DRAFT",
|
|
188
|
-
"viz_type": null,
|
|
189
|
-
"viz_meta": null,
|
|
190
|
-
"schedule": null,
|
|
191
|
-
"schedule_id": null,
|
|
192
|
-
"timezone": null,
|
|
193
|
-
"grades": null,
|
|
194
|
-
"period_type": "DAY",
|
|
195
|
-
"weight": 1.0,
|
|
196
|
-
"score_formula": null,
|
|
197
|
-
"is_leaf": true,
|
|
198
|
-
"parent_name": "Y1. 일정성과"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
"name": "X21. 연면적 대비 공사비",
|
|
202
|
-
"description": "연면적 대비 공사비 평가",
|
|
203
|
-
"formula": "[실제공사비] / [연면적]",
|
|
204
|
-
"active": true,
|
|
205
|
-
"state": "DRAFT",
|
|
206
|
-
"viz_type": null,
|
|
207
|
-
"viz_meta": null,
|
|
208
|
-
"schedule": null,
|
|
209
|
-
"schedule_id": null,
|
|
210
|
-
"timezone": null,
|
|
211
|
-
"grades": null,
|
|
212
|
-
"period_type": "DAY",
|
|
213
|
-
"weight": 1.0,
|
|
214
|
-
"score_formula": null,
|
|
215
|
-
"is_leaf": true,
|
|
216
|
-
"parent_name": "Y2. 비용성과"
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
"name": "X22. 설계변경에 따른 공사비 증감률",
|
|
220
|
-
"description": "설계변경에 따른 공사비 증감률 평가",
|
|
221
|
-
"formula": "([실제공사비]-[계획공사비]) / [계획공사비]",
|
|
222
|
-
"active": true,
|
|
223
|
-
"state": "DRAFT",
|
|
224
|
-
"viz_type": null,
|
|
225
|
-
"viz_meta": null,
|
|
226
|
-
"schedule": null,
|
|
227
|
-
"schedule_id": null,
|
|
228
|
-
"timezone": null,
|
|
229
|
-
"grades": null,
|
|
230
|
-
"period_type": "DAY",
|
|
231
|
-
"weight": 1.0,
|
|
232
|
-
"score_formula": null,
|
|
233
|
-
"is_leaf": true,
|
|
234
|
-
"parent_name": "Y2. 비용성과"
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
"name": "X23. 비용성과 수준 평가",
|
|
238
|
-
"description": "비용성과 종합 평가",
|
|
239
|
-
"formula": "[비용성과 수준 평가]",
|
|
240
|
-
"active": true,
|
|
241
|
-
"state": "DRAFT",
|
|
242
|
-
"viz_type": null,
|
|
243
|
-
"viz_meta": null,
|
|
244
|
-
"schedule": null,
|
|
245
|
-
"schedule_id": null,
|
|
246
|
-
"timezone": null,
|
|
247
|
-
"grades": null,
|
|
248
|
-
"period_type": "DAY",
|
|
249
|
-
"weight": 1.0,
|
|
250
|
-
"score_formula": null,
|
|
251
|
-
"is_leaf": true,
|
|
252
|
-
"parent_name": "Y2. 비용성과"
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
"name": "X31. 품질시험 불합격률",
|
|
256
|
-
"description": "품질시험 불합격률 평가",
|
|
257
|
-
"formula": "[품질시험 불합격 건수] / [연면적]",
|
|
258
|
-
"active": true,
|
|
259
|
-
"state": "DRAFT",
|
|
260
|
-
"viz_type": null,
|
|
261
|
-
"viz_meta": null,
|
|
262
|
-
"schedule": null,
|
|
263
|
-
"schedule_id": null,
|
|
264
|
-
"timezone": null,
|
|
265
|
-
"grades": null,
|
|
266
|
-
"period_type": "DAY",
|
|
267
|
-
"weight": 1.0,
|
|
268
|
-
"score_formula": null,
|
|
269
|
-
"is_leaf": true,
|
|
270
|
-
"parent_name": "Y3. 품질성과"
|
|
271
|
-
},
|
|
272
|
-
{
|
|
273
|
-
"name": "X32. 검수자재 불합격률",
|
|
274
|
-
"description": "검수자재 불합격률 평가",
|
|
275
|
-
"formula": "[검수자재 불합격 건수] / [연면적]",
|
|
276
|
-
"active": true,
|
|
277
|
-
"state": "DRAFT",
|
|
278
|
-
"viz_type": null,
|
|
279
|
-
"viz_meta": null,
|
|
280
|
-
"schedule": null,
|
|
281
|
-
"schedule_id": null,
|
|
282
|
-
"timezone": null,
|
|
283
|
-
"grades": null,
|
|
284
|
-
"period_type": "DAY",
|
|
285
|
-
"weight": 1.0,
|
|
286
|
-
"score_formula": "POW([value], 1)",
|
|
287
|
-
"is_leaf": true,
|
|
288
|
-
"parent_name": "Y3. 품질성과"
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
"name": "X33. 검측 불합격률",
|
|
292
|
-
"description": "검측 불합격률 평가",
|
|
293
|
-
"formula": "[품질검측 불합격 건수] / [연면적]",
|
|
294
|
-
"active": true,
|
|
295
|
-
"state": "DRAFT",
|
|
296
|
-
"viz_type": null,
|
|
297
|
-
"viz_meta": null,
|
|
298
|
-
"schedule": null,
|
|
299
|
-
"schedule_id": null,
|
|
300
|
-
"timezone": null,
|
|
301
|
-
"grades": null,
|
|
302
|
-
"period_type": "DAY",
|
|
303
|
-
"weight": 1.0,
|
|
304
|
-
"score_formula": null,
|
|
305
|
-
"is_leaf": true,
|
|
306
|
-
"parent_name": "Y3. 품질성과"
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
"name": "X34. 품질 SL-PA 결과값",
|
|
310
|
-
"description": "품질 SL-PA 결과",
|
|
311
|
-
"formula": "[SL-PA 품질평가]",
|
|
312
|
-
"active": true,
|
|
313
|
-
"state": "DRAFT",
|
|
314
|
-
"viz_type": null,
|
|
315
|
-
"viz_meta": null,
|
|
316
|
-
"schedule": null,
|
|
317
|
-
"schedule_id": null,
|
|
318
|
-
"timezone": null,
|
|
319
|
-
"grades": null,
|
|
320
|
-
"period_type": "DAY",
|
|
321
|
-
"weight": 1.0,
|
|
322
|
-
"score_formula": "[value]",
|
|
323
|
-
"is_leaf": true,
|
|
324
|
-
"parent_name": "Y3. 품질성과"
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"name": "X35. 품질성과 수준 평가",
|
|
328
|
-
"description": "품질성과 종합 평가",
|
|
329
|
-
"formula": "[품질성과 수준 평가]",
|
|
330
|
-
"active": true,
|
|
331
|
-
"state": "DRAFT",
|
|
332
|
-
"viz_type": null,
|
|
333
|
-
"viz_meta": null,
|
|
334
|
-
"schedule": null,
|
|
335
|
-
"schedule_id": null,
|
|
336
|
-
"timezone": null,
|
|
337
|
-
"grades": null,
|
|
338
|
-
"period_type": "DAY",
|
|
339
|
-
"weight": 1.0,
|
|
340
|
-
"score_formula": "INTEGRATE([value], 1, 2, 3)",
|
|
341
|
-
"is_leaf": true,
|
|
342
|
-
"parent_name": "Y3. 품질성과"
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
"name": "X41. 재해율",
|
|
346
|
-
"description": "재해율 평가",
|
|
347
|
-
"formula": "[재해 건수] / [연간 근로자 수] * 100",
|
|
348
|
-
"active": true,
|
|
349
|
-
"state": "DRAFT",
|
|
350
|
-
"viz_type": null,
|
|
351
|
-
"viz_meta": null,
|
|
352
|
-
"schedule": null,
|
|
353
|
-
"schedule_id": null,
|
|
354
|
-
"timezone": null,
|
|
355
|
-
"grades": null,
|
|
356
|
-
"period_type": "DAY",
|
|
357
|
-
"weight": 1.0,
|
|
358
|
-
"score_formula": null,
|
|
359
|
-
"is_leaf": true,
|
|
360
|
-
"parent_name": "Y4. 안전성과"
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
"name": "X42. 재해강도율",
|
|
364
|
-
"description": "재해강도율 평가",
|
|
365
|
-
"formula": "[노동손실일수] / ( [총 근로자수] * [1인당 연간 근로 시간] ) * 1000",
|
|
366
|
-
"active": true,
|
|
367
|
-
"state": "DRAFT",
|
|
368
|
-
"viz_type": null,
|
|
369
|
-
"viz_meta": null,
|
|
370
|
-
"schedule": null,
|
|
371
|
-
"schedule_id": null,
|
|
372
|
-
"timezone": null,
|
|
373
|
-
"grades": null,
|
|
374
|
-
"period_type": "DAY",
|
|
375
|
-
"weight": 1.0,
|
|
376
|
-
"score_formula": null,
|
|
377
|
-
"is_leaf": true,
|
|
378
|
-
"parent_name": "Y4. 안전성과"
|
|
379
|
-
},
|
|
380
|
-
{
|
|
381
|
-
"name": "X43. 안전 SL-PA 결과값",
|
|
382
|
-
"description": "안전 SL-PA 결과",
|
|
383
|
-
"formula": "[SL-PA 안전 평가]",
|
|
384
|
-
"active": true,
|
|
385
|
-
"state": "DRAFT",
|
|
386
|
-
"viz_type": null,
|
|
387
|
-
"viz_meta": null,
|
|
388
|
-
"schedule": null,
|
|
389
|
-
"schedule_id": null,
|
|
390
|
-
"timezone": null,
|
|
391
|
-
"grades": null,
|
|
392
|
-
"period_type": "DAY",
|
|
393
|
-
"weight": 1.0,
|
|
394
|
-
"score_formula": null,
|
|
395
|
-
"is_leaf": true,
|
|
396
|
-
"parent_name": "Y4. 안전성과"
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"name": "X44. 안전성과 수준 평가",
|
|
400
|
-
"description": "안전성과 종합 평가",
|
|
401
|
-
"formula": "[안전성과 수준 평가]",
|
|
402
|
-
"active": true,
|
|
403
|
-
"state": "DRAFT",
|
|
404
|
-
"viz_type": null,
|
|
405
|
-
"viz_meta": null,
|
|
406
|
-
"schedule": null,
|
|
407
|
-
"schedule_id": null,
|
|
408
|
-
"timezone": null,
|
|
409
|
-
"grades": null,
|
|
410
|
-
"period_type": "DAY",
|
|
411
|
-
"weight": 1.0,
|
|
412
|
-
"score_formula": null,
|
|
413
|
-
"is_leaf": true,
|
|
414
|
-
"parent_name": "Y4. 안전성과"
|
|
415
|
-
},
|
|
416
|
-
{
|
|
417
|
-
"name": "X51. 건설폐기물 발생량",
|
|
418
|
-
"description": "건설폐기물 발생량 평가",
|
|
419
|
-
"formula": "[총 건설 폐기물 발생량] / [연면적]",
|
|
420
|
-
"active": true,
|
|
421
|
-
"state": "DRAFT",
|
|
422
|
-
"viz_type": null,
|
|
423
|
-
"viz_meta": null,
|
|
424
|
-
"schedule": null,
|
|
425
|
-
"schedule_id": null,
|
|
426
|
-
"timezone": null,
|
|
427
|
-
"grades": null,
|
|
428
|
-
"period_type": "DAY",
|
|
429
|
-
"weight": 1.0,
|
|
430
|
-
"score_formula": null,
|
|
431
|
-
"is_leaf": true,
|
|
432
|
-
"parent_name": "Y5. 환경성과"
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
"name": "X52. 환경성과 수준 평가",
|
|
436
|
-
"description": "환경성과 종합 평가",
|
|
437
|
-
"formula": "[환경성과 수준 평가]",
|
|
438
|
-
"active": true,
|
|
439
|
-
"state": "DRAFT",
|
|
440
|
-
"viz_type": null,
|
|
441
|
-
"viz_meta": null,
|
|
442
|
-
"schedule": null,
|
|
443
|
-
"schedule_id": null,
|
|
444
|
-
"timezone": null,
|
|
445
|
-
"grades": null,
|
|
446
|
-
"period_type": "DAY",
|
|
447
|
-
"weight": 1.0,
|
|
448
|
-
"score_formula": null,
|
|
449
|
-
"is_leaf": true,
|
|
450
|
-
"parent_name": "Y5. 환경성과"
|
|
451
|
-
},
|
|
452
|
-
{
|
|
453
|
-
"name": "X61. 투입인력 생산성",
|
|
454
|
-
"description": "투입인력 생산성 평가",
|
|
455
|
-
"formula": "[투입인력] / [연면적]",
|
|
456
|
-
"active": true,
|
|
457
|
-
"state": "DRAFT",
|
|
458
|
-
"viz_type": null,
|
|
459
|
-
"viz_meta": null,
|
|
460
|
-
"schedule": null,
|
|
461
|
-
"schedule_id": null,
|
|
462
|
-
"timezone": null,
|
|
463
|
-
"grades": null,
|
|
464
|
-
"period_type": "DAY",
|
|
465
|
-
"weight": 1.0,
|
|
466
|
-
"score_formula": null,
|
|
467
|
-
"is_leaf": true,
|
|
468
|
-
"parent_name": "Y6. 생산성성과"
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
"name": "X62. 생산성성과 수준 평가",
|
|
472
|
-
"description": "생산성과 종합 평가",
|
|
473
|
-
"formula": "[생산성성과 수준 평가]",
|
|
474
|
-
"active": true,
|
|
475
|
-
"state": "DRAFT",
|
|
476
|
-
"viz_type": null,
|
|
477
|
-
"viz_meta": null,
|
|
478
|
-
"schedule": null,
|
|
479
|
-
"schedule_id": null,
|
|
480
|
-
"timezone": null,
|
|
481
|
-
"grades": null,
|
|
482
|
-
"period_type": "DAY",
|
|
483
|
-
"weight": 1.0,
|
|
484
|
-
"score_formula": null,
|
|
485
|
-
"is_leaf": true,
|
|
486
|
-
"parent_name": "Y6. 생산성성과"
|
|
487
|
-
}
|
|
488
|
-
]
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
{
|
|
3
|
-
"scopeLevel": 1,
|
|
4
|
-
"name": "프로젝트명",
|
|
5
|
-
"description": "개별 건설 프로젝트나 현장의 고유 식별명",
|
|
6
|
-
"scopeType": "BUSINESS",
|
|
7
|
-
"displayOrder": 1,
|
|
8
|
-
"active": true,
|
|
9
|
-
"includeInStatistics": false,
|
|
10
|
-
"showInDashboard": false,
|
|
11
|
-
"metadata": {
|
|
12
|
-
"icon": "construction",
|
|
13
|
-
"color": "#1976d2"
|
|
14
|
-
}
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"scopeLevel": 2,
|
|
18
|
-
"name": "지역",
|
|
19
|
-
"description": "시도 단위 행정구역 (서울특별시, 부산광역시, 경기도 등)",
|
|
20
|
-
"scopeType": "GEOGRAPHIC",
|
|
21
|
-
"displayOrder": 2,
|
|
22
|
-
"active": true,
|
|
23
|
-
"includeInStatistics": true,
|
|
24
|
-
"showInDashboard": true,
|
|
25
|
-
"validValues": [
|
|
26
|
-
"서울특별시", "부산광역시", "대구광역시", "인천광역시",
|
|
27
|
-
"광주광역시", "대전광역시", "울산광역시", "세종특별자치시",
|
|
28
|
-
"경기도", "강원도", "충청북도", "충청남도",
|
|
29
|
-
"전라북도", "전라남도", "경상북도", "경상남도", "제주특별자치도"
|
|
30
|
-
],
|
|
31
|
-
"metadata": {
|
|
32
|
-
"icon": "location_on",
|
|
33
|
-
"color": "#388e3c",
|
|
34
|
-
"mapVisualization": true
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"scopeLevel": 3,
|
|
39
|
-
"name": "건설회사",
|
|
40
|
-
"description": "주요 건설회사 또는 시공사",
|
|
41
|
-
"scopeType": "ORGANIZATIONAL",
|
|
42
|
-
"displayOrder": 3,
|
|
43
|
-
"active": true,
|
|
44
|
-
"includeInStatistics": true,
|
|
45
|
-
"showInDashboard": true,
|
|
46
|
-
"validValues": [
|
|
47
|
-
"현대건설", "삼성물산", "GS건설", "대우건설", "롯데건설",
|
|
48
|
-
"대림산업", "포스코건설", "HDC현대산업개발", "호반건설", "태영건설",
|
|
49
|
-
"한화건설", "코오롱글로벌", "제일건설", "남광토건", "한국토지주택공사"
|
|
50
|
-
],
|
|
51
|
-
"metadata": {
|
|
52
|
-
"icon": "business",
|
|
53
|
-
"color": "#f57c00"
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"scopeLevel": 4,
|
|
58
|
-
"name": "프로젝트규모",
|
|
59
|
-
"description": "프로젝트의 규모나 등급 분류",
|
|
60
|
-
"scopeType": "BUSINESS",
|
|
61
|
-
"displayOrder": 4,
|
|
62
|
-
"active": true,
|
|
63
|
-
"includeInStatistics": true,
|
|
64
|
-
"showInDashboard": false,
|
|
65
|
-
"validValues": ["대규모", "중규모", "소규모", "특대형", "일반형"],
|
|
66
|
-
"metadata": {
|
|
67
|
-
"icon": "bar_chart",
|
|
68
|
-
"color": "#7b1fa2"
|
|
69
|
-
}
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"scopeLevel": 5,
|
|
73
|
-
"name": "공종",
|
|
74
|
-
"description": "건설 공사의 종류나 기술 분야",
|
|
75
|
-
"scopeType": "TECHNICAL",
|
|
76
|
-
"displayOrder": 5,
|
|
77
|
-
"active": true,
|
|
78
|
-
"includeInStatistics": true,
|
|
79
|
-
"showInDashboard": false,
|
|
80
|
-
"validValues": [
|
|
81
|
-
"토목공사", "건축공사", "플랜트공사", "주택공사",
|
|
82
|
-
"도로공사", "철도공사", "항만공사", "상하수도공사",
|
|
83
|
-
"전기공사", "통신공사", "조경공사", "소방공사"
|
|
84
|
-
],
|
|
85
|
-
"metadata": {
|
|
86
|
-
"icon": "engineering",
|
|
87
|
-
"color": "#d32f2f"
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
]
|
package/server/routes.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { aggregateKpiMetricValue } from './service/kpi-metric/aggregate-kpi-metric'
|
|
2
|
-
import { aggregateKpiValue } from './service/kpi/aggregate-kpi'
|
|
3
|
-
|
|
4
|
-
process.on('bootstrap-module-global-public-route' as any, (app, globalPublicRouter) => {
|
|
5
|
-
/*
|
|
6
|
-
* can add global public routes to application (auth not required, tenancy not required)
|
|
7
|
-
*
|
|
8
|
-
* ex) routes.get('/path', async(context, next) => {})
|
|
9
|
-
* ex) routes.post('/path', async(context, next) => {})
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
// KPI-Metric 스케줄러 콜백 엔드포인트
|
|
13
|
-
globalPublicRouter.post('/callback-schedule-for-kpi-metric', async (context, next) => {
|
|
14
|
-
const { client } = context.request.body
|
|
15
|
-
|
|
16
|
-
if (!client || typeof client !== 'object') {
|
|
17
|
-
throw new Error('client property should be a part of callback body.')
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const { group: domainId, key: metricId } = client
|
|
21
|
-
|
|
22
|
-
if (!domainId || !metricId) {
|
|
23
|
-
throw new Error(`group(${domainId}) and key(${metricId}) properties should not be empty`)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
try {
|
|
27
|
-
// KPI-Metric 집계/자동화 함수 호출
|
|
28
|
-
const values = await aggregateKpiMetricValue(metricId, domainId, context)
|
|
29
|
-
console.log(`[KPI-Metric Schedule Callback] domainId=${domainId}, metricId=${metricId}, values=`, values)
|
|
30
|
-
context.status = 200
|
|
31
|
-
} catch (err) {
|
|
32
|
-
console.error('[KPI-Metric Schedule Callback][ERROR]', err)
|
|
33
|
-
context.status = 500
|
|
34
|
-
context.body = { error: err.message || String(err) }
|
|
35
|
-
}
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
// KPI 스케줄러 콜백 엔드포인트
|
|
39
|
-
globalPublicRouter.post('/callback-schedule-for-kpi', async (context, next) => {
|
|
40
|
-
const { client } = context.request.body
|
|
41
|
-
|
|
42
|
-
if (!client || typeof client !== 'object') {
|
|
43
|
-
throw new Error('client property should be a part of callback body.')
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const { group: domainId, key: kpiId } = client
|
|
47
|
-
|
|
48
|
-
if (!domainId || !kpiId) {
|
|
49
|
-
throw new Error(`group(${domainId}) and key(${kpiId}) properties should not be empty`)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
try {
|
|
53
|
-
// KPI 집계/자동화 함수 호출
|
|
54
|
-
const values = await aggregateKpiValue(kpiId, domainId, context)
|
|
55
|
-
console.log(`[KPI Schedule Callback] domainId=${domainId}, kpiId=${kpiId}, values=`, values)
|
|
56
|
-
context.status = 200
|
|
57
|
-
} catch (err) {
|
|
58
|
-
console.error('[KPI Schedule Callback][ERROR]', err)
|
|
59
|
-
context.status = 500
|
|
60
|
-
context.body = { error: err.message || String(err) }
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
})
|
|
64
|
-
|
|
65
|
-
process.on('bootstrap-module-global-private-route' as any, (app, globalPrivateRouter) => {
|
|
66
|
-
/*
|
|
67
|
-
* can add global private routes to application (auth required, tenancy not required)
|
|
68
|
-
*/
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
process.on('bootstrap-module-domain-public-route' as any, (app, domainPublicRouter) => {
|
|
72
|
-
/*
|
|
73
|
-
* can add domain public routes to application (auth not required, tenancy required)
|
|
74
|
-
*/
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {
|
|
78
|
-
/*
|
|
79
|
-
* can add domain private routes to application (auth required, tenancy required)
|
|
80
|
-
*/
|
|
81
|
-
})
|