@things-factory/kpi 9.0.31 → 9.0.33

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 (365) hide show
  1. package/README.md +1 -2
  2. package/client/charts/kpi-boxplot-chart.ts +182 -42
  3. package/client/charts/kpi-radar-chart.ts +9 -9
  4. package/client/pages/kpi/kpi-list-page.ts +196 -32
  5. package/client/pages/kpi/kpi-overview.ts +9 -11
  6. package/client/pages/kpi/kpi-tree-page.ts +409 -0
  7. package/client/pages/kpi/kpi-view.ts +187 -0
  8. package/client/pages/kpi-dashboard/cards/kpi-level1-card.ts +1 -1
  9. package/client/pages/kpi-dashboard/cards/kpi-level2-comparison.ts +1 -1
  10. package/client/pages/kpi-dashboard/cards/kpi-level3-comparison.ts +1 -1
  11. package/client/pages/kpi-dashboard/components/kpi-left-panel.ts +198 -160
  12. package/client/pages/kpi-dashboard/components/kpi-map-panel.ts +133 -0
  13. package/client/pages/kpi-dashboard/components/kpi-region-popup.ts +3 -2
  14. package/client/pages/kpi-dashboard/kpi-dashboard-map.ts +291 -48
  15. package/client/pages/kpi-dashboard/kpi-dashboard.ts +28 -30
  16. package/client/pages/kpi-history/kpi-history-list-page.ts +11 -11
  17. package/client/pages/kpi-metric/kpi-metric-list-page.ts +10 -2
  18. package/client/pages/kpi-metric-value/kpi-metric-value-editor-page.ts +7 -7
  19. package/client/pages/kpi-metric-value/kpi-metric-value-importer.ts +2 -2
  20. package/client/pages/kpi-metric-value/kpi-metric-value-list-page.ts +16 -8
  21. package/client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.ts +5 -5
  22. package/client/pages/kpi-statistic/kpi-statistic-editor-page.ts +1 -2
  23. package/client/pages/kpi-statistic/kpi-statistic-list-page.ts +10 -2
  24. package/client/pages/kpi-value/kpi-value-editor-page.ts +11 -7
  25. package/client/pages/kpi-value/kpi-value-list-page.ts +31 -7
  26. package/client/route.ts +2 -9
  27. package/design-entities.md +8 -12
  28. package/dist-client/charts/kpi-boxplot-chart.d.ts +2 -0
  29. package/dist-client/charts/kpi-boxplot-chart.js +168 -42
  30. package/dist-client/charts/kpi-boxplot-chart.js.map +1 -1
  31. package/dist-client/charts/kpi-radar-chart.js +9 -9
  32. package/dist-client/charts/kpi-radar-chart.js.map +1 -1
  33. package/dist-client/pages/kpi/kpi-list-page.d.ts +19 -3
  34. package/dist-client/pages/kpi/kpi-list-page.js +188 -32
  35. package/dist-client/pages/kpi/kpi-list-page.js.map +1 -1
  36. package/dist-client/pages/kpi/kpi-overview.js +9 -11
  37. package/dist-client/pages/kpi/kpi-overview.js.map +1 -1
  38. package/dist-client/pages/kpi/kpi-tree-page.d.ts +59 -0
  39. package/dist-client/pages/kpi/kpi-tree-page.js +403 -0
  40. package/dist-client/pages/kpi/kpi-tree-page.js.map +1 -0
  41. package/dist-client/pages/kpi/kpi-view.d.ts +12 -0
  42. package/dist-client/pages/kpi/kpi-view.js +191 -0
  43. package/dist-client/pages/kpi/kpi-view.js.map +1 -0
  44. package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.js +1 -1
  45. package/dist-client/pages/kpi-dashboard/cards/kpi-level1-card.js.map +1 -1
  46. package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.js +1 -1
  47. package/dist-client/pages/kpi-dashboard/cards/kpi-level2-comparison.js.map +1 -1
  48. package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.js +1 -1
  49. package/dist-client/pages/kpi-dashboard/cards/kpi-level3-comparison.js.map +1 -1
  50. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.d.ts +3 -1
  51. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js +197 -161
  52. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js.map +1 -1
  53. package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.d.ts +5 -0
  54. package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.js +146 -0
  55. package/dist-client/pages/kpi-dashboard/components/kpi-map-panel.js.map +1 -1
  56. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js +3 -2
  57. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js.map +1 -1
  58. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.d.ts +3 -1
  59. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js +268 -46
  60. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js.map +1 -1
  61. package/dist-client/pages/kpi-dashboard/kpi-dashboard.js +28 -30
  62. package/dist-client/pages/kpi-dashboard/kpi-dashboard.js.map +1 -1
  63. package/dist-client/pages/kpi-history/kpi-history-list-page.d.ts +6 -1
  64. package/dist-client/pages/kpi-history/kpi-history-list-page.js +11 -11
  65. package/dist-client/pages/kpi-history/kpi-history-list-page.js.map +1 -1
  66. package/dist-client/pages/kpi-metric/kpi-metric-list-page.d.ts +5 -0
  67. package/dist-client/pages/kpi-metric/kpi-metric-list-page.js +10 -2
  68. package/dist-client/pages/kpi-metric/kpi-metric-list-page.js.map +1 -1
  69. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.d.ts +1 -1
  70. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js +8 -8
  71. package/dist-client/pages/kpi-metric-value/kpi-metric-value-editor-page.js.map +1 -1
  72. package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js +2 -2
  73. package/dist-client/pages/kpi-metric-value/kpi-metric-value-importer.js.map +1 -1
  74. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.d.ts +5 -0
  75. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js +16 -8
  76. package/dist-client/pages/kpi-metric-value/kpi-metric-value-list-page.js.map +1 -1
  77. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.d.ts +1 -1
  78. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js +6 -6
  79. package/dist-client/pages/kpi-metric-value/kpi-metric-value-manual-entry-form.js.map +1 -1
  80. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js +1 -2
  81. package/dist-client/pages/kpi-statistic/kpi-statistic-editor-page.js.map +1 -1
  82. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.d.ts +5 -0
  83. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js +10 -2
  84. package/dist-client/pages/kpi-statistic/kpi-statistic-list-page.js.map +1 -1
  85. package/dist-client/pages/kpi-value/kpi-value-editor-page.d.ts +2 -1
  86. package/dist-client/pages/kpi-value/kpi-value-editor-page.js +16 -8
  87. package/dist-client/pages/kpi-value/kpi-value-editor-page.js.map +1 -1
  88. package/dist-client/pages/kpi-value/kpi-value-list-page.d.ts +5 -0
  89. package/dist-client/pages/kpi-value/kpi-value-list-page.js +31 -7
  90. package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +1 -1
  91. package/dist-client/route.d.ts +1 -1
  92. package/dist-client/route.js +2 -8
  93. package/dist-client/route.js.map +1 -1
  94. package/dist-client/tsconfig.tsbuildinfo +1 -1
  95. package/dist-server/controllers/kpi-metric-value-provider.d.ts +1 -1
  96. package/dist-server/controllers/kpi-metric-value-provider.js +4 -4
  97. package/dist-server/controllers/kpi-metric-value-provider.js.map +1 -1
  98. package/dist-server/controllers/kpi-value-provider.d.ts +1 -1
  99. package/dist-server/controllers/kpi-value-provider.js +3 -3
  100. package/dist-server/controllers/kpi-value-provider.js.map +1 -1
  101. package/dist-server/migrations/1752190849680-seed-kpi-metrics.d.ts +6 -0
  102. package/dist-server/migrations/1752190849680-seed-kpi-metrics.js +101 -0
  103. package/dist-server/migrations/1752190849680-seed-kpi-metrics.js.map +1 -0
  104. package/dist-server/migrations/1752190849681-seed-kpi.d.ts +5 -0
  105. package/dist-server/migrations/1752190849681-seed-kpi.js +315 -0
  106. package/dist-server/migrations/1752190849681-seed-kpi.js.map +1 -0
  107. package/dist-server/migrations/1752192090123-add-grades-to-kpi.d.ts +7 -0
  108. package/dist-server/migrations/1752192090123-add-grades-to-kpi.js +51 -0
  109. package/dist-server/migrations/1752192090123-add-grades-to-kpi.js.map +1 -0
  110. package/dist-server/migrations/1752192090124-add-kpi-statistics.d.ts +5 -0
  111. package/dist-server/migrations/1752192090124-add-kpi-statistics.js +710 -0
  112. package/dist-server/migrations/1752192090124-add-kpi-statistics.js.map +1 -0
  113. package/dist-server/migrations/1752192090128-seed-kpi-org-scope.d.ts +6 -0
  114. package/dist-server/migrations/1752192090128-seed-kpi-org-scope.js +111 -0
  115. package/dist-server/migrations/1752192090128-seed-kpi-org-scope.js.map +1 -0
  116. package/dist-server/migrations/1752192090129-seed-kpi-values.d.ts +6 -0
  117. package/dist-server/migrations/1752192090129-seed-kpi-values.js +187 -0
  118. package/dist-server/migrations/1752192090129-seed-kpi-values.js.map +1 -0
  119. package/dist-server/migrations/grade-data/x11-performance-table.json +962 -0
  120. package/dist-server/migrations/grade-data/x12-performance-table.json +611 -0
  121. package/dist-server/migrations/grade-data/x14-performance-table.json +42 -0
  122. package/dist-server/migrations/grade-data/x21-performance-table.json +889 -0
  123. package/dist-server/migrations/grade-data/x22-performance-table.json +1064 -0
  124. package/dist-server/migrations/grade-data/x23-performance-table.json +42 -0
  125. package/dist-server/migrations/grade-data/x31-performance-table.json +644 -0
  126. package/dist-server/migrations/grade-data/x32-performance-table.json +993 -0
  127. package/dist-server/migrations/grade-data/x33-performance-table.json +195 -0
  128. package/dist-server/migrations/grade-data/x34-performance-table.json +12 -0
  129. package/dist-server/migrations/grade-data/x35-performance-table.json +42 -0
  130. package/dist-server/migrations/grade-data/x41-performance-table.json +825 -0
  131. package/dist-server/migrations/grade-data/x42-performance-table.json +786 -0
  132. package/dist-server/migrations/grade-data/x43-performance-table.json +12 -0
  133. package/dist-server/migrations/grade-data/x44-performance-table.json +42 -0
  134. package/dist-server/migrations/grade-data/x51-performance-table.json +924 -0
  135. package/dist-server/migrations/grade-data/x52-performance-table.json +42 -0
  136. package/dist-server/migrations/grade-data/x61-performance-table.json +261 -0
  137. package/dist-server/migrations/grade-data/x62-performance-table.json +42 -0
  138. package/dist-server/migrations/seed-data/kpi-metrics-seed.json +454 -0
  139. package/dist-server/migrations/seed-data/kpi-org-scope-seed.json +1676 -0
  140. package/dist-server/migrations/seed-data/kpi-scopes-seed.json +121 -0
  141. package/dist-server/migrations/seed-data/kpi-values-seed.json +402 -0
  142. package/dist-server/migrations/seed-data/kpis-seed.json +488 -0
  143. package/dist-server/migrations/seed-data/scope-definitions-seed.json +90 -0
  144. package/dist-server/service/index.d.ts +4 -7
  145. package/dist-server/service/index.js +10 -13
  146. package/dist-server/service/index.js.map +1 -1
  147. package/dist-server/service/kpi/aggregate-kpi.js +30 -13
  148. package/dist-server/service/kpi/aggregate-kpi.js.map +1 -1
  149. package/dist-server/service/kpi/kpi-formula.service.d.ts +15 -0
  150. package/dist-server/service/kpi/kpi-formula.service.js +90 -0
  151. package/dist-server/service/kpi/kpi-formula.service.js.map +1 -1
  152. package/dist-server/service/kpi/kpi-history.d.ts +0 -3
  153. package/dist-server/service/kpi/kpi-history.js +0 -10
  154. package/dist-server/service/kpi/kpi-history.js.map +1 -1
  155. package/dist-server/service/kpi/kpi-mutation.d.ts +1 -1
  156. package/dist-server/service/kpi/kpi-mutation.js +57 -20
  157. package/dist-server/service/kpi/kpi-mutation.js.map +1 -1
  158. package/dist-server/service/kpi/kpi-query.d.ts +7 -3
  159. package/dist-server/service/kpi/kpi-query.js +126 -10
  160. package/dist-server/service/kpi/kpi-query.js.map +1 -1
  161. package/dist-server/service/kpi/kpi-type.d.ts +4 -2
  162. package/dist-server/service/kpi/kpi-type.js +12 -4
  163. package/dist-server/service/kpi/kpi-type.js.map +1 -1
  164. package/dist-server/service/kpi/kpi.d.ts +4 -3
  165. package/dist-server/service/kpi/kpi.js +20 -8
  166. package/dist-server/service/kpi/kpi.js.map +1 -1
  167. package/dist-server/service/kpi-metric/aggregate-kpi-metric.js +46 -11
  168. package/dist-server/service/kpi-metric/aggregate-kpi-metric.js.map +1 -1
  169. package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.d.ts +1 -1
  170. package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js +6 -6
  171. package/dist-server/service/kpi-metric-value/kpi-metric-value-mutation.js.map +1 -1
  172. package/dist-server/service/kpi-metric-value/kpi-metric-value-type.d.ts +2 -2
  173. package/dist-server/service/kpi-metric-value/kpi-metric-value-type.js +4 -4
  174. package/dist-server/service/kpi-metric-value/kpi-metric-value-type.js.map +1 -1
  175. package/dist-server/service/kpi-metric-value/kpi-metric-value.d.ts +1 -1
  176. package/dist-server/service/kpi-metric-value/kpi-metric-value.js +3 -3
  177. package/dist-server/service/kpi-metric-value/kpi-metric-value.js.map +1 -1
  178. package/dist-server/service/kpi-org-scope/index.d.ts +5 -0
  179. package/dist-server/service/kpi-org-scope/index.js +9 -0
  180. package/dist-server/service/kpi-org-scope/index.js.map +1 -0
  181. package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.d.ts +8 -0
  182. package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.js +170 -0
  183. package/dist-server/service/kpi-org-scope/kpi-org-scope-mutation.js.map +1 -0
  184. package/dist-server/service/kpi-org-scope/kpi-org-scope-query.d.ts +14 -0
  185. package/dist-server/service/kpi-org-scope/kpi-org-scope-query.js +152 -0
  186. package/dist-server/service/kpi-org-scope/kpi-org-scope-query.js.map +1 -0
  187. package/dist-server/service/kpi-org-scope/kpi-org-scope-type.d.ts +26 -0
  188. package/dist-server/service/kpi-org-scope/kpi-org-scope-type.js +101 -0
  189. package/dist-server/service/kpi-org-scope/kpi-org-scope-type.js.map +1 -0
  190. package/dist-server/service/kpi-org-scope/kpi-org-scope.d.ts +26 -0
  191. package/dist-server/service/kpi-org-scope/kpi-org-scope.js +135 -0
  192. package/dist-server/service/kpi-org-scope/kpi-org-scope.js.map +1 -0
  193. package/dist-server/service/kpi-scope/index.d.ts +9 -0
  194. package/dist-server/service/kpi-scope/index.js +14 -0
  195. package/dist-server/service/kpi-scope/index.js.map +1 -0
  196. package/dist-server/service/kpi-scope/kpi-scope-mutation.d.ts +9 -0
  197. package/dist-server/service/kpi-scope/kpi-scope-mutation.js +135 -0
  198. package/dist-server/service/kpi-scope/kpi-scope-mutation.js.map +1 -0
  199. package/dist-server/service/kpi-scope/kpi-scope-query.d.ts +11 -0
  200. package/dist-server/service/kpi-scope/kpi-scope-query.js +89 -0
  201. package/dist-server/service/kpi-scope/kpi-scope-query.js.map +1 -0
  202. package/dist-server/service/kpi-scope/kpi-scope-type.d.ts +35 -0
  203. package/dist-server/service/kpi-scope/kpi-scope-type.js +138 -0
  204. package/dist-server/service/kpi-scope/kpi-scope-type.js.map +1 -0
  205. package/dist-server/service/kpi-scope/kpi-scope.d.ts +38 -0
  206. package/dist-server/service/kpi-scope/kpi-scope.js +144 -0
  207. package/dist-server/service/kpi-scope/kpi-scope.js.map +1 -0
  208. package/dist-server/service/kpi-statistic/kpi-statistic-batch.service.d.ts +43 -0
  209. package/dist-server/service/kpi-statistic/kpi-statistic-batch.service.js +181 -0
  210. package/dist-server/service/kpi-statistic/kpi-statistic-batch.service.js.map +1 -0
  211. package/dist-server/service/kpi-statistic/kpi-statistic-calculation.service.d.ts +50 -0
  212. package/dist-server/service/kpi-statistic/kpi-statistic-calculation.service.js +324 -0
  213. package/dist-server/service/kpi-statistic/kpi-statistic-calculation.service.js.map +1 -0
  214. package/dist-server/service/kpi-statistic/kpi-statistic-mutation.d.ts +4 -0
  215. package/dist-server/service/kpi-statistic/kpi-statistic-mutation.js +76 -0
  216. package/dist-server/service/kpi-statistic/kpi-statistic-mutation.js.map +1 -1
  217. package/dist-server/service/kpi-statistic/kpi-statistic-query.d.ts +5 -1
  218. package/dist-server/service/kpi-statistic/kpi-statistic-query.js +92 -1
  219. package/dist-server/service/kpi-statistic/kpi-statistic-query.js.map +1 -1
  220. package/dist-server/service/kpi-statistic/kpi-statistic.d.ts +4 -0
  221. package/dist-server/service/kpi-statistic/kpi-statistic.js +33 -0
  222. package/dist-server/service/kpi-statistic/kpi-statistic.js.map +1 -1
  223. package/dist-server/service/kpi-value/kpi-value-mutation.js +71 -7
  224. package/dist-server/service/kpi-value/kpi-value-mutation.js.map +1 -1
  225. package/dist-server/service/kpi-value/kpi-value-type.d.ts +4 -2
  226. package/dist-server/service/kpi-value/kpi-value-type.js +12 -4
  227. package/dist-server/service/kpi-value/kpi-value-type.js.map +1 -1
  228. package/dist-server/service/kpi-value/kpi-value.d.ts +3 -1
  229. package/dist-server/service/kpi-value/kpi-value.js +11 -5
  230. package/dist-server/service/kpi-value/kpi-value.js.map +1 -1
  231. package/dist-server/service/utils/value-date-util.d.ts +1 -0
  232. package/dist-server/service/utils/value-date-util.js +41 -0
  233. package/dist-server/service/utils/value-date-util.js.map +1 -1
  234. package/dist-server/tsconfig.json +10 -0
  235. package/dist-server/tsconfig.tsbuildinfo +1 -1
  236. package/package.json +7 -6
  237. package/server/@types/index.d.ts +11 -0
  238. package/server/controllers/kpi-metric-value-provider.ts +5 -5
  239. package/server/controllers/kpi-value-provider.ts +4 -4
  240. package/server/migrations/1752190849680-seed-kpi-metrics.ts +124 -0
  241. package/server/migrations/1752190849681-seed-kpi.ts +356 -0
  242. package/server/migrations/1752192090123-add-grades-to-kpi.ts +67 -0
  243. package/server/migrations/1752192090124-add-kpi-statistics.ts +719 -0
  244. package/server/migrations/1752192090128-seed-kpi-org-scope.ts +132 -0
  245. package/server/migrations/1752192090129-seed-kpi-values.ts +207 -0
  246. package/server/migrations/grade-data/x11-performance-table.json +962 -0
  247. package/server/migrations/grade-data/x12-performance-table.json +611 -0
  248. package/server/migrations/grade-data/x14-performance-table.json +42 -0
  249. package/server/migrations/grade-data/x21-performance-table.json +889 -0
  250. package/server/migrations/grade-data/x22-performance-table.json +1064 -0
  251. package/server/migrations/grade-data/x23-performance-table.json +42 -0
  252. package/server/migrations/grade-data/x31-performance-table.json +644 -0
  253. package/server/migrations/grade-data/x32-performance-table.json +993 -0
  254. package/server/migrations/grade-data/x33-performance-table.json +195 -0
  255. package/server/migrations/grade-data/x34-performance-table.json +12 -0
  256. package/server/migrations/grade-data/x35-performance-table.json +42 -0
  257. package/server/migrations/grade-data/x41-performance-table.json +825 -0
  258. package/server/migrations/grade-data/x42-performance-table.json +786 -0
  259. package/server/migrations/grade-data/x43-performance-table.json +12 -0
  260. package/server/migrations/grade-data/x44-performance-table.json +42 -0
  261. package/server/migrations/grade-data/x51-performance-table.json +924 -0
  262. package/server/migrations/grade-data/x52-performance-table.json +42 -0
  263. package/server/migrations/grade-data/x61-performance-table.json +261 -0
  264. package/server/migrations/grade-data/x62-performance-table.json +42 -0
  265. package/server/migrations/seed-data/kpi-metrics-seed.json +454 -0
  266. package/server/migrations/seed-data/kpi-org-scope-seed.json +1676 -0
  267. package/server/migrations/seed-data/kpi-scopes-seed.json +121 -0
  268. package/server/migrations/seed-data/kpi-values-seed.json +402 -0
  269. package/server/migrations/seed-data/kpis-seed.json +488 -0
  270. package/server/migrations/seed-data/scope-definitions-seed.json +90 -0
  271. package/server/service/index.ts +10 -13
  272. package/server/service/kpi/aggregate-kpi.ts +31 -13
  273. package/server/service/kpi/kpi-formula.service.ts +101 -0
  274. package/server/service/kpi/kpi-history.ts +0 -8
  275. package/server/service/kpi/kpi-mutation.ts +59 -19
  276. package/server/service/kpi/kpi-query.ts +119 -8
  277. package/server/service/kpi/kpi-type.ts +10 -4
  278. package/server/service/kpi/kpi.ts +17 -7
  279. package/server/service/kpi-metric/aggregate-kpi-metric.ts +55 -11
  280. package/server/service/kpi-metric-value/kpi-metric-value-mutation.ts +6 -6
  281. package/server/service/kpi-metric-value/kpi-metric-value-type.ts +4 -4
  282. package/server/service/kpi-metric-value/kpi-metric-value.ts +3 -3
  283. package/server/service/kpi-org-scope/index.ts +6 -0
  284. package/server/service/kpi-org-scope/kpi-org-scope-mutation.ts +173 -0
  285. package/server/service/kpi-org-scope/kpi-org-scope-query.ts +127 -0
  286. package/server/service/kpi-org-scope/kpi-org-scope-type.ts +68 -0
  287. package/server/service/kpi-org-scope/kpi-org-scope.ts +123 -0
  288. package/server/service/kpi-scope/index.ts +11 -0
  289. package/server/service/kpi-scope/kpi-scope-mutation.ts +129 -0
  290. package/server/service/kpi-scope/kpi-scope-query.ts +63 -0
  291. package/server/service/kpi-scope/kpi-scope-type.ts +96 -0
  292. package/server/service/kpi-scope/kpi-scope.ts +143 -0
  293. package/server/service/kpi-statistic/kpi-statistic-batch.service.ts +231 -0
  294. package/server/service/kpi-statistic/kpi-statistic-calculation.service.ts +410 -0
  295. package/server/service/kpi-statistic/kpi-statistic-mutation.ts +97 -0
  296. package/server/service/kpi-statistic/kpi-statistic-query.ts +89 -2
  297. package/server/service/kpi-statistic/kpi-statistic.ts +32 -0
  298. package/server/service/kpi-value/kpi-value-mutation.ts +73 -7
  299. package/server/service/kpi-value/kpi-value-type.ts +10 -4
  300. package/server/service/kpi-value/kpi-value.ts +10 -5
  301. package/server/service/utils/value-date-util.ts +47 -0
  302. package/server/types/global.d.ts +8 -0
  303. package/things-factory.config.js +1 -0
  304. package/translations/en.json +15 -3
  305. package/translations/ja.json +13 -3
  306. package/translations/ko.json +15 -3
  307. package/translations/ms.json +13 -3
  308. package/translations/zh.json +13 -3
  309. package/client/pages/kpi-category/kpi-category-importer.ts +0 -90
  310. package/client/pages/kpi-category/kpi-category-list-page.ts +0 -537
  311. package/client/pages/kpi-category/kpi-category-value-calculator.ts +0 -233
  312. package/client/pages/kpi-category-value/kpi-category-value-list-page.ts +0 -404
  313. package/dist-client/pages/kpi-category/kpi-category-importer.d.ts +0 -23
  314. package/dist-client/pages/kpi-category/kpi-category-importer.js +0 -92
  315. package/dist-client/pages/kpi-category/kpi-category-importer.js.map +0 -1
  316. package/dist-client/pages/kpi-category/kpi-category-list-page.d.ts +0 -74
  317. package/dist-client/pages/kpi-category/kpi-category-list-page.js +0 -517
  318. package/dist-client/pages/kpi-category/kpi-category-list-page.js.map +0 -1
  319. package/dist-client/pages/kpi-category/kpi-category-value-calculator.d.ts +0 -13
  320. package/dist-client/pages/kpi-category/kpi-category-value-calculator.js +0 -256
  321. package/dist-client/pages/kpi-category/kpi-category-value-calculator.js.map +0 -1
  322. package/dist-client/pages/kpi-category-value/kpi-category-value-list-page.d.ts +0 -63
  323. package/dist-client/pages/kpi-category-value/kpi-category-value-list-page.js +0 -393
  324. package/dist-client/pages/kpi-category-value/kpi-category-value-list-page.js.map +0 -1
  325. package/dist-server/service/kpi-category/index.d.ts +0 -6
  326. package/dist-server/service/kpi-category/index.js +0 -10
  327. package/dist-server/service/kpi-category/index.js.map +0 -1
  328. package/dist-server/service/kpi-category/kpi-category-mutation.d.ts +0 -9
  329. package/dist-server/service/kpi-category/kpi-category-mutation.js +0 -221
  330. package/dist-server/service/kpi-category/kpi-category-mutation.js.map +0 -1
  331. package/dist-server/service/kpi-category/kpi-category-query.d.ts +0 -18
  332. package/dist-server/service/kpi-category/kpi-category-query.js +0 -115
  333. package/dist-server/service/kpi-category/kpi-category-query.js.map +0 -1
  334. package/dist-server/service/kpi-category/kpi-category-type.d.ts +0 -24
  335. package/dist-server/service/kpi-category/kpi-category-type.js +0 -100
  336. package/dist-server/service/kpi-category/kpi-category-type.js.map +0 -1
  337. package/dist-server/service/kpi-category/kpi-category.d.ts +0 -22
  338. package/dist-server/service/kpi-category/kpi-category.js +0 -106
  339. package/dist-server/service/kpi-category/kpi-category.js.map +0 -1
  340. package/dist-server/service/kpi-category-value/index.d.ts +0 -6
  341. package/dist-server/service/kpi-category-value/index.js +0 -10
  342. package/dist-server/service/kpi-category-value/index.js.map +0 -1
  343. package/dist-server/service/kpi-category-value/kpi-category-value-mutation.d.ts +0 -8
  344. package/dist-server/service/kpi-category-value/kpi-category-value-mutation.js +0 -102
  345. package/dist-server/service/kpi-category-value/kpi-category-value-mutation.js.map +0 -1
  346. package/dist-server/service/kpi-category-value/kpi-category-value-query.d.ts +0 -13
  347. package/dist-server/service/kpi-category-value/kpi-category-value-query.js +0 -91
  348. package/dist-server/service/kpi-category-value/kpi-category-value-query.js.map +0 -1
  349. package/dist-server/service/kpi-category-value/kpi-category-value-type.d.ts +0 -19
  350. package/dist-server/service/kpi-category-value/kpi-category-value-type.js +0 -73
  351. package/dist-server/service/kpi-category-value/kpi-category-value-type.js.map +0 -1
  352. package/dist-server/service/kpi-category-value/kpi-category-value.d.ts +0 -19
  353. package/dist-server/service/kpi-category-value/kpi-category-value.js +0 -91
  354. package/dist-server/service/kpi-category-value/kpi-category-value.js.map +0 -1
  355. package/helps/kpi/kpi-category.md +0 -160
  356. package/server/service/kpi-category/index.ts +0 -7
  357. package/server/service/kpi-category/kpi-category-mutation.ts +0 -217
  358. package/server/service/kpi-category/kpi-category-query.ts +0 -87
  359. package/server/service/kpi-category/kpi-category-type.ts +0 -73
  360. package/server/service/kpi-category/kpi-category.ts +0 -95
  361. package/server/service/kpi-category-value/index.ts +0 -7
  362. package/server/service/kpi-category-value/kpi-category-value-mutation.ts +0 -88
  363. package/server/service/kpi-category-value/kpi-category-value-query.ts +0 -62
  364. package/server/service/kpi-category-value/kpi-category-value-type.ts +0 -48
  365. package/server/service/kpi-category-value/kpi-category-value.ts +0 -79
@@ -0,0 +1,121 @@
1
+ [
2
+ {
3
+ "name": "공사진도율",
4
+ "description": "건설 프로젝트의 진행률을 나타내는 KPI",
5
+ "scopeMappingStrategy": "RULE_BASED",
6
+ "autoGenerateOrgScope": true,
7
+ "scopeMappingRules": {
8
+ "scope01": {
9
+ "strategy": "FIELD_MAPPING",
10
+ "sourceField": "project_name",
11
+ "required": true
12
+ },
13
+ "scope02": {
14
+ "strategy": "LOOKUP_TABLE",
15
+ "sourceField": "address",
16
+ "mappingTable": "address_region_mapping",
17
+ "mappingColumn": "region",
18
+ "defaultValue": "기타"
19
+ },
20
+ "scope03": {
21
+ "strategy": "FIELD_MAPPING",
22
+ "sourceField": "contractor_company",
23
+ "required": true
24
+ },
25
+ "scope04": {
26
+ "strategy": "FORMULA",
27
+ "formula": "${total_budget} >= 100000000 ? '대규모' : ${total_budget} >= 50000000 ? '중규모' : '소규모'",
28
+ "defaultValue": "중규모"
29
+ },
30
+ "scope05": {
31
+ "strategy": "STATIC",
32
+ "staticValue": "건축공사"
33
+ }
34
+ },
35
+ "dataSource": {
36
+ "type": "API",
37
+ "apiEndpoint": "https://api.construction-system.com/progress",
38
+ "refreshInterval": 60
39
+ },
40
+ "validationRules": {
41
+ "valueRange": { "min": 0, "max": 100 },
42
+ "requiredScopes": ["scope01", "scope02", "scope03"],
43
+ "allowedScopeValues": {
44
+ "scope04": ["대규모", "중규모", "소규모"],
45
+ "scope05": ["건축공사", "토목공사", "플랜트공사"]
46
+ }
47
+ }
48
+ },
49
+ {
50
+ "name": "안전사고율",
51
+ "description": "건설 현장의 안전사고 발생률",
52
+ "scopeMappingStrategy": "ENTITY_BASED",
53
+ "autoGenerateOrgScope": true,
54
+ "scopeMappingRules": {
55
+ "scope01": {
56
+ "strategy": "FIELD_MAPPING",
57
+ "sourceField": "site_name",
58
+ "required": true
59
+ },
60
+ "scope02": {
61
+ "strategy": "API_CALL",
62
+ "apiEndpoint": "https://api.address-service.com/region",
63
+ "sourceField": "site_address"
64
+ },
65
+ "scope03": {
66
+ "strategy": "FIELD_MAPPING",
67
+ "sourceField": "company_name",
68
+ "required": true
69
+ },
70
+ "scope04": {
71
+ "strategy": "LOOKUP_TABLE",
72
+ "sourceField": "worker_count",
73
+ "mappingTable": "project_size_mapping",
74
+ "mappingColumn": "size_category"
75
+ },
76
+ "scope05": {
77
+ "strategy": "FIELD_MAPPING",
78
+ "sourceField": "construction_type",
79
+ "defaultValue": "일반공사"
80
+ }
81
+ },
82
+ "dataSource": {
83
+ "type": "DATABASE",
84
+ "connection": "safety_db",
85
+ "query": "SELECT * FROM safety_incidents WHERE report_date >= CURRENT_DATE - INTERVAL '1 month'",
86
+ "refreshInterval": 1440
87
+ },
88
+ "validationRules": {
89
+ "valueRange": { "min": 0, "max": 1000 },
90
+ "requiredScopes": ["scope01", "scope02", "scope03"]
91
+ }
92
+ },
93
+ {
94
+ "name": "품질점수",
95
+ "description": "건설 품질 평가 점수",
96
+ "scopeMappingStrategy": "MANUAL",
97
+ "autoGenerateOrgScope": false,
98
+ "scopeMappingRules": {
99
+ "scope01": {
100
+ "strategy": "FIELD_MAPPING",
101
+ "sourceField": "project_id"
102
+ },
103
+ "scope02": {
104
+ "strategy": "FIELD_MAPPING",
105
+ "sourceField": "region"
106
+ },
107
+ "scope03": {
108
+ "strategy": "FIELD_MAPPING",
109
+ "sourceField": "company"
110
+ }
111
+ },
112
+ "dataSource": {
113
+ "type": "MANUAL",
114
+ "description": "수동 입력으로 관리되는 KPI"
115
+ },
116
+ "validationRules": {
117
+ "valueRange": { "min": 0, "max": 100 },
118
+ "requiredScopes": ["scope02", "scope03"]
119
+ }
120
+ }
121
+ ]
@@ -0,0 +1,402 @@
1
+ [
2
+ {
3
+ "kpi_name": "X11. 연면적 대비 공사기간",
4
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
5
+ "value_date": "2025-08",
6
+ "value": 0.0024,
7
+ "score": 0.8,
8
+ "period_type": "MONTH",
9
+ "input_type": "MANUAL",
10
+ "source": "현장관리시스템"
11
+ },
12
+ {
13
+ "kpi_name": "X12. 설계변경에 따른 공기 증감률",
14
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
15
+ "value_date": "2025-08",
16
+ "value": 0.15,
17
+ "score": 0.7,
18
+ "period_type": "MONTH",
19
+ "input_type": "MANUAL",
20
+ "source": "설계변경관리시스템"
21
+ },
22
+ {
23
+ "kpi_name": "X13. 일정 이탈 수준",
24
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
25
+ "value_date": "2025-08",
26
+ "value": 2.5,
27
+ "score": 0.6,
28
+ "period_type": "MONTH",
29
+ "input_type": "MANUAL",
30
+ "source": "공정관리시스템"
31
+ },
32
+ {
33
+ "kpi_name": "X14. 일정성과 수준 평가",
34
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
35
+ "value_date": "2025-08",
36
+ "value": 75.2,
37
+ "score": 0.75,
38
+ "period_type": "MONTH",
39
+ "input_type": "AUTO",
40
+ "source": "KPI자동계산"
41
+ },
42
+ {
43
+ "kpi_name": "X21. 연면적 대비 공사비",
44
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
45
+ "value_date": "2025-08",
46
+ "value": 1.85,
47
+ "score": 0.82,
48
+ "period_type": "MONTH",
49
+ "input_type": "MANUAL",
50
+ "source": "원가관리시스템"
51
+ },
52
+ {
53
+ "kpi_name": "X22. 설계변경에 따른 공사비 증감률",
54
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
55
+ "value_date": "2025-08",
56
+ "value": 0.08,
57
+ "score": 0.85,
58
+ "period_type": "MONTH",
59
+ "input_type": "MANUAL",
60
+ "source": "원가관리시스템"
61
+ },
62
+ {
63
+ "kpi_name": "X23. 비용성과 수준 평가",
64
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
65
+ "value_date": "2025-08",
66
+ "value": 83.5,
67
+ "score": 0.84,
68
+ "period_type": "MONTH",
69
+ "input_type": "AUTO",
70
+ "source": "KPI자동계산"
71
+ },
72
+ {
73
+ "kpi_name": "X31. 품질시험 불합격률",
74
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
75
+ "value_date": "2025-08",
76
+ "value": 0.0003,
77
+ "score": 0.92,
78
+ "period_type": "MONTH",
79
+ "input_type": "MANUAL",
80
+ "source": "품질관리시스템"
81
+ },
82
+ {
83
+ "kpi_name": "X32. 검수자재 불합격률",
84
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
85
+ "value_date": "2025-08",
86
+ "value": 0.0002,
87
+ "score": 0.95,
88
+ "period_type": "MONTH",
89
+ "input_type": "MANUAL",
90
+ "source": "자재관리시스템"
91
+ },
92
+ {
93
+ "kpi_name": "X33. 검측 불합격률",
94
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
95
+ "value_date": "2025-08",
96
+ "value": 0.0001,
97
+ "score": 0.98,
98
+ "period_type": "MONTH",
99
+ "input_type": "MANUAL",
100
+ "source": "품질관리시스템"
101
+ },
102
+ {
103
+ "kpi_name": "X34. 품질 SL-PA 결과값",
104
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
105
+ "value_date": "2025-08",
106
+ "value": 87.5,
107
+ "score": 0.88,
108
+ "period_type": "MONTH",
109
+ "input_type": "MANUAL",
110
+ "source": "SL-PA시스템"
111
+ },
112
+ {
113
+ "kpi_name": "X35. 품질성과 수준 평가",
114
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
115
+ "value_date": "2025-08",
116
+ "value": 90.8,
117
+ "score": 0.91,
118
+ "period_type": "MONTH",
119
+ "input_type": "AUTO",
120
+ "source": "KPI자동계산"
121
+ },
122
+ {
123
+ "kpi_name": "X41. 재해율",
124
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
125
+ "value_date": "2025-08",
126
+ "value": 0.12,
127
+ "score": 0.94,
128
+ "period_type": "MONTH",
129
+ "input_type": "MANUAL",
130
+ "source": "안전관리시스템"
131
+ },
132
+ {
133
+ "kpi_name": "X42. 재해강도율",
134
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
135
+ "value_date": "2025-08",
136
+ "value": 0.08,
137
+ "score": 0.96,
138
+ "period_type": "MONTH",
139
+ "input_type": "MANUAL",
140
+ "source": "안전관리시스템"
141
+ },
142
+ {
143
+ "kpi_name": "X43. 안전 SL-PA 결과값",
144
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
145
+ "value_date": "2025-08",
146
+ "value": 92.3,
147
+ "score": 0.92,
148
+ "period_type": "MONTH",
149
+ "input_type": "MANUAL",
150
+ "source": "SL-PA시스템"
151
+ },
152
+ {
153
+ "kpi_name": "X44. 안전성과 수준 평가",
154
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
155
+ "value_date": "2025-08",
156
+ "value": 94.1,
157
+ "score": 0.94,
158
+ "period_type": "MONTH",
159
+ "input_type": "AUTO",
160
+ "source": "KPI자동계산"
161
+ },
162
+ {
163
+ "kpi_name": "X51. 건설폐기물 발생량",
164
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
165
+ "value_date": "2025-08",
166
+ "value": 0.025,
167
+ "score": 0.89,
168
+ "period_type": "MONTH",
169
+ "input_type": "MANUAL",
170
+ "source": "환경관리시스템"
171
+ },
172
+ {
173
+ "kpi_name": "X52. 환경성과 수준 평가",
174
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
175
+ "value_date": "2025-08",
176
+ "value": 89.2,
177
+ "score": 0.89,
178
+ "period_type": "MONTH",
179
+ "input_type": "AUTO",
180
+ "source": "KPI자동계산"
181
+ },
182
+ {
183
+ "kpi_name": "X61. 투입인력 생산성",
184
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
185
+ "value_date": "2025-08",
186
+ "value": 0.00085,
187
+ "score": 0.78,
188
+ "period_type": "MONTH",
189
+ "input_type": "MANUAL",
190
+ "source": "인력관리시스템"
191
+ },
192
+ {
193
+ "kpi_name": "X62. 생산성성과 수준 평가",
194
+ "org": "서울 강남구 테헤란로 135번지 복합상가 신축",
195
+ "value_date": "2025-08",
196
+ "value": 78.5,
197
+ "score": 0.79,
198
+ "period_type": "MONTH",
199
+ "input_type": "AUTO",
200
+ "source": "KPI자동계산"
201
+ },
202
+ {
203
+ "kpi_name": "X11. 연면적 대비 공사기간",
204
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
205
+ "value_date": "2025-08",
206
+ "value": 0.0032,
207
+ "score": 0.65,
208
+ "period_type": "MONTH",
209
+ "input_type": "MANUAL",
210
+ "source": "현장관리시스템"
211
+ },
212
+ {
213
+ "kpi_name": "X12. 설계변경에 따른 공기 증감률",
214
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
215
+ "value_date": "2025-08",
216
+ "value": 0.22,
217
+ "score": 0.55,
218
+ "period_type": "MONTH",
219
+ "input_type": "MANUAL",
220
+ "source": "설계변경관리시스템"
221
+ },
222
+ {
223
+ "kpi_name": "X13. 일정 이탈 수준",
224
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
225
+ "value_date": "2025-08",
226
+ "value": 3.8,
227
+ "score": 0.45,
228
+ "period_type": "MONTH",
229
+ "input_type": "MANUAL",
230
+ "source": "공정관리시스템"
231
+ },
232
+ {
233
+ "kpi_name": "X14. 일정성과 수준 평가",
234
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
235
+ "value_date": "2025-08",
236
+ "value": 55.0,
237
+ "score": 0.55,
238
+ "period_type": "MONTH",
239
+ "input_type": "AUTO",
240
+ "source": "KPI자동계산"
241
+ },
242
+ {
243
+ "kpi_name": "X21. 연면적 대비 공사비",
244
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
245
+ "value_date": "2025-08",
246
+ "value": 1.95,
247
+ "score": 0.78,
248
+ "period_type": "MONTH",
249
+ "input_type": "MANUAL",
250
+ "source": "원가관리시스템"
251
+ },
252
+ {
253
+ "kpi_name": "X22. 설계변경에 따른 공사비 증감률",
254
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
255
+ "value_date": "2025-08",
256
+ "value": 0.12,
257
+ "score": 0.72,
258
+ "period_type": "MONTH",
259
+ "input_type": "MANUAL",
260
+ "source": "원가관리시스템"
261
+ },
262
+ {
263
+ "kpi_name": "X23. 비용성과 수준 평가",
264
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
265
+ "value_date": "2025-08",
266
+ "value": 75.0,
267
+ "score": 0.75,
268
+ "period_type": "MONTH",
269
+ "input_type": "AUTO",
270
+ "source": "KPI자동계산"
271
+ },
272
+ {
273
+ "kpi_name": "X31. 품질시험 불합격률",
274
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
275
+ "value_date": "2025-08",
276
+ "value": 0.0005,
277
+ "score": 0.85,
278
+ "period_type": "MONTH",
279
+ "input_type": "MANUAL",
280
+ "source": "품질관리시스템"
281
+ },
282
+ {
283
+ "kpi_name": "X32. 검수자재 불합격률",
284
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
285
+ "value_date": "2025-08",
286
+ "value": 0.0004,
287
+ "score": 0.88,
288
+ "period_type": "MONTH",
289
+ "input_type": "MANUAL",
290
+ "source": "자재관리시스템"
291
+ },
292
+ {
293
+ "kpi_name": "X33. 검측 불합격률",
294
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
295
+ "value_date": "2025-08",
296
+ "value": 0.0003,
297
+ "score": 0.90,
298
+ "period_type": "MONTH",
299
+ "input_type": "MANUAL",
300
+ "source": "품질관리시스템"
301
+ },
302
+ {
303
+ "kpi_name": "X34. 품질 SL-PA 결과값",
304
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
305
+ "value_date": "2025-08",
306
+ "value": 81.2,
307
+ "score": 0.81,
308
+ "period_type": "MONTH",
309
+ "input_type": "MANUAL",
310
+ "source": "SL-PA시스템"
311
+ },
312
+ {
313
+ "kpi_name": "X35. 품질성과 수준 평가",
314
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
315
+ "value_date": "2025-08",
316
+ "value": 86.1,
317
+ "score": 0.86,
318
+ "period_type": "MONTH",
319
+ "input_type": "AUTO",
320
+ "source": "KPI자동계산"
321
+ },
322
+ {
323
+ "kpi_name": "X41. 재해율",
324
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
325
+ "value_date": "2025-08",
326
+ "value": 0.18,
327
+ "score": 0.88,
328
+ "period_type": "MONTH",
329
+ "input_type": "MANUAL",
330
+ "source": "안전관리시스템"
331
+ },
332
+ {
333
+ "kpi_name": "X42. 재해강도율",
334
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
335
+ "value_date": "2025-08",
336
+ "value": 0.15,
337
+ "score": 0.85,
338
+ "period_type": "MONTH",
339
+ "input_type": "MANUAL",
340
+ "source": "안전관리시스템"
341
+ },
342
+ {
343
+ "kpi_name": "X43. 안전 SL-PA 결과값",
344
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
345
+ "value_date": "2025-08",
346
+ "value": 85.7,
347
+ "score": 0.86,
348
+ "period_type": "MONTH",
349
+ "input_type": "MANUAL",
350
+ "source": "SL-PA시스템"
351
+ },
352
+ {
353
+ "kpi_name": "X44. 안전성과 수준 평가",
354
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
355
+ "value_date": "2025-08",
356
+ "value": 86.5,
357
+ "score": 0.87,
358
+ "period_type": "MONTH",
359
+ "input_type": "AUTO",
360
+ "source": "KPI자동계산"
361
+ },
362
+ {
363
+ "kpi_name": "X51. 건설폐기물 발생량",
364
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
365
+ "value_date": "2025-08",
366
+ "value": 0.032,
367
+ "score": 0.82,
368
+ "period_type": "MONTH",
369
+ "input_type": "MANUAL",
370
+ "source": "환경관리시스템"
371
+ },
372
+ {
373
+ "kpi_name": "X52. 환경성과 수준 평가",
374
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
375
+ "value_date": "2025-08",
376
+ "value": 82.0,
377
+ "score": 0.82,
378
+ "period_type": "MONTH",
379
+ "input_type": "AUTO",
380
+ "source": "KPI자동계산"
381
+ },
382
+ {
383
+ "kpi_name": "X61. 투입인력 생산성",
384
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
385
+ "value_date": "2025-08",
386
+ "value": 0.00095,
387
+ "score": 0.72,
388
+ "period_type": "MONTH",
389
+ "input_type": "MANUAL",
390
+ "source": "인력관리시스템"
391
+ },
392
+ {
393
+ "kpi_name": "X62. 생산성성과 수준 평가",
394
+ "org": "부산 해운대구 우동 1478번지 주거단지 조성",
395
+ "value_date": "2025-08",
396
+ "value": 72.5,
397
+ "score": 0.73,
398
+ "period_type": "MONTH",
399
+ "input_type": "AUTO",
400
+ "source": "KPI자동계산"
401
+ }
402
+ ]