@things-factory/kpi 9.2.5 → 10.0.0-beta.10

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 (139) hide show
  1. package/client/pages/kpi/kpi-list-page.ts +339 -525
  2. package/client/pages/kpi/kpi-tree-page.ts +135 -207
  3. package/client/pages/kpi-metric/kpi-metric-list-page.ts +146 -226
  4. package/client/pages/kpi-metric-value/kpi-metric-value-editor-page.ts +187 -295
  5. package/client/pages/kpi-metric-value/kpi-metric-value-list-page.ts +123 -194
  6. package/client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.ts +57 -91
  7. package/client/pages/kpi-statistic/kpi-statistic-editor-page.ts +180 -278
  8. package/client/pages/kpi-statistic/kpi-statistic-list-page.ts +186 -286
  9. package/client/pages/kpi-value/kpi-value-editor-page.ts +189 -292
  10. package/client/pages/kpi-value/kpi-value-list-page.ts +170 -264
  11. package/dist-client/pages/kpi/kpi-list-page.d.ts +0 -6
  12. package/dist-client/pages/kpi/kpi-list-page.js +150 -282
  13. package/dist-client/pages/kpi/kpi-list-page.js.map +1 -1
  14. package/dist-client/pages/kpi/kpi-tree-page.d.ts +1 -7
  15. package/dist-client/pages/kpi/kpi-tree-page.js +76 -127
  16. package/dist-client/pages/kpi/kpi-tree-page.js.map +1 -1
  17. package/dist-client/pages/kpi-metric/kpi-metric-list-page.d.ts +0 -6
  18. package/dist-client/pages/kpi-metric/kpi-metric-list-page.js +62 -116
  19. package/dist-client/pages/kpi-metric/kpi-metric-list-page.js.map +1 -1
  20. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.d.ts +1 -7
  21. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js +82 -140
  22. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js.map +1 -1
  23. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.d.ts +0 -6
  24. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js +54 -98
  25. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js.map +1 -1
  26. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.d.ts +1 -7
  27. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js +30 -57
  28. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-page.js.map +1 -1
  29. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.d.ts +1 -7
  30. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js +91 -153
  31. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js.map +1 -1
  32. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.d.ts +0 -6
  33. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js +81 -155
  34. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js.map +1 -1
  35. package/dist-client/pages/kpi-value/kpi-value-editor-page.d.ts +1 -7
  36. package/dist-client/pages/kpi-value/kpi-value-editor-page.js +80 -136
  37. package/dist-client/pages/kpi-value/kpi-value-editor-page.js.map +1 -1
  38. package/dist-client/pages/kpi-value/kpi-value-list-page.d.ts +0 -6
  39. package/dist-client/pages/kpi-value/kpi-value-list-page.js +73 -134
  40. package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +1 -1
  41. package/dist-client/tsconfig.tsbuildinfo +1 -1
  42. package/dist-server/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +18 -18
  44. package/client/tsconfig.json +0 -11
  45. package/dist-server/tsconfig.json +0 -10
  46. package/server/@types/index.d.ts +0 -11
  47. package/server/calculator/evaluator.ts +0 -45
  48. package/server/calculator/functions.ts +0 -67
  49. package/server/calculator/index.ts +0 -4
  50. package/server/calculator/parser.ts +0 -137
  51. package/server/calculator/provider.ts +0 -10
  52. package/server/controllers/index.ts +0 -2
  53. package/server/controllers/kpi-metric-value-provider.ts +0 -79
  54. package/server/controllers/kpi-value-provider.ts +0 -51
  55. package/server/index.ts +0 -6
  56. package/server/migrations/1752190849680-seed-kpi-metrics.ts +0 -124
  57. package/server/migrations/1752190849681-seed-kpi.ts +0 -356
  58. package/server/migrations/1752192090123-add-grades-to-kpi.ts +0 -67
  59. package/server/migrations/1752192090124-add-kpi-statistics.ts +0 -719
  60. package/server/migrations/1752192090128-seed-kpi-org-scope.ts +0 -132
  61. package/server/migrations/1752192090129-seed-kpi-values.ts +0 -207
  62. package/server/migrations/grade-data/x11-performance-table.json +0 -962
  63. package/server/migrations/grade-data/x12-performance-table.json +0 -611
  64. package/server/migrations/grade-data/x14-performance-table.json +0 -42
  65. package/server/migrations/grade-data/x21-performance-table.json +0 -889
  66. package/server/migrations/grade-data/x22-performance-table.json +0 -1064
  67. package/server/migrations/grade-data/x23-performance-table.json +0 -42
  68. package/server/migrations/grade-data/x31-performance-table.json +0 -644
  69. package/server/migrations/grade-data/x32-performance-table.json +0 -993
  70. package/server/migrations/grade-data/x33-performance-table.json +0 -195
  71. package/server/migrations/grade-data/x34-performance-table.json +0 -12
  72. package/server/migrations/grade-data/x35-performance-table.json +0 -42
  73. package/server/migrations/grade-data/x41-performance-table.json +0 -825
  74. package/server/migrations/grade-data/x42-performance-table.json +0 -786
  75. package/server/migrations/grade-data/x43-performance-table.json +0 -12
  76. package/server/migrations/grade-data/x44-performance-table.json +0 -42
  77. package/server/migrations/grade-data/x51-performance-table.json +0 -924
  78. package/server/migrations/grade-data/x52-performance-table.json +0 -42
  79. package/server/migrations/grade-data/x61-performance-table.json +0 -261
  80. package/server/migrations/grade-data/x62-performance-table.json +0 -42
  81. package/server/migrations/index.ts +0 -9
  82. package/server/migrations/seed-data/kpi-metrics-seed.json +0 -454
  83. package/server/migrations/seed-data/kpi-org-scope-seed.json +0 -1676
  84. package/server/migrations/seed-data/kpi-scopes-seed.json +0 -121
  85. package/server/migrations/seed-data/kpi-values-seed.json +0 -402
  86. package/server/migrations/seed-data/kpis-seed.json +0 -488
  87. package/server/migrations/seed-data/scope-definitions-seed.json +0 -90
  88. package/server/routes.ts +0 -81
  89. package/server/service/index.ts +0 -51
  90. package/server/service/kpi/aggregate-kpi.ts +0 -103
  91. package/server/service/kpi/event-subscriber.ts +0 -29
  92. package/server/service/kpi/index.ts +0 -9
  93. package/server/service/kpi/kpi-formula.service.ts +0 -164
  94. package/server/service/kpi/kpi-grade.types.ts +0 -28
  95. package/server/service/kpi/kpi-history.ts +0 -126
  96. package/server/service/kpi/kpi-mutation.ts +0 -553
  97. package/server/service/kpi/kpi-query.ts +0 -224
  98. package/server/service/kpi/kpi-type.ts +0 -151
  99. package/server/service/kpi/kpi.ts +0 -254
  100. package/server/service/kpi-alert/index.ts +0 -3
  101. package/server/service/kpi-alert/kpi-alert-query.ts +0 -59
  102. package/server/service/kpi-alert/kpi-alert-type.ts +0 -20
  103. package/server/service/kpi-metric/aggregate-kpi-metric.ts +0 -132
  104. package/server/service/kpi-metric/index.ts +0 -7
  105. package/server/service/kpi-metric/kpi-metric-mutation.ts +0 -309
  106. package/server/service/kpi-metric/kpi-metric-query.ts +0 -70
  107. package/server/service/kpi-metric/kpi-metric-type.ts +0 -111
  108. package/server/service/kpi-metric/kpi-metric.ts +0 -134
  109. package/server/service/kpi-metric-value/index.ts +0 -7
  110. package/server/service/kpi-metric-value/kpi-metric-value-mutation.ts +0 -270
  111. package/server/service/kpi-metric-value/kpi-metric-value-query.ts +0 -62
  112. package/server/service/kpi-metric-value/kpi-metric-value-type.ts +0 -82
  113. package/server/service/kpi-metric-value/kpi-metric-value.ts +0 -93
  114. package/server/service/kpi-org-scope/index.ts +0 -6
  115. package/server/service/kpi-org-scope/kpi-org-scope-mutation.ts +0 -173
  116. package/server/service/kpi-org-scope/kpi-org-scope-query.ts +0 -127
  117. package/server/service/kpi-org-scope/kpi-org-scope-type.ts +0 -68
  118. package/server/service/kpi-org-scope/kpi-org-scope.ts +0 -123
  119. package/server/service/kpi-scope/index.ts +0 -11
  120. package/server/service/kpi-scope/kpi-scope-mutation.ts +0 -129
  121. package/server/service/kpi-scope/kpi-scope-query.ts +0 -63
  122. package/server/service/kpi-scope/kpi-scope-type.ts +0 -96
  123. package/server/service/kpi-scope/kpi-scope.ts +0 -143
  124. package/server/service/kpi-statistic/index.ts +0 -7
  125. package/server/service/kpi-statistic/kpi-statistic-batch.service.ts +0 -231
  126. package/server/service/kpi-statistic/kpi-statistic-calculation.service.ts +0 -410
  127. package/server/service/kpi-statistic/kpi-statistic-mutation.ts +0 -291
  128. package/server/service/kpi-statistic/kpi-statistic-query.ts +0 -146
  129. package/server/service/kpi-statistic/kpi-statistic-type.ts +0 -152
  130. package/server/service/kpi-statistic/kpi-statistic.ts +0 -199
  131. package/server/service/kpi-value/index.ts +0 -7
  132. package/server/service/kpi-value/kpi-value-mutation.ts +0 -432
  133. package/server/service/kpi-value/kpi-value-query.ts +0 -61
  134. package/server/service/kpi-value/kpi-value-score.service.ts +0 -106
  135. package/server/service/kpi-value/kpi-value-type.ts +0 -122
  136. package/server/service/kpi-value/kpi-value.ts +0 -160
  137. package/server/service/utils/value-date-util.ts +0 -119
  138. package/server/tsconfig.json +0 -10
  139. 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
- })