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

9.3 KiB
Raw Blame History

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构建
  • 前端项目基于Vue 3和Element Plus开发提供Web管理界面
  • 业务场景:支持托盘库(TP)和料箱库(BOX)两种存储类型,管理仓库的入库、出库、库存和任务调度等核心业务

项目结构

本项目包含两个子项目,位于不同目录:

  • 202504-Wms-MengYang-box/ - 料箱库(BOX)版本
  • 202504-Wms-MengYang-tp/ - 托盘库(TP)版本

每个子项目都包含:

  • wms_serve_mengyang/ - Spring Boot后端服务
  • wms_web_mengyang/ - Vue.js前端应用
  • db/ - 数据库SQL文件

开发环境设置

后端项目命令Maven

# 进入后端目录以BOX版本为例
cd 202504-Wms-MengYang-box/wms_serve_mengyang

# 编译项目
mvn clean compile

# 打包项目
mvn clean package

# 运行项目
mvn spring-boot:run

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

前端项目命令Vue.js

# 进入前端目录以BOX版本为例
cd 202504-Wms-MengYang-box/wms_web_mengyang

# 安装依赖
npm install

# 启动开发服务器
npm run serve

# 构建生产版本
npm run build

# 代码检查和修复
npm run lint

运行环境配置

数据库配置

  • 本地开发MySQL localhost:3306/wms_mengyang_box
  • 生产环境MySQL 10.18.58.21:3306/wms_yachi_nantong
  • 认证信息本地使用root/root生产使用user/user

后端服务 (Spring Boot)

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

前端应用 (Vue.js)

  • 开发端口12306
  • 后端API地址http://10.18.58.21:12315
  • 路由模式Hash路由

核心架构

分层架构

后端架构Spring Boot 系统采用标准的MVC三层架构

  • Controller层REST API接口包含mywms和wms两个模块
  • Service层业务逻辑层分为controller、business、api三个子模块
  • DAO层数据访问层使用MyBatis-Plus

前端架构Vue.js 采用现代化的Vue 3组件化架构

  • Views层页面视图组件login、HomeView、SystemCenter
  • Layout层:业务布局组件(库存、入库、出库等功能页面)
  • Components层可复用组件sideMenu、appTag
  • API层HTTP请求封装和接口定义
  • Store层Vuex状态管理用户信息、菜单权限、标签页
  • Router层Vue Router路由管理
  • Utils层:工具函数(日期处理、格式化、加密等)

核心业务模块

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/)

WMS业务枚举 (enums/wms/)

  • StorageTypeEnums - 存储类型托盘库TP/料箱库BOX
  • WmsDepthStrategyEnums - 深度策略枚举
  • WmsTaskTypeEnums - 任务类型枚举
  • OrderStatusEnum - 订单状态枚举
  • WmsLocationTypeEnums - 货位类型枚举
  • WmsGoodsStatusEnums - 货物状态枚举
  • WmsVehicleStatusEnums - 载具状态枚举

WCS集成枚举 (enums/wcs/)

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

任务调度枚举 (enums/jobs/)

  • JobStatusEnums - 任务状态枚举
  • JobTimerTypeEnums - 定时器类型枚举

技术栈

后端技术栈Spring Boot

核心依赖

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

前端技术栈Vue.js

核心框架

  • Vue 3.2.13 - 前端框架
  • Vue Router 4.0.3 - 路由管理
  • Vuex 4.0.0 - 状态管理
  • Element Plus 2.4.0 - UI组件库

主要依赖

  • Axios 1.3.3 - HTTP请求库
  • Moment 2.29.4 - 日期处理
  • XLSX 0.18.5 - Excel文件处理
  • QRCode.vue 3.4.1 - 二维码生成
  • Vue3-print-nb 0.1.4 - 打印功能
  • File-saver 2.0.5 - 文件下载

开发工具

  • Sass 1.83.4 - CSS预处理器
  • ESLint - 代码质量检查
  • Babel - JavaScript编译器

开发注意事项

后端代码规范

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

前端代码规范

  • Vue 3 Composition API优先
  • Element Plus组件库统一UI风格
  • Vuex模块化状态管理
  • ESLint代码质量检查关闭未使用变量警告
  • 响应式设计,支持不同屏幕尺寸

数据库操作

  • 使用MyBatis-Plus进行ORM操作
  • 支持批量操作和事务处理
  • 驼峰命名自动映射
  • ID生成策略assign_id

错误处理

  • 统一异常处理器:WmsControllerExceptionHandler
  • 标准化错误码:WmsApiResponseCodeEnums
  • 请求日志过滤器:RequestLogFilter

Excel处理

后端使用EasyExcel和EasyPOI双重支持

  • 货物信息、产品信息、库存信息等业务数据
  • 模板位置:excel/easypoi/excelTemplate/

前端使用XLSX和Element Plus支持

  • 文件上传组件:excel/ 目录下的各类Excel上传组件
  • 支持在线预览和数据导出
  • 集成二维码生成和打印功能

外部系统集成

WCS系统集成

  • 堆垛机任务调度
  • 载具管理(托盘和料箱)
  • TCP/HTTP通信协议

MES系统对接

  • 制造执行系统数据交换
  • 生产任务状态同步

测试说明

后端测试 项目配置中跳过了单元测试执行(maven-surefire-plugin.skip=true),在开发新功能时建议:

  1. 先实现功能代码
  2. 使用Postman等工具进行API测试
  3. 检查数据库数据状态
  4. 验证定时任务执行情况

前端测试

  • 使用浏览器开发者工具调试
  • 通过Vue DevTools检查组件状态
  • 使用Element Plus组件库确保UI一致性
  • 在不同浏览器Chrome、Firefox、Edge中测试兼容性

开发注意事项

特殊的Maven配置

  • 项目默认跳过单元测试:maven-surefire-plugin.skip=true
  • 最终构建文件名:wms-box-server
  • Java版本21 (source和target都是21)
  • Maven Wrapper可用使用./mvnw替代mvn命令

重要的文件路径

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

常见开发任务

启动后端服务

cd 202504-Wms-MengYang-box/wms_serve_mengyang
mvn spring-boot:run
# 或使用Maven Wrapper
./mvnw spring-boot:run

启动前端开发服务器

cd 202504-Wms-MengYang-box/wms_web_mengyang  
npm run serve

查看日志

# 查看今天的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的定时任务框架
  • 关键执行器:WmsTaskExecutorMyOutExecutorWcsStackerTaskSender
  • 任务状态实时监控

Excel处理

  • 后端EasyExcel 4.0.3 + EasyPOI 4.5.0
  • 前端XLSX 0.18.5 + Element Plus上传组件
  • 模板位置:excel/easypoi/excelTemplate/

故障排除

常见问题

  1. 端口冲突确认12315端口未被占用
  2. 数据库连接检查MySQL服务状态和配置
  3. 前端代理确认后端API地址配置正确
  4. 日志分析:按级别查看对应日志目录

调试技巧

  • 使用RequestLogFilter查看API请求日志
  • 通过WmsControllerExceptionHandler统一异常处理
  • 检查定时任务执行状态:查看TAppJobs
  • Vue DevTools调试前端状态管理