# 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