# 仓海(CangHai)工业仓储 **Repository Path**: withthesea/warehouse ## Basic Information - **Project Name**: 仓海(CangHai)工业仓储 - **Description**: 仓海(CangHai)工业仓储:PC+PDA一体;入库/检验/出库/盘点闭环;供应商按供应商号隔离库存与单据。Apache-2.0,单机可跑。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://gitee.com/withthesea/warehouse - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-14 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: 仓储, 工业, 智能, pda, 沧海 ## README 

CangHai logo
仓海 CangHai · 工业仓储管理系统

Industrial Warehouse Management System
仓储如海 · 吞吐有序 · PC + PDA 一体

version Spring Boot Android MySQL JDK gitee

https://gitee.com/withthesea/warehouse

--- 仓海(CangHai)是面向原材料仓 / 产线旁仓的工业仓储系统:一套后端同时服务 **PC 管理端** 与 **Android PDA**,覆盖入库、检验、上架、出库、移库、盘点与标签打印;支持给供应商开账号,并按供应商号隔离库存与单据。 > **一句话**:PC + PDA 一体的仓储作业系统——单据带供应商信息,供应商账号只看自家货。 ### 工程基线 | 项 | 事实 | |:---|:---| | 后端 | `warehouse-server/` Spring Boot 3.3 · Security · JPA · JWT | | PDA | `WarehouseApp/` Android 8.0+ · 扫码 · 蓝牙标签打印 | | 文档 | `docs/` 简介 · 系统说明 · 供应商约定 | | 演示 | 截图 · 动图 · 演示视频(见下方) | | 部署 | 单 jar + Nginx;SQL 脚本开箱可导入 | | 常见缺口 | 本系统 | |:---|:---| | PC / PDA 两套账 | 统一 API + JWT | | 供应商能看到别家货 | `supplier_code` + `data_scope=5` | | 主数据靠表格 | 供应商 / 物料 / 库位 + Excel 导入 | **30 秒体验**:导入 SQL → 启动 jar → 打开 `/api/pc/` · `admin` / `Admin@123456`。 --- ## 界面预览

仓海演示动图

| 登录 | 运营工作台 | |:---:|:---:| | ![登录](docs/images/shot_login.png) | ![工作台](docs/images/shot_dash.png) | | **物料入库** | **库存查询** | | ![入库](docs/images/shot_inbound.png) | ![库存](docs/images/shot_inventory.png) | | **供应商** | **PDA** | | ![供应商](docs/images/shot_supplier.png) | ![PDA](docs/images/shot_pda.jpg) | 更多截图:库位 · 用户 · 出库等见 [`docs/images/`](docs/images/)。 --- ## 演示视频 登录 → 工作台 → 入库 / 库存 / 供应商 / 库位 / 用户 · PDA 预览(约 15 秒幻灯片汇总):

▶ 观看仓海演示视频
Gitee 在线打开 · 本地 docs/video/CangHai-demo.mp4

--- ## 技术栈 | 层 | 技术 | |:---|:---| | 后端 | Spring Boot **3.3.5** · Spring Security · JPA · JWT · Apache POI | | 前端 PC | Vue3 · Element Plus(构建产物可嵌入 `static/pc`) | | PDA | Android SDK 34 · minSdk 26 · 扫码 / 蓝牙打印 | | 数据 | MySQL 8 / MariaDB · utf8mb4 | | 部署 | Maven · systemd · Nginx HTTPS | --- ## 能力图谱 ```text ┌────────────┐ ┌─────────────────┐ ┌──────────────────┐ │ 主数据 │ → │ 入出移库 · 检验 │ → │ 库存查询 · 导出 │ │ 供应商物料 │ │ 单据带供应商号 │ │ 供应商范围过滤 │ │ 库位标签 │ │ PDA 扫码作业 │ │ 库龄 · 缺料 │ └────────────┘ └─────────────────┘ └──────────────────┘ ``` | 能力 | 说明 | |:---|:---| | 入库 / 出库 | 单据写入 `supplier_code`;出库可按物料+批号回填 | | 供应商账号 | 绑定供应商号后只看本家库存与入出库 | | PDA | 入库 · 出库 · 移库 · 库存 · 标签打印 · APK 热更新 | | 权限 | RBAC 到按钮;`data_scope` 含「本供应商」 | --- ## 系统架构 ```mermaid flowchart LR subgraph Clients PDA[PDA Android] PC[PC Vue3] SUP[供应商账号] end NGX[Nginx HTTPS] API[warehouse-server] DB[(MySQL)] PDA --> NGX PC --> NGX SUP --> NGX NGX --> API --> DB ``` --- ## 供应商数据(精简约定) 1. **入库 / 出库单据带供应商号**,仓内能知道货是哪家的。 2. **给供应商开账号并绑定供应商号**后,只能看到本家相关库存与单据。 详见 [`docs/supplier-data-scope.md`](docs/supplier-data-scope.md)。 ```bash mysql -uroot -p warehouse_db_v2 < warehouse-server/src/main/resources/schema-supplier.sql ``` ```text supplier1 / Admin@123456 # 绑定 SUP001 ``` --- ## 快速开始 ### 环境 JDK 17+ · Maven 3.8+ · MySQL 8 / MariaDB · Android Studio(PDA) ### 1. 初始化数据库 ```bash mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS warehouse_db_v2 DEFAULT CHARACTER SET utf8mb4;" cd warehouse-server mysql -uroot -p warehouse_db_v2 < src/main/resources/schema.sql mysql -uroot -p warehouse_db_v2 < src/main/resources/schema-ruoyi.sql mysql -uroot -p warehouse_db_v2 < src/main/resources/data-ruoyi.sql mysql -uroot -p warehouse_db_v2 < src/main/resources/schema-supplier.sql mysql -uroot -p warehouse_db_v2 < src/main/resources/schema-capability.sql ``` ### 2. 本地配置 ```bash cp src/main/resources/application-local.yml.example \ src/main/resources/application-local.yml ``` 填写数据库密码与 JWT Secret(勿提交该文件)。 ### 3. 启动 ```bash mvn -DskipTests spring-boot:run ``` | 入口 | 地址 | |:---|:---| | API | `http://localhost:8080/api` | | PC | `http://localhost:8080/api/pc/` | ```text admin / Admin@123456 supplier1 / Admin@123456 ``` ### 4. PDA Android Studio 打开 `WarehouseApp/`,修改 `BASE_URL` 后 `assembleDebug`。 --- ## 多实例部署(水平扩展) JWT 无状态 Session,可多实例负载均衡。前提: 1. **共享 MySQL**(各节点同一库) 2. **共享上传卷**:`warehouse.upload-dir` 指向 NFS/EFS 等(默认 `uploads`) 3. LB 探活:`GET /api/health`(DB 不通返回 503) 样例 Nginx:[`docs/deploy/nginx-lb.conf.example`](docs/deploy/nginx-lb.conf.example)。 ```yaml # application-local.yml warehouse: upload-dir: /mnt/warehouse-uploads ``` --- ## 工程结构 ```text warehouse/ ├── README.md ├── docs/ │ ├── images/ # 截图 · demo.gif · logo │ ├── video/CangHai-demo.mp4 # 演示视频 │ ├── 项目简介.md · 系统说明文档.md │ └── supplier-data-scope.md ├── warehouse-server/ # Spring Boot 后端 └── WarehouseApp/ # Android PDA ``` --- ## 文档导航 | 文档 | 说明 | |:---|:---| | [项目简介](docs/项目简介.md) | 背景与能力摘要 | | [系统说明文档](docs/系统说明文档.md) | 模块与部署 | | [供应商数据约定](docs/supplier-data-scope.md) | 隔离规则 | | [演示视频说明](docs/video/README.md) | 视频索引 | --- ## 仓库 | 项 | 内容 | |:---|:---| | Gitee | [withthesea/warehouse](https://gitee.com/withthesea/warehouse) | | 产品名 | **仓海 CangHai** | | 版本 | Server `2.0.0` · PDA `2.0.1` | ---

如果仓海对你有帮助,欢迎点亮 ⭐ Star
CangHai · Industrial WMS · Supplier Scope · PDA Native