84 lines
2.4 KiB
Python
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')
|