找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2092

积分

0

好友

278

主题
发表于 2 小时前 | 查看: 6| 回复: 0

你是否想过,借助 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 中间件服务

服务 地址 账号/密码
Nacos http://localhost:8848/nacos nacos/nacos
MySQL localhost:3306 root/123456
Redis localhost:6379 无密码
RocketMQ Console http://localhost:8180 -
SkyWalking UI http://localhost:8081 -
Grafana http://localhost:3000 admin/admin
Prometheus http://localhost:9090 -

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 关键优势

  1. 文档先行: AI 强制先写设计文档,避免边做边改
  2. 代码规范: 严格执行开发规范,代码质量一致
  3. 快速迭代: 修改需求后,AI 快速更新文档和代码
  4. 知识沉淀: 所有决策和实现都有文档记录
  5. 全栈覆盖: 产品、架构、开发、测试、运维全覆盖

九、总结与展望

9.1 经验总结

成功的因素:

  1. ✅ 详细的设计文档是基础
  2. ✅ 严格的开发规范保证质量
  3. ✅ 微服务架构便于并行开发
  4. ✅ Docker 环境简化部署
  5. ✅ OpenClaw 大幅提升效率

遇到的挑战:

  1. ⚠️ AI 生成的代码需要人工审查
  2. ⚠️ 复杂业务逻辑需要人工介入
  3. ⚠️ 性能优化需要实际测试
  4. ⚠️ 第三方系统集成需要手动配置

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 辅助开发,欢迎在 云栈社区 交流分享。




上一篇:OpenClaw AI Agent在Ubuntu 22.04的部署指南:从Node.js配置到Web UI访问
下一篇:前端开发者Shell脚本入门指南:从零到自动化实践
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-15 13:37 , Processed in 0.596817 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表