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

84 lines
2.4 KiB
Python

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()
start_marker = ' try {\n final result = await sl<CreateDeviceTaskUseCase>().execute('
start = content.find(start_marker)
if start < 0:
print('start not found')
sys.exit(1)
print(f'start={start}')
end_marker = 'return;\n }\n }'
end = content.find(end_marker, start)
if end < 0:
print('end not found')
sys.exit(1)
end += len('return;\n }\n }')
print(f'end={end}')
new_code = """ try {
final result = await sl<CreateDeviceTaskUseCase>().execute(
deviceId: deviceId,
routeId: routeId,
siteId: siteId,
orgId: orgId,
);
final taskId = result.fold<int?>(
(failure) {
final failMsg = failure.toString();
if (failMsg.contains('存在任务') || failMsg.contains('already exists')) {
return null;
}
_showPageToast(message: '作业启动失败', type: ToastType.error);
return -1;
},
(id) => id,
);
if (taskId == null) {
await taskCubit.fetchAndFilterTask(deviceId);
await Future.delayed(const Duration(milliseconds: 300));
final existingTasks = taskCubit.state.activeTasks;
if (existingTasks.isNotEmpty) {
taskCubit.selectTask(existingTasks.first);
_showPageToast(message: '设备正在作业中', type: ToastType.success);
_saveDataToLocal();
return;
}
_showPageToast(message: '设备正在作业中', type: ToastType.warn);
return;
}
if (taskId == -1) {
taskCubit.clearCurrentTask();
setState(() {
isStartWork = false;
_workStatus = WorkStatus.idle;
});
return;
}
taskCubit.updateCurrentTaskId(taskId);
} catch (e) {
_showPageToast(message: '作业启动异常: $e', type: ToastType.error);
taskCubit.clearCurrentTask();
setState(() {
isStartWork = false;
_workStatus = WorkStatus.idle;
});
return;
}
}"""
content = content[:start] + new_code + content[end:]
with open(path, 'w', encoding='utf-8', newline='') as f:
f.write(content)
print('DONE')