@dssp/dkpi 1.0.0-alpha.63 → 1.0.0-alpha.65
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 +43 -43
- package/dist-client/components/kpi-lookup-chart.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/tsconfig.tsbuildinfo +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/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const child_process_1 = require("child_process");
|
|
6
|
+
const util_1 = require("util");
|
|
7
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
8
|
+
/**
|
|
9
|
+
* Find project by name and run recalculation script
|
|
10
|
+
*/
|
|
11
|
+
async function main() {
|
|
12
|
+
const projectName = process.argv[2];
|
|
13
|
+
if (!projectName) {
|
|
14
|
+
console.error('Usage: ts-node recalculate-by-project-name.ts <project-name>');
|
|
15
|
+
console.error('Example: ts-node recalculate-by-project-name.ts "건산연테스트II"');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
// Set NODE_ENV if not set
|
|
19
|
+
if (!process.env.NODE_ENV) {
|
|
20
|
+
process.env.NODE_ENV = 'development';
|
|
21
|
+
}
|
|
22
|
+
// Initialize Things-Factory environment
|
|
23
|
+
const { config } = require('@things-factory/env');
|
|
24
|
+
const ormconfig = require('@things-factory/shell/dist-server/initializers/ormconfig.js');
|
|
25
|
+
const connectionConfig = config.get('ormconfig');
|
|
26
|
+
let connection;
|
|
27
|
+
try {
|
|
28
|
+
console.log(`🔍 Searching for project: "${projectName}"`);
|
|
29
|
+
console.log('🔌 Connecting to database...');
|
|
30
|
+
connection = await (0, typeorm_1.createConnection)(Object.assign(Object.assign(Object.assign({}, ormconfig), connectionConfig), { logging: false }));
|
|
31
|
+
const { addDataSource } = require('@things-factory/shell');
|
|
32
|
+
addDataSource('default', connection);
|
|
33
|
+
const { getRepository } = require('@things-factory/shell');
|
|
34
|
+
const { Project } = require('@dssp/project');
|
|
35
|
+
const projectRepo = getRepository(Project);
|
|
36
|
+
const project = await projectRepo.findOne({
|
|
37
|
+
where: { name: projectName }
|
|
38
|
+
});
|
|
39
|
+
if (!project) {
|
|
40
|
+
console.error(`❌ Project not found: "${projectName}"`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
console.log(`✅ Found project: ${project.name}`);
|
|
44
|
+
console.log(` ID: ${project.id}`);
|
|
45
|
+
console.log(` Start Date: ${project.startDate}`);
|
|
46
|
+
console.log(` End Date: ${project.endDate || 'N/A'}`);
|
|
47
|
+
await connection.close();
|
|
48
|
+
console.log('🔌 Database connection closed');
|
|
49
|
+
console.log('\n🚀 Starting KPI recalculation...');
|
|
50
|
+
console.log(` Running: npm run propagate-parent-kpi-values -- --orgs "${project.id}"\n`);
|
|
51
|
+
// Execute recalculation script
|
|
52
|
+
const scriptDir = '/Users/super/Documents/GitHub/dssp/packages/dkpi';
|
|
53
|
+
const { stdout, stderr } = await execAsync(`cd ${scriptDir} && npm run propagate-parent-kpi-values -- --orgs "${project.id}"`);
|
|
54
|
+
if (stdout)
|
|
55
|
+
console.log(stdout);
|
|
56
|
+
if (stderr)
|
|
57
|
+
console.error(stderr);
|
|
58
|
+
console.log('\n✅ Recalculation completed!');
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
console.error('❌ Error:', error.message);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
finally {
|
|
65
|
+
if (connection && connection.isConnected) {
|
|
66
|
+
await connection.close();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Run
|
|
71
|
+
main();
|
|
72
|
+
//# sourceMappingURL=recalculate-by-project-name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recalculate-by-project-name.js","sourceRoot":"","sources":["../../server/scripts/recalculate-by-project-name.ts"],"names":[],"mappings":"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","sourcesContent":["#!/usr/bin/env ts-node\n\nimport { createConnection } from 'typeorm'\nimport { exec } from 'child_process'\nimport { promisify } from 'util'\n\nconst execAsync = promisify(exec)\n\n/**\n * Find project by name and run recalculation script\n */\nasync function main() {\n const projectName = process.argv[2]\n\n if (!projectName) {\n console.error('Usage: ts-node recalculate-by-project-name.ts <project-name>')\n console.error('Example: ts-node recalculate-by-project-name.ts \"건산연테스트II\"')\n process.exit(1)\n }\n\n // Set NODE_ENV if not set\n if (!process.env.NODE_ENV) {\n process.env.NODE_ENV = 'development'\n }\n\n // Initialize Things-Factory environment\n const { config } = require('@things-factory/env')\n const ormconfig = require('@things-factory/shell/dist-server/initializers/ormconfig.js')\n const connectionConfig = config.get('ormconfig')\n\n let connection\n\n try {\n console.log(`🔍 Searching for project: \"${projectName}\"`)\n console.log('🔌 Connecting to database...')\n\n connection = await createConnection({\n ...ormconfig,\n ...connectionConfig,\n logging: false\n })\n\n const { addDataSource } = require('@things-factory/shell')\n addDataSource('default', connection)\n\n const { getRepository } = require('@things-factory/shell')\n const { Project } = require('@dssp/project')\n\n const projectRepo = getRepository(Project)\n const project = await projectRepo.findOne({\n where: { name: projectName }\n })\n\n if (!project) {\n console.error(`❌ Project not found: \"${projectName}\"`)\n process.exit(1)\n }\n\n console.log(`✅ Found project: ${project.name}`)\n console.log(` ID: ${project.id}`)\n console.log(` Start Date: ${project.startDate}`)\n console.log(` End Date: ${project.endDate || 'N/A'}`)\n\n await connection.close()\n console.log('🔌 Database connection closed')\n\n console.log('\\n🚀 Starting KPI recalculation...')\n console.log(` Running: npm run propagate-parent-kpi-values -- --orgs \"${project.id}\"\\n`)\n\n // Execute recalculation script\n const scriptDir = '/Users/super/Documents/GitHub/dssp/packages/dkpi'\n const { stdout, stderr } = await execAsync(\n `cd ${scriptDir} && npm run propagate-parent-kpi-values -- --orgs \"${project.id}\"`\n )\n\n if (stdout) console.log(stdout)\n if (stderr) console.error(stderr)\n\n console.log('\\n✅ Recalculation completed!')\n\n } catch (error) {\n console.error('❌ Error:', error.message)\n process.exit(1)\n } finally {\n if (connection && connection.isConnected) {\n await connection.close()\n }\n }\n}\n\n// Run\nmain()\n"]}
|