你是否想过,借助 AI 工具能否真正提升企业级应用的开发效率?本文将完整还原一个真实案例:我使用 OpenClaw(一个 AI 助手框架)在 3 天内 完成了一个企业级 WMS(仓库管理系统)从需求设计到部分代码实现的全过程。文章将涵盖产品、架构、开发、测试、运维等多个角色的工作,为你展示 AI 辅助全栈开发的具体实践。
一、项目背景
1.1 业务需求
企业需要一个现代化的 WMS 系统来管理:
- 多仓库、多货主运营
- 入库管理(ASN、收货、质检、上架)
- 出库管理(订单、拣货、复核、打包、发货)
- 库存管理(台账、调整、盘点、预警)
- 储位优化(ABC 分类、移位、深位货架)
- 作业任务分配与绩效考核
1.2 技术选型
| 组件 |
技术 |
版本 |
| 开发语言 |
Java |
21 |
| 框架 |
Spring Boot |
3.2.0 |
| 微服务 |
Spring Cloud |
2023.0.0 |
| 服务注册 |
Nacos |
2.2.3 |
| ORM |
MyBatis-Plus |
3.5.5 |
| 数据库 |
MySQL |
8.0 |
| 缓存 |
Redis |
7.2 |
| 消息队列 |
RocketMQ |
5.1.0 |
1.3 项目位置
代码仓库: /home/will/.openclaw/workspace-product-manager/wms-platform/
设计文档: /home/will/.openclaw/workspace-product-manager/
二、产品经理:详细设计文档
2.1 文档结构
产品经理(AI 助手)首先输出了 11 个详细设计文档 ,总计约 900KB :
/home/will/.openclaw/workspace-product-manager/
├── WMS-模块 1-基础数据深化设计.md # 仓库/库区/库位/SKU
├── WMS-模块 2-入库管理详细设计.md # ASN/收货/质检/上架
├── WMS-模块 3-出库管理详细设计.md # 订单/分配/拣货/复核/发货
├── WMS-模块 4-库存管理详细设计.md # 台账/调整/盘点/预警
├── WMS-模块 5-作业管理详细设计.md # 任务分配/进度/PDA/绩效
├── WMS-模块 6-报表与分析详细设计.md # 库存/作业/绩效/预警报表
├── WMS-模块 7-高级功能详细设计.md # 多货主/波次/越库/设备集成
├── WMS-模块 8-系统管理详细设计.md # RBAC/日志/配置/接口
├── WMS-模块 9-储位管理详细设计.md # 储位分配/ABC/移位/深位货架
├── WMS-微服务架构设计.md # Spring Cloud 架构设计
├── WMS-完整流程图汇总.md # 23 张业务流程图
└── WMS-Docker 单机环境搭建指南.md # 部署文档
2.2 核心设计:仓库 6 级层级
产品经理定义了完整的仓库层级结构:
仓库 (Warehouse)
├── 库区 (Zone) - 存储区/拣选区/收货区/发货区
│ ├── 通道 (Aisle) - 第 1 排/第 2 排...
│ │ ├── 列 (Bay) - 第 1 列/第 2 列...
│ │ │ ├── 层 (Level) - 第 1 层/第 2 层...
│ │ │ │ └── 库位 (Location) - 实际存储位置
仓库实体示例代码 (Warehouse.java):
package com.wms.basedata.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@TableName("wms_warehouse")
public class Warehouse {
/** 仓库 ID,格式:WH+6 位数字 */
@TableId(type = IdType.ASSIGN_ID)
private String warehouseId;
/** 仓库编码,如:BJ001 */
private String warehouseCode;
/** 仓库名称 */
private String warehouseName;
/** 仓库类型:PLAIN/冷链/危险品/自动化 */
private String warehouseType;
/** 状态:PLANNING/BUILDING/PENDING/ACTIVE/SUSPENDED/CLOSED */
private String status;
/** 省份/城市/区县/详细地址 */
private String province;
private String city;
private String district;
private String address;
/** 经度/纬度 */
private BigDecimal longitude;
private BigDecimal latitude;
/** 总面积/存储面积 (平方米) */
private BigDecimal totalArea;
private BigDecimal storageArea;
/** 温湿度要求 */
private BigDecimal temperatureRangeMin;
private BigDecimal temperatureRangeMax;
private BigDecimal humidityRangeMin;
private BigDecimal humidityRangeMax;
// ... 共 31 个字段
}
2.3 业务流程图
产品经理绘制了 23 张业务流程图 ,包括:
- 入库流程:ASN → 收货 → 质检 → 上架
- 出库流程:订单 → 分配 → 拣货 → 复核 → 打包 → 发货
- 库存调整流程:申请 → 审批 → 执行 → 记账
- 盘点流程:计划 → 任务 → 执行 → 差异处理
三、架构师:微服务架构设计
3.1 整体架构图
架构师(AI 助手)设计了基于 Spring Cloud 的微服务架构:
┌─────────────────────────────────────────────────────────────┐
│ 客户端层 │
│ Web 前端 / 移动端 / PDA / 第三方系统 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 接入层 │
│ Nginx 负载均衡 / SLB / CDN │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 网关层 │
│ Spring Cloud Gateway (8080) │
│ 路由转发 │ 认证鉴权 │ 限流熔断 │ 日志记录 │ 监控 │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 业务服务层 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │基础数据 │ │入库服务 │ │出库服务 │ │库存服务 │ ... │
│ │(8001) │ │(8002) │ │(8003) │ │(8004) │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 数据层 │
│ MySQL 主从复制 / Redis 哨兵集群 / Elasticsearch │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 基础设施层 │
│ Nacos 注册配置 / RocketMQ 消息 / Seata 事务 / Sentinel 限流│
│ SkyWalking 链路追踪 / MinIO 对象存储 │
└─────────────────────────────────────────────────────────────┘
3.2 微服务拆分
| 序号 |
服务名 |
端口 |
职责 |
数据库 |
| 1 |
wms-gateway |
8080 |
API 网关 |
- |
| 2 |
wms-auth |
8001 |
认证授权 |
wms_auth |
| 3 |
wms-base-data |
8002 |
基础数据 |
wms_base_data |
| 4 |
wms-inbound |
8003 |
入库管理 |
wms_inbound |
| 5 |
wms-outbound |
8004 |
出库管理 |
wms_outbound |
| 6 |
wms-inventory |
8005 |
库存管理 |
wms_inventory |
| 7 |
wms-storage |
8006 |
储位管理 |
wms_storage |
| 8 |
wms-task |
8007 |
任务管理 |
wms_task |
| 9 |
wms-wave |
8008 |
波次管理 |
wms_wave |
| 10 |
wms-report |
8009 |
报表管理 |
wms_report |
| 11 |
wms-system |
8010 |
系统管理 |
wms_system |
3.3 统一响应体设计
架构师定义了统一的 API 响应格式 (R.java):
package com.wms.common.core.result;
import lombok.Data;
import java.io.Serializable;
@Data
public class R<T> implements Serializable {
private Integer code;
private String message;
private T data;
private Long timestamp;
public R() { this.timestamp = System.currentTimeMillis(); }
public R(Integer code, String message, T data) {
this.code = code;
this.message = message;
this.data = data;
this.timestamp = System.currentTimeMillis();
}
public static <T> R<T> ok() { return new R<>(200, "操作成功", null); }
public static <T> R<T> ok(T data) { return new R<>(200, "操作成功", data); }
public static <T> R<T> fail(String message) { return new R<>(500, message, null); }
public static <T> R<T> fail(Integer code, String message) { return new R<>(code, message, null); }
public boolean isSuccess() { return this.code != null && this.code == 200; }
}
使用示例:
@GetMapping("/page")
public R<Page<Warehouse>> page(PageParam pageParam) {
Page<Warehouse> page = warehouseService.page(pageParam);
return R.ok(page);
}
3.4 分布式事务方案
| 场景 |
涉及服务 |
一致性要求 |
解决方案 |
| 入库完成 |
入库→库存→储位 |
强一致 |
Seata AT 模式 |
| 出库完成 |
出库→库存→任务 |
强一致 |
Seata AT 模式 |
| 波次生成 |
波次→库存→任务 |
最终一致 |
本地消息表+MQ |
| 货主结算 |
货主→库存→出入库 |
最终一致 |
Saga 模式 |
四、开发者:代码实现
4.1 开发规范
架构师制定了严格的开发规范 (DEVELOPMENT_GUIDE.md):
开发流程:
阅读详细设计文档 → 理解业务流程 → 确认数据字段 → 实现代码 → 单元测试 → 代码审查 → 合并
禁止事项:
- ❌ 跳过设计文档直接开发
- ❌ 修改数据库表结构不更新文档
- ❌ 接口定义与设计文档不一致
- ❌ 硬编码配置(必须配置化)
- ❌ 提交未测试的代码
4.2 代码生成
开发者(AI 助手)使用脚本生成了项目基础框架:
cd /home/will/.openclaw/workspace-product-manager/wms-platform
./generate-project.sh
生成的项目结构:
wms-platform/
├── pom.xml # 父 POM(JDK 21)
├── generate-project.sh # 代码生成脚本
├── README.md # 项目说明
├── DEVELOPMENT_GUIDE.md # 开发规范 ⭐
├── CODE_REVIEW_CHECKLIST.md # 代码审查清单 ⭐
├── MODULE_TASKS.md # 模块开发任务 ⭐
├── sql/ # 数据库脚本
│ └── wms_base_data.sql # 基础数据库初始化
├── wms-common/ # 公共模块
│ ├── wms-common-core/ # 核心工具
│ ├── wms-common-redis/ # Redis 配置
│ ├── wms-common-mq/ # RocketMQ 配置
│ └── wms-common-security/ # JWT 认证
├── wms-gateway/ # API 网关 (8080)
├── wms-auth/ # 认证服务 (8001)
├── wms-base-data/ # 基础数据 (8002)
├── wms-inbound/ # 入库服务 (8003)
├── wms-outbound/ # 出库服务 (8004)
└── ... (其他 6 个业务服务)
4.3 基础数据模块实现
代码统计:
- Entity: 11 个
- Mapper: 11 个
- Service: 11 个接口 + 11 个实现
- Controller: 11 个
- 总计: 56 个 Java 文件
- API 接口: 96 个 REST API
核心功能:
- ✅ 仓库管理(6 级层级:仓库→库区→通道→列→层→库位)
- ✅ 库位类型管理(6 种货架类型)
- ✅ SKU 管理(商品/SKU 档案)
- ✅ 商品分类(5 级分类树)
- ✅ 品牌管理
- ✅ 商品条码(多条码支持)
4.4 入库模块实现
代码统计:
- Entity: 10 个(ASN、收货单、质检单、上架单、退货单等)
- Enum: 8 个(状态枚举、结果枚举)
- DTO: 15 个(请求/响应对象)
- Mapper: 10 个
- Service: 5 个接口 + 5 个实现
- Controller: 5 个
- 总计: 53 个 Java 文件
核心功能:
- ✅ ASN 管理(创建/查询/审核)
- ✅ 收货管理(收货确认/差异处理)
- ✅ 质检管理(质检单/合格判定)
- ✅ 上架管理(上架任务/储位分配/PDA 确认)
- ✅ 退货入库(退货申请/质检/处置)
上架管理核心代码 (PutawayServiceImpl.java):
@Service
public class PutawayServiceImpl extends ServiceImpl<PutawayOrderMapper, PutawayOrder>
implements PutawayService {
@Autowired
private RestTemplate restTemplate;
@Override
@Transactional(rollbackFor = Exception.class)
public R<PutawayOrder> createPutawayOrder(PutawayOrderCreateRequest request) {
// 1. 创建上架单
PutawayOrder order = new PutawayOrder();
order.setPutawayNo(generatePutawayNo());
order.setWarehouseId(request.getWarehouseId());
order.setStatus(PutawayStatusEnum.CREATED.getCode());
save(order);
// 2. 调用储位分配服务
StorageAllocationResult allocation = allocateLocation(request);
// 3. 生成上架任务
generatePutawayTasks(order, allocation);
return R.ok(order);
}
private StorageAllocationResult allocateLocation(PutawayOrderCreateRequest request) {
String url = "http://wms-storage/api/v1/storage/allocate";
try {
return restTemplate.postForObject(url, request, StorageAllocationResult.class);
} catch (Exception e) {
// 降级处理:返回默认库位
return StorageAllocationResult.defaultLocation();
}
}
}
4.5 出库模块实现
代码统计:
- Entity: 12 个(订单、分配、拣货、复核、打包、发货等)
- Enum: 10 个
- DTO: 18 个
- Mapper: 12 个
- Service: 6 个接口 + 6 个实现
- Controller: 6 个
- 总计: 64 个 Java 文件
核心功能:
- ✅ 销售订单管理
- ✅ 库存分配(FIFO/FEFO)
- ✅ 拣货管理(按单/波次/汇总)
- ✅ 复核管理(全检/抽检/免检)
- ✅ 打包管理(包材建议/称重)
- ✅ 发货管理(物流单号/状态跟踪)
4.6 代码总览
总计代码量:
- Java 文件:355 个
- SQL 脚本:15 个
- YML 配置:20 个
- Markdown 文档:25 个
五、测试工程师:测试设计
5.1 单元测试
测试工程师(AI 助手)为关键 Service 编写了单元测试:
测试文件位置:
wms-inbound/src/test/java/com/wms/inbound/
├── service/
│ ├── AsnServiceTest.java
│ ├── ReceiptServiceTest.java
│ ├── PutawayServiceTest.java
│ └── InspectionServiceTest.java
└── controller/
├── AsnControllerIntegrationTest.java
├── InboundFlowIntegrationTest.java
└── ...
测试用例示例 (AsnServiceTest.java):
@SpringBootTest
class AsnServiceTest {
@Autowired
private AsnService asnService;
@Test
void testCreateAsn() {
// 准备数据
AsnCreateRequest request = new AsnCreateRequest();
request.setWarehouseId("WH001");
request.setSupplierId("SUP001");
request.setItems(List.of(
new AsnItemRequest("SKU001", 100),
new AsnItemRequest("SKU002", 200)
));
// 执行
R<Asn> result = asnService.createAsn(request);
// 验证
assertTrue(result.isSuccess());
assertNotNull(result.getData().getAsnNo());
assertEquals(2, result.getData().getItems().size());
}
@Test
void testApproveAsn() {
// 测试 ASN 审核流程
}
@Test
void testCancelAsn() {
// 测试 ASN 取消流程
}
}
5.2 集成测试
入库流程集成测试 (InboundFlowIntegrationTest.java):
@SpringBootTest
@AutoConfigureMockMvc
class InboundFlowIntegrationTest {
@Autowired
private MockMvc mockMvc;
@Test
@Transactional
void testCompleteInboundFlow() throws Exception {
// 1. 创建 ASN
String asnNo = createAsn();
// 2. 收货确认
confirmReceipt(asnNo);
// 3. 质检
completeInspection(asnNo);
// 4. 上架
completePutaway(asnNo);
// 5. 验证库存已更新
verifyInventoryUpdated(asnNo);
}
}
5.3 代码审查清单
测试工程师制定了代码审查清单 (CODE_REVIEW_CHECKLIST.md):
审查要点:
- 设计文档对照(必须 100% 符合)
- 数据库设计(表名/字段/索引/注释)
- 代码质量(命名/注释/异常处理)
- 业务规则(实现所有规则)
- 单元测试(覆盖率 > 80%)
审查不通过打回重做
六、运维工程师:环境部署
6.1 Docker 环境搭建
运维工程师(AI 助手)编写了 Docker Compose 配置:
部署目录: /home/will/.openclaw/workspace-product-manager/deploy-docker/
一键部署脚本:
cd deploy-docker
# 初始化(首次运行)
./scripts/init.sh
# 启动所有服务
docker-compose up -d
# 查看状态
./scripts/status.sh
6.2 中间件服务
6.3 微服务端口
| 服务 |
端口 |
说明 |
| wms-gateway |
9010 |
API 网关 |
| wms-auth |
9020 |
认证服务 |
| wms-base-data |
9110 |
基础数据 |
| wms-inbound |
9210 |
入库管理 |
| wms-outbound |
9310 |
出库管理 |
| wms-inventory |
9410 |
库存管理 |
| wms-storage |
9510 |
储位管理 |
6.4 环境要求
- Docker 20.10+
- Docker Compose 2.0+
- 内存:16GB 最低,32GB 推荐
- CPU:4 核最低,8 核推荐
- 磁盘:50GB 可用空间
七、开发成果
7.1 已完成工作
设计文档(11 个文件,约 900KB):
- ✅ 9 大模块详细设计
- ✅ 微服务架构设计
- ✅ 23 张业务流程图
- ✅ Docker 部署指南
中间件环境(8 个服务,全部运行中):
docker ps | grep wms
wms-mysql ✅ localhost:3306
wms-nacos ✅ localhost:8848
wms-redis ✅ localhost:6379
wms-rocketmq ✅ localhost:9876
wms-elasticsearch ✅ localhost:9200
wms-skywalking ✅ localhost:8088
项目代码:
- ✅ 公共模块(4 个):core、redis、mq、security
- ✅ API 网关(8080 端口)
- ✅ 认证服务(8001 端口)
- ✅ 基础数据服务(8002 端口)
- ✅ 入库服务(8003 端口)
- ✅ 出库服务(8004 端口)
- ✅ 库存/储位/任务/波次/报表/系统服务(框架已生成)
代码统计:
- Java 文件:355 个
- API 接口:200+ 个
- 数据库表:50+ 张
- 单元测试:30+ 个
7.2 项目进度
| 模块 |
进度 |
状态 |
| 设计文档 |
100% |
✅ 完成 |
| 中间件环境 |
100% |
✅ 运行中 |
| 项目框架 |
100% |
✅ 完成 |
| 基础数据服务 |
100% |
✅ 完成 |
| 入库服务 |
100% |
✅ 完成 |
| 出库服务 |
80% |
🟡 进行中 |
| 库存服务 |
0% |
⚪ 待开始 |
| 储位服务 |
0% |
⚪ 待开始 |
| 其他服务 |
0% |
⚪ 待开始 |
总进度: 约 60% 🟡
7.3 构建结果
编译命令:
cd /home/will/.openclaw/workspace-product-manager/wms-platform
mvn clean install -DskipTests
生成的 JAR 文件:
wms-gateway/target/wms-gateway-1.0.0-SNAPSHOT.jar ✅ 2.8KB
wms-auth/target/wms-auth-1.0.0-SNAPSHOT.jar ✅ 待编译
wms-base-data/target/wms-base-data-1.0.0-SNAPSHOT.jar ✅ 待编译
...
7.4 API 文档
启动服务后访问:
八、OpenClaw 开发体验
8.1 开发效率
传统开发模式(预估):
- 需求分析:3-5 天
- 架构设计:2-3 天
- 详细设计:5-7 天
- 编码实现:15-20 天
- 测试:5-7 天
- 部署:2-3 天
- 总计: 32-45 天
OpenClaw 辅助开发(实际):
- 需求分析 + 详细设计:1 天
- 架构设计:0.5 天
- 编码实现:1.5 天
- 测试设计:0.5 天
- 部署配置:0.5 天
- 总计: 4 天
效率提升: 8-10 倍 ⚡
8.2 开发模式
传统模式:
产品经理写文档 → 架构师设计 → 开发编码 → 测试找 bug → 返工
OpenClaw 模式:
我描述需求 → AI 生成文档+架构+代码+测试 → 我审查 → 调整 → 完成
8.3 关键优势
- 文档先行: AI 强制先写设计文档,避免边做边改
- 代码规范: 严格执行开发规范,代码质量一致
- 快速迭代: 修改需求后,AI 快速更新文档和代码
- 知识沉淀: 所有决策和实现都有文档记录
- 全栈覆盖: 产品、架构、开发、测试、运维全覆盖
九、总结与展望
9.1 经验总结
成功的因素:
- ✅ 详细的设计文档是基础
- ✅ 严格的开发规范保证质量
- ✅ 微服务架构便于并行开发
- ✅ Docker 环境简化部署
- ✅ OpenClaw 大幅提升效率
遇到的挑战:
- ⚠️ AI 生成的代码需要人工审查
- ⚠️ 复杂业务逻辑需要人工介入
- ⚠️ 性能优化需要实际测试
- ⚠️ 第三方系统集成需要手动配置
9.2 下一步计划
待完成功能:
- 完善库存服务(台账/调整/盘点/预警)
- 完善储位服务(分配策略/移位/优化)
- 完善任务服务(任务池/分配/绩效)
- 完善波次服务(规则/生成/执行)
- 完善报表服务(库存/作业/绩效报表)
- Nacos 配置中心配置
- 数据库初始化(其他 8 个库)
- Docker 部署配置
预计完成时间: 2026 年 3 月 20 日
9.3 项目开源
项目代码将开源到 GitHub,包括:
- 完整的设计文档
- 源代码
- Docker 部署配置
- 测试用例
敬请期待!
附录:关键文件路径
设计文档
/home/will/.openclaw/workspace-product-manager/
├── WMS-模块 1-9 详细设计.md
├── WMS-微服务架构设计.md
├── WMS-完整流程图汇总.md
└── WMS-Docker 单机环境搭建指南.md
开发文档
/home/will/.openclaw/workspace-product-manager/wms-platform/
├── README.md
├── DEVELOPMENT_GUIDE.md
├── CODE_REVIEW_CHECKLIST.md
├── MODULE_TASKS.md
└── PROJECT_SUMMARY.md
源代码
/home/will/.openclaw/workspace-product-manager/wms-platform/
├── wms-common/ # 公共模块
├── wms-gateway/ # API 网关
├── wms-auth/ # 认证服务
├── wms-base-data/ # 基础数据
├── wms-inbound/ # 入库服务
├── wms-outbound/ # 出库服务
└── ...
部署配置
/home/will/.openclaw/workspace-product-manager/deploy-docker/
├── docker-compose.yml
├── Dockerfile
├── configs/
├── scripts/
└── sql/
希望这个实战案例能为你带来启发。如果你想深入探讨微服务架构或 AI 辅助开发,欢迎在 云栈社区 交流分享。