| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- import 'package:chicken_farm/core/api/api_option.dart';
- import 'package:chicken_farm/core/api/api_service.dart';
- import 'package:chicken_farm/core/config/app_config.dart';
- import 'package:chicken_farm/core/services/breeding_data_service.dart';
- class BreedSubmitApi {
- static final BreedSubmitApi _instance = BreedSubmitApi._internal();
- factory BreedSubmitApi() => _instance;
- BreedSubmitApi._internal();
- Future<dynamic> bindChicken(dynamic data) async {
- if (AppConfig.isOffline) {
- return await bindChickenOffline(data);
- } else {
- return (await ApiService().postWithOfflineSupport(
- '/app/breeding/create/',
- data: data,
- apiOption: ApiOption.noAlert(),
- )).check();
- }
- }
- Future<dynamic> bindChickenOffline(dynamic data) async {
- // 保存到本地数据库
- Map<String, dynamic> bindData = {
- 'rfid': data['rfid'],
- 'batch_num': data['batchNum'],
- 'family_id': data['familyId'],
- 'date': data['date'],
- 'is_export': 0,
- };
- await BreedingDataService().insertChicken(bindData);
- return {'success': true, 'message': '数据已保存到本地'};
- }
- Future<dynamic> cageChange(dynamic data) async {
- if (AppConfig.isOffline) {
- return await cageChangeOffline(data);
- }
- return (await ApiService().postWithOfflineSupport(
- '/app/breeding/cageChange/',
- data: data,
- apiOption: ApiOption.noAlert(),
- )).check();
- }
- Future<dynamic> cageChangeOffline(dynamic data) async {
- // 保存到本地数据库
- Map<String, dynamic> changeData = {
- 'rfid': data['rfid'],
- 'source_cage': data['sourceCage'],
- 'target_cage': data['targetCage'],
- 'date': data['date'],
- 'is_export': 0,
- };
- await BreedingDataService().insertCageChange(changeData);
- return {'success': true, 'message': '数据已保存到本地'};
- }
- Future<dynamic> weight(dynamic data) async {
- if (AppConfig.isOffline) {
- return await weightOffline(data);
- }
- return (await ApiService().postWithOfflineSupport(
- '/app/breeding/weight/',
- data: data,
- apiOption: ApiOption.noAlert(),
- )).check();
- }
- Future<dynamic> weightOffline(dynamic data) async {
- // 保存到本地数据库
- Map<String, dynamic> cullData = {
- 'rfid': data['rfid'],
- 'weight': data['weight'],
- 'date': data['date'],
- 'is_export': 0,
- };
- await BreedingDataService().insertCull(cullData);
- await BreedingDataService().insertWeight(data as Map<String, dynamic>);
- return {'success': true, 'message': '数据已保存到本地'};
- }
- Future<dynamic> cull(dynamic data) async {
- if (AppConfig.isOffline) {
- return await cullOffline(data);
- }
- return (await ApiService().postWithOfflineSupport(
- '/app/breeding/cull/',
- data: data,
- apiOption: ApiOption.noAlert(),
- )).check();
- }
- Future<dynamic> cullOffline(dynamic data) async {
- // 保存到本地数据库
- Map<String, dynamic> cullData = {
- 'rfid': data['rfid'],
- 'cull_reason': data['cullReason'],
- 'disposal_method': data['disposalMethod'],
- 'date': data['date'],
- 'is_export': 0,
- };
- await BreedingDataService().insertCull(cullData);
- return {'success': true, 'message': '数据已保存到本地'};
- }
- Future<dynamic> batchCull(dynamic data) async {
- if (AppConfig.isOffline) {
- return await batchCullOffline(data);
- }
- return (await ApiService().postWithOfflineSupport(
- '/app/breeding/batchCull/',
- data: data,
- apiOption: ApiOption.noAlert(),
- )).check();
- }
- Future<dynamic> batchCullOffline(dynamic data) async {
- List<String> ids = data['rfids'];
- List<Map<String, dynamic>> batchCullData = ids.map((id) {
- return {
- 'rfid': id,
- 'cull_time': data['cull_time'],
- 'cull_reason': data['cull_reason'],
- 'date': data['date'],
- 'is_export': 0,
- };
- }).toList();
- await BreedingDataService().batchInsertCull(batchCullData);
- return {'success': true, 'message': '数据已保存到本地'};
- }
- }
|