CMVR-IOT/智能巡检模块-创建说明.md
lixiaolong 8e4c122f9a feat(inspection): 添加巡检模块功能并更新项目配置
- 添加巡检告警、地图、机器人、任务、点位等实体类和服务接口
- 创建巡检模块数据库表结构,包含机器人、地图、任务等核心表
- 实现巡检告警控制器,提供增删改查和导出功能
- 配置巡检告警数据映射和查询视图
- 更新全局应用配置中的MinIO服务地址
- 在启动类中添加MyBatis扫描配置
- 重构设备配置实体类,移除冗余字段并优化注解配置
2026-06-02 15:01:23 +08:00

277 lines
11 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.

# 智能巡检模块 - 已创建文件清单
## ✅ 已完成创建的文件
### 1. 模块配置
-`cmvr-iot-inspection/pom.xml` - 模块Maven配置
-`pom.xml` - 父POM已添加模块依赖
-`cmvr-iot-admin/pom.xml` - Admin模块已添加inspection依赖
### 2. 实体类Domain- 5个
-`InspectionRobot.java` - 巡检机器人实体
-`InspectionMap.java` - 巡检地图实体
-`InspectionTask.java` - 巡检任务实体
-`InspectionWaypoint.java` - 巡检点位实体
-`InspectionAlarm.java` - 巡检告警实体
---
## 📋 还需要创建的文件(参照 cmvr-iot-device 模块模式)
### 3. Mapper 接口5个
位置:`cmvr-iot-inspection/src/main/java/com/cmvr/inspection/mapper/`
需要创建:
- `InspectionRobotMapper.java`
- `InspectionMapMapper.java`
- `InspectionTaskMapper.java`
- `InspectionWaypointMapper.java`
- `InspectionAlarmMapper.java`
参考模板:`DeDeviceRegistrationMapper.java`
### 4. Mapper XML5个
位置:`cmvr-iot-inspection/src/main/resources/mapper/inspection/`
需要创建:
- `InspectionRobotMapper.xml`
- `InspectionMapMapper.xml`
- `InspectionTaskMapper.xml`
- `InspectionWaypointMapper.xml`
- `InspectionAlarmMapper.xml`
参考模板:`DeDeviceRegistrationMapper.xml`
### 5. Service 接口5个
位置:`cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/`
需要创建:
- `IInspectionRobotService.java`
- `IInspectionMapService.java`
- `IInspectionTaskService.java`
- `IInspectionWaypointService.java`
- `IInspectionAlarmService.java`
参考模板:`IDeDeviceRegistrationService.java`
### 6. Service 实现类5个
位置:`cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/impl/`
需要创建:
- `InspectionRobotServiceImpl.java`
- `InspectionMapServiceImpl.java`
- `InspectionTaskServiceImpl.java`
- `InspectionWaypointServiceImpl.java`
- `InspectionAlarmServiceImpl.java`
参考模板:`DeDeviceRegistrationServiceImpl.java`
### 7. Controller5个
位置:`cmvr-iot-admin/src/main/java/com/cmvr/web/controller/inspection/`
需要创建:
- `InspectionRobotController.java`
- `InspectionMapController.java`
- `InspectionTaskController.java`
- `InspectionWaypointController.java`
- `InspectionAlarmController.java`
参考模板:`DeDeviceRegistrationController.java`
### 8. 数据库脚本
位置:项目根目录或 `sql/` 目录
需要创建:
- `inspection_module.sql` - 包含5张表的建表语句
---
## 🗄️ 数据库表结构
### 1. inspection_robot (巡检机器人表)
```sql
CREATE TABLE `inspection_robot` (
`id` varchar(64) NOT NULL,
`robot_code` varchar(64) NOT NULL COMMENT '机器人编码',
`robot_name` varchar(100) NOT NULL COMMENT '机器人名称',
`robot_model` varchar(100) DEFAULT NULL COMMENT '机器人型号',
`robot_type` varchar(50) DEFAULT NULL COMMENT '机器人类型',
`ip_address` varchar(50) DEFAULT NULL COMMENT 'IP地址',
`port` int(11) DEFAULT NULL COMMENT '端口号',
`map_id` varchar(64) DEFAULT NULL COMMENT '关联地图ID',
`status` char(1) DEFAULT '0' COMMENT '状态(0在线 1离线 2充电中 3巡检中)',
`battery_level` int(3) DEFAULT NULL COMMENT '电量百分比',
`current_position` varchar(200) DEFAULT NULL COMMENT '当前位置',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '',
`create_time` datetime DEFAULT NULL,
`update_by` varchar(64) DEFAULT '',
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_robot_code` (`robot_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### 2. inspection_map (巡检地图表)
```sql
CREATE TABLE `inspection_map` (
`id` varchar(64) NOT NULL,
`map_code` varchar(64) NOT NULL COMMENT '地图编码',
`map_name` varchar(100) NOT NULL COMMENT '地图名称',
`map_type` char(1) DEFAULT '1' COMMENT '地图类型(1室内 2室外)',
`map_file_path` varchar(500) DEFAULT NULL COMMENT '地图文件路径',
`map_image_path` varchar(500) DEFAULT NULL COMMENT '地图图片路径',
`resolution` decimal(10,4) DEFAULT NULL COMMENT '分辨率(米/像素)',
`width` int(11) DEFAULT NULL COMMENT '地图宽度(像素)',
`height` int(11) DEFAULT NULL COMMENT '地图高度(像素)',
`origin_x` decimal(10,2) DEFAULT NULL COMMENT '原点X坐标',
`origin_y` decimal(10,2) DEFAULT NULL COMMENT '原点Y坐标',
`status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '',
`create_time` datetime DEFAULT NULL,
`update_by` varchar(64) DEFAULT '',
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_map_code` (`map_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### 3. inspection_task (巡检任务表)
```sql
CREATE TABLE `inspection_task` (
`id` varchar(64) NOT NULL,
`task_code` varchar(64) NOT NULL COMMENT '任务编码',
`task_name` varchar(100) NOT NULL COMMENT '任务名称',
`robot_id` varchar(64) DEFAULT NULL COMMENT '机器人ID',
`robot_name` varchar(100) DEFAULT NULL COMMENT '机器人名称',
`map_id` varchar(64) DEFAULT NULL COMMENT '地图ID',
`map_name` varchar(100) DEFAULT NULL COMMENT '地图名称',
`task_type` char(1) DEFAULT '1' COMMENT '任务类型(1立即执行 2定时执行 3周期执行)',
`priority` char(1) DEFAULT '2' COMMENT '优先级(1低 2中 3高)',
`waypoints` text COMMENT '巡检点位列表(JSON格式)',
`scheduled_start_time` datetime DEFAULT NULL COMMENT '计划开始时间',
`scheduled_end_time` datetime DEFAULT NULL COMMENT '计划结束时间',
`actual_start_time` datetime DEFAULT NULL COMMENT '实际开始时间',
`actual_end_time` datetime DEFAULT NULL COMMENT '实际结束时间',
`status` char(1) DEFAULT '0' COMMENT '任务状态(0待执行 1执行中 2已完成 3已取消 4失败)',
`progress` int(3) DEFAULT '0' COMMENT '进度百分比',
`cron_expression` varchar(100) DEFAULT NULL COMMENT 'Cron表达式',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '',
`create_time` datetime DEFAULT NULL,
`update_by` varchar(64) DEFAULT '',
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_task_code` (`task_code`),
KEY `idx_robot_id` (`robot_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### 4. inspection_waypoint (巡检点位表)
```sql
CREATE TABLE `inspection_waypoint` (
`id` varchar(64) NOT NULL,
`waypoint_code` varchar(64) NOT NULL COMMENT '点位编码',
`waypoint_name` varchar(100) NOT NULL COMMENT '点位名称',
`map_id` varchar(64) NOT NULL COMMENT '所属地图ID',
`map_name` varchar(100) DEFAULT NULL COMMENT '所属地图名称',
`x_coordinate` decimal(10,2) DEFAULT NULL COMMENT 'X坐标',
`y_coordinate` decimal(10,2) DEFAULT NULL COMMENT 'Y坐标',
`z_coordinate` decimal(10,2) DEFAULT NULL COMMENT 'Z坐标',
`orientation` decimal(5,2) DEFAULT NULL COMMENT '朝向角度',
`waypoint_type` char(1) DEFAULT '1' COMMENT '点位类型(1普通点位 2充电点 3必经点)',
`dwell_time` int(11) DEFAULT '0' COMMENT '停留时长(秒)',
`enabled` char(1) DEFAULT '0' COMMENT '是否启用(0启用 1禁用)',
`sort_order` int(11) DEFAULT '0' COMMENT '排序号',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT '',
`create_time` datetime DEFAULT NULL,
`update_by` varchar(64) DEFAULT '',
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_waypoint_code` (`waypoint_code`),
KEY `idx_map_id` (`map_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### 5. inspection_alarm (巡检告警表)
```sql
CREATE TABLE `inspection_alarm` (
`id` varchar(64) NOT NULL,
`alarm_code` varchar(64) NOT NULL COMMENT '告警编码',
`task_id` varchar(64) DEFAULT NULL COMMENT '任务ID',
`task_name` varchar(100) DEFAULT NULL COMMENT '任务名称',
`robot_id` varchar(64) DEFAULT NULL COMMENT '机器人ID',
`robot_name` varchar(100) DEFAULT NULL COMMENT '机器人名称',
`alarm_level` char(1) DEFAULT '2' COMMENT '告警级别(1提示 2警告 3严重)',
`alarm_type` char(1) DEFAULT NULL COMMENT '告警类型(1设备异常 2环境异常 3任务异常 4通信异常)',
`alarm_title` varchar(200) DEFAULT NULL COMMENT '告警标题',
`alarm_content` text COMMENT '告警内容',
`alarm_location` varchar(200) DEFAULT NULL COMMENT '告警位置',
`alarm_time` datetime DEFAULT NULL COMMENT '告警时间',
`handle_status` char(1) DEFAULT '0' COMMENT '处理状态(0未处理 1处理中 2已处理 3已忽略)',
`handler` varchar(64) DEFAULT NULL COMMENT '处理人',
`handle_time` datetime DEFAULT NULL COMMENT '处理时间',
`handle_remark` varchar(500) DEFAULT NULL COMMENT '处理说明',
`evidence_image` varchar(500) DEFAULT NULL COMMENT '图片证据',
`create_by` varchar(64) DEFAULT '',
`create_time` datetime DEFAULT NULL,
`update_by` varchar(64) DEFAULT '',
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_alarm_code` (`alarm_code`),
KEY `idx_task_id` (`task_id`),
KEY `idx_robot_id` (`robot_id`),
KEY `idx_alarm_time` (`alarm_time`),
KEY `idx_handle_status` (`handle_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
---
## 🚀 后续步骤
1. **创建 Mapper 层**:参照 `DeDeviceRegistrationMapper` 创建5个Mapper接口和XML
2. **创建 Service 层**:参照 `IDeDeviceRegistrationService` 和实现类创建5个Service
3. **创建 Controller 层**:参照 `DeDeviceRegistrationController` 创建5个Controller
4. **执行数据库脚本**在MySQL中执行上述5张表的建表SQL
5. **配置菜单权限**:在系统管理中添加智能巡检相关菜单
6. **开发前端页面**创建对应的Vue页面
---
## 📁 完整目录结构
```
cmvr-iot-inspection/
├── pom.xml
└── src/main/
├── java/com/cmvr/inspection/
│ ├── domain/
│ │ ├── InspectionRobot.java ✅
│ │ ├── InspectionMap.java ✅
│ │ ├── InspectionTask.java ✅
│ │ ├── InspectionWaypoint.java ✅
│ │ └── InspectionAlarm.java ✅
│ ├── mapper/ (待创建)
│ ├── service/ (待创建)
│ │ └── impl/ (待创建)
└── resources/
└── mapper/inspection/ (待创建)
cmvr-iot-admin/src/main/java/com/cmvr/web/controller/
└── inspection/ (待创建)
```
---
## 💡 关键注意事项
1. **不使用 @TableName 注解**:项目通过 MyBatis XML 映射表名
2. **继承 BaseEntity**:包含 create_by, create_time, update_by, update_time 等公共字段
3. **使用 UUID 主键**`@TableId(value = "id", type = IdType.ASSIGN_UUID)`
4. **遵循命名规范**:表名使用下划线,类名使用驼峰
5. **权限标识**:如 `inspection:robot:list`、`inspection:robot:add` 等