49 lines
1.3 KiB
JavaScript
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);
|
|
});
|