完善小细节
This commit is contained in:
132
tradeCattle/XQ_CLIENT_LOG_FIELD_FIX_GUIDE.md
Normal file
132
tradeCattle/XQ_CLIENT_LOG_FIELD_FIX_GUIDE.md
Normal file
@@ -0,0 +1,132 @@
|
||||
# xq_client_log表device_id字段缺失问题解决方案
|
||||
|
||||
## 问题描述
|
||||
|
||||
在测试智能项圈日志和轨迹功能时,遇到了以下错误:
|
||||
```
|
||||
SQLSyntaxErrorException: Unknown column 'device_id' in 'field list'
|
||||
```
|
||||
|
||||
## 问题原因
|
||||
|
||||
`xq_client_log` 表存在,但缺少 `device_id` 字段,导致MyBatis查询失败。
|
||||
|
||||
## 解决方案
|
||||
|
||||
### 1. 执行SQL脚本添加字段
|
||||
|
||||
**文件**: `tradeCattle/add_device_id_to_xq_client_log.sql`
|
||||
|
||||
**执行步骤**:
|
||||
1. 连接到MySQL数据库
|
||||
2. 执行以下SQL脚本:
|
||||
|
||||
```sql
|
||||
-- 为xq_client_log表添加device_id字段
|
||||
SET @sql = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'xq_client_log'
|
||||
AND COLUMN_NAME = 'device_id') > 0,
|
||||
'SELECT "device_id字段已存在" as message',
|
||||
'ALTER TABLE xq_client_log ADD COLUMN device_id varchar(50) NOT NULL COMMENT "项圈编号" AFTER id'
|
||||
));
|
||||
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- 为device_id字段添加索引
|
||||
SET @sql2 = (SELECT IF(
|
||||
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'xq_client_log'
|
||||
AND INDEX_NAME = 'idx_device_id') > 0,
|
||||
'SELECT "device_id索引已存在" as message',
|
||||
'ALTER TABLE xq_client_log ADD INDEX idx_device_id (device_id)'
|
||||
));
|
||||
|
||||
PREPARE stmt2 FROM @sql2;
|
||||
EXECUTE stmt2;
|
||||
DEALLOCATE PREPARE stmt2;
|
||||
|
||||
-- 显示表结构确认
|
||||
DESCRIBE xq_client_log;
|
||||
```
|
||||
|
||||
### 2. 验证字段添加
|
||||
|
||||
执行SQL后,应该看到 `xq_client_log` 表包含以下字段:
|
||||
- `id` (主键)
|
||||
- `device_id` (新增字段)
|
||||
- `device_voltage`
|
||||
- `device_temp`
|
||||
- `server_device_id`
|
||||
- `latitude`
|
||||
- `longitude`
|
||||
- `walk_steps`
|
||||
- `y_walk_steps`
|
||||
- `create_time`
|
||||
- `create_by`
|
||||
- `update_time`
|
||||
- `update_by`
|
||||
|
||||
### 3. 重启应用
|
||||
|
||||
1. 停止当前运行的Spring Boot应用
|
||||
2. 重新启动应用:
|
||||
```bash
|
||||
cd C:\cattleTransport\tradeCattle\aiotagro-cattle-trade
|
||||
mvn spring-boot:run
|
||||
```
|
||||
|
||||
### 4. 测试功能
|
||||
|
||||
#### 4.1 测试智能项圈日志查询
|
||||
```bash
|
||||
curl -X POST http://localhost:8080/api/deliveryDevice/getCollarLogs \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer YOUR_TOKEN" \
|
||||
-d '{
|
||||
"deviceId": "24075000139",
|
||||
"deliveryId": 86
|
||||
}'
|
||||
```
|
||||
|
||||
#### 4.2 测试智能项圈轨迹查询
|
||||
```bash
|
||||
curl -X POST http://localhost:8080/api/deliveryDevice/getCollarTrajectory \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer YOUR_TOKEN" \
|
||||
-d '{
|
||||
"deviceId": "24075000139",
|
||||
"deliveryId": 86
|
||||
}'
|
||||
```
|
||||
|
||||
#### 4.3 测试设备日志同步
|
||||
```bash
|
||||
curl -X POST http://localhost:8080/api/deliveryDevice/manualSyncDeviceLogs \
|
||||
-H "Authorization: Bearer YOUR_TOKEN"
|
||||
```
|
||||
|
||||
## 预期结果
|
||||
|
||||
1. **SQL执行成功**: 字段和索引添加成功
|
||||
2. **应用启动正常**: 无SQL语法错误
|
||||
3. **API调用成功**: 返回正确的日志和轨迹数据
|
||||
4. **日志同步正常**: 项圈设备数据能正确同步到 `xq_client_log` 表
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **数据备份**: 执行ALTER TABLE前建议备份 `xq_client_log` 表
|
||||
2. **权限检查**: 确保数据库用户有ALTER TABLE权限
|
||||
3. **字段约束**: `device_id` 字段设置为NOT NULL,如果表中已有数据,可能需要先更新现有记录
|
||||
4. **索引性能**: 添加索引后查询性能会提升
|
||||
|
||||
## 后续步骤
|
||||
|
||||
字段添加成功后,可以:
|
||||
1. 测试完整的日志和轨迹功能
|
||||
2. 验证60分钟数据同步功能
|
||||
3. 在前端页面测试日志和轨迹显示
|
||||
Reference in New Issue
Block a user