5.7 KiB
5.7 KiB
NL Admin System
诺力智能仓储管理ACS系统后端服务
项目简介
本项目是诺力智能仓储管理ACS系统后端服务标准版,基于 Spring Boot 框架构建,提供完整的用户认证、设备管理、任务调度、AGV调度、设备管理等核心功能。
技术栈
| 技术 | 版本 | 说明 |
|---|---|---|
| Java | 1.8 | 开发语言 |
| Spring Boot | 2.2.x | 应用框架 |
| Sa-Token | 1.31.0 | 权限认证框架 |
| MyBatis Plus | 3.4.0 | ORM框架 |
| Redis | - | 缓存与会话管理 |
| MySQL/Oracle | - | 数据库 |
| Lucene | 8.2.0 | 全文搜索 |
| WebSocket | - | 实时通信 |
项目结构
nladmin-system/
├── nlsso-server/ # 后端服务模块
│ ├── src/main/java/org/nl/
│ │ ├── AppRun.java # 启动类
│ │ ├── acs/ # 设备控制模块
│ │ │ ├── apiAdd/ # 地址管理
│ │ │ ├── autoThread/ # 自动线程管理
│ │ │ ├── device/ # 设备管理
│ │ │ ├── iot/ # IoT数据处理
│ │ │ ├── layout/ # 布局管理
│ │ │ ├── log/ # 日志管理
│ │ │ └── task/ # 任务调度
│ │ ├── common/ # 通用模块
│ │ │ ├── annotation/ # 自定义注解
│ │ │ ├── base/ # 基础类
│ │ │ ├── db/ # 数据库工具
│ │ │ ├── domain/ # 通用领域模型
│ │ │ ├── enums/ # 枚举类
│ │ │ ├── exception/ # 异常处理
│ │ │ ├── logging/ # 日志切面
│ │ │ ├── mnt/ # 监控与维护
│ │ │ ├── security/ # 安全配置
│ │ │ └── utils/ # 工具类
│ │ ├── config/ # 配置类
│ │ │ ├── jackson/ # JSON配置
│ │ │ ├── language/ # 国际化配置
│ │ │ ├── lucene/ # 搜索配置
│ │ │ ├── mybatis/ # MyBatis配置
│ │ │ ├── redis/ # Redis配置
│ │ │ ├── saconfig/ # Sa-Token配置
│ │ │ └── thread/ # 线程池配置
│ │ ├── extInterface/ # 外部接口
│ │ │ ├── agvKit/ # AGV接口
│ │ │ └── wms/ # WMS接口
│ │ └── system/ # 系统管理
│ │ └── controller/ # 系统控制器
│ └── pom.xml # Maven配置
└── README.md # 项目说明
快速开始
环境要求
- JDK 1.8+
- Maven 3.6+
- Redis 3.2+
- MySQL 5.7+ / Oracle 11g+
配置说明
1. 数据库配置
修改 src/main/resources/application.yml:
spring:
datasource:
url: jdbc:mysql://localhost:3306/nladmin?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: admin
password: password
driver-class-name: com.mysql.cj.jdbc.Driver
2. Redis 配置
spring:
redis:
host: localhost
port: 6379
password:
timeout: 10000ms
3. Sa-Token 配置
sa-token:
token-name: Authorization
timeout: 86400000
active-timeout: -1
is-concurrent: true
is-share: true
token-style: uuid
is-log: false
启动方式
java -jar target/nlsso-server.jar
核心功能
1. 用户认证
- 登录/登出
- 在线用户管理
- Token 验证
- 权限校验
2. 设备管理
- 设备信息管理
- 设备协议管理
- 货位管理
- 设备扩展信息
3. 任务调度
- 任务创建与执行
- 任务历史记录
- 任务指令管理
- 任务优先级调度
4. 外部接口
- AGV 系统对接
- WMS 系统对接
- 数据交互协议
5. 日志管理
- 操作日志记录
- 设备执行日志
- Lucene 全文检索
API 接口
认证接口
| 接口 | 方法 | 描述 |
|---|---|---|
/api/auth/login |
POST | 用户登录 |
/api/auth/logout |
POST | 用户登出 |
/api/auth/online |
GET | 获取在线用户列表 |
设备接口
| 接口 | 方法 | 描述 |
|---|---|---|
/api/device |
GET | 获取设备列表 |
/api/device/{id} |
GET | 获取设备详情 |
/api/device |
POST | 创建设备 |
/api/device/{id} |
PUT | 更新设备 |
/api/device/{id} |
DELETE | 删除设备 |
任务接口
| 接口 | 方法 | 描述 |
|---|---|---|
/api/task |
GET | 获取任务列表 |
/api/task/{id} |
GET | 获取任务详情 |
/api/task |
POST | 创建任务 |
/api/task/{id}/execute |
POST | 执行任务 |
安全说明
- 密码加密:采用 RSA 非对称加密传输,MD5 加盐存储
- Token 管理:基于 Sa-Token 的会话管理,支持多端登录控制
- 权限控制:基于注解的细粒度权限控制
- 请求限流:支持接口限流配置
- SQL 注入防护:使用 MyBatis Plus 参数化查询
开发规范
命名规范
- 包名:小写字母,使用点分隔
- 类名:大驼峰命名法(PascalCase)
- 方法名:小驼峰命名法(camelCase)
- 变量名:小驼峰命名法(camelCase)
代码规范
- 遵循阿里巴巴 Java 开发手册
- 使用 Lombok 简化代码
- 异常处理统一使用全局异常处理器
- 日志记录使用 SLF4J
许可证
Apache License 2.0