从采购、仓储、分拣到配送全链路数字化,助力生鲜配送企业与团餐服务商降本增效。
合作客户
SKU 商品
准时配送率
全链路数字化管理
覆盖生鲜配送与团餐业务全场景
SPU/SKU 管理、品类树、阶梯定价、批次质检
供应商管理、智能采购建议、采购订单全流程
库位管理、扫码出入库、保质期预警、盘点
波次分拣、PDA 扫码称重、差异处理、标签打印
线路规划、冷链监控、电子签收、回单管理
周菜单定制、批量下单、人数预报、营养分析
账期管理、供应商结算、应收应付、发票
销售分析、损耗报表、配送准时率、客户画像
从田间到餐桌的全链路数字化闭环
供应商
供货
采购
入库
仓储
分拣
装车
配送
客户
签收
需求文档 · 开发文档 · 技术架构已就绪,即刻启动项目
构建一套面向生鲜食材配送企业和团餐服务商的 B2B/B2C 一体化管理平台,覆盖采购、仓储、分拣、配送、团餐订制、财务结算全链路。
| 角色 | 说明 |
|---|---|
| 系统管理员 | 全局配置、角色权限、数据审计 |
| 采购员 | 供应商管理、采购下单、入库 |
| 仓管员 | 库存管理、分拣任务、损耗登记 |
| 配送员 | 配送任务查看、签收确认、回单上传 |
| 销售/客服 | 客户管理、订单处理、售后 |
| 团餐客户 | 在线下单、菜单预订、配送跟踪 |
| 供应商 | 商品上架、供货确认、结算对账 |
| 类别 | 要求 |
|---|---|
| 性能 | 订单并发 ≥ 500 TPS,页面加载 ≤ 2s |
| 可用性 | 系统 99.9% 可用,支持故障自动切换 |
| 安全 | HTTPS、数据加密、防 SQL 注入、防 XSS |
| 扩展性 | 微服务架构,支持水平扩展 |
| 兼容性 | 支持 Chrome / 微信内置浏览器 / 移动端 H5 |
| 数据备份 | 每日全量备份 + 增量 binlog |
供应商 → 采购入库 → 中央冷库 → 分拣打包 → 装车配送 → 客户签收
↓ ↑
库存预警 ←—— 销售订单 —— 团餐预订
| 技术栈 | 选型 | 说明 |
|---|---|---|
| 后端语言 | Go 1.22+ / Java 21 | Go 负责高并发业务,Java 负责复杂结算 |
| 微服务框架 | Go-Kratos / Spring Cloud Alibaba | 服务注册发现、配置中心 |
| API 网关 | Kong | 路由、限流、认证 |
| 数据库 | MySQL 8.0 + TiDB(分片场景) | 关系数据 |
| 缓存 | Redis 7.x | 热点数据、分布式锁 |
| 消息队列 | RabbitMQ / RocketMQ | 订单异步处理、配送推送 |
| 搜索引擎 | Elasticsearch 8.x | 商品搜索、日志分析 |
| 对象存储 | MinIO / 阿里云 OSS | 图片、回单、质检附件 |
| 前端 | Vue 3 + Element Plus + TypeScript | 管理后台 |
| 移动端 | uni-app(小程序 + H5) | 客户下单、配送员端 |
| 监控 | Prometheus + Grafana + ELK | 指标采集、日志聚合 |
| CI/CD | GitLab CI + Docker + K8s | 自动化构建部署 |
id, created_at, updated_at, deleted_at(逻辑删除)yyMMdd + 业务线 + 6位自增order_date 水平分表DECIMAL(12,2),单位统一为元CREATE TABLE `product` ( `id` BIGINT NOT NULL PRIMARY KEY, `spu_code` VARCHAR(32) NOT NULL COMMENT 'SPU编码', `sku_code` VARCHAR(32) NOT NULL COMMENT 'SKU编码', `name` VARCHAR(128) NOT NULL COMMENT '商品名称', `category_id` BIGINT NOT NULL COMMENT '品类ID', `unit` VARCHAR(10) NOT NULL COMMENT '单位: 斤/箱/份', `spec` VARCHAR(64) DEFAULT '' COMMENT '规格描述', `price` DECIMAL(12,2) NOT NULL COMMENT '零售价', `cost_price` DECIMAL(12,2) NOT NULL COMMENT '成本价', `barcode` VARCHAR(32) DEFAULT '' COMMENT '条形码', `status` TINYINT NOT NULL DEFAULT 1 COMMENT '1上架 0下架', `images` JSON COMMENT '商品图片', `created_at` DATETIME NOT NULL, `updated_at` DATETIME NOT NULL, `deleted_at` DATETIME DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `order` ( `id` BIGINT NOT NULL PRIMARY KEY, `order_no` VARCHAR(32) NOT NULL UNIQUE COMMENT '订单号', `customer_id` BIGINT NOT NULL COMMENT '客户ID', `order_type` TINYINT NOT NULL COMMENT '1普通 2团餐', `total_amount` DECIMAL(12,2) NOT NULL COMMENT '订单总额', `discount` DECIMAL(12,2) DEFAULT 0 COMMENT '优惠金额', `pay_amount` DECIMAL(12,2) NOT NULL COMMENT '实付金额', `status` TINYINT NOT NULL COMMENT '0待审核 1已审核 2分拣中 3配送中 4已签收 5已取消', `delivery_date` DATE NOT NULL COMMENT '配送日期', `delivery_time_slot` VARCHAR(32) COMMENT '配送时段', `remark` VARCHAR(255) DEFAULT '' COMMENT '备注', `created_at` DATETIME NOT NULL, `updated_at` DATETIME NOT NULL, `deleted_at` DATETIME DEFAULT NULL, INDEX `idx_customer` (`customer_id`), INDEX `idx_date` (`delivery_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `delivery_task` ( `id` BIGINT NOT NULL PRIMARY KEY, `task_no` VARCHAR(32) NOT NULL UNIQUE COMMENT '任务编号', `driver_id` BIGINT NOT NULL COMMENT '配送员ID', `vehicle_id` VARCHAR(32) COMMENT '车辆编号', `route_id` BIGINT COMMENT '线路ID', `order_ids` JSON NOT NULL COMMENT '关联订单ID列表', `total_stops` INT NOT NULL DEFAULT 0 COMMENT '配送点数', `status` TINYINT NOT NULL COMMENT '0待装车 1配送中 2已完成', `depart_time` DATETIME COMMENT '发车时间', `finish_time` DATETIME COMMENT '完成时间', `created_at` DATETIME NOT NULL, `updated_at` DATETIME NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `group_menu` (
`id` BIGINT NOT NULL PRIMARY KEY,
`customer_id` BIGINT NOT NULL COMMENT '客户(食堂)ID',
`menu_name` VARCHAR(64) NOT NULL COMMENT '菜单名称',
`menu_date` DATE NOT NULL COMMENT '菜单日期',
`menu_type` TINYINT NOT NULL COMMENT '1早餐 2午餐 3晚餐',
`items` JSON NOT NULL COMMENT '菜品列表 [{dish_id, dish_name, quantity, unit_price}]',
`total_calories` INT DEFAULT 0 COMMENT '总卡路里',
`status` TINYINT DEFAULT 0 COMMENT '0草稿 1已发布',
`created_at` DATETIME NOT NULL,
`updated_at` DATETIME NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
GET /api/v1/products — 商品列表(分页)
POST /api/v1/products — 新增商品
GET /api/v1/products/{id} — 商品详情
PUT /api/v1/products/{id} — 更新商品
DELETE /api/v1/products/{id} — 删除商品
GET /api/v1/orders?status=1&date=2026-06-02 — 订单列表
POST /api/v1/orders — 创建订单
GET /api/v1/orders/{orderNo} — 订单详情
PUT /api/v1/orders/{orderNo}/status — 更新订单状态
{
"code": 0,
"message": "success",
"data": {},
"trace_id": "xxx"
}
// 请求
{ "page": 1, "page_size": 20 }
// 响应
{
"code": 0,
"data": {
"list": [],
"total": 100,
"page": 1,
"page_size": 20
}
}
var OrderStateMachine = map[OrderStatus][]OrderStatus{
StatusPending: {StatusApproved, StatusCancelled},
StatusApproved: {StatusPicking, StatusCancelled},
StatusPicking: {StatusDelivering, StatusCancelled},
StatusDelivering: {StatusSigned, StatusRejected},
StatusSigned: {},
StatusCancelled: {},
StatusRejected: {},
}
1. 查询当天待分拣订单,按 delivery_route_id 分组 2. 同线路订单聚合为波次 3. 按商品 SKU 汇总数量,生成分拣总单 4. 分拣员扫码分拣 → 称重 → 贴标 → 按客户分筐 5. 装车前扫码核单确认
# docker-compose 示意
services:
gateway:
image: kong:3.5
user-svc:
image: registry.example.com/user-svc:latest
product-svc:
image: registry.example.com/product-svc:latest
order-svc:
image: registry.example.com/order-svc:latest
delivery-svc:
image: registry.example.com/delivery-svc:latest
group-meal-svc:
image: registry.example.com/group-meal-svc:latest
mysql:
image: mysql:8.0
redis:
image: redis:7-alpine
rabbitmq:
image: rabbitmq:3-management
生产环境 K8s:每个微服务 2-4 副本,配置 HPA(CPU > 70% 自动扩容)。
| 规范 | 要求 |
|---|---|
| 代码风格 | Go 使用 gofmt / Java 使用 Alibaba Java Guide |
| Git 分支 | main / develop / feature/* / hotfix/* |
| Commit 信息 | feat: / fix: / refactor: / docs: 前缀 |
| API 文档 | Swagger/OpenAPI 3.0 自动生成 |
| 单元测试 | 核心业务覆盖率 ≥ 80% |
| 代码审查 | 所有 PR 需 ≥ 1 人 Review 后合并 |
| 环境 | 用途 | 域名示例 |
|---|---|---|
| dev | 开发自测 | dev.api.example.com |
| test | 测试验证 | test.api.example.com |
| staging | 预发布 | staging.api.example.com |
| prod | 生产 | api.example.com |
| 阶段 | 周期 | 产出 |
|---|---|---|
| 需求确认 | 2 周 | 需求文档、原型图 |
| 技术设计 | 1 周 | 数据库设计、接口定义 |
| 基础框架搭建 | 2 周 | 脚手架、CI/CD、数据库初始化 |
| 核心业务开发 | 6 周 | 商品、订单、库存、采购 |
| 团餐模块开发 | 3 周 | 菜单、团餐订单、食堂管理 |
| 配送与分拣 | 3 周 | 分拣PDA、配送App、路线规划 |
| 结算与报表 | 2 周 | 财务结算、数据报表 |
| 联调测试 | 2 周 | 全链路联调、压力测试 |
| 上线部署 | 1 周 | 生产环境部署、数据迁移 |