@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.
- package/dist-client/components/kpi-lookup-chart.js +41 -66
- package/dist-client/components/kpi-lookup-chart.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js +10 -10
- package/dist-client/pages/kpi-dashboard/components/kpi-left-panel.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js +10 -10
- package/dist-client/pages/kpi-dashboard/components/kpi-region-popup.js.map +1 -1
- package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js +1 -1
- package/dist-client/pages/kpi-dashboard/kpi-dashboard-map.js.map +1 -1
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js +28 -8
- package/dist-client/pages/project-complete-tabs/pc-tab1-plan.js.map +1 -1
- package/dist-client/pages/project-complete-tabs/pc-tab3-upload.js +1 -1
- package/dist-client/pages/project-complete-tabs/pc-tab3-upload.js.map +1 -1
- package/dist-client/pages/sv-project-completed-list.js +9 -8
- package/dist-client/pages/sv-project-completed-list.js.map +1 -1
- package/dist-client/pages/sv-project-detail.js +14 -14
- package/dist-client/pages/sv-project-detail.js.map +1 -1
- package/dist-client/pages/sv-project-list.js +6 -6
- package/dist-client/pages/sv-project-list.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/viewparts/menu-tools.js +11 -12
- package/dist-client/viewparts/menu-tools.js.map +1 -1
- package/dist-server/scripts/propagate-parent-kpi-values.d.ts +4 -0
- package/dist-server/scripts/propagate-parent-kpi-values.js +369 -77
- package/dist-server/scripts/propagate-parent-kpi-values.js.map +1 -1
- package/dist-server/scripts/recalculate-by-project-name.d.ts +2 -0
- package/dist-server/scripts/recalculate-by-project-name.js +72 -0
- package/dist-server/scripts/recalculate-by-project-name.js.map +1 -0
- package/dist-server/service/kpi-stat/kpi-stat-query.js +34 -32
- package/dist-server/service/kpi-stat/kpi-stat-query.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/recalculate-batch.sh +64 -0
- package/recalculate-projects-range.sh +98 -0
- 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.
|
|
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.
|
|
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": "
|
|
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.
|
|
5144
|
+
Performance score calculated from KPI value using scoreFormula or grades lookup table.
|
|
5145
5145
|
"""
|
|
5146
5146
|
score: Float
|
|
5147
5147
|
|