备份:大改造前的完整版本 - 修复合同细节/付款节点/文件上传/施工管理/项目保存等BUG
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const dir = '/opt/company-finance-system/backend/routes';
|
||||
const files = fs.readdirSync(dir).filter(f => f.endsWith('.js'));
|
||||
|
||||
for (const file of files) {
|
||||
const filePath = path.join(dir, file);
|
||||
let content = fs.readFileSync(filePath, 'utf8');
|
||||
const original = content;
|
||||
|
||||
// Add RETURNING id to INSERT statements that don't already have it
|
||||
// Match: INSERT INTO ... VALUES (...); followed by parameter array
|
||||
// We look for the pattern where VALUES ends with a closing paren and is followed by the array literal
|
||||
|
||||
const lines = content.split('\n');
|
||||
let modified = false;
|
||||
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
// Check if this line contains VALUES (...) ending and the next line starts the array
|
||||
if (line.match(/VALUES\s*\(.*\)/) && !line.includes('RETURNING')) {
|
||||
// Check if this INSERT is into a main table (has a corresponding db.query call)
|
||||
// We need to add RETURNING id before the closing backtick
|
||||
if (line.includes('CURRENT_TIMESTAMP)') || line.match(/\)\s*`?\s*$/)) {
|
||||
// Replace the trailing )` or ), with RETURNING id
|
||||
lines[i] = line.replace(/CURRENT_TIMESTAMP\)\s*`?\s*$/, "CURRENT_TIMESTAMP)\n RETURNING id`");
|
||||
if (lines[i] !== line) modified = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (modified) {
|
||||
fs.writeFileSync(filePath, lines.join('\n'));
|
||||
console.log('Fixed: ' + file);
|
||||
} else {
|
||||
console.log('No change: ' + file);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user