controller.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import 'package:get/get.dart';
  2. import 'package:vitalapp/architecture/defines.dart';
  3. import 'package:vitalapp/database/entities/defines.dart';
  4. import 'package:vitalapp/managers/interfaces/data_sync.dart';
  5. import 'state.dart';
  6. class PatientSyncController extends FControllerBase {
  7. final state = PatientSyncState();
  8. final _dataSyncManager = Get.find<IDataSyncManager>();
  9. Future<void> syncAll() async {
  10. // TODO: 先加载多点,需要调整为:进度+逐步加载
  11. const pageSize = 1000;
  12. int pageIndex = 1;
  13. // TODO: 还要包含上传失败的
  14. final pagedList = await _dataSyncManager.getPatientPagedList(
  15. pageIndex,
  16. pageSize: pageSize,
  17. syncState: OfflineDataSyncState.wait,
  18. );
  19. for (var i = 0; i < pagedList.totalCount; i++) {
  20. final entity = pagedList.data[i];
  21. _dataSyncManager.syncPatient(entity);
  22. }
  23. }
  24. Future<void> _loadList() async {
  25. final pagedList =
  26. await _dataSyncManager.getPatientPagedList(state.pageIndex);
  27. state.totalCount = pagedList.totalCount;
  28. state.dataList = pagedList.data;
  29. }
  30. @override
  31. void onReady() {
  32. super.onReady();
  33. _loadList();
  34. }
  35. }