java实现物流系统开发

microsoft 365下载 时间: 2025-09-16 02:31:19 作者: admin 查阅次数: 8148 公众评价: 286
java实现物流系统开发

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

// 物流系统主类

public class LogisticsSystem {

private List orders;

private List warehouses;

private List deliveries;

private Map customers;

public LogisticsSystem() {

this.orders = new ArrayList<>();

this.warehouses = new ArrayList<>();

this.deliveries = new ArrayList<>();

this.customers = new HashMap<>();

}

// 添加客户

public void addCustomer(Customer customer) {

customers.put(customer.getId(), customer);

}

// 添加仓库

public void addWarehouse(Warehouse warehouse) {

warehouses.add(warehouse);

}

// 创建订单

public Order createOrder(String customerId, List products, String destination) {

Customer customer = customers.get(customerId);

if (customer == null) {

throw new IllegalArgumentException("客户不存在: " + customerId);

}

Order order = new Order(generateOrderId(), customer, products, destination);

orders.add(order);

return order;

}

// 分配仓库

public Warehouse assignWarehouse(Order order) {

Warehouse bestWarehouse = null;

int minDistance = Integer.MAX_VALUE;

for (Warehouse warehouse : warehouses) {

int distance = calculateDistance(warehouse.getLocation(), order.getDestination());

if (distance < minDistance && warehouse.hasEnoughStock(order.getProducts())) {

minDistance = distance;

bestWarehouse = warehouse;

}

}

if (bestWarehouse != null) {

bestWarehouse.processOrder(order);

}

return bestWarehouse;

}

// 创建配送

public Delivery createDelivery(Order order, Warehouse warehouse) {

Delivery delivery = new Delivery(generateDeliveryId(), order, warehouse);

deliveries.add(delivery);

return delivery;

}

// 更新配送状态

public void updateDeliveryStatus(String deliveryId, DeliveryStatus status) {

for (Delivery delivery : deliveries) {

if (delivery.getId().equals(deliveryId)) {

delivery.setStatus(status);

if (status == DeliveryStatus.DELIVERED) {

delivery.getOrder().setOrderStatus(OrderStatus.COMPLETED);

}

break;

}

}

}

// 生成订单ID

private String generateOrderId() {

return "ORD" + System.currentTimeMillis();

}

// 生成配送ID

private String generateDeliveryId() {

return "DEL" + System.currentTimeMillis();

}

// 计算两点之间的距离(简化实现)

private int calculateDistance(String location1, String location2) {

// 实际应用中可能会使用地图API计算实际距离

return (int) (Math.random() * 100);

}

// 打印系统状态

public void printSystemStatus() {

System.out.println("=== 物流系统状态 ===");

System.out.println("订单总数: " + orders.size());

System.out.println("仓库总数: " + warehouses.size());

System.out.println("配送中: " + getDeliveriesByStatus(DeliveryStatus.IN_TRANSIT).size());

System.out.println("已完成: " + getDeliveriesByStatus(DeliveryStatus.DELIVERED).size());

System.out.println("===================");

}

// 根据状态获取配送列表

private List getDeliveriesByStatus(DeliveryStatus status) {

List result = new ArrayList<>();

for (Delivery delivery : deliveries) {

if (delivery.getStatus() == status) {

result.add(delivery);

}

}

return result;

}

public static void main(String[] args) {

// 创建物流系统实例

LogisticsSystem system = new LogisticsSystem();

// 添加客户

Customer customer1 = new Customer("C001", "张三", "北京市朝阳区");

system.addCustomer(customer1);

// 添加仓库

Warehouse warehouse1 = new Warehouse("WH001", "北京仓库", "北京市海淀区");

Warehouse warehouse2 = new Warehouse("WH002", "上海仓库", "上海市浦东新区");

system.addWarehouse(warehouse1);

system.addWarehouse(warehouse2);

// 添加产品到仓库

Product product1 = new Product("P001", "手机", 5000);

Product product2 = new Product("P002", "电脑", 8000);

warehouse1.addStock(product1, 100);

warehouse1.addStock(product2, 50);

warehouse2.addStock(product1, 200);

warehouse2.addStock(product2, 100);

// 创建订单

List orderProducts = new ArrayList<>();

orderProducts.add(product1);

orderProducts.add(product2);

Order order = system.createOrder("C001", orderProducts, "北京市朝阳区");

// 分配仓库

Warehouse assignedWarehouse = system.assignWarehouse(order);

System.out.println("订单 " + order.getId() + " 已分配到仓库: " + assignedWarehouse.getName());

// 创建配送

Delivery delivery = system.createDelivery(order, assignedWarehouse);

System.out.println("配送已创建,配送ID: " + delivery.getId());

// 更新配送状态

system.updateDeliveryStatus(delivery.getId(), DeliveryStatus.IN_TRANSIT);

System.out.println("配送状态已更新为: 运输中");

// 模拟配送完成

system.updateDeliveryStatus(delivery.getId(), DeliveryStatus.DELIVERED);

System.out.println("配送状态已更新为: 已送达");

// 打印系统状态

system.printSystemStatus();

}

}

关联

马拉多纳谈抽签:世界杯无弱旅 重现阿根廷辉煌
365bet怎么提现

马拉多纳谈抽签:世界杯无弱旅 重现阿根廷辉煌

📅 07-27 👁️ 9079
诗词软件排行榜
microsoft 365下载

诗词软件排行榜

📅 07-13 👁️ 8009

链接