# 智能巡检模块 - 已创建文件清单 ## ✅ 已完成创建的文件 ### 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 XML(5个) 位置:`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. Controller(5个) 位置:`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` 等