Files
stand_acs/acs2/nladmin-system/README.md
2026-04-16 14:01:59 +08:00

203 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`
```yaml
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 配置
```yaml
spring:
redis:
host: localhost
port: 6379
password:
timeout: 10000ms
```
#### 3. Sa-Token 配置
```yaml
sa-token:
token-name: Authorization
timeout: 86400000
active-timeout: -1
is-concurrent: true
is-share: true
token-style: uuid
is-log: false
```
### 启动方式
```bash
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 | 执行任务 |
## 安全说明
1. **密码加密**:采用 RSA 非对称加密传输MD5 加盐存储
2. **Token 管理**:基于 Sa-Token 的会话管理,支持多端登录控制
3. **权限控制**:基于注解的细粒度权限控制
4. **请求限流**:支持接口限流配置
5. **SQL 注入防护**:使用 MyBatis Plus 参数化查询
## 开发规范
### 命名规范
- 包名:小写字母,使用点分隔
- 类名大驼峰命名法PascalCase
- 方法名小驼峰命名法camelCase
- 变量名小驼峰命名法camelCase
### 代码规范
- 遵循阿里巴巴 Java 开发手册
- 使用 Lombok 简化代码
- 异常处理统一使用全局异常处理器
- 日志记录使用 SLF4J
## 许可证
Apache License 2.0