202504-Wms-MengYang/202504-Wms-MengYang-tp/wms_serve_mengyang/CLAUDE.md
2025-07-25 12:35:54 +08:00

6.6 KiB
Raw Blame History

CLAUDE.md

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

项目概述

这是宝应梦阳WMS仓库管理系统后端项目TP托盘库版本基于Spring Boot 3.3.5和Java 21开发使用Maven构建。专门针对托盘库存储场景管理仓库的入库、出库、库存和任务调度等核心业务。

项目特点

TP托盘库版本特性

  • 专为托盘存储优化的算法策略
  • 支持大型货物的托盘化存储管理
  • 与BOX料箱库版本在业务逻辑上有所差异
  • 数据库schema针对托盘库场景设计

开发环境设置

基本构建命令

# 进入项目目录
cd 202504-Wms-MengYang-tp/wms_serve_mengyang

# 编译项目
mvn clean compile

# 打包项目
mvn clean package

# 运行项目
mvn spring-boot:run

# 使用Maven Wrapper
./mvnw spring-boot:run

# 跳过测试运行(项目配置默认跳过测试)
mvn clean package -Dmaven.test.skip=true

运行环境配置

数据库配置

  • 本地开发MySQL localhost:3306/wms_mengyang_tp注意使用tp数据库
  • 生产环境MySQL 10.18.58.21:3306/wms_yachi_nantong
  • 认证信息本地使用root/root生产使用user/user

应用配置

  • 服务端口12315
  • 应用名称wms_main
  • 文件上传限制单文件100MB总计1000MB
  • 当前配置:spring.profiles.active=online

Maven特殊配置

  • 项目默认跳过单元测试:maven-surefire-plugin.skip=true
  • 最终构建文件名:wms-box-server注意名称还是box-server但实际是tp版本
  • Java版本21 (source和target都是21)

核心架构

分层架构

系统采用标准的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)专属存储策略
  • 大型货物的存储位置优化算法
  • 托盘堆叠和存取路径优化

3. 任务调度系统 (service/quartz_job/)

基于Quartz的定时任务框架

  • WmsTaskExecutor - WMS任务执行器
  • MyOutExecutor - 出库任务执行器
  • WcsStackerTaskSender - WCS堆垛机任务发送器

4. 设备集成 (service/api/)

  • WcsApiService - WCS系统集成托盘库设备
  • ExternalApiService - 外部系统API调用

数据模型结构

  • po/ - 数据库实体对象针对托盘库schema
  • dto/request/ - 请求数据传输对象
  • dto/response/ - 响应数据传输对象
  • bo/ - 业务对象Business Object
  • vo/ - 视图对象View Object

常用枚举类 (constant/enums/)

WMS业务枚举 (enums/wms/)

  • StorageTypeEnums - 存储类型重点关注TP托盘库类型
  • WmsDepthStrategyEnums - 深度策略枚举(托盘库专用策略)
  • WmsTaskTypeEnums - 任务类型枚举
  • OrderStatusEnum - 订单状态枚举
  • WmsLocationTypeEnums - 货位类型枚举(托盘货位)
  • WmsVehicleStatusEnums - 载具状态枚举(托盘载具)

WCS集成枚举 (enums/wcs/)

  • WcsApiResponseCodeEnums - WCS API响应码
  • WcsStackerTaskTypeEnums - 堆垛机任务类型(托盘堆垛机)
  • WcsStackerTaskStatusEnums - 堆垛机任务状态

技术栈

核心依赖

  • 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 - 集合工具

重要的文件路径

  • 主要工作目录202504-Wms-MengYang-tp/wms_serve_mengyang/
  • 日志存储wms_log/ (按日期和级别分类)
  • 数据库脚本db/wms_mengyang_tp.sql
  • MyBatis映射src/main/resources/mapper/

常见开发任务

启动应用

cd 202504-Wms-MengYang-tp/wms_serve_mengyang
mvn spring-boot:run

查看日志

# 查看今天的info日志
tail -f wms_log/info/$(date +%Y-%m-%d)/$(date +%Y-%m-%d).0.log

# 查看今天的error日志  
tail -f wms_log/error/$(date +%Y-%m-%d)/$(date +%Y-%m-%d).0.log

数据库操作

  • 使用MyBatis-Plus进行ORM操作
  • 支持批量操作和事务处理
  • 驼峰命名自动映射(map-underscore-to-camel-case: true)
  • ID生成策略assign_id

系统集成要点

WCS系统集成托盘库专用

  • TCP和HTTP双协议支持
  • 托盘堆垛机任务调度和状态同步
  • 托盘载具管理和追踪

任务调度系统

  • 基于Quartz的定时任务框架
  • 关键执行器针对托盘库场景优化
  • 任务状态实时监控

Excel处理

  • 后端EasyExcel 4.0.3 + EasyPOI 4.5.0
  • 支持托盘库相关的业务数据导入导出
  • 模板位置:excel/easypoi/excelTemplate/

TP与BOX版本的差异

主要区别

  1. 数据库schema:使用wms_mengyang_tp数据库
  2. 存储策略算法:针对托盘存储特点优化
  3. 设备集成:对接托盘库专用设备
  4. 业务规则:托盘的尺寸、重量、堆叠规则不同

开发注意事项

  • 在开发新功能时注意区分TP和BOX版本的业务差异
  • 深度策略算法需要考虑托盘的物理特性
  • WCS集成需要适配托盘库的设备类型

故障排除

常见问题

  1. 端口冲突确认12315端口未被占用
  2. 数据库连接检查MySQL服务状态和TP数据库配置
  3. 版本混淆确认操作的是TP版本而非BOX版本
  4. 日志分析:按级别查看对应日志目录

调试技巧

  • 使用RequestLogFilter查看API请求日志
  • 通过WmsControllerExceptionHandler统一异常处理
  • 检查定时任务执行状态:查看TAppJobs
  • 注意区分TP和BOX版本的业务逻辑差异

开发规范

代码规范

  • 使用Lombok注解减少样板代码
  • 统一的API响应格式WmsApiResponse
  • 枚举类管理常量值
  • 接口-实现分离的服务层设计

测试建议

项目配置跳过单元测试,建议:

  1. 先实现功能代码
  2. 使用Postman等工具进行API测试
  3. 检查托盘库相关的数据库数据状态
  4. 验证定时任务执行情况
  5. 测试WCS设备集成功能