mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-27 19:00:55 +00:00
fix number of wagon
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
import { AppDataSource } from '../data-source';
|
||||
import { SeedEdrWagonFleetErNumbering2260000000000 } from '../migrations/2260000000000-SeedEdrWagonFleetErNumbering';
|
||||
import { AddWagonTrainNumbers2270000000000 } from '../migrations/2270000000000-AddWagonTrainNumbers';
|
||||
import { SeedWagonRunNumbers2280000000000 } from '../migrations/2280000000000-SeedWagonRunNumbers';
|
||||
|
||||
async function seedEdRWagons() {
|
||||
await AppDataSource.initialize();
|
||||
@@ -10,7 +12,12 @@ async function seedEdRWagons() {
|
||||
await queryRunner.connect();
|
||||
await queryRunner.startTransaction();
|
||||
|
||||
// Fleet first (recreates every wagon with NULL runs), then the columns are
|
||||
// ensured to exist, then the run roster is applied on top. Same order the
|
||||
// migrations run in, so the script and a fresh migrate agree.
|
||||
await new SeedEdrWagonFleetErNumbering2260000000000().up(queryRunner);
|
||||
await new AddWagonTrainNumbers2270000000000().up(queryRunner);
|
||||
await new SeedWagonRunNumbers2280000000000().up(queryRunner);
|
||||
|
||||
const summary = await queryRunner.query(`
|
||||
SELECT
|
||||
@@ -20,7 +27,8 @@ async function seedEdRWagons() {
|
||||
MIN(w.wagon_number) AS first_wagon,
|
||||
MAX(w.wagon_number) AS last_wagon,
|
||||
COUNT(*) FILTER (WHERE w.status = 'AVAILABLE')::int AS available,
|
||||
COUNT(*) FILTER (WHERE w.current_yard_id IS NULL)::int AS unassigned_yard
|
||||
COUNT(*) FILTER (WHERE w.current_yard_id IS NULL)::int AS unassigned_yard,
|
||||
COUNT(*) FILTER (WHERE w.export_train_number IS NOT NULL)::int AS on_a_run
|
||||
FROM freight.wagons w
|
||||
JOIN freight.wagon_types wt ON wt.id = w.wagon_type_id
|
||||
WHERE w.wagon_number BETWEEN 'ER0001' AND 'ER1100'
|
||||
@@ -29,13 +37,33 @@ async function seedEdRWagons() {
|
||||
`);
|
||||
|
||||
const [totals] = await queryRunner.query(`
|
||||
SELECT COUNT(*)::int AS total FROM freight.wagons;
|
||||
SELECT
|
||||
COUNT(*)::int AS total,
|
||||
COUNT(*) FILTER (WHERE export_train_number IS NOT NULL)::int AS on_a_run
|
||||
FROM freight.wagons;
|
||||
`);
|
||||
|
||||
const runs = await queryRunner.query(`
|
||||
SELECT
|
||||
export_train_number AS export_run,
|
||||
import_train_number AS import_run,
|
||||
COUNT(*)::int AS wagons
|
||||
FROM freight.wagons
|
||||
WHERE export_train_number IS NOT NULL
|
||||
GROUP BY export_train_number, import_train_number
|
||||
ORDER BY export_train_number;
|
||||
`);
|
||||
|
||||
await queryRunner.commitTransaction();
|
||||
|
||||
console.log('\nFleet by wagon type:');
|
||||
console.table(summary);
|
||||
console.log(`Seeded EDR wagon fleet — ${totals.total} wagons total (expected 1100).`);
|
||||
console.log('Run roster (export/import pairs):');
|
||||
console.table(runs);
|
||||
console.log(
|
||||
`Seeded EDR wagon fleet — ${totals.total} wagons total (expected 1100), ` +
|
||||
`${totals.on_a_run} on a run (expected 533).`,
|
||||
);
|
||||
} catch (error) {
|
||||
await queryRunner.rollbackTransaction();
|
||||
throw error;
|
||||
|
||||
Reference in New Issue
Block a user