Break up prod import script into pieces and move csv scripts into folder

This commit is contained in:
2025-01-29 13:23:32 -05:00
parent 814d5d1a84
commit 84baa7e7d3
6 changed files with 187 additions and 266 deletions

View File

@@ -1,4 +1,4 @@
const { updateProgress, outputProgress, formatElapsedTime } = require('./utils');
const { outputProgress, formatElapsedTime, estimateRemaining, calculateRate } = require('../metrics/utils/progress');
async function importPurchaseOrders(prodConnection, localConnection) {
outputProgress({
@@ -257,26 +257,32 @@ async function importPurchaseOrders(prodConnection, localConnection) {
// Update progress based on time interval
const now = Date.now();
if (now - lastProgressUpdate >= PROGRESS_INTERVAL || processed === totalItems) {
updateProgress(processed, totalItems, "Purchase orders import", startTime);
outputProgress({
status: "running",
operation: "Purchase orders import",
current: processed,
total: totalItems,
elapsed: formatElapsedTime(startTime),
remaining: estimateRemaining(startTime, processed, totalItems),
rate: calculateRate(startTime, processed)
});
lastProgressUpdate = now;
}
}
}
const endTime = Date.now();
outputProgress({
operation: `Purchase orders import complete`,
status: "complete",
processed_records: processed,
total_records: totalItems,
timing: {
start_time: new Date(startTime).toISOString(),
end_time: new Date(endTime).toISOString(),
elapsed_time: formatElapsedTime((endTime - startTime) / 1000),
elapsed_seconds: Math.round((endTime - startTime) / 1000)
}
operation: "Purchase orders import completed",
current: totalItems,
total: totalItems,
duration: formatElapsedTime(Date.now() - startTime),
});
return {
status: "complete",
totalImported: totalItems
};
} catch (error) {
outputProgress({
operation: "Purchase orders import failed",