# java_wms **Repository Path**: cstorgcn/java_wms ## Basic Information - **Project Name**: java_wms - **Description**: 开源框架:https://bladex.cn/ - **Primary Language**: Java - **License**: EPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-28 - **Last Updated**: 2026-03-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java WMS Warehouse Management System Java WMS is a Warehouse Management System (WMS) developed based on the Spring Boot framework, providing comprehensive warehouse management functionalities including inbound/outbound management, inventory management, product management, partner management, and location management. ## Project Overview This system is an enterprise-grade warehouse management solution designed with a microservices architecture, supporting multi-tenant management and integrating a complete permission system and authentication mechanism. The system provides user-friendly RESTful API interfaces for seamless integration with other systems. ## Technology Stack - **Backend Framework**: Spring Boot 2.7.x - **Database**: MySQL - **ORM Framework**: Mybatis-Plus - **Permission Management**: Spring Security + JWT - **API Documentation**: Swagger (Springfox) - **Caching**: Redis - **Logging**: Logback ## Core Functional Modules ### Basic Management - **User Management**: Create, read, update, delete system users; password reset; role assignment - **Role Management**: Role permission configuration; data permission control - **Menu Management**: Dynamic menus; button-level permissions - **Department Management**: Hierarchical organizational structure management - **Tenant Management**: Multi-tenant configuration ### Warehouse Management (WMS) - **Inbound/Outbound Orders**: Management of business orders such as procurement inbound and sales outbound - **Inbound/Outbound Documents**: Records of actual inbound/outbound operations, supporting approval/reversal - **Warehouse Details**: Real-time inventory queries with multi-dimensional management (batch, location, unit, etc.) - **Location Management**: Hierarchical management of warehouse/area/location - **Product Management**: Product information, unit configuration, barcode management - **Product Units**: Multi-unit conversion management - **Safety Stock**: Safety stock alert configuration - **Picking Locations**: Picking path optimization configuration - **Product Suppliers**: Supplier association management ### Partners - **Parties**: Comprehensive management of customers, suppliers, and trading partners - **Delivery Addresses**: Multi-address delivery management for parties - **Partners**: Owner information and distribution center relationships - **Loading/Unloading Teams**: Management of loading and unloading teams - **Employee Management**: Maintenance of warehouse staff information ### Source Orders - **Original Orders**: External order integration and management - **Order Details**: Processing of order product details ### System Functions - **Dictionary Management**: System-wide dictionary configuration - **Parameter Configuration**: Dynamic system parameter configuration - **Log Management**: API logs, error logs, and routine logs ### Authentication & Authorization - **User Authentication**: JWT Token authentication - **Third-Party Login**: OAuth social login support - **CAPTCHA**: Graphical CAPTCHA protection ## Project Structure ``` src/ ├── main/ │ ├── java/org/springblade/ │ │ ├── Application.java # Main application class │ │ ├── common/ # Common configurations │ │ │ ├── cache/ # Cache configuration │ │ │ ├── config/ # Framework configuration │ │ │ ├── constant/ # Constant definitions │ │ │ ├── launch/ # Service launch │ │ │ └── tool/ # Utility classes │ │ ├── core/ # Core modules │ │ │ ├── log/ # Logging service │ │ │ ├── mp/ # Mybatis-Plus extensions │ │ │ ├── secure/ # Security authentication │ │ │ └── tool/ # Utility classes │ │ ├── modules/ │ │ │ ├── auth/ # Authentication module │ │ │ ├── desk/ # Desktop module │ │ │ ├── develop/ # Development tools │ │ │ ├── resource/ # Resource module │ │ │ ├── system/ # System module │ │ │ └── wms/ # WMS core module │ │ └── develop/ # Code generation │ └── resources/ │ ├── application.yml # Main configuration │ ├── config/ # Cache configuration │ └── log/ # Logging configuration └── test/ # Test code ``` ## Quick Start ### Environment Requirements - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 5.0+ ### Configuration Instructions 1. Clone the project 2. Create a database and import the SQL script (`doc/sql/blade-sword-mysql.sql`) 3. Modify the configuration file `src/main/resources/application.yml` ### Core Configuration ```yaml server: port: 8800 spring: application: name: blade-wms datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/blade_wms?useUnicode=true&characterEncoding=utf-8 username: root password: root redis: host: localhost port: 6379 ``` ### Running the Project ```bash # Package mvn clean package -DskipTests # Run java -jar app.jar --spring.profiles.active=test ``` ### Docker Deployment ```bash docker build -t blade-wms:latest . docker run -d -p 8800:8800 blade-wms:latest ``` ## API Documentation After starting the project, access the Swagger documentation: - Auth API: `/swagger/auth.html` - System API: `/swagger/system.html` - Desk API: `/swagger/desk.html` ## Core Business Logic ### Inbound/Outbound Process 1. Create an inbound/outbound order (`IoOrder`) 2. Create an inbound/outbound document (`IoBill`) 3. Upon document approval, inventory is automatically updated (`DepotDetail`) 4. Inventory calculation service supports incremental updates and rollback ### Inventory Management The system listens to document status changes via an event mechanism: - Approved outbound document → Deduct inventory - Approved inbound document → Increase inventory - Reversal of approval → Roll back inventory changes ### Product Management - Supports multiple units (e.g., box, piece, individual) - Supports batch management - Supports expiration date management - Supports safety stock alerts ## License This project is open-source under the MIT License. See the LICENSE file for details. ## Contribution Guidelines Issues and Pull Requests are welcome. ## Contact - Project URL: https://gitee.com/zhuxmao/java_wms