def calculate_total(self, product_manager): total = 0 for product_id, quantity in self.items.items(): product = product_manager.get_product(product_id) if product: total += product.price * quantity self.total_price = total return total
class OrderManager: def __init__(self): self.orders = {}
def create_order(self, order): self.orders[order.order_id] = order
```sql -- 产品表 CREATE TABLE products ( id VARCHAR(20) PRIMARY KEY, name VARCHAR(100) NOT NULL, category VARCHAR(50) NOT NULL, price DECIMAL(10,2) NOT NULL, shelf_life INT NOT NULL, -- 保质期(天) storage_temp DECIMAL(5,1) NOT NULL, -- 存储温度 current_stock INT DEFAULT 0 );
-- 订单表 CREATE TABLE orders ( id VARCHAR(20) PRIMARY KEY, customer_id VARCHAR(20) NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 待处理, total_price DECIMAL(10,2) NOT NULL, delivery_address TEXT NOT NULL, delivery_time DATETIME NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
-- 订单明细表 CREATE TABLE order_items ( id INT AUTO_INCREMENT PRIMARY KEY, order_id VARCHAR(20) NOT NULL, product_id VARCHAR(20) NOT NULL, quantity INT NOT NULL, price DECIMAL(10,2) NOT NULL, FOREIGN KEY (order_id) REFERENCES orders(id), FOREIGN KEY (product_id) REFERENCES products(id) );
-- 配送路线表 CREATE TABLE delivery_routes ( id VARCHAR(20) PRIMARY KEY, driver_id VARCHAR(20) NOT NULL, vehicle_id VARCHAR(20) NOT NULL, status VARCHAR(20) NOT NULL DEFAULT 未出发, estimated_time DATETIME, actual_time DATETIME, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );
```python def process_order(order, product_manager, inventory_manager): 检查库存 for product_id, quantity in order.items.items(): if not inventory_manager.check_stock(product_id, quantity): return False, f"产品 {product_id} 库存不足"
扣减库存 for product_id, quantity in order.items.items(): if not inventory_manager.update_inventory(product_id, -quantity, "订单出货"): return False, f"更新产品 {product_id} 库存失败"
```python def optimize_delivery_routes(orders, delivery_manager): 简化版:按区域分组 area_groups = {} for order in orders: area = extract_area_from_address(order.delivery_address) 假设有提取区域的函数 if area not in area_groups: area_groups[area] = [] area_groups[area].append(order.order_id)
为每个区域创建配送路线 routes = [] for area, order_ids in area_groups.items(): route = delivery_manager.create_route( order_ids=order_ids, driver_id=assign_driver(), 假设有分配司机的函数 vehicle_id=assign_vehicle(area) 假设有分配车辆的函数 ) routes.append(route)