@things-factory/kpi 1.0.0-alpha.5 → 9.0.9
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/README.md +74 -0
- package/client/pages/kpi/kpi-list-page.ts +97 -47
- package/client/pages/kpi/kpi-overview-sample.ts +260 -0
- package/client/pages/kpi/kpi-overview.ts +271 -0
- package/client/pages/kpi-category/kpi-category-list-page.ts +39 -50
- package/client/pages/kpi-dashboard/kpi-alert-panel.ts +114 -0
- package/client/pages/kpi-dashboard/kpi-dashboard.ts +285 -0
- package/client/pages/kpi-dashboard/kpi-grade-visualization.ts +75 -0
- package/client/pages/kpi-dashboard/kpi-history-viewer.ts +58 -0
- package/client/pages/kpi-dashboard/kpi-list-summary.ts +100 -0
- package/client/pages/kpi-dashboard/kpi-performance-summary.ts +124 -0
- package/client/pages/kpi-dashboard/kpi-value-entry.ts +78 -0
- package/client/pages/kpi-grade/kpi-grade-list-page.ts +58 -68
- package/client/pages/kpi-history/kpi-history-list-page.ts +146 -0
- package/client/pages/kpi-metric/kpi-metric-list-page.ts +67 -63
- package/client/pages/kpi-value/kpi-value-list-page.ts +73 -72
- package/client/pages/kpi-value/kpi-value-manual-entry-form.ts +168 -0
- package/client/pages/kpi-value/kpi-value-manual-entry-page.ts +173 -0
- package/client/route.ts +35 -0
- package/dist-client/pages/kpi/kpi-importer.js +16 -17
- package/dist-client/pages/kpi/kpi-importer.js.map +1 -1
- package/dist-client/pages/kpi/kpi-list-page.js +128 -68
- package/dist-client/pages/kpi/kpi-list-page.js.map +1 -1
- package/dist-client/pages/kpi/kpi-overview-sample.d.ts +36 -0
- package/dist-client/pages/kpi/kpi-overview-sample.js +264 -0
- package/dist-client/pages/kpi/kpi-overview-sample.js.map +1 -0
- package/dist-client/pages/kpi/kpi-overview.d.ts +14 -0
- package/dist-client/pages/kpi/kpi-overview.js +290 -0
- package/dist-client/pages/kpi/kpi-overview.js.map +1 -0
- package/dist-client/pages/kpi-category/kpi-category-importer.js +16 -17
- package/dist-client/pages/kpi-category/kpi-category-importer.js.map +1 -1
- package/dist-client/pages/kpi-category/kpi-category-list-page.js +70 -71
- package/dist-client/pages/kpi-category/kpi-category-list-page.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/kpi-alert-panel.d.ts +18 -0
- package/dist-client/pages/kpi-dashboard/kpi-alert-panel.js +128 -0
- package/dist-client/pages/kpi-dashboard/kpi-alert-panel.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/kpi-dashboard.d.ts +24 -0
- package/dist-client/pages/kpi-dashboard/kpi-dashboard.js +305 -0
- package/dist-client/pages/kpi-dashboard/kpi-dashboard.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/kpi-grade-visualization.d.ts +12 -0
- package/dist-client/pages/kpi-dashboard/kpi-grade-visualization.js +82 -0
- package/dist-client/pages/kpi-dashboard/kpi-grade-visualization.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/kpi-history-viewer.d.ts +11 -0
- package/dist-client/pages/kpi-dashboard/kpi-history-viewer.js +65 -0
- package/dist-client/pages/kpi-dashboard/kpi-history-viewer.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/kpi-list-summary.d.ts +13 -0
- package/dist-client/pages/kpi-dashboard/kpi-list-summary.js +115 -0
- package/dist-client/pages/kpi-dashboard/kpi-list-summary.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/kpi-performance-summary.d.ts +15 -0
- package/dist-client/pages/kpi-dashboard/kpi-performance-summary.js +139 -0
- package/dist-client/pages/kpi-dashboard/kpi-performance-summary.js.map +1 -0
- package/dist-client/pages/kpi-dashboard/kpi-value-entry.d.ts +7 -0
- package/dist-client/pages/kpi-dashboard/kpi-value-entry.js +86 -0
- package/dist-client/pages/kpi-dashboard/kpi-value-entry.js.map +1 -0
- package/dist-client/pages/kpi-grade/kpi-grade-importer.js +16 -17
- package/dist-client/pages/kpi-grade/kpi-grade-importer.js.map +1 -1
- package/dist-client/pages/kpi-grade/kpi-grade-list-page.js +89 -89
- package/dist-client/pages/kpi-grade/kpi-grade-list-page.js.map +1 -1
- package/dist-client/pages/kpi-history/kpi-history-list-page.d.ts +16 -0
- package/dist-client/pages/kpi-history/kpi-history-list-page.js +155 -0
- package/dist-client/pages/kpi-history/kpi-history-list-page.js.map +1 -0
- package/dist-client/pages/kpi-metric/kpi-metric-importer.js +16 -17
- package/dist-client/pages/kpi-metric/kpi-metric-importer.js.map +1 -1
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.js +98 -84
- package/dist-client/pages/kpi-metric/kpi-metric-list-page.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-importer.js +16 -17
- package/dist-client/pages/kpi-value/kpi-value-importer.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-list-page.js +104 -93
- package/dist-client/pages/kpi-value/kpi-value-list-page.js.map +1 -1
- package/dist-client/pages/kpi-value/kpi-value-manual-entry-form.d.ts +14 -0
- package/dist-client/pages/kpi-value/kpi-value-manual-entry-form.js +201 -0
- package/dist-client/pages/kpi-value/kpi-value-manual-entry-form.js.map +1 -0
- package/dist-client/pages/kpi-value/kpi-value-manual-entry-page.d.ts +41 -0
- package/dist-client/pages/kpi-value/kpi-value-manual-entry-page.js +180 -0
- package/dist-client/pages/kpi-value/kpi-value-manual-entry-page.js.map +1 -0
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +27 -0
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/index.d.ts +2 -1
- package/dist-server/index.js +2 -1
- package/dist-server/index.js.map +1 -1
- package/dist-server/migrations/1752188906708-SeedKpiCategory.d.ts +5 -0
- package/dist-server/migrations/1752188906708-SeedKpiCategory.js +56 -0
- package/dist-server/migrations/1752188906708-SeedKpiCategory.js.map +1 -0
- package/dist-server/migrations/1752190849681-SeedKpi.d.ts +5 -0
- package/dist-server/migrations/1752190849681-SeedKpi.js +107 -0
- package/dist-server/migrations/1752190849681-SeedKpi.js.map +1 -0
- package/dist-server/migrations/1752191090459-SeedKpiGrade.d.ts +5 -0
- package/dist-server/migrations/1752191090459-SeedKpiGrade.js +271 -0
- package/dist-server/migrations/1752191090459-SeedKpiGrade.js.map +1 -0
- package/dist-server/migrations/index.d.ts +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +48 -0
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/index.d.ts +3 -4
- package/dist-server/service/index.js +4 -6
- package/dist-server/service/index.js.map +1 -1
- package/dist-server/service/kpi/aggregate-kpi.d.ts +8 -0
- package/dist-server/service/kpi/aggregate-kpi.js +88 -0
- package/dist-server/service/kpi/aggregate-kpi.js.map +1 -0
- package/dist-server/service/kpi/event-subscriber.d.ts +2 -0
- package/dist-server/service/kpi/event-subscriber.js +10 -0
- package/dist-server/service/kpi/event-subscriber.js.map +1 -1
- package/dist-server/service/kpi/index.d.ts +2 -1
- package/dist-server/service/kpi/kpi-formula.service.d.ts +24 -0
- package/dist-server/service/kpi/kpi-formula.service.js +64 -0
- package/dist-server/service/kpi/kpi-formula.service.js.map +1 -0
- package/dist-server/service/kpi/kpi-history.d.ts +6 -2
- package/dist-server/service/kpi/kpi-history.js +29 -11
- package/dist-server/service/kpi/kpi-history.js.map +1 -1
- package/dist-server/service/kpi/kpi-mutation.d.ts +2 -0
- package/dist-server/service/kpi/kpi-mutation.js +215 -10
- package/dist-server/service/kpi/kpi-mutation.js.map +1 -1
- package/dist-server/service/kpi/kpi-query.d.ts +10 -0
- package/dist-server/service/kpi/kpi-query.js +87 -3
- package/dist-server/service/kpi/kpi-query.js.map +1 -1
- package/dist-server/service/kpi/kpi-type.d.ts +14 -3
- package/dist-server/service/kpi/kpi-type.js +81 -18
- package/dist-server/service/kpi/kpi-type.js.map +1 -1
- package/dist-server/service/kpi/kpi.d.ts +14 -3
- package/dist-server/service/kpi/kpi.js +96 -19
- package/dist-server/service/kpi/kpi.js.map +1 -1
- package/dist-server/service/kpi-alert/index.d.ts +2 -0
- package/dist-server/service/kpi-alert/index.js +6 -0
- package/dist-server/service/kpi-alert/index.js.map +1 -0
- package/dist-server/service/kpi-alert/kpi-alert-query.d.ts +4 -0
- package/dist-server/service/kpi-alert/kpi-alert-query.js +71 -0
- package/dist-server/service/kpi-alert/kpi-alert-query.js.map +1 -0
- package/dist-server/service/kpi-alert/kpi-alert-type.d.ts +8 -0
- package/dist-server/service/kpi-alert/kpi-alert-type.js +33 -0
- package/dist-server/service/kpi-alert/kpi-alert-type.js.map +1 -0
- package/dist-server/service/kpi-category/kpi-category-mutation.d.ts +1 -1
- package/dist-server/service/kpi-category/kpi-category-mutation.js +36 -10
- package/dist-server/service/kpi-category/kpi-category-mutation.js.map +1 -1
- package/dist-server/service/kpi-category/kpi-category-query.d.ts +2 -0
- package/dist-server/service/kpi-category/kpi-category-query.js +18 -2
- package/dist-server/service/kpi-category/kpi-category-query.js.map +1 -1
- package/dist-server/service/kpi-category/kpi-category-type.d.ts +3 -5
- package/dist-server/service/kpi-category/kpi-category-type.js +16 -20
- package/dist-server/service/kpi-category/kpi-category-type.js.map +1 -1
- package/dist-server/service/kpi-category/kpi-category.d.ts +7 -9
- package/dist-server/service/kpi-category/kpi-category.js +40 -38
- package/dist-server/service/kpi-category/kpi-category.js.map +1 -1
- package/dist-server/service/kpi-grade/index.d.ts +1 -2
- package/dist-server/service/kpi-grade/index.js +2 -4
- package/dist-server/service/kpi-grade/index.js.map +1 -1
- package/dist-server/service/kpi-grade/kpi-grade-mutation.d.ts +1 -1
- package/dist-server/service/kpi-grade/kpi-grade-mutation.js +33 -10
- package/dist-server/service/kpi-grade/kpi-grade-mutation.js.map +1 -1
- package/dist-server/service/kpi-grade/kpi-grade-query.js +2 -2
- package/dist-server/service/kpi-grade/kpi-grade-query.js.map +1 -1
- package/dist-server/service/kpi-grade/kpi-grade-type.d.ts +13 -4
- package/dist-server/service/kpi-grade/kpi-grade-type.js +54 -18
- package/dist-server/service/kpi-grade/kpi-grade-type.js.map +1 -1
- package/dist-server/service/kpi-grade/kpi-grade.d.ts +8 -8
- package/dist-server/service/kpi-grade/kpi-grade.js +48 -40
- package/dist-server/service/kpi-grade/kpi-grade.js.map +1 -1
- package/dist-server/service/kpi-metric/aggregate-kpi-metric.d.ts +8 -0
- package/dist-server/service/kpi-metric/aggregate-kpi-metric.js +134 -0
- package/dist-server/service/kpi-metric/aggregate-kpi-metric.js.map +1 -0
- package/dist-server/service/kpi-metric/index.d.ts +1 -2
- package/dist-server/service/kpi-metric/index.js +2 -4
- package/dist-server/service/kpi-metric/index.js.map +1 -1
- package/dist-server/service/kpi-metric/kpi-metric-mutation.d.ts +1 -1
- package/dist-server/service/kpi-metric/kpi-metric-mutation.js +139 -13
- package/dist-server/service/kpi-metric/kpi-metric-mutation.js.map +1 -1
- package/dist-server/service/kpi-metric/kpi-metric-query.js +3 -3
- package/dist-server/service/kpi-metric/kpi-metric-query.js.map +1 -1
- package/dist-server/service/kpi-metric/kpi-metric-type.d.ts +17 -4
- package/dist-server/service/kpi-metric/kpi-metric-type.js +69 -11
- package/dist-server/service/kpi-metric/kpi-metric-type.js.map +1 -1
- package/dist-server/service/kpi-metric/kpi-metric.d.ts +11 -8
- package/dist-server/service/kpi-metric/kpi-metric.js +62 -37
- package/dist-server/service/kpi-metric/kpi-metric.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value-mutation.js +66 -11
- package/dist-server/service/kpi-value/kpi-value-mutation.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value-query.d.ts +2 -0
- package/dist-server/service/kpi-value/kpi-value-query.js +15 -2
- package/dist-server/service/kpi-value/kpi-value-query.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value-type.d.ts +19 -10
- package/dist-server/service/kpi-value/kpi-value-type.js +87 -24
- package/dist-server/service/kpi-value/kpi-value-type.js.map +1 -1
- package/dist-server/service/kpi-value/kpi-value.d.ts +15 -9
- package/dist-server/service/kpi-value/kpi-value.js +86 -32
- package/dist-server/service/kpi-value/kpi-value.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/implement-plan/01-entity-type-resolver.md +57 -0
- package/implement-plan/02-dataset-integration.md +35 -0
- package/implement-plan/03-kpivalue-automation.md +34 -0
- package/implement-plan/04-version-history.md +33 -0
- package/implement-plan/05-grade-visualization.md +33 -0
- package/implement-plan/06-graphql-frontend.md +30 -0
- package/implement-plan/07-test-docs.md +35 -0
- package/implement-plan/TODO.md +41 -0
- package/package.json +18 -6
- package/server/index.ts +2 -1
- package/server/migrations/1752188906708-SeedKpiCategory.ts +61 -0
- package/server/migrations/1752190849681-SeedKpi.ts +112 -0
- package/server/migrations/1752191090459-SeedKpiGrade.ts +270 -0
- package/server/migrations/index.ts +9 -0
- package/server/routes.ts +55 -0
- package/server/service/index.ts +4 -6
- package/server/service/kpi/aggregate-kpi.ts +82 -0
- package/server/service/kpi/event-subscriber.ts +12 -0
- package/server/service/kpi/kpi-formula.service.ts +63 -0
- package/server/service/kpi/kpi-history.ts +29 -21
- package/server/service/kpi/kpi-mutation.ts +194 -12
- package/server/service/kpi/kpi-query.ts +57 -2
- package/server/service/kpi/kpi-type.ts +72 -19
- package/server/service/kpi/kpi.ts +96 -20
- package/server/service/kpi-alert/index.ts +3 -0
- package/server/service/kpi-alert/kpi-alert-query.ts +59 -0
- package/server/service/kpi-alert/kpi-alert-type.ts +20 -0
- package/server/service/kpi-category/kpi-category-mutation.ts +17 -4
- package/server/service/kpi-category/kpi-category-query.ts +20 -3
- package/server/service/kpi-category/kpi-category-type.ts +17 -19
- package/server/service/kpi-category/kpi-category.ts +39 -37
- package/server/service/kpi-grade/index.ts +2 -4
- package/server/service/kpi-grade/kpi-grade-mutation.ts +13 -4
- package/server/service/kpi-grade/kpi-grade-query.ts +5 -2
- package/server/service/kpi-grade/kpi-grade-type.ts +46 -19
- package/server/service/kpi-grade/kpi-grade.ts +44 -38
- package/server/service/kpi-metric/aggregate-kpi-metric.ts +128 -0
- package/server/service/kpi-metric/index.ts +2 -4
- package/server/service/kpi-metric/kpi-metric-mutation.ts +123 -7
- package/server/service/kpi-metric/kpi-metric-query.ts +9 -3
- package/server/service/kpi-metric/kpi-metric-type.ts +56 -13
- package/server/service/kpi-metric/kpi-metric.ts +55 -35
- package/server/service/kpi-value/kpi-value-mutation.ts +52 -14
- package/server/service/kpi-value/kpi-value-query.ts +12 -2
- package/server/service/kpi-value/kpi-value-type.ts +80 -25
- package/server/service/kpi-value/kpi-value.ts +81 -29
- package/things-factory.config.js +12 -4
- package/translations/en.json +12 -1
- package/translations/ja.json +12 -1
- package/translations/ko.json +12 -1
- package/translations/ms.json +12 -1
- package/translations/zh.json +12 -1
- package/client/pages/kpe-metric/kpe-metric-importer.ts +0 -90
- package/client/pages/kpe-metric/kpe-metric-list-page.ts +0 -398
- package/client/pages/kpi-formula/kpi-formula-importer.ts +0 -90
- package/client/pages/kpi-formula/kpi-formula-list-page.ts +0 -398
- package/client/pages/metric/metric-importer.ts +0 -90
- package/client/pages/metric/metric-list-page.ts +0 -398
- package/dist-client/pages/kpe-metric/kpe-metric-importer.d.ts +0 -23
- package/dist-client/pages/kpe-metric/kpe-metric-importer.js +0 -93
- package/dist-client/pages/kpe-metric/kpe-metric-importer.js.map +0 -1
- package/dist-client/pages/kpe-metric/kpe-metric-list-page.d.ts +0 -66
- package/dist-client/pages/kpe-metric/kpe-metric-list-page.js +0 -370
- package/dist-client/pages/kpe-metric/kpe-metric-list-page.js.map +0 -1
- package/dist-client/pages/kpi-formula/kpi-formula-importer.d.ts +0 -23
- package/dist-client/pages/kpi-formula/kpi-formula-importer.js +0 -93
- package/dist-client/pages/kpi-formula/kpi-formula-importer.js.map +0 -1
- package/dist-client/pages/kpi-formula/kpi-formula-list-page.d.ts +0 -66
- package/dist-client/pages/kpi-formula/kpi-formula-list-page.js +0 -370
- package/dist-client/pages/kpi-formula/kpi-formula-list-page.js.map +0 -1
- package/dist-client/pages/metric/metric-importer.d.ts +0 -23
- package/dist-client/pages/metric/metric-importer.js +0 -93
- package/dist-client/pages/metric/metric-importer.js.map +0 -1
- package/dist-client/pages/metric/metric-list-page.d.ts +0 -66
- package/dist-client/pages/metric/metric-list-page.js +0 -370
- package/dist-client/pages/metric/metric-list-page.js.map +0 -1
- package/dist-server/service/kpi-formula/event-subscriber.d.ts +0 -7
- package/dist-server/service/kpi-formula/event-subscriber.js +0 -21
- package/dist-server/service/kpi-formula/event-subscriber.js.map +0 -1
- package/dist-server/service/kpi-formula/index.d.ts +0 -7
- package/dist-server/service/kpi-formula/index.js +0 -12
- package/dist-server/service/kpi-formula/index.js.map +0 -1
- package/dist-server/service/kpi-formula/kpi-formula-history.d.ts +0 -25
- package/dist-server/service/kpi-formula/kpi-formula-history.js +0 -128
- package/dist-server/service/kpi-formula/kpi-formula-history.js.map +0 -1
- package/dist-server/service/kpi-formula/kpi-formula-mutation.d.ts +0 -10
- package/dist-server/service/kpi-formula/kpi-formula-mutation.js +0 -128
- package/dist-server/service/kpi-formula/kpi-formula-mutation.js.map +0 -1
- package/dist-server/service/kpi-formula/kpi-formula-query.d.ts +0 -11
- package/dist-server/service/kpi-formula/kpi-formula-query.js +0 -79
- package/dist-server/service/kpi-formula/kpi-formula-query.js.map +0 -1
- package/dist-server/service/kpi-formula/kpi-formula-type.d.ts +0 -20
- package/dist-server/service/kpi-formula/kpi-formula-type.js +0 -77
- package/dist-server/service/kpi-formula/kpi-formula-type.js.map +0 -1
- package/dist-server/service/kpi-formula/kpi-formula.d.ts +0 -24
- package/dist-server/service/kpi-formula/kpi-formula.js +0 -109
- package/dist-server/service/kpi-formula/kpi-formula.js.map +0 -1
- package/dist-server/service/kpi-grade/event-subscriber.d.ts +0 -7
- package/dist-server/service/kpi-grade/event-subscriber.js +0 -21
- package/dist-server/service/kpi-grade/event-subscriber.js.map +0 -1
- package/dist-server/service/kpi-grade/kpi-grade-history.d.ts +0 -25
- package/dist-server/service/kpi-grade/kpi-grade-history.js +0 -128
- package/dist-server/service/kpi-grade/kpi-grade-history.js.map +0 -1
- package/dist-server/service/kpi-metric/event-subscriber.d.ts +0 -7
- package/dist-server/service/kpi-metric/event-subscriber.js +0 -21
- package/dist-server/service/kpi-metric/event-subscriber.js.map +0 -1
- package/dist-server/service/kpi-metric/kpi-metric-history.d.ts +0 -25
- package/dist-server/service/kpi-metric/kpi-metric-history.js +0 -128
- package/dist-server/service/kpi-metric/kpi-metric-history.js.map +0 -1
- package/server/service/kpi-formula/event-subscriber.ts +0 -17
- package/server/service/kpi-formula/index.ts +0 -9
- package/server/service/kpi-formula/kpi-formula-history.ts +0 -116
- package/server/service/kpi-formula/kpi-formula-mutation.ts +0 -137
- package/server/service/kpi-formula/kpi-formula-query.ts +0 -48
- package/server/service/kpi-formula/kpi-formula-type.ts +0 -55
- package/server/service/kpi-formula/kpi-formula.ts +0 -95
- package/server/service/kpi-grade/event-subscriber.ts +0 -17
- package/server/service/kpi-grade/kpi-grade-history.ts +0 -116
- package/server/service/kpi-metric/event-subscriber.ts +0 -17
- package/server/service/kpi-metric/kpi-metric-history.ts +0 -116
|
@@ -7,10 +7,18 @@ const typeorm_1 = require("typeorm");
|
|
|
7
7
|
const shell_1 = require("@things-factory/shell");
|
|
8
8
|
const kpi_grade_1 = require("./kpi-grade");
|
|
9
9
|
const kpi_grade_type_1 = require("./kpi-grade-type");
|
|
10
|
+
const kpi_1 = require("../kpi/kpi");
|
|
10
11
|
let KpiGradeMutation = class KpiGradeMutation {
|
|
11
|
-
async createKpiGrade(
|
|
12
|
+
async createKpiGrade(grade, context) {
|
|
12
13
|
const { domain, user, tx } = context.state;
|
|
13
|
-
|
|
14
|
+
let kpi = grade.kpiId ? await (0, shell_1.getRepository)(kpi_1.Kpi).findOne({ where: { id: grade.kpiId } }) : undefined;
|
|
15
|
+
const result = await (0, shell_1.getRepository)(kpi_grade_1.KpiGrade, tx).save({
|
|
16
|
+
...grade,
|
|
17
|
+
kpi,
|
|
18
|
+
domain,
|
|
19
|
+
creator: user,
|
|
20
|
+
updater: user
|
|
21
|
+
});
|
|
14
22
|
return result;
|
|
15
23
|
}
|
|
16
24
|
async updateKpiGrade(id, patch, context) {
|
|
@@ -19,7 +27,13 @@ let KpiGradeMutation = class KpiGradeMutation {
|
|
|
19
27
|
const kpiGrade = await repository.findOne({
|
|
20
28
|
where: { domain: { id: domain.id }, id }
|
|
21
29
|
});
|
|
22
|
-
|
|
30
|
+
let kpi = patch.kpiId ? await (0, shell_1.getRepository)(kpi_1.Kpi).findOne({ where: { id: patch.kpiId } }) : kpiGrade.kpi;
|
|
31
|
+
const result = await repository.save({
|
|
32
|
+
...kpiGrade,
|
|
33
|
+
...patch,
|
|
34
|
+
kpi,
|
|
35
|
+
updater: user
|
|
36
|
+
});
|
|
23
37
|
return result;
|
|
24
38
|
}
|
|
25
39
|
async updateMultipleKpiGrade(patches, context) {
|
|
@@ -31,16 +45,25 @@ let KpiGradeMutation = class KpiGradeMutation {
|
|
|
31
45
|
if (_createRecords.length > 0) {
|
|
32
46
|
for (let i = 0; i < _createRecords.length; i++) {
|
|
33
47
|
const newRecord = _createRecords[i];
|
|
34
|
-
const result = await kpiGradeRepo.save(
|
|
35
|
-
|
|
48
|
+
const result = await kpiGradeRepo.save({
|
|
49
|
+
...newRecord,
|
|
50
|
+
domain,
|
|
51
|
+
creator: user,
|
|
52
|
+
updater: user
|
|
53
|
+
});
|
|
54
|
+
results.push({ ...result, cuFlag: '+' });
|
|
36
55
|
}
|
|
37
56
|
}
|
|
38
57
|
if (_updateRecords.length > 0) {
|
|
39
58
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
40
59
|
const updateRecord = _updateRecords[i];
|
|
41
60
|
const kpiGrade = await kpiGradeRepo.findOneBy({ id: updateRecord.id });
|
|
42
|
-
const result = await kpiGradeRepo.save(
|
|
43
|
-
|
|
61
|
+
const result = await kpiGradeRepo.save({
|
|
62
|
+
...kpiGrade,
|
|
63
|
+
...updateRecord,
|
|
64
|
+
updater: user
|
|
65
|
+
});
|
|
66
|
+
results.push({ ...result, cuFlag: 'M' });
|
|
44
67
|
}
|
|
45
68
|
}
|
|
46
69
|
return results;
|
|
@@ -61,7 +84,7 @@ let KpiGradeMutation = class KpiGradeMutation {
|
|
|
61
84
|
async importKpiGrades(kpiGrades, context) {
|
|
62
85
|
const { domain, tx } = context.state;
|
|
63
86
|
await Promise.all(kpiGrades.map(async (kpiGrade) => {
|
|
64
|
-
const createdKpiGrade = await (0, shell_1.getRepository)(kpi_grade_1.KpiGrade, tx).save(
|
|
87
|
+
const createdKpiGrade = await (0, shell_1.getRepository)(kpi_grade_1.KpiGrade, tx).save({ domain, ...kpiGrade });
|
|
65
88
|
}));
|
|
66
89
|
return true;
|
|
67
90
|
}
|
|
@@ -69,8 +92,8 @@ let KpiGradeMutation = class KpiGradeMutation {
|
|
|
69
92
|
exports.KpiGradeMutation = KpiGradeMutation;
|
|
70
93
|
tslib_1.__decorate([
|
|
71
94
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
72
|
-
(0, type_graphql_1.Mutation)(returns => kpi_grade_1.KpiGrade, { description: '
|
|
73
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('
|
|
95
|
+
(0, type_graphql_1.Mutation)(returns => kpi_grade_1.KpiGrade, { description: 'Create a new KPI grade with the provided details.' }),
|
|
96
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('grade', { description: 'Input object containing details for the new KPI grade.' })),
|
|
74
97
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
75
98
|
tslib_1.__metadata("design:type", Function),
|
|
76
99
|
tslib_1.__metadata("design:paramtypes", [kpi_grade_type_1.NewKpiGrade, Object]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpi-grade-mutation.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAC5B,iDAAqD;AAErD,2CAAsC;AACtC,qDAA6D;
|
|
1
|
+
{"version":3,"file":"kpi-grade-mutation.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\nimport { getRepository } from '@things-factory/shell'\n\nimport { KpiGrade } from './kpi-grade'\nimport { NewKpiGrade, KpiGradePatch } from './kpi-grade-type'\nimport { Kpi } from '../kpi/kpi'\n\n@Resolver(KpiGrade)\nexport class KpiGradeMutation {\n @Directive('@transaction')\n @Mutation(returns => KpiGrade, { description: 'Create a new KPI grade with the provided details.' })\n async createKpiGrade(\n @Arg('grade', { description: 'Input object containing details for the new KPI grade.' }) grade: NewKpiGrade,\n @Ctx() context: ResolverContext\n ): Promise<KpiGrade> {\n const { domain, user, tx } = context.state\n\n let kpi = grade.kpiId ? await getRepository(Kpi).findOne({ where: { id: grade.kpiId } }) : undefined\n\n const result = await getRepository(KpiGrade, tx).save({\n ...grade,\n kpi,\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => KpiGrade, { description: 'To modify KpiGrade information' })\n async updateKpiGrade(\n @Arg('id') id: string,\n @Arg('patch') patch: KpiGradePatch,\n @Ctx() context: ResolverContext\n ): Promise<KpiGrade> {\n const { domain, user, tx } = context.state\n\n const repository = getRepository(KpiGrade, tx)\n const kpiGrade = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n let kpi = patch.kpiId ? await getRepository(Kpi).findOne({ where: { id: patch.kpiId } }) : kpiGrade.kpi\n\n const result = await repository.save({\n ...kpiGrade,\n ...patch,\n kpi,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => [KpiGrade], { description: \"To modify multiple KpiGrades' information\" })\n async updateMultipleKpiGrade(\n @Arg('patches', type => [KpiGradePatch]) patches: KpiGradePatch[],\n @Ctx() context: ResolverContext\n ): Promise<KpiGrade[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const kpiGradeRepo = getRepository(KpiGrade, tx)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await kpiGradeRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const kpiGrade = await kpiGradeRepo.findOneBy({ id: updateRecord.id })\n\n const result = await kpiGradeRepo.save({\n ...kpiGrade,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete KpiGrade' })\n async deleteKpiGrade(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(KpiGrade, tx).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple KpiGrades' })\n async deleteKpiGrades(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await getRepository(KpiGrade, tx).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To import multiple KpiGrades' })\n async importKpiGrades(\n @Arg('kpiGrades', type => [KpiGradePatch]) kpiGrades: KpiGradePatch[],\n @Ctx() context: ResolverContext\n ): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n kpiGrades.map(async (kpiGrade: KpiGradePatch) => {\n const createdKpiGrade: KpiGrade = await getRepository(KpiGrade, tx).save({ domain, ...kpiGrade })\n })\n )\n\n return true\n }\n}\n"]}
|
|
@@ -37,8 +37,8 @@ let KpiGradeQuery = class KpiGradeQuery {
|
|
|
37
37
|
};
|
|
38
38
|
exports.KpiGradeQuery = KpiGradeQuery;
|
|
39
39
|
tslib_1.__decorate([
|
|
40
|
-
(0, type_graphql_1.Query)(returns => kpi_grade_1.KpiGrade, { nullable: true, description: '
|
|
41
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
40
|
+
(0, type_graphql_1.Query)(returns => kpi_grade_1.KpiGrade, { nullable: true, description: 'Fetch a single KPI grade by its unique identifier.' }),
|
|
41
|
+
tslib_1.__param(0, (0, type_graphql_1.Arg)('id', { description: 'Unique identifier of the KPI grade to fetch.' })),
|
|
42
42
|
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
43
43
|
tslib_1.__metadata("design:type", Function),
|
|
44
44
|
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpi-grade-query.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade-query.ts"],"names":[],"mappings":";;;;AAAA,+CAA8F;AAC9F,iDAAuG;AACvG,yDAAgD;AAChD,2CAAsC;AACtC,qDAA+C;AAGxC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAElB,AAAN,KAAK,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"kpi-grade-query.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx, Directive } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { KpiGrade } from './kpi-grade'\nimport { KpiGradeList } from './kpi-grade-type'\n\n@Resolver(KpiGrade)\nexport class KpiGradeQuery {\n @Query(returns => KpiGrade!, { nullable: true, description: 'Fetch a single KPI grade by its unique identifier.' })\n async kpiGrade(\n @Arg('id', { description: 'Unique identifier of the KPI grade to fetch.' }) id: string,\n @Ctx() context: ResolverContext\n ): Promise<KpiGrade> {\n const { domain } = context.state\n\n return await getRepository(KpiGrade).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => KpiGradeList, { description: 'To fetch multiple KpiGrades' })\n async kpiGrades(@Args(type => ListParam) params: ListParam, @Ctx() context: ResolverContext): Promise<KpiGradeList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(KpiGrade),\n searchables: ['name', 'description']\n })\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() kpiGrade: KpiGrade): Promise<Domain> {\n return kpiGrade.domainId && (await getRepository(Domain).findOneBy({ id: kpiGrade.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() kpiGrade: KpiGrade): Promise<User> {\n return kpiGrade.updaterId && (await getRepository(User).findOneBy({ id: kpiGrade.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() kpiGrade: KpiGrade): Promise<User> {\n return kpiGrade.creatorId && (await getRepository(User).findOneBy({ id: kpiGrade.creatorId }))\n }\n}\n"]}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
import { KpiGrade
|
|
1
|
+
import { KpiGrade } from './kpi-grade';
|
|
2
2
|
export declare class NewKpiGrade {
|
|
3
3
|
name: string;
|
|
4
4
|
description?: string;
|
|
5
|
-
|
|
5
|
+
kpiId: string;
|
|
6
|
+
version: number;
|
|
7
|
+
minValue: number;
|
|
8
|
+
maxValue: number;
|
|
9
|
+
score?: number;
|
|
10
|
+
color?: string;
|
|
6
11
|
active?: boolean;
|
|
7
|
-
params?: string;
|
|
8
12
|
}
|
|
9
13
|
export declare class KpiGradePatch {
|
|
10
14
|
id?: string;
|
|
11
15
|
name?: string;
|
|
12
16
|
description?: string;
|
|
13
|
-
|
|
17
|
+
kpiId?: string;
|
|
18
|
+
version?: number;
|
|
19
|
+
minValue?: number;
|
|
20
|
+
maxValue?: number;
|
|
21
|
+
score?: number;
|
|
22
|
+
color?: string;
|
|
14
23
|
active?: boolean;
|
|
15
24
|
cuFlag?: string;
|
|
16
25
|
}
|
|
@@ -8,57 +8,93 @@ let NewKpiGrade = class NewKpiGrade {
|
|
|
8
8
|
};
|
|
9
9
|
exports.NewKpiGrade = NewKpiGrade;
|
|
10
10
|
tslib_1.__decorate([
|
|
11
|
-
(0, type_graphql_1.Field)(),
|
|
11
|
+
(0, type_graphql_1.Field)({ description: 'Name of the grade or section for this KPI.' }),
|
|
12
12
|
tslib_1.__metadata("design:type", String)
|
|
13
13
|
], NewKpiGrade.prototype, "name", void 0);
|
|
14
14
|
tslib_1.__decorate([
|
|
15
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
15
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Detailed description of this KPI grade.' }),
|
|
16
16
|
tslib_1.__metadata("design:type", String)
|
|
17
17
|
], NewKpiGrade.prototype, "description", void 0);
|
|
18
18
|
tslib_1.__decorate([
|
|
19
|
-
(0, type_graphql_1.Field)(type =>
|
|
19
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { description: 'ID of the KPI to which this grade belongs.' }),
|
|
20
20
|
tslib_1.__metadata("design:type", String)
|
|
21
|
-
], NewKpiGrade.prototype, "
|
|
21
|
+
], NewKpiGrade.prototype, "kpiId", void 0);
|
|
22
22
|
tslib_1.__decorate([
|
|
23
|
-
(0, type_graphql_1.Field)({
|
|
24
|
-
tslib_1.__metadata("design:type",
|
|
25
|
-
], NewKpiGrade.prototype, "
|
|
23
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Version of the KPI definition to which this grade belongs.' }),
|
|
24
|
+
tslib_1.__metadata("design:type", Number)
|
|
25
|
+
], NewKpiGrade.prototype, "version", void 0);
|
|
26
26
|
tslib_1.__decorate([
|
|
27
|
-
(0, type_graphql_1.Field)({
|
|
27
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Minimum value for this grade section.' }),
|
|
28
|
+
tslib_1.__metadata("design:type", Number)
|
|
29
|
+
], NewKpiGrade.prototype, "minValue", void 0);
|
|
30
|
+
tslib_1.__decorate([
|
|
31
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Maximum value for this grade section.' }),
|
|
32
|
+
tslib_1.__metadata("design:type", Number)
|
|
33
|
+
], NewKpiGrade.prototype, "maxValue", void 0);
|
|
34
|
+
tslib_1.__decorate([
|
|
35
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Score or weight for this grade (optional).' }),
|
|
36
|
+
tslib_1.__metadata("design:type", Number)
|
|
37
|
+
], NewKpiGrade.prototype, "score", void 0);
|
|
38
|
+
tslib_1.__decorate([
|
|
39
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Color code for this grade (for visualization purposes).' }),
|
|
28
40
|
tslib_1.__metadata("design:type", String)
|
|
29
|
-
], NewKpiGrade.prototype, "
|
|
41
|
+
], NewKpiGrade.prototype, "color", void 0);
|
|
42
|
+
tslib_1.__decorate([
|
|
43
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Indicates whether this KPI grade is active and usable.' }),
|
|
44
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
45
|
+
], NewKpiGrade.prototype, "active", void 0);
|
|
30
46
|
exports.NewKpiGrade = NewKpiGrade = tslib_1.__decorate([
|
|
31
|
-
(0, type_graphql_1.InputType)()
|
|
47
|
+
(0, type_graphql_1.InputType)({ description: 'Input type for creating a new KPI grade. Used in mutations to provide grade details.' })
|
|
32
48
|
], NewKpiGrade);
|
|
33
49
|
let KpiGradePatch = class KpiGradePatch {
|
|
34
50
|
};
|
|
35
51
|
exports.KpiGradePatch = KpiGradePatch;
|
|
36
52
|
tslib_1.__decorate([
|
|
37
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true }),
|
|
53
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'ID of the KPI grade to update.' }),
|
|
38
54
|
tslib_1.__metadata("design:type", String)
|
|
39
55
|
], KpiGradePatch.prototype, "id", void 0);
|
|
40
56
|
tslib_1.__decorate([
|
|
41
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
57
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Name of the grade or section for this KPI.' }),
|
|
42
58
|
tslib_1.__metadata("design:type", String)
|
|
43
59
|
], KpiGradePatch.prototype, "name", void 0);
|
|
44
60
|
tslib_1.__decorate([
|
|
45
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
61
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Detailed description of this KPI grade.' }),
|
|
46
62
|
tslib_1.__metadata("design:type", String)
|
|
47
63
|
], KpiGradePatch.prototype, "description", void 0);
|
|
48
64
|
tslib_1.__decorate([
|
|
49
|
-
(0, type_graphql_1.Field)(type =>
|
|
65
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { nullable: true, description: 'ID of the KPI to which this grade belongs.' }),
|
|
66
|
+
tslib_1.__metadata("design:type", String)
|
|
67
|
+
], KpiGradePatch.prototype, "kpiId", void 0);
|
|
68
|
+
tslib_1.__decorate([
|
|
69
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Version of the KPI definition to which this grade belongs.' }),
|
|
70
|
+
tslib_1.__metadata("design:type", Number)
|
|
71
|
+
], KpiGradePatch.prototype, "version", void 0);
|
|
72
|
+
tslib_1.__decorate([
|
|
73
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Minimum value for this grade section.' }),
|
|
74
|
+
tslib_1.__metadata("design:type", Number)
|
|
75
|
+
], KpiGradePatch.prototype, "minValue", void 0);
|
|
76
|
+
tslib_1.__decorate([
|
|
77
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Maximum value for this grade section.' }),
|
|
78
|
+
tslib_1.__metadata("design:type", Number)
|
|
79
|
+
], KpiGradePatch.prototype, "maxValue", void 0);
|
|
80
|
+
tslib_1.__decorate([
|
|
81
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true, description: 'Score or weight for this grade (optional).' }),
|
|
82
|
+
tslib_1.__metadata("design:type", Number)
|
|
83
|
+
], KpiGradePatch.prototype, "score", void 0);
|
|
84
|
+
tslib_1.__decorate([
|
|
85
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Color code for this grade (for visualization purposes).' }),
|
|
50
86
|
tslib_1.__metadata("design:type", String)
|
|
51
|
-
], KpiGradePatch.prototype, "
|
|
87
|
+
], KpiGradePatch.prototype, "color", void 0);
|
|
52
88
|
tslib_1.__decorate([
|
|
53
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
89
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Indicates whether this KPI grade is active and usable.' }),
|
|
54
90
|
tslib_1.__metadata("design:type", Boolean)
|
|
55
91
|
], KpiGradePatch.prototype, "active", void 0);
|
|
56
92
|
tslib_1.__decorate([
|
|
57
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
93
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Custom flag for update operations (internal use).' }),
|
|
58
94
|
tslib_1.__metadata("design:type", String)
|
|
59
95
|
], KpiGradePatch.prototype, "cuFlag", void 0);
|
|
60
96
|
exports.KpiGradePatch = KpiGradePatch = tslib_1.__decorate([
|
|
61
|
-
(0, type_graphql_1.InputType)()
|
|
97
|
+
(0, type_graphql_1.InputType)({ description: 'Input type for updating an existing KPI grade. Used in mutations to patch grade details.' })
|
|
62
98
|
], KpiGradePatch);
|
|
63
99
|
let KpiGradeList = class KpiGradeList {
|
|
64
100
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpi-grade-type.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade-type.ts"],"names":[],"mappings":";;;;AAEA,+CAAsF;AAItF,
|
|
1
|
+
{"version":3,"file":"kpi-grade-type.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade-type.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'\n\nimport { ObjectRef, ScalarObject } from '@things-factory/shell'\n\nimport { KpiGrade } from './kpi-grade'\n\n@InputType({ description: 'Input type for creating a new KPI grade. Used in mutations to provide grade details.' })\nexport class NewKpiGrade {\n @Field({ description: 'Name of the grade or section for this KPI.' })\n name: string\n\n @Field({ nullable: true, description: 'Detailed description of this KPI grade.' })\n description?: string\n\n @Field(type => ID, { description: 'ID of the KPI to which this grade belongs.' })\n kpiId: string\n\n @Field(type => Int, { description: 'Version of the KPI definition to which this grade belongs.' })\n version: number\n\n @Field(type => Int, { description: 'Minimum value for this grade section.' })\n minValue: number\n\n @Field(type => Int, { description: 'Maximum value for this grade section.' })\n maxValue: number\n\n @Field(type => Int, { nullable: true, description: 'Score or weight for this grade (optional).' })\n score?: number\n\n @Field({ nullable: true, description: 'Color code for this grade (for visualization purposes).' })\n color?: string\n\n @Field({ nullable: true, description: 'Indicates whether this KPI grade is active and usable.' })\n active?: boolean\n}\n\n@InputType({ description: 'Input type for updating an existing KPI grade. Used in mutations to patch grade details.' })\nexport class KpiGradePatch {\n @Field(type => ID, { nullable: true, description: 'ID of the KPI grade to update.' })\n id?: string\n\n @Field({ nullable: true, description: 'Name of the grade or section for this KPI.' })\n name?: string\n\n @Field({ nullable: true, description: 'Detailed description of this KPI grade.' })\n description?: string\n\n @Field(type => ID, { nullable: true, description: 'ID of the KPI to which this grade belongs.' })\n kpiId?: string\n\n @Field(type => Int, { nullable: true, description: 'Version of the KPI definition to which this grade belongs.' })\n version?: number\n\n @Field(type => Int, { nullable: true, description: 'Minimum value for this grade section.' })\n minValue?: number\n\n @Field(type => Int, { nullable: true, description: 'Maximum value for this grade section.' })\n maxValue?: number\n\n @Field(type => Int, { nullable: true, description: 'Score or weight for this grade (optional).' })\n score?: number\n\n @Field({ nullable: true, description: 'Color code for this grade (for visualization purposes).' })\n color?: string\n\n @Field({ nullable: true, description: 'Indicates whether this KPI grade is active and usable.' })\n active?: boolean\n\n @Field({ nullable: true, description: 'Custom flag for update operations (internal use).' })\n cuFlag?: string\n}\n\n@ObjectType()\nexport class KpiGradeList {\n @Field(type => [KpiGrade])\n items: KpiGrade[]\n\n @Field(type => Int)\n total: number\n}\n"]}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { Domain } from '@things-factory/shell';
|
|
2
2
|
import { User } from '@things-factory/auth-base';
|
|
3
|
-
|
|
4
|
-
STATUS_A = "STATUS_A",
|
|
5
|
-
STATUS_B = "STATUS_B"
|
|
6
|
-
}
|
|
3
|
+
import { Kpi } from '../kpi/kpi';
|
|
7
4
|
export declare class KpiGrade {
|
|
8
5
|
readonly id: string;
|
|
9
|
-
version?: number;
|
|
10
6
|
domain?: Domain;
|
|
11
7
|
domainId?: string;
|
|
12
8
|
name?: string;
|
|
13
9
|
description?: string;
|
|
14
10
|
active?: boolean;
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
kpi: Kpi;
|
|
12
|
+
kpiId: string;
|
|
13
|
+
version: number;
|
|
14
|
+
minValue: number;
|
|
15
|
+
maxValue: number;
|
|
16
|
+
score?: number;
|
|
17
|
+
color?: string;
|
|
17
18
|
createdAt?: Date;
|
|
18
19
|
updatedAt?: Date;
|
|
19
|
-
deletedAt?: Date;
|
|
20
20
|
creator?: User;
|
|
21
21
|
creatorId?: string;
|
|
22
22
|
updater?: User;
|
|
@@ -1,109 +1,117 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KpiGrade =
|
|
3
|
+
exports.KpiGrade = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const typeorm_1 = require("typeorm");
|
|
6
6
|
const type_graphql_1 = require("type-graphql");
|
|
7
7
|
const shell_1 = require("@things-factory/shell");
|
|
8
8
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
9
|
-
|
|
10
|
-
(function (KpiGradeStatus) {
|
|
11
|
-
KpiGradeStatus["STATUS_A"] = "STATUS_A";
|
|
12
|
-
KpiGradeStatus["STATUS_B"] = "STATUS_B";
|
|
13
|
-
})(KpiGradeStatus || (exports.KpiGradeStatus = KpiGradeStatus = {}));
|
|
14
|
-
(0, type_graphql_1.registerEnumType)(KpiGradeStatus, {
|
|
15
|
-
name: 'KpiGradeStatus',
|
|
16
|
-
description: 'state enumeration of a kpiGrade'
|
|
17
|
-
});
|
|
9
|
+
const kpi_1 = require("../kpi/kpi");
|
|
18
10
|
let KpiGrade = class KpiGrade {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.version = 1;
|
|
21
|
-
}
|
|
22
11
|
};
|
|
23
12
|
exports.KpiGrade = KpiGrade;
|
|
24
13
|
tslib_1.__decorate([
|
|
25
14
|
(0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
|
|
26
|
-
(0, type_graphql_1.Field)(type => type_graphql_1.ID),
|
|
15
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.ID, { description: 'Unique identifier for this KPI grade.' }),
|
|
27
16
|
tslib_1.__metadata("design:type", String)
|
|
28
17
|
], KpiGrade.prototype, "id", void 0);
|
|
29
|
-
tslib_1.__decorate([
|
|
30
|
-
(0, typeorm_1.VersionColumn)(),
|
|
31
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
32
|
-
tslib_1.__metadata("design:type", Number)
|
|
33
|
-
], KpiGrade.prototype, "version", void 0);
|
|
34
18
|
tslib_1.__decorate([
|
|
35
19
|
(0, typeorm_1.ManyToOne)(type => shell_1.Domain),
|
|
36
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
20
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Domain (tenant) to which this KPI grade belongs.' }),
|
|
37
21
|
tslib_1.__metadata("design:type", shell_1.Domain)
|
|
38
22
|
], KpiGrade.prototype, "domain", void 0);
|
|
39
23
|
tslib_1.__decorate([
|
|
40
24
|
(0, typeorm_1.RelationId)((kpiGrade) => kpiGrade.domain),
|
|
25
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'ID of the domain (tenant) for this KPI grade.' }),
|
|
41
26
|
tslib_1.__metadata("design:type", String)
|
|
42
27
|
], KpiGrade.prototype, "domainId", void 0);
|
|
43
28
|
tslib_1.__decorate([
|
|
44
29
|
(0, typeorm_1.Column)(),
|
|
45
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
30
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Name of the grade or section for this KPI.' }),
|
|
46
31
|
tslib_1.__metadata("design:type", String)
|
|
47
32
|
], KpiGrade.prototype, "name", void 0);
|
|
48
33
|
tslib_1.__decorate([
|
|
49
34
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
50
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
35
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Detailed description of this KPI grade.' }),
|
|
51
36
|
tslib_1.__metadata("design:type", String)
|
|
52
37
|
], KpiGrade.prototype, "description", void 0);
|
|
53
38
|
tslib_1.__decorate([
|
|
54
39
|
(0, typeorm_1.Column)({ nullable: false, default: false }),
|
|
55
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
40
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Indicates whether this KPI grade is active and usable.' }),
|
|
56
41
|
tslib_1.__metadata("design:type", Boolean)
|
|
57
42
|
], KpiGrade.prototype, "active", void 0);
|
|
58
43
|
tslib_1.__decorate([
|
|
59
|
-
(0, typeorm_1.
|
|
60
|
-
(0, type_graphql_1.Field)({
|
|
44
|
+
(0, typeorm_1.ManyToOne)(() => kpi_1.Kpi),
|
|
45
|
+
(0, type_graphql_1.Field)(type => kpi_1.Kpi, { description: 'Reference to the KPI to which this grade belongs.' }),
|
|
46
|
+
tslib_1.__metadata("design:type", kpi_1.Kpi)
|
|
47
|
+
], KpiGrade.prototype, "kpi", void 0);
|
|
48
|
+
tslib_1.__decorate([
|
|
49
|
+
(0, typeorm_1.RelationId)((kpiGrade) => kpiGrade.kpi),
|
|
50
|
+
(0, type_graphql_1.Field)({ description: 'ID of the referenced KPI.' }),
|
|
61
51
|
tslib_1.__metadata("design:type", String)
|
|
62
|
-
], KpiGrade.prototype, "
|
|
52
|
+
], KpiGrade.prototype, "kpiId", void 0);
|
|
53
|
+
tslib_1.__decorate([
|
|
54
|
+
(0, typeorm_1.Column)('int'),
|
|
55
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'Version of the KPI definition to which this grade belongs.' }),
|
|
56
|
+
tslib_1.__metadata("design:type", Number)
|
|
57
|
+
], KpiGrade.prototype, "version", void 0);
|
|
58
|
+
tslib_1.__decorate([
|
|
59
|
+
(0, typeorm_1.Column)('float'),
|
|
60
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'Minimum value for this grade section.' }),
|
|
61
|
+
tslib_1.__metadata("design:type", Number)
|
|
62
|
+
], KpiGrade.prototype, "minValue", void 0);
|
|
63
|
+
tslib_1.__decorate([
|
|
64
|
+
(0, typeorm_1.Column)('float'),
|
|
65
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { description: 'Maximum value for this grade section.' }),
|
|
66
|
+
tslib_1.__metadata("design:type", Number)
|
|
67
|
+
], KpiGrade.prototype, "maxValue", void 0);
|
|
68
|
+
tslib_1.__decorate([
|
|
69
|
+
(0, typeorm_1.Column)({ nullable: true, type: 'float' }),
|
|
70
|
+
(0, type_graphql_1.Field)(type => type_graphql_1.Float, { nullable: true, description: 'Score or weight for this grade (optional).' }),
|
|
71
|
+
tslib_1.__metadata("design:type", Number)
|
|
72
|
+
], KpiGrade.prototype, "score", void 0);
|
|
63
73
|
tslib_1.__decorate([
|
|
64
74
|
(0, typeorm_1.Column)({ nullable: true }),
|
|
65
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
75
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Color code for this grade (for visualization purposes).' }),
|
|
66
76
|
tslib_1.__metadata("design:type", String)
|
|
67
|
-
], KpiGrade.prototype, "
|
|
77
|
+
], KpiGrade.prototype, "color", void 0);
|
|
68
78
|
tslib_1.__decorate([
|
|
69
79
|
(0, typeorm_1.CreateDateColumn)(),
|
|
70
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
80
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Timestamp when this KPI grade was created.' }),
|
|
71
81
|
tslib_1.__metadata("design:type", Date)
|
|
72
82
|
], KpiGrade.prototype, "createdAt", void 0);
|
|
73
83
|
tslib_1.__decorate([
|
|
74
84
|
(0, typeorm_1.UpdateDateColumn)(),
|
|
75
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
85
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'Timestamp when this KPI grade was last updated.' }),
|
|
76
86
|
tslib_1.__metadata("design:type", Date)
|
|
77
87
|
], KpiGrade.prototype, "updatedAt", void 0);
|
|
78
|
-
tslib_1.__decorate([
|
|
79
|
-
(0, typeorm_1.DeleteDateColumn)(),
|
|
80
|
-
(0, type_graphql_1.Field)({ nullable: true }),
|
|
81
|
-
tslib_1.__metadata("design:type", Date)
|
|
82
|
-
], KpiGrade.prototype, "deletedAt", void 0);
|
|
83
88
|
tslib_1.__decorate([
|
|
84
89
|
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
|
85
|
-
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
|
|
90
|
+
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: 'User who created this KPI grade.' }),
|
|
86
91
|
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
87
92
|
], KpiGrade.prototype, "creator", void 0);
|
|
88
93
|
tslib_1.__decorate([
|
|
89
94
|
(0, typeorm_1.RelationId)((kpiGrade) => kpiGrade.creator),
|
|
95
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'ID of the user who created this KPI grade.' }),
|
|
90
96
|
tslib_1.__metadata("design:type", String)
|
|
91
97
|
], KpiGrade.prototype, "creatorId", void 0);
|
|
92
98
|
tslib_1.__decorate([
|
|
93
99
|
(0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
|
|
94
|
-
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
|
|
100
|
+
(0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: 'User who last updated this KPI grade.' }),
|
|
95
101
|
tslib_1.__metadata("design:type", auth_base_1.User)
|
|
96
102
|
], KpiGrade.prototype, "updater", void 0);
|
|
97
103
|
tslib_1.__decorate([
|
|
98
104
|
(0, typeorm_1.RelationId)((kpiGrade) => kpiGrade.updater),
|
|
105
|
+
(0, type_graphql_1.Field)({ nullable: true, description: 'ID of the user who last updated this KPI grade.' }),
|
|
99
106
|
tslib_1.__metadata("design:type", String)
|
|
100
107
|
], KpiGrade.prototype, "updaterId", void 0);
|
|
101
108
|
exports.KpiGrade = KpiGrade = tslib_1.__decorate([
|
|
102
109
|
(0, typeorm_1.Entity)(),
|
|
103
|
-
(0, typeorm_1.Index)('ix_kpi_grade_0', (kpiGrade) => [kpiGrade.domain, kpiGrade.name], {
|
|
104
|
-
where: '"deleted_at" IS NULL',
|
|
110
|
+
(0, typeorm_1.Index)('ix_kpi_grade_0', (kpiGrade) => [kpiGrade.domain, kpiGrade.kpi, kpiGrade.version, kpiGrade.name], {
|
|
105
111
|
unique: true
|
|
106
112
|
}),
|
|
107
|
-
(0, type_graphql_1.ObjectType)({
|
|
113
|
+
(0, type_graphql_1.ObjectType)({
|
|
114
|
+
description: 'KPI grade entity. Represents a grade/section for a KPI version, with value range, score, color, and description.'
|
|
115
|
+
})
|
|
108
116
|
], KpiGrade);
|
|
109
117
|
//# sourceMappingURL=kpi-grade.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kpi-grade.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"kpi-grade.js","sourceRoot":"","sources":["../../../server/service/kpi-grade/kpi-grade.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, Int, ID, registerEnumType, Float } from 'type-graphql'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { Kpi } from '../kpi/kpi'\n\n@Entity()\n@Index('ix_kpi_grade_0', (kpiGrade: KpiGrade) => [kpiGrade.domain, kpiGrade.kpi, kpiGrade.version, kpiGrade.name], {\n unique: true\n})\n@ObjectType({\n description:\n 'KPI grade entity. Represents a grade/section for a KPI version, with value range, score, color, and description.'\n})\nexport class KpiGrade {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID, { description: 'Unique identifier for this KPI grade.' })\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true, description: 'Domain (tenant) to which this KPI grade belongs.' })\n domain?: Domain\n\n @RelationId((kpiGrade: KpiGrade) => kpiGrade.domain)\n @Field({ nullable: true, description: 'ID of the domain (tenant) for this KPI grade.' })\n domainId?: string\n\n @Column()\n @Field({ nullable: true, description: 'Name of the grade or section for this KPI.' })\n name?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Detailed description of this KPI grade.' })\n description?: string\n\n @Column({ nullable: false, default: false })\n @Field({ nullable: true, description: 'Indicates whether this KPI grade is active and usable.' })\n active?: boolean\n\n @ManyToOne(() => Kpi)\n @Field(type => Kpi, { description: 'Reference to the KPI to which this grade belongs.' })\n kpi: Kpi\n\n @RelationId((kpiGrade: KpiGrade) => kpiGrade.kpi)\n @Field({ description: 'ID of the referenced KPI.' })\n kpiId: string\n\n @Column('int')\n @Field(type => Int, { description: 'Version of the KPI definition to which this grade belongs.' })\n version: number\n\n @Column('float')\n @Field(type => Float, { description: 'Minimum value for this grade section.' })\n minValue: number\n\n @Column('float')\n @Field(type => Float, { description: 'Maximum value for this grade section.' })\n maxValue: number\n\n @Column({ nullable: true, type: 'float' })\n @Field(type => Float, { nullable: true, description: 'Score or weight for this grade (optional).' })\n score?: number\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Color code for this grade (for visualization purposes).' })\n color?: string\n\n @CreateDateColumn()\n @Field({ nullable: true, description: 'Timestamp when this KPI grade was created.' })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true, description: 'Timestamp when this KPI grade was last updated.' })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'User who created this KPI grade.' })\n creator?: User\n\n @RelationId((kpiGrade: KpiGrade) => kpiGrade.creator)\n @Field({ nullable: true, description: 'ID of the user who created this KPI grade.' })\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'User who last updated this KPI grade.' })\n updater?: User\n\n @RelationId((kpiGrade: KpiGrade) => kpiGrade.updater)\n @Field({ nullable: true, description: 'ID of the user who last updated this KPI grade.' })\n updaterId?: string\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* KPI-Metric 집계/자동화 서비스 함수 (formula 지원, KPI Value 저장)
|
|
3
|
+
* @param metricId KPI-Metric ID
|
|
4
|
+
* @param domainId 도메인 ID
|
|
5
|
+
* @param context ResolverContext (state에 domain, user, tx 등 포함)
|
|
6
|
+
* @returns 저장된 KPI Value 배열
|
|
7
|
+
*/
|
|
8
|
+
export declare function aggregateKpiMetricValue(metricId: string, domainId: string, context: ResolverContext): Promise<any[]>;
|