# NumericalCollection 基于 Spring Boot + MyBatis-Plus + SQL Server 的工业设备数据采集平台。 ## 项目简介 本项目是一个 MES(制造执行系统)数据采集模块,主要用于: - 设备实时数据采集与同步 - 工单生产数据管理 - 设备故障记录与追踪 - 生产指标统计分析 ## 技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 2.6.13 | 基础框架 | | MyBatis-Plus | 3.5.4 | ORM 框架 | | Druid | 1.2.16 | 数据库连接池 | | SQL Server | - | 数据库 | | Lombok | - | 简化代码 | | Hutool | 5.8.18 | 工具类库 | | OkHttp | 4.9.3 | HTTP 客户端 | | FastJson | 2.0.32 | JSON 处理 | | POI | 4.1.2 | Excel 处理 | | PDFBox | 2.0.27 | PDF 处理 | ## 项目结构 ``` src/main/java/com/hk/NumericalCollection/ ├── config/ # 配置类(数据源、MyBatis等) ├── controller/ # REST 接口控制器 ├── dto/ # 数据传输对象 ├── entity/ # 数据库实体类 ├── mapper/ # MyBatis Mapper 接口 ├── service/ # 业务逻辑层 │ └── impl/ # 服务实现类 └── task/ # 定时任务 src/main/resources/ ├── application.yml # 应用配置 └── mapper/ # MyBatis XML 映射文件 database/ # 数据库脚本 ``` ## 核心功能模块 ### 1. 设备管理 - `Device` / `DevMachine` - 设备基础信息 - `DeviceStatus` - 设备状态监控 - `DeviceMetrics` - 设备指标数据 - `DeviceError` - 设备故障记录 ### 2. 工单管理 - `Womdaa` - 工单指令表 - `VOrder` / `VOrderDetail` - 订单视图 - `MesOrderSelect` - 工单选择记录 ### 3. 数据采集 - `MesNumerical` - 采集数据记录 - `Devicedatastandardmoditem` - 数据标准项 ## API 接口 基础路径:`/Numerical` | 接口 | 方法 | 说明 | |------|------|------| | `/manualSynchronization` | POST | 手动同步设备数据 | | `/manualSynchronizationBycl` | POST | 手动同步设备数据(备用) | | `/RefreshDev` | POST | 刷新设备数据 | | `/RefreshDevBycl` | POST | 刷新设备数据(备用) | | `/PdfToBase64` | POST | PDF 转 Base64 | | `/getDeviceErrorList` | POST | 获取设备故障列表 | ## 快速开始 ### 环境要求 - JDK 1.8+ - Maven 3.6+ - SQL Server 2019+ ### 配置数据库 修改 `src/main/resources/application.yml` 中的数据库连接信息: ```yaml spring: datasource: url: jdbc:sqlserver://[host]:[port];databaseName=[dbname];encrypt=false username: [username] password: [password] ``` ### 初始化数据库 执行 `database/` 目录下的 SQL 脚本创建所需表结构。 ### 构建运行 ```bash # 编译打包 mvn clean install # 本地运行(端口 9095) mvn spring-boot:run # 仅编译(跳过测试) mvn clean compile -DskipTests ``` ### 运行测试 ```bash mvn test ``` ## 定时任务 项目包含以下定时任务(位于 `task/ScheduledTasks.java`): | 任务 | 执行周期 | 说明 | |------|----------|------| | 数据清理 | 每周日 0:00 | 清理一周前的采集数据 | | 工单同步 | 每天 1:00 | 同步当日工单到选择表 | | 日统计 | 每天 2:00 | 统计前一天设备数据 | | 实时采集 | 每 2 分钟 | 采集设备实时数据 | ## 注意事项 - 生产环境请通过环境变量或 Maven Profile 配置数据库凭证 - 日志和 SQL 输出中需脱敏客户敏感信息 - 提交代码前请本地运行全部测试