CMVR-IOT/智能巡检模块-创建说明.md

277 lines
11 KiB
Markdown
Raw Normal View History

# 智能巡检模块 - 已创建文件清单
## ✅ 已完成创建的文件
### 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` 等