# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## 项目概述

这是一个基于Spring Boot + Vue.js开发的智能化仓库管理系统（WMS），专门为宝应梦阳公司设计。包含两个版本：
- **202504-Wms-MengYang-box**: 箱式仓库版本
- **202504-Wms-MengYang-tp**: 托盘式仓库版本

## 开发命令

### 后端开发 (Spring Boot)
```bash
# 进入后端目录
cd 202504-Wms-MengYang-tp/wms_serve_mengyang
# 或 cd 202504-Wms-MengYang-box/wms_serve_mengyang

# Maven构建
mvn clean install

# 运行后端服务 (端口12315)
mvn spring-boot:run

# 编译打包
mvn package
```

### 前端开发 (Vue.js)
```bash
# 进入前端目录
cd 202504-Wms-MengYang-tp/wms_web_mengyang
# 或 cd 202504-Wms-MengYang-box/wms_web_mengyang

# 安装依赖
npm install

# 开发服务器
npm run serve

# 生产构建
npm run build
```

### 数据库设置
```sql
-- 导入数据库脚本
-- TP版本: 202504-Wms-MengYang-tp/db/wms_mengyang_tp.sql
-- Box版本: 202504-Wms-MengYang-box/db/wms_mengyang_box.sql
```

## 架构设计

### 后端分层架构
- **controller**: REST API控制层，分为标准WMS控制器和自定义MyWMS控制器
- **service**: 业务服务层，包含api、business、controller、quartz_job四个子模块
- **dao/mapper**: 数据访问层，使用MyBatis Plus
- **model**: 数据模型层，包含po/dto/vo/bo四种对象类型
- **repository**: 仓储模式实现，支持HTTP和TCP通信
- **config**: 配置层，包含MybatisPlus、资源配置等

### 核心业务模块
- **库存管理**: TAppStock（库存表）、TAppLocation（库位表）
- **订单管理**: TAppOrderIn（入库）、TAppOrderOut（出库）、TAppTask（任务）
- **货物管理**: TAppGoods（货物）、TAppProduct（产品）、TAppVehicle（载具）
- **设备集成**: WCS接口、AGV锁定、堆垛机任务控制

### 前端架构
- 基于Vue 3 + Element Plus的SPA应用
- 使用Vuex进行状态管理，Vue Router处理路由
- 支持Excel导入导出、二维码扫描、打印功能

## 技术栈

### 后端
- Spring Boot 3.3.5 + Java 21
- MyBatis Plus 3.5.7 + MySQL 8.0
- Quartz调度 + Fastjson + Hutool工具库

### 前端  
- Vue 3.2.13 + Element Plus 2.4.0
- Axios HTTP客户端 + QRCode二维码支持
- EasyExcel处理Excel文件

## 关键配置

### 应用配置
- 后端服务端口：12315
- 数据库连接：application.yml中配置
- 前端代理配置：vue.config.js中的devServer设置

### 重要枚举
- **AppConfigKeyEnums**: 系统配置项枚举
- **TaskTypeEnums**: 任务类型枚举  
- **StockStatusEnums**: 库存状态枚举

## 开发注意事项

### 代码结构约定
- Controller层只处理HTTP请求响应，业务逻辑放在Service层
- 使用DTO在Controller层传输数据，内部业务使用BO对象
- 数据库操作统一通过MyBatis Plus的BaseMapper进行

### WCS集成规范
- WCS API调用通过IWcsApiService接口统一管理
- AGV设备操作需要使用锁定机制防止冲突
- 任务下发前要检查设备状态和库位可用性

### 数据处理规范
- Excel导入导出使用EasyExcel库，统一在excel包下处理
- 图片文件存储路径通过配置管理，支持本地和云存储
- 二维码生成和识别功能封装在utils工具类中