202504-Wms-MengYang/202504-Wms-MengYang-box/wms_serve_mengyang/CLAUDE.md
2025-07-21 17:05:18 +08:00

138 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## 项目概述
这是一个宝应梦阳WMS仓库管理系统后端项目基于Spring Boot 3.3.5和Java 21开发使用Maven构建。系统管理仓库的入库、出库、库存和任务调度等核心业务。
## 开发环境设置
### 构建和运行命令
```bash
# 编译项目
mvn clean compile
# 打包项目
mvn clean package
# 运行项目
mvn spring-boot:run
# 跳过测试运行(默认配置)
mvn clean package -Dmaven.test.skip=true
```
### 数据库配置
- 本地开发MySQL `localhost:3306/wms_mengyang_box`
- 生产环境MySQL `10.18.58.21:3306/wms_yachi_nantong`
- 用户名/密码本地使用root/root生产使用user/user
### 应用配置
- 服务端口12315
- 应用名称wms_main
- 文件上传限制单文件100MB总计1000MB
## 核心架构
### 分层架构
系统采用标准的MVC三层架构
- **Controller层**REST API接口包含mywms和wms两个模块
- **Service层**业务逻辑层分为controller、business、api三个子模块
- **DAO层**数据访问层使用MyBatis-Plus
### 核心业务模块
#### 1. MyWMS模块 (`controller/mywms/`)
自定义WMS接口
- `POST /orderIn` - 入库订单接口
- `POST /orderOut` - 出库订单接口
- `POST /stock` - 库存查询接口
#### 2. 深度策略服务 (`service/business/DepthStrategyService`)
核心算法模块,实现智能仓储策略:
- 支持托盘库(TP)和料箱库(BOX)两种存储类型
- 动态深度分析和出库优化策略
#### 3. 任务调度系统 (`service/quartz_job/`)
基于Quartz的定时任务
- `WmsTaskExecutor` - WMS任务执行器
- `MyOutExecutor` - 出库任务执行器
- `WcsStackerTaskSender` - WCS任务发送器
#### 4. 设备集成 (`service/api/`)
- `WcsApiService` - WCS系统集成
- `ExternalApiService` - 外部系统API调用
### 数据模型结构
- `po/` - 数据库实体对象Persistent Object
- `dto/request/` - 请求数据传输对象
- `dto/response/` - 响应数据传输对象
- `bo/` - 业务对象Business Object
- `vo/` - 视图对象View Object
### 常用枚举类 (`constant/enums/`)
- `StorageTypeEnums` - 存储类型托盘库TP/料箱库BOX
- `WmsDepthStrategyEnums` - 深度策略枚举
- `WmsTaskTypeEnums` - 任务类型枚举
- `OrderStatusEnum` - 订单状态枚举
## 技术栈
### 核心依赖
- Spring Boot Web 3.3.5 - REST API框架
- Spring Boot Quartz - 定时任务调度
- MyBatis-Plus 3.5.7 - ORM框架
- MySQL Connector - 数据库连接
- Lombok - 代码简化
### 工具库
- Hutool 5.8.33 - Java工具类库
- FastJSON 2.0.21 - JSON处理
- EasyExcel 4.0.3 & EasyPOI 4.5.0 - Excel处理
- Apache HttpClient 4.5.13 - HTTP客户端
- Google Guava 33.3.1 - 集合工具
## 开发注意事项
### 代码规范
- 使用Lombok注解减少样板代码
- 统一的API响应格式WmsApiResponse
- 枚举类管理常量值
- 接口-实现分离的服务层设计
### 数据库操作
- 使用MyBatis-Plus进行ORM操作
- 支持批量操作和事务处理
- 驼峰命名自动映射
- ID生成策略assign_id
### 错误处理
- 统一异常处理器:`WmsControllerExceptionHandler`
- 标准化错误码:`WmsApiResponseCodeEnums`
- 请求日志过滤器:`RequestLogFilter`
### Excel处理
系统支持完整的Excel导入导出功能
- 货物信息、产品信息、库存信息等业务数据
- 使用EasyExcel和EasyPOI双重支持
- 模板位置:`excel/easypoi/excelTemplate/`
## 外部系统集成
### WCS系统集成
- 堆垛机任务调度
- 载具管理(托盘和料箱)
- TCP/HTTP通信协议
### MES系统对接
- 制造执行系统数据交换
- 生产任务状态同步
## 测试说明
项目配置中跳过了单元测试执行(`maven-surefire-plugin.skip=true`),在开发新功能时建议:
1. 先实现功能代码
2. 使用Postman等工具进行API测试
3. 检查数据库数据状态
4. 验证定时任务执行情况