cangku/backend/scripts/buildLogisticsPickupBoardSnapshot.js

49 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
require('dotenv').config();
const database = require('../src/config/database');
const cloudDb = require('../src/config/cloudDatabase');
const redis = require('../src/config/redis');
const {
queryLogisticsPickupBoard,
writeLogisticsPickupBoardSnapshot,
} = require('../src/services/logisticsPickupBoard');
async function main() {
const [startDate, endDate = startDate] = process.argv.slice(2);
if (!startDate || !endDate) {
throw new Error('Usage: node backend/scripts/buildLogisticsPickupBoardSnapshot.js <YYYY-MM-DD> [YYYY-MM-DD]');
}
const started = Date.now();
console.log(`[pickup-board-snapshot] range ${startDate} -> ${endDate}`);
try {
const data = await queryLogisticsPickupBoard({
startDate,
endDate,
shops: '',
warehouses: '',
purchasers: '',
suppliers: '',
skuIds: '',
});
const filePath = writeLogisticsPickupBoardSnapshot(startDate, endDate, data);
console.log(`[pickup-board-snapshot] wrote ${filePath}`);
console.log(`[pickup-board-snapshot] elapsed=${Date.now() - started}ms`);
} finally {
await Promise.allSettled([
redis.close(),
cloudDb.close(),
database.close(),
]);
}
}
main().catch((error) => {
console.error('[pickup-board-snapshot] failed');
console.error(error);
process.exit(1);
});