# YiChao-wms-java-course **Repository Path**: recursiveSoup/YiChao-wms-java-course ## Basic Information - **Project Name**: YiChao-wms-java-course - **Description**: 基于 JeecgBoot 3.8.1 低代码平台构建的企业级 WMS 仓库管理系统后端,覆盖从入库、存储、拣选到出库的全流程仓储业务,并集成 AI 智能问答能力。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: dev_03 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 959 - **Created**: 2026-05-23 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 蚁巢 WMS 仓库管理系统 基于 JeecgBoot 3.8.1 低代码平台构建的企业级 WMS 仓库管理系统后端,覆盖从入库、存储、拣选到出库的全流程仓储业务,并集成 AI 智能问答能力。 --- ## 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 语言 | Java | 17 | | 框架 | Spring Boot | 3.4.5 | | 微服务 | Spring Cloud Alibaba | 2024.0.1 | | ORM | MyBatis-Plus | 3.5.12 | | 安全 | Apache Shiro + JWT | 2.0.4 / 4.5.0 | | 数据库 | MySQL | 8.x | | 缓存 | Redis + Redisson | 3.17.7 | | 接口文档 | Knife4j (OpenAPI 3) | 4.5.0 | | AI | Spring AI + LangChain4j | 1.0.0-M6 / 0.35.0 | | 快递 | 顺丰 SDK | 2.1.7 | | 文件存储 | 阿里云 OSS / MinIO | — | | 定时任务 | Quartz | — | | 部署 | Docker Compose | — | --- ## 项目结构 ``` xincheng-wms-java-course/ ├── jeecg-boot-base-core/ # 核心框架:工具类、配置、安全、查询过滤器 ├── jeecg-module-system/ # 系统管理模块(用户、角色、权限、日志等) │ ├── jeecg-system-api/ # 系统 API 接口 │ ├── jeecg-system-biz/ # 系统业务逻辑 │ └── jeecg-system-start/ # 启动入口(端口 8080) ├── jeecg-boot-module/ # 平台扩展模块 │ ├── jeecg-module-demo/ # 示例代码 │ └── jeecg-boot-module-airag/ # AI/RAG 基础设施 ├── jeecg-module-wms/ # ★ WMS 业务模块(核心) │ └── src/main/java/org/jeecg/modules/wms/ │ ├── goods/ # 商品管理 │ ├── warehouse/ # 仓库管理 │ ├── inventory/ # 库存管理 │ ├── inorder/ # 入库管理 │ ├── outorder/ # 出库管理 │ ├── wave/ # 波次管理 │ ├── shipment/ # 包裹管理 │ ├── waybill/ # 运单管理(顺丰) │ ├── wmstask/ # 任务管理 │ ├── pickroute/ # 拣货路径优化 │ ├── analysis/ # 数据分析大屏 │ ├── ai/ # AI 智能问答 │ └── config/ # WMS 业务配置 ├── db/ # 数据库初始化脚本 ├── docker-compose.yml # Docker 部署配置 └── pom.xml # Maven 父 POM ``` --- ## WMS 业务模块 | 模块 | 说明 | 核心实体 | |------|------|----------| | **仓库管理** | 仓库 → 库区 → 库位三级空间管理 | WmsWarehouses, WmsStorageZones, WmsStorageLocations | | **商品管理** | SKU、货主、品牌、分类、承运商、包材 | WmsProducts, WmsCargoOwners, WmsCarrier, WmsPackagingMaterial | | **入库管理** | 入库单、收货任务、上架任务 | WmsStockInOrders, WmsStockInOrderItems, ReceiveTasks, PutawayTasks | | **出库管理** | 出库单、库存分配 | WmsOutOrders, WmsOutOrdersItems, WmsOutOrdersAllocation | | **库存管理** | 实时库存、变更流水 | WmsInventory, WmsInventoryTrans | | **波次管理** | 波次策略引擎、拣货、分拣、缺货登记 | WmsWaveMaster, WmsWaveStrategy, WmsShortageRegistration | | **包裹管理** | 包裹创建、包材选择、发货 | WmsShipment, WmsShipmentDetail | | **运单管理** | 顺丰电子面单打印、发货通知 | WmsWaybillController | | **任务管理** | 收货/上架/拣货/打包任务调度 | WmsTasks, WmsTasksRecords | | **拣货路径** | A* 算法最优拣货路径 + SVG 可视化 | AStarFinder, MultiProductPickingRoute | | **数据分析** | 首页大屏、待办统计 | BigscreenController | | **AI 问答** | RAG 知识库 + 库存查询工具调用 | ChatController, WmsInventoryTools | --- ## 核心业务流程 ### 入库流程 ``` 创建入库单 → 提交审核 → 审核通过 → 创建收货任务 → 执行收货 → 创建上架任务 → 执行上架(指定储位)→ 上架完成 → 库存增加 ``` ### 出库流程 ``` 创建出库单 → 提交审核 → 审核通过 → 分配库存 → 创建波次(按策略合并) → 创建拣货任务 → 执行拣货(路径优化)→ 分拣(按订单分配) → 创建包裹(选择包材/承运商)→ 打印电子面单 → 发货 → 库存扣减 ``` ### 波次策略 系统支持可配置的波次合并规则: - 按订单数量范围(最小/最大) - 按 SKU 品项数/件数范围 - 按货主分组 - 按承运商分组 - 指定储区范围 内置策略实现:EOW(等单量)、SIFQ(按品项数)、SISQ(按SKU数)、SIWW(按仓库维度)。 ### 拣货路径优化 基于 **A\* 算法**计算最优拣货路径,支持多商品拣货路径优化,生成 SVG 可视化拣货路径图。 --- ## 快速启动 ### 环境要求 - JDK 17+ - MySQL 8.0+ - Redis 5.0+ - Maven 3.6+ ### 本地开发 1. **导入数据库** 使用 `db/` 目录下最新的 SQL 脚本初始化 MySQL 数据库 `xingchenwms`。 2. **修改配置** 编辑 `jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml`,修改数据库连接信息和 Redis 地址。 3. **启动应用** 运行 `JeecgSystemApplication.java`(位于 `jeecg-system-start` 模块),默认端口 `8080`。 ### Docker 部署 ```bash # 构建并启动所有服务(MySQL + Redis + 应用) docker-compose up -d # 仅启动基础设施 docker-compose up -d jeecg-boot-mysql jeecg-boot-redis ``` ### 访问地址 | 服务 | 地址 | |------|------| | 应用接口 | http://localhost:8080/jeecg-boot/ | | 接口文档 (Knife4j) | http://localhost:8080/jeecg-boot/doc.html | | Druid 监控 | http://localhost:8080/jeecg-boot/druid/ | --- ## API 文档 启动应用后访问 Knife4j 接口文档:`http://localhost:8080/jeecg-boot/doc.html` 所有接口需要在请求头中携带 `X-Access-Token`,通过 `/sys/login` 接口登录获取。 ### 主要 API 端点 | 模块 | 端点前缀 | 说明 | |------|----------|------| | 仓库管理 | `/warehouse/wmsWarehouses` | 仓库 CRUD + 启用/禁用 | | 库区管理 | `/warehouse/wmsStorageZones` | 库区 CRUD | | 库位管理 | `/warehouse/wmsStorageLocations` | 库位 CRUD | | 商品管理 | `/goods/wmsProducts` | 商品 CRUD + Excel 导入导出 | | 货主管理 | `/goods/wmsCargoOwners` | 货主 CRUD | | 承运商管理 | `/goods/wmsCarrier` | 承运商 CRUD | | 入库管理 | `/inorder/wmsStockInOrders` | 入库单 CRUD + 审核 | | 收货任务 | `/inorder/receiveTasks` | 收货任务执行 | | 上架任务 | `/inorder/putawayTasks` | 上架任务执行 | | 出库管理 | `/outorder/wmsOutOrders` | 出库单 CRUD + 审核 + 分配 | | 波次管理 | `/wave/wmsWaveMaster` | 波次 CRUD + 创建 | | 波次策略 | `/wave/waveStrategy` | 策略配置 | | 拣货任务 | `/wave/pickingTasks` | 拣货/分拣 + 路径查看 | | 包裹管理 | `/shipment/wmsShipment` | 包裹创建 + 发货 | | 运单管理 | `/shipment/waybill` | 顺丰电子面单打印 | | 库存查询 | `/inventory/wmsInventory` | 库存查询 | | 库存流水 | `/inventory/wmsInventoryTrans` | 变更记录查询 | | 数据大屏 | `/bigscreen` | 待办任务统计 | | AI 问答 | `/ai` | 智能问答 | --- ## 数据库说明 ### 初始化 1. 创建 MySQL 数据库 `xingchenwms` 2. 按顺序执行 `db/` 目录下的 SQL 脚本(按日期排序) ### 脚本列表 | 文件 | 说明 | |------|------| | `db/xingchenwms-20250828.sql` | 基础表结构 | | `db/xingchenwms-20250912.sql` | 增量更新 | | `db/xingchenwms-20251114.sql` | 增量更新 | ### Flyway 迁移 项目集成了 Flyway 数据库版本管理,开发环境自动执行 `classpath:flyway/sql/mysql/` 下的迁移脚本。 --- ## AI 智能功能 系统集成了基于大语言模型的 AI 智能问答能力: ### RAG 知识库 - **向量模型**:阿里云 DashScope `text-embedding-v4`(768维) - **向量存储**:PostgreSQL + PGVector - **对话模型**:`qwen3.6-plus` / `deepseek-chat` - **检索参数**:top-k=10, top-n=3, 相似度阈值=0.55, 重排序模型=`qwen3-vl-rerank` ### Function Calling AI 助手可通过工具调用直接查询 WMS 库存数据(`WmsInventoryTools`),实现自然语言查库存。 ### 流式对话 基于 SSE(Server-Sent Events)实现实时流式 AI 对话体验。 ### 访问方式 通过 `/ai` 端点与 AI 助手交互,支持知识库问答和库存查询。 --- ## 许可证 [Apache License 2.0](LICENSE)