- 添加巡检告警、地图、机器人、任务、点位等实体类和服务接口 - 创建巡检模块数据库表结构,包含机器人、地图、任务等核心表 - 实现巡检告警控制器,提供增删改查和导出功能 - 配置巡检告警数据映射和查询视图 - 更新全局应用配置中的MinIO服务地址 - 在启动类中添加MyBatis扫描配置 - 重构设备配置实体类,移除冗余字段并优化注解配置
11 KiB
11 KiB
智能巡检模块 - 已创建文件清单
✅ 已完成创建的文件
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.javaInspectionMapMapper.javaInspectionTaskMapper.javaInspectionWaypointMapper.javaInspectionAlarmMapper.java
参考模板:DeDeviceRegistrationMapper.java
4. Mapper XML(5个)
位置:cmvr-iot-inspection/src/main/resources/mapper/inspection/
需要创建:
InspectionRobotMapper.xmlInspectionMapMapper.xmlInspectionTaskMapper.xmlInspectionWaypointMapper.xmlInspectionAlarmMapper.xml
参考模板:DeDeviceRegistrationMapper.xml
5. Service 接口(5个)
位置:cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/
需要创建:
IInspectionRobotService.javaIInspectionMapService.javaIInspectionTaskService.javaIInspectionWaypointService.javaIInspectionAlarmService.java
参考模板:IDeDeviceRegistrationService.java
6. Service 实现类(5个)
位置:cmvr-iot-inspection/src/main/java/com/cmvr/inspection/service/impl/
需要创建:
InspectionRobotServiceImpl.javaInspectionMapServiceImpl.javaInspectionTaskServiceImpl.javaInspectionWaypointServiceImpl.javaInspectionAlarmServiceImpl.java
参考模板:DeDeviceRegistrationServiceImpl.java
7. Controller(5个)
位置:cmvr-iot-admin/src/main/java/com/cmvr/web/controller/inspection/
需要创建:
InspectionRobotController.javaInspectionMapController.javaInspectionTaskController.javaInspectionWaypointController.javaInspectionAlarmController.java
参考模板:DeDeviceRegistrationController.java
8. 数据库脚本
位置:项目根目录或 sql/ 目录
需要创建:
inspection_module.sql- 包含5张表的建表语句
🗄️ 数据库表结构
1. inspection_robot (巡检机器人表)
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 (巡检地图表)
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 (巡检任务表)
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 (巡检点位表)
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 (巡检告警表)
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;
🚀 后续步骤
- 创建 Mapper 层:参照
DeDeviceRegistrationMapper创建5个Mapper接口和XML - 创建 Service 层:参照
IDeDeviceRegistrationService和实现类创建5个Service - 创建 Controller 层:参照
DeDeviceRegistrationController创建5个Controller - 执行数据库脚本:在MySQL中执行上述5张表的建表SQL
- 配置菜单权限:在系统管理中添加智能巡检相关菜单
- 开发前端页面:创建对应的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/ (待创建)
💡 关键注意事项
- 不使用 @TableName 注解:项目通过 MyBatis XML 映射表名
- 继承 BaseEntity:包含 create_by, create_time, update_by, update_time 等公共字段
- 使用 UUID 主键:
@TableId(value = "id", type = IdType.ASSIGN_UUID) - 遵循命名规范:表名使用下划线,类名使用驼峰
- 权限标识:如
inspection:robot:list、inspection:robot:add等