fix: 锁记录同步时,单条记录解析失败直接跳过,继续解析后续记录,并重置时间线.

This commit is contained in:
Liuyf 2025-03-11 14:47:38 +08:00
parent 16dc021943
commit 12dcd5984a
2 changed files with 59 additions and 48 deletions

View File

@ -3,6 +3,7 @@ import 'dart:async';
import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/apm/apm_helper.dart'; import 'package:star_lock/apm/apm_helper.dart';
import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_entity.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_entity.dart';
import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_state.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_state.dart';
@ -68,6 +69,7 @@ class DoorLockLogLogic extends BaseGetXController {
final List uploadList = []; final List uploadList = [];
for (int i = 0; i < getList.length; i++) { for (int i = 0; i < getList.length; i++) {
final List<int> indexList = getList[i]; final List<int> indexList = getList[i];
try {
// AppLog.log("indexList:$indexList"); // AppLog.log("indexList:$indexList");
final Map indexMap = {}; final Map indexMap = {};
indexMap['type'] = indexList[0].toString(); indexMap['type'] = indexList[0].toString();
@ -96,6 +98,9 @@ class DoorLockLogLogic extends BaseGetXController {
} }
indexMap['date'] = '$operateDate'; indexMap['date'] = '$operateDate';
uploadList.add(indexMap); uploadList.add(indexMap);
} catch (e) {
AppLog.log('操作记录:$indexList,解析失败,跳过该跳记录,进行下一条记录解析。');
}
} }
if (dataLength == state.logCountPage) { if (dataLength == state.logCountPage) {
state.ifHaveNext = true; state.ifHaveNext = true;
@ -246,6 +251,7 @@ class DoorLockLogLogic extends BaseGetXController {
/// ///
StreamSubscription? _getDoorLockLogListRefreshUIEvent; StreamSubscription? _getDoorLockLogListRefreshUIEvent;
void _getDoorLockLogListRefreshUIAction() { void _getDoorLockLogListRefreshUIAction() {
_getDoorLockLogListRefreshUIEvent = eventBus _getDoorLockLogListRefreshUIEvent = eventBus
.on<DoorLockLogListRefreshUI>() .on<DoorLockLogListRefreshUI>()

View File

@ -296,6 +296,7 @@ class LockDetailLogic extends BaseGetXController {
final List uploadList = []; final List uploadList = [];
for (int i = 0; i < getList.length; i++) { for (int i = 0; i < getList.length; i++) {
final List<int> indexList = getList[i]; final List<int> indexList = getList[i];
try {
AppLog.log('indexList:$indexList'); AppLog.log('indexList:$indexList');
final Map indexMap = {}; final Map indexMap = {};
indexMap['type'] = indexList[0].toString(); indexMap['type'] = indexList[0].toString();
@ -317,7 +318,8 @@ class LockDetailLogic extends BaseGetXController {
(0xFF & indexList[6]); (0xFF & indexList[6]);
int operateDate = time * 1000; int operateDate = time * 1000;
if (DateTime.fromMillisecondsSinceEpoch(operateDate).isAfter( if (DateTime.fromMillisecondsSinceEpoch(operateDate).isAfter(
DateTime.fromMillisecondsSinceEpoch(getUTCNetTime() * 1000))) { DateTime.fromMillisecondsSinceEpoch(
getUTCNetTime() * 1000))) {
continue; continue;
} }
@ -329,6 +331,9 @@ class LockDetailLogic extends BaseGetXController {
state.operateDate = operateDate; state.operateDate = operateDate;
} }
} catch (e) {
AppLog.log('操作记录:$indexList,解析失败,跳过该跳记录,进行下一条记录解析。');
}
} }
lockRecordUploadData(uploadList); lockRecordUploadData(uploadList);