@dssp/dkpi 1.0.0-alpha.62 → 1.0.0-alpha.64

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 (34) hide show
  1. package/dist-client/components/kpi-lookup-chart.js +41 -66
  2. package/dist-client/components/kpi-lookup-chart.js.map +1 -1
  3. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js +10 -10
  4. package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js.map +1 -1
  5. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js +10 -10
  6. package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js.map +1 -1
  7. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js +1 -1
  8. package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js.map +1 -1
  9. package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js +28 -8
  10. package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js.map +1 -1
  11. package/dist-client/pages/project-complete-tabs/pc-tab3-upload.js +1 -1
  12. package/dist-client/pages/project-complete-tabs/pc-tab3-upload.js.map +1 -1
  13. package/dist-client/pages/sv-project-completed-list.js +9 -8
  14. package/dist-client/pages/sv-project-completed-list.js.map +1 -1
  15. package/dist-client/pages/sv-project-detail.js +14 -14
  16. package/dist-client/pages/sv-project-detail.js.map +1 -1
  17. package/dist-client/pages/sv-project-list.js +6 -6
  18. package/dist-client/pages/sv-project-list.js.map +1 -1
  19. package/dist-client/tsconfig.tsbuildinfo +1 -1
  20. package/dist-client/viewparts/menu-tools.js +11 -12
  21. package/dist-client/viewparts/menu-tools.js.map +1 -1
  22. package/dist-server/scripts/propagate-parent-kpi-values.d.ts +4 -0
  23. package/dist-server/scripts/propagate-parent-kpi-values.js +369 -77
  24. package/dist-server/scripts/propagate-parent-kpi-values.js.map +1 -1
  25. package/dist-server/scripts/recalculate-by-project-name.d.ts +2 -0
  26. package/dist-server/scripts/recalculate-by-project-name.js +72 -0
  27. package/dist-server/scripts/recalculate-by-project-name.js.map +1 -0
  28. package/dist-server/service/kpi-stat/kpi-stat-query.js +34 -32
  29. package/dist-server/service/kpi-stat/kpi-stat-query.js.map +1 -1
  30. package/dist-server/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +3 -3
  32. package/recalculate-batch.sh +64 -0
  33. package/recalculate-projects-range.sh +98 -0
  34. package/schema.graphql +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dssp/dkpi",
3
- "version": "1.0.0-alpha.62",
3
+ "version": "1.0.0-alpha.64",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -48,7 +48,7 @@
48
48
  "docker:push": "docker image push hatiolab/dkpi:latest && docker image push hatiolab/dkpi:$npm_package_version"
49
49
  },
50
50
  "dependencies": {
51
- "@dssp/project": "^1.0.0-alpha.62",
51
+ "@dssp/project": "^1.0.0-alpha.64",
52
52
  "@material/web": "^2.1.0",
53
53
  "@operato/chart": "^9.0.0",
54
54
  "@operato/gantt": "^9.0.0",
@@ -103,5 +103,5 @@
103
103
  "devDependencies": {
104
104
  "@things-factory/builder": "^9.0.0"
105
105
  },
106
- "gitHead": "770f1e48e49321c4f2da80fd57c722eb97f7ec06"
106
+ "gitHead": "df3c214ff9c263a2678b92a0adf14c856ad2ceea"
107
107
  }
@@ -0,0 +1,64 @@
1
+ #!/bin/bash
2
+
3
+ # Recalculate KPI values for projects in a specified range (optimized batch mode)
4
+ # Usage: ./recalculate-batch.sh <from> <to>
5
+ # Example: ./recalculate-batch.sh 1 100
6
+
7
+ if [ "$#" -ne 2 ]; then
8
+ echo "Usage: $0 <from> <to>"
9
+ echo "Example: $0 1 100"
10
+ exit 1
11
+ fi
12
+
13
+ FROM=$1
14
+ TO=$2
15
+
16
+ if ! [[ "$FROM" =~ ^[0-9]+$ ]] || ! [[ "$TO" =~ ^[0-9]+$ ]]; then
17
+ echo "Error: Both FROM and TO must be numbers"
18
+ exit 1
19
+ fi
20
+
21
+ if [ "$FROM" -gt "$TO" ]; then
22
+ echo "Error: FROM ($FROM) must be less than or equal to TO ($TO)"
23
+ exit 1
24
+ fi
25
+
26
+ echo "========================================="
27
+ echo "KPI Batch Recalculation Script"
28
+ echo "========================================="
29
+ echo "Range: 프로젝트 - $(printf '%05d' $FROM) to 프로젝트 - $(printf '%05d' $TO)"
30
+ echo ""
31
+
32
+ # Build SQL to get project IDs
33
+ SQL="SELECT id FROM projects WHERE name ~ '프로젝트.*[0-9]{5}\$' AND "
34
+ SQL+="CAST(SUBSTRING(name FROM '[0-9]{5}\$') AS INTEGER) BETWEEN $FROM AND $TO "
35
+ SQL+="ORDER BY CAST(SUBSTRING(name FROM '[0-9]{5}\$') AS INTEGER);"
36
+
37
+ # Get project IDs from database
38
+ echo "Fetching project IDs from database..."
39
+ PROJECT_IDS=$(PGPASSWORD='hatioLAB1008' psql -h 127.0.0.1 -U postgres -d dssp -t -c "$SQL" | tr -d ' ' | tr '\n' ',')
40
+
41
+ if [ -z "$PROJECT_IDS" ]; then
42
+ echo "No projects found in the specified range"
43
+ exit 1
44
+ fi
45
+
46
+ # Remove trailing comma
47
+ PROJECT_IDS=${PROJECT_IDS%,}
48
+
49
+ # Count projects
50
+ PROJECT_COUNT=$(echo "$PROJECT_IDS" | tr ',' '\n' | wc -l | tr -d ' ')
51
+
52
+ echo "Found $PROJECT_COUNT projects"
53
+ echo "========================================="
54
+ echo ""
55
+ echo "Starting batch processing with single initialization..."
56
+ echo ""
57
+
58
+ # Run the batch recalculation with --orgs option
59
+ npm run propagate-parent-kpi-values -- --orgs "$PROJECT_IDS"
60
+
61
+ echo ""
62
+ echo "========================================="
63
+ echo "Batch Recalculation Complete!"
64
+ echo "========================================="
@@ -0,0 +1,98 @@
1
+ #!/bin/bash
2
+
3
+ # Recalculate KPI values for projects in a specified range
4
+ # Usage: ./recalculate-projects-range.sh <from> <to>
5
+ # Example: ./recalculate-projects-range.sh 1 100
6
+
7
+ if [ "$#" -ne 2 ]; then
8
+ echo "Usage: $0 <from> <to>"
9
+ echo "Example: $0 1 100"
10
+ exit 1
11
+ fi
12
+
13
+ FROM=$1
14
+ TO=$2
15
+
16
+ if ! [[ "$FROM" =~ ^[0-9]+$ ]] || ! [[ "$TO" =~ ^[0-9]+$ ]]; then
17
+ echo "Error: Both FROM and TO must be numbers"
18
+ exit 1
19
+ fi
20
+
21
+ if [ "$FROM" -gt "$TO" ]; then
22
+ echo "Error: FROM ($FROM) must be less than or equal to TO ($TO)"
23
+ exit 1
24
+ fi
25
+
26
+ echo "========================================="
27
+ echo "KPI Recalculation Script"
28
+ echo "========================================="
29
+ echo "Range: 프로젝트 - $(printf '%05d' $FROM) to 프로젝트 - $(printf '%05d' $TO)"
30
+ echo ""
31
+
32
+ # Build SQL to get project IDs
33
+ SQL="SELECT id FROM projects WHERE name ~ '프로젝트.*[0-9]{5}\$' AND "
34
+ SQL+="CAST(SUBSTRING(name FROM '[0-9]{5}\$') AS INTEGER) BETWEEN $FROM AND $TO "
35
+ SQL+="ORDER BY CAST(SUBSTRING(name FROM '[0-9]{5}\$') AS INTEGER);"
36
+
37
+ # Get project IDs from database
38
+ echo "Fetching project IDs from database..."
39
+ PROJECT_IDS=$(PGPASSWORD='hatioLAB1008' psql -h 127.0.0.1 -U postgres -d dssp -t -c "$SQL" | tr -d ' ')
40
+
41
+ if [ -z "$PROJECT_IDS" ]; then
42
+ echo "No projects found in the specified range"
43
+ exit 1
44
+ fi
45
+
46
+ # Convert to array
47
+ IFS=$'\n' read -rd '' -a PROJECT_ARRAY <<<"$PROJECT_IDS"
48
+ TOTAL=${#PROJECT_ARRAY[@]}
49
+
50
+ echo "Found $TOTAL projects"
51
+ echo "========================================="
52
+ echo ""
53
+
54
+ SUCCESS=0
55
+ FAILED=0
56
+ COUNTER=0
57
+
58
+ # Process each project
59
+ for PROJECT_ID in "${PROJECT_ARRAY[@]}"; do
60
+ # Skip empty lines
61
+ if [ -z "$PROJECT_ID" ]; then
62
+ continue
63
+ fi
64
+
65
+ COUNTER=$((COUNTER + 1))
66
+
67
+ # Get project name for logging
68
+ PROJECT_NAME=$(PGPASSWORD='hatioLAB1008' psql -h 127.0.0.1 -U postgres -d dssp -t -c "SELECT name FROM projects WHERE id = '$PROJECT_ID';" | tr -d ' ')
69
+
70
+ echo "[$COUNTER/$TOTAL] Processing: $PROJECT_NAME"
71
+ echo " ID: $PROJECT_ID"
72
+
73
+ # Run the recalculation script
74
+ if npm run propagate-parent-kpi-values -- --org "$PROJECT_ID" > "/tmp/kpi-recalc-$PROJECT_ID.log" 2>&1; then
75
+ SUCCESS=$((SUCCESS + 1))
76
+ echo " ✅ SUCCESS"
77
+ # Clean up log file on success
78
+ rm -f "/tmp/kpi-recalc-$PROJECT_ID.log"
79
+ else
80
+ FAILED=$((FAILED + 1))
81
+ echo " ❌ FAILED - Check log: /tmp/kpi-recalc-$PROJECT_ID.log"
82
+ fi
83
+ echo ""
84
+ done
85
+
86
+ echo ""
87
+ echo "========================================="
88
+ echo "Recalculation Complete!"
89
+ echo "========================================="
90
+ echo "Total: $TOTAL"
91
+ echo "Success: $SUCCESS"
92
+ echo "Failed: $FAILED"
93
+ echo "========================================="
94
+
95
+ if [ $FAILED -gt 0 ]; then
96
+ echo ""
97
+ echo "Failed project logs are available in /tmp/kpi-recalc-*.log"
98
+ fi
package/schema.graphql CHANGED
@@ -5141,7 +5141,7 @@ type KpiValue {
5141
5141
  project: Project!
5142
5142
 
5143
5143
  """
5144
- Performance score calculated from KPI value using scoreFormula or grades lookup table. Range: 0-1.
5144
+ Performance score calculated from KPI value using scoreFormula or grades lookup table.
5145
5145
  """
5146
5146
  score: Float
5147
5147