Files
feature-tenant/_fix_startwork.py
2026-08-10 10:00:52 +08:00

78 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sys
path = r'C:\Users\jsmbz\Documents\flutter-app-02\lib\features\home\presentation\widgets\map\testmap_pages.dart'
with open(path, 'r', encoding='utf-8') as f:
content = f.read()
# Find the block to replace
old_block_start = content.find('result.fold(')
if old_block_start < 0:
print('ERROR: result.fold( not found')
sys.exit(1)
# Find the end of the fold block: ');' after the fold call
# The fold ends with ');' on a line
old_block_end = content.find(' );', old_block_start)
if old_block_end < 0:
print('ERROR: fold end not found')
sys.exit(1)
old_block_end += len(' );')
old_block = content[old_block_start:old_block_end]
print('Old block found:')
print(repr(old_block[:100]))
print('...')
new_block = ''' final taskIdOrFlag = result.fold<int?>(
(failure) {
debugPrint('❌ [开始作业] 创建设备任务失败: $failure');
final failMsg = failure.toString();
if (failMsg.contains('存在任务') || failMsg.contains('already exists')) {
return null;
}
_showPageToast(message: "作业启动失败", type: ToastType.error);
return -1;
},
(taskId) => taskId,
);
if (taskIdOrFlag == null) {
debugPrint('⚠️ [开始作业] 设备已有任务,重新查询任务池...');
await taskCubit.fetchAndFilterTask(deviceId);
await Future.delayed(const Duration(milliseconds: 300));
final existingTasks = taskCubit.state.activeTasks;
debugPrint('🔍 [开始作业] 重新查询到 ${existingTasks.length} 个活跃任务');
if (existingTasks.isNotEmpty) {
final existingTask = existingTasks.first;
taskCubit.selectTask(existingTask);
debugPrint('✅ [开始作业] 复用已有任务 #${existingTask.id},taskId已保存');
_showPageToast(message: "设备正在作业中", type: ToastType.success);
_saveDataToLocal();
return;
}
debugPrint('⚠️ [开始作业] 重新查询后仍未找到活跃任务');
_showPageToast(message: "设备正在作业中", type: ToastType.warn);
return;
}
if (taskIdOrFlag == -1) {
taskCubit.clearCurrentTask();
setState(() {
isStartWork = false;
_workStatus = WorkStatus.idle;
});
return;
}
final taskId = taskIdOrFlag as int;
debugPrint('✅ [开始作业] 创建设备任务成功,taskId: $taskId');
taskCubit.updateCurrentTaskId(taskId);'''
new_content = content[:old_block_start] + new_block + content[old_block_end:]
with open(path, 'w', encoding='utf-8', newline='') as f:
f.write(new_content)
print('SUCCESS: File updated')