How onelphil/warehouse-simulation works
This Java application simulates warehouse fulfillment from configured orders through picking, marshaling, sequencing, and truck loading, while managing stock and replenishment. The principal workflow starts with Simulator configuring each Warehouse; Warehouse processes order and worker events, OrderHandler translates orders and creates pick requests, and workers move requests through Marshalling to trucks. The README also describes initial-stock resume/export, warehouse layout and SKU translation, and worker commands. Source excerpts support the key dispatch and stock interactions; some worker-stage wiring is documented but unsampled, so it is not inferred.
Main entry points: Simulator.java Simulator · StockRoom.java Stock Room · Warehouse.java Warehouse · OrderHandler.java Order Handler
Components 21
Simulation Setup
- Simulator
project/src/Simulator.java - File Manager
project/src/FileManager.java - Warehouse Inputs
project/settings.txt - Order Events
project/TestFile1.txt
Order Fulfillment
- Warehouse
project/src/Warehouse.java - Order
project/src/Order.java - Order Handler
project/src/OrderHandler.java - Pick Request
project/src/PickRequest.java - Route Optimizer
project/src/Optimizer.java - Picker
project/src/Picker.java - Worker Factory
project/src/WorkerFactory.java
Warehouse Operations
- Stock Room
project/src/StockRoom.java - Warehouse Layout
project/traversal_table.csv - Initial Stock
project/initial.csv - SKU Translation
project/translation.csv - Replenisher
project/src/Replenisher.java
Marshaling & Dispatch
- Sequencer
project/src/Sequencer.java - Marshalling
project/src/Marshalling.java - Loader
project/src/Loader.java - Truck
project/src/Truck.java
Other components
- Operator
Connections 26
- Operator → Simulator: starts simulation
- Simulator → File Manager: reads inputs
- Simulator → Warehouse Inputs: reads settings
- Simulator → Warehouse: creates warehouses
- Simulator → Order Events: loads events
- Simulator → File Manager: logs activity
- Warehouse → Order: creates orders
- Warehouse → Order Handler: submits orders
- Warehouse → Worker Factory: creates workers
- Warehouse → Stock Room: replenishes stock
- Order Handler → SKU Translation: uses mapping
- Order Handler → Stock Room: checks stock
- Order Handler → Route Optimizer: optimizes picks
- Order Handler → Pick Request: creates request
- Order Handler → Picker: assigns request
- Route Optimizer → Stock Room: reads locations
- Picker → Stock Room: decrements stock
- Picker → Marshalling: drops off request
- Sequencer → Marshalling: gets requests
- Sequencer → Marshalling: queues for loading
- Loader → Marshalling: gets load request
- Loader → Truck: loads pallets
- Stock Room → Initial Stock: loads initial stock
- Stock Room → Simulator: exports final stock
- Stock Room → Replenisher: requests restock
- Warehouse → Warehouse Layout: loads layout