Commit 67f743bd authored by hywang's avatar hywang

1.增加免疫、诊疗、配种、称重功能;

2.增加管理员查看全部数据功能
parent 32ab6569
......@@ -48,6 +48,8 @@ android {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
minifyEnabled false
shrinkResources false
}
}
signingConfigs {
......
......@@ -19,6 +19,8 @@ import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
EasyBLE ble;
@Override
public void configureFlutterEngine(FlutterEngine flutterEngine) {
super.configureFlutterEngine(flutterEngine);
......@@ -31,13 +33,15 @@ public class MainActivity extends FlutterActivity {
.setScanPeriodMillis(15000)//搜索一次的毫秒值
.setAcceptSysConnectedDevice(true)
.setOnlyAcceptBleDevice(true);
EasyBLE ble = EasyBLE.getBuilder().setScanConfiguration(scanConfig)
.setObserveAnnotationRequired(true)
.setMethodDefaultThreadMode(ThreadMode.BACKGROUND)//指定回调方法和观察者方法的默认线程
.setScannerType(ScannerType.LEGACY)
.build();
ble.setLogEnabled(true);
ble.initialize(getApplication());
if(ble==null){
ble = EasyBLE.getBuilder().setScanConfiguration(scanConfig)
.setObserveAnnotationRequired(true)
.setMethodDefaultThreadMode(ThreadMode.BACKGROUND)//指定回调方法和观察者方法的默认线程
.setScannerType(ScannerType.LEGACY)
.build();
ble.setLogEnabled(true);
ble.initialize(getApplication());
}
}else {
EasyBLE.getInstance().initialize(getApplication());
}
......
......@@ -215,7 +215,7 @@ public class RfidPlugin implements FlutterPlugin, MethodChannel.MethodCallHandle
handler.post(new Runnable() {
@Override
public void run() {
Log.e("why:android:InventoryData:", TextUtil.byteToHexString(dataList.get(0).getEPC_Data(), dataList.get(0).getEpcLength()));
Log.e("why:", "getInventoryData:"+TextUtil.byteToHexString(dataList.get(0).getEPC_Data(), dataList.get(0).getEpcLength()));
result.put("key", "InventoryData");
result.put("value", TextUtil.byteToHexString(dataList.get(0).getEPC_Data(), dataList.get(0).getEpcLength()));
_eventSink.success(result);
......
......@@ -31,17 +31,13 @@ class HttpUtils<T> {
HttpUtils._internal() {
var options = BaseOptions(
baseUrl: NetWorkConfig.baseUrl,
connectTimeout:
const Duration(milliseconds: NetWorkConfig.connectTimeOut),
connectTimeout: const Duration(milliseconds: NetWorkConfig.connectTimeOut),
receiveTimeout: const Duration(milliseconds: NetWorkConfig.readTimeOut),
sendTimeout: const Duration(milliseconds: NetWorkConfig.writeTimeOut));
_dio = Dio(options);
_dio.interceptors.add(TokenInterceptor());
_dio.interceptors.add(PrettyDioLogger(
requestHeader: true,
requestBody: true,
responseHeader: true,
responseBody: true));
_dio.interceptors
.add(PrettyDioLogger(requestHeader: true, requestBody: true, responseHeader: true, responseBody: true));
}
factory HttpUtils() {
......@@ -145,17 +141,15 @@ class HttpUtils<T> {
try {
Response response = await _dio.request(url!,
data: mList != null
? _convertRequestData(mList)
: formData ?? _convertRequestData(params),
data: mList != null ? _convertRequestData(mList) : formData ?? _convertRequestData(params),
queryParameters: queryParameters,
options: options);
_handleResponse(response);
} catch (e) {
loading.dismissLoading();
var exception = ApiException.from(e);
// DialogUtils.dismissDialog();
loading.dismissLoading();
if (errorCallback != null) {
errorCallback!(e.toString(), exception.code ?? -1);
}
......@@ -165,7 +159,7 @@ class HttpUtils<T> {
}
void _handleResponse(Response response) {
loading.dismissLoading();
loading.dismissLoading();
if (response.statusCode == 200) {
ApiResponse<T> apiResponse;
if (isList) {
......@@ -177,17 +171,16 @@ class HttpUtils<T> {
if (isList) {
responseListCallback?.call(apiResponse.list);
} else {
if (apiResponse.data != null) {
responseCallback?.call(apiResponse.data);
}
// if (apiResponse.data != null) {
responseCallback?.call(apiResponse.data);
// }
}
} else {
interceptToken(apiResponse.msg, apiResponse.code);
// EasyLoading.showError(apiResponse.message);
}
} else {
var exception =
ApiException(response.statusCode, ApiException.unknownException);
var exception = ApiException(response.statusCode, ApiException.unknownException);
errorCallback!(exception.message ?? '服务器异常', exception.code ?? -1);
EasyLoading.showError(exception.message ?? '服务器异常');
}
......
class APIS{
static const baseUrl = "http://192.168.8.135:9000/";
// static const baseUrl = "http://serve.xlglmnmyzspt.org.cn/";
static const baseUrl =
// "http://192.168.8.135:9000/";
"http://82.156.29.228:9000/";
// "http://serve.xlglmnmyzspt.org.cn/";
/// 初始化游客token
static const initialize = "api/initialize";
......@@ -25,6 +27,39 @@ class APIS{
static const download_performance_list_sync = "/api/flutter/performance/sync/add";
static const upload_performance_List = "/api/flutter/performance/add";
///称重记录
static const download_weight_man_list = "/api/flutter/weightMan/list";
static const download_weight_man_list_sync = "/api/flutter/weightMan/sync/add";
static const upload_weight_man_list = "/api/flutter/weightMan/add";
///诊疗记录
static const download_medical_record_list = "/api/flutter/medicalrecords/list";
static const download_medical_record_list_sync = "/api/flutter/medicalrecords/sync/add";
static const upload_medical_record_List = "/api/flutter/medicalrecords/add";
///免疫记录
static const download_immune_batch_list = "/api/flutter/immunebatch/list";
static const download_immune_batch_list_sync = "/api/flutter/immunebatch/sync/add";
static const upload_immune_batch_List = "/api/flutter/immunebatch/add";
///免疫记录-子表
static const download_immune_batch_detail_list = "/api/flutter/immunebatchDetail/list";
static const download_immune_batch_detail_list_sync = "/api/flutter/immunebatchDetail/sync/add";
static const upload_immune_batch_detail_List = "/api/flutter/immunebatchDetail/add";
///配种记录
static const download_breeding_record_list = "/api/flutter/cattlematingMaster/list";
static const download_breeding_record_list_sync = "/api/flutter/cattlematingMaster/sync/add";
static const upload_breeding_record_List = "/api/flutter/cattlematingMaster/add";
///配种记录
static const download_breeding_record_detail_list = "/api/flutter/cattlematingDetaill/list";
static const download_breeding_record_detail_list_sync = "/api/flutter/cattlematingDetaill/sync/add";
static const upload_breeding_record_detail_List = "/api/flutter/cattlematingDetaill/add";
///错误上报
static const upload_error_List = "/api/flutter/error/add";
///消息
static const get_message_count = "/api/flutter/msg/index";
static const get_message_list = "/api/flutter/msg/list";
......
......@@ -12,9 +12,12 @@ class Config {
static bool isOnLine = false;
//是否连接蓝牙设备
//是否连接蓝牙设备
static bool isConnect = false;
//是否是管理员
static bool isAdmin = false;
// 定义一个全局的相机列表
static List<CameraDescription> cameras = [];
......@@ -28,7 +31,15 @@ class Config {
static String SP_STR_TOKEN = 'sp_str_token';
static String SP_DEPT_ID = 'sp_dept_id';
static String SP_DEPT_NAME = 'sp_dept_name';
static String SP_DEPT_ROLE = 'sp_dept_role';
static String SP_CATTLERESUME_UPDATE_TIME = 'sp_cattleresume_update_time';
static String SP_PERFORMANCE_UPDATE_TIME = 'sp_performance_update_time';
static String SP_WEIGHT_MAN_UPDATE_TIME = 'sp_weight_man_update_time';
static String SP_MEDICAL_RECORD_UPDATE_TIME = 'sp_medical_record_update_time';
static String SP_IMMUNE_BATCH_UPDATE_TIME = 'sp_immune_batch_update_time';
static String SP_IMMUNE_BATCH_DETAIL_UPDATE_TIME = 'sp_immune_batch_detail_update_time';
static String SP_BREEDING_RECORD_UPDATE_TIME = 'sp_breeding_record_update_time';
static String SP_BREEDING_RECORD_DETAIL_UPDATE_TIME = 'sp_breeding_record_detail_update_time';
}
class IconFont {
......
......@@ -3,10 +3,16 @@
import 'package:get/get.dart';
import 'package:isar/isar.dart';
import '../models/breeding_record_detail_entity.dart';
import '../models/breeding_record_entity.dart';
import '../models/cattle_resume_entity.dart';
import '../models/dict_entity.dart';
import '../models/immune_batch_detail_entity.dart';
import '../models/immune_batch_entity.dart';
import '../models/medical_record_entity.dart';
import '../models/performance.dart';
import '../models/user_model.dart';
import '../models/weight_man_entity.dart';
/// 全局状态管理
class GlobalService extends GetxService {
......@@ -23,6 +29,12 @@ class GlobalService extends GetxService {
UserModelRolesSchema,
CattleResumeEntitySchema,
PerformanceEntitySchema,
WeightManEntitySchema,
MedicalRecordEntitySchema,
ImmuneBatchEntitySchema,
ImmuneBatchDetailEntitySchema,
BreedingRecordEntitySchema,
BreedingRecordDetailEntitySchema,
DictEntitySchema,
], inspector: true);
......
......@@ -5,12 +5,18 @@
// This file is automatically generated. DO NOT EDIT, all your changes would be lost.
import 'package:flutter/material.dart' show debugPrint;
import 'package:anchor_collect_flutter/api/api_response.dart';
import 'package:anchor_collect_flutter/models/breeding_record_detail_entity.dart';
import 'package:anchor_collect_flutter/models/breeding_record_entity.dart';
import 'package:anchor_collect_flutter/models/cattle_resume_entity.dart';
import 'package:anchor_collect_flutter/models/dict_entity.dart';
import 'package:anchor_collect_flutter/models/immune_batch_detail_entity.dart';
import 'package:anchor_collect_flutter/models/immune_batch_entity.dart';
import 'package:anchor_collect_flutter/models/login_entity.dart';
import 'package:anchor_collect_flutter/models/medical_record_entity.dart';
import 'package:anchor_collect_flutter/models/message.dart';
import 'package:anchor_collect_flutter/models/performance.dart';
import 'package:anchor_collect_flutter/models/user_model.dart';
import 'package:anchor_collect_flutter/models/weight_man_entity.dart';
JsonConvert jsonConvert = JsonConvert();
......@@ -135,15 +141,32 @@ class JsonConvert {
if (<ApiResponseData>[] is M) {
return data.map<ApiResponseData>((Map<String, dynamic> e) => ApiResponseData.fromJson(e)).toList() as M;
}
if (<BreedingRecordDetailEntity>[] is M) {
return data.map<BreedingRecordDetailEntity>((Map<String, dynamic> e) => BreedingRecordDetailEntity.fromJson(e))
.toList() as M;
}
if (<BreedingRecordEntity>[] is M) {
return data.map<BreedingRecordEntity>((Map<String, dynamic> e) => BreedingRecordEntity.fromJson(e)).toList() as M;
}
if (<CattleResumeEntity>[] is M) {
return data.map<CattleResumeEntity>((Map<String, dynamic> e) => CattleResumeEntity.fromJson(e)).toList() as M;
}
if (<DictEntity>[] is M) {
return data.map<DictEntity>((Map<String, dynamic> e) => DictEntity.fromJson(e)).toList() as M;
}
if (<ImmuneBatchDetailEntity>[] is M) {
return data.map<ImmuneBatchDetailEntity>((Map<String, dynamic> e) => ImmuneBatchDetailEntity.fromJson(e))
.toList() as M;
}
if (<ImmuneBatchEntity>[] is M) {
return data.map<ImmuneBatchEntity>((Map<String, dynamic> e) => ImmuneBatchEntity.fromJson(e)).toList() as M;
}
if (<LoginEntity>[] is M) {
return data.map<LoginEntity>((Map<String, dynamic> e) => LoginEntity.fromJson(e)).toList() as M;
}
if (<MedicalRecordEntity>[] is M) {
return data.map<MedicalRecordEntity>((Map<String, dynamic> e) => MedicalRecordEntity.fromJson(e)).toList() as M;
}
if (<MessageModel>[] is M) {
return data.map<MessageModel>((Map<String, dynamic> e) => MessageModel.fromJson(e)).toList() as M;
}
......@@ -168,6 +191,9 @@ class JsonConvert {
if (<UserModelRolesParams>[] is M) {
return data.map<UserModelRolesParams>((Map<String, dynamic> e) => UserModelRolesParams.fromJson(e)).toList() as M;
}
if (<WeightManEntity>[] is M) {
return data.map<WeightManEntity>((Map<String, dynamic> e) => WeightManEntity.fromJson(e)).toList() as M;
}
debugPrint("${M.toString()} not found");
......@@ -190,9 +216,14 @@ class JsonConvertClassCollection {
Map<String, JsonConvertFunction> convertFuncMap = {
(ApiResponse).toString(): ApiResponse.fromJson,
(ApiResponseData).toString(): ApiResponseData.fromJson,
(BreedingRecordDetailEntity).toString(): BreedingRecordDetailEntity.fromJson,
(BreedingRecordEntity).toString(): BreedingRecordEntity.fromJson,
(CattleResumeEntity).toString(): CattleResumeEntity.fromJson,
(DictEntity).toString(): DictEntity.fromJson,
(ImmuneBatchDetailEntity).toString(): ImmuneBatchDetailEntity.fromJson,
(ImmuneBatchEntity).toString(): ImmuneBatchEntity.fromJson,
(LoginEntity).toString(): LoginEntity.fromJson,
(MedicalRecordEntity).toString(): MedicalRecordEntity.fromJson,
(MessageModel).toString(): MessageModel.fromJson,
(PerformanceEntity).toString(): PerformanceEntity.fromJson,
(UserModel).toString(): UserModel.fromJson,
......@@ -201,6 +232,7 @@ class JsonConvertClassCollection {
(UserModelDeptParams).toString(): UserModelDeptParams.fromJson,
(UserModelRoles).toString(): UserModelRoles.fromJson,
(UserModelRolesParams).toString(): UserModelRolesParams.fromJson,
(WeightManEntity).toString(): WeightManEntity.fromJson,
};
bool containsKey(String type) {
......
import 'package:anchor_collect_flutter/generated/json/base/json_convert_content.dart';
import 'package:anchor_collect_flutter/models/breeding_record_detail_entity.dart';
import 'package:isar/isar.dart';
BreedingRecordDetailEntity $BreedingRecordDetailEntityFromJson(Map<String, dynamic> json) {
final BreedingRecordDetailEntity breedingRecordDetailEntity = BreedingRecordDetailEntity();
final Id? id = jsonConvert.convert<Id>(json['id']);
if (id != null) {
breedingRecordDetailEntity.id = id;
}
final String? unid = jsonConvert.convert<String>(json['unid']);
if (unid != null) {
breedingRecordDetailEntity.unid = unid;
}
final String? fUnid = jsonConvert.convert<String>(json['fUnid']);
if (fUnid != null) {
breedingRecordDetailEntity.fUnid = fUnid;
}
final String? matingStyle = jsonConvert.convert<String>(json['matingStyle']);
if (matingStyle != null) {
breedingRecordDetailEntity.matingStyle = matingStyle;
}
final String? cattleresumeId = jsonConvert.convert<String>(json['cattleresumeId']);
if (cattleresumeId != null) {
breedingRecordDetailEntity.cattleresumeId = cattleresumeId;
}
final String? registrationNo = jsonConvert.convert<String>(json['registrationNo']);
if (registrationNo != null) {
breedingRecordDetailEntity.registrationNo = registrationNo;
}
final String? individualNo = jsonConvert.convert<String>(json['individualNo']);
if (individualNo != null) {
breedingRecordDetailEntity.individualNo = individualNo;
}
final String? frozenSemenBatch = jsonConvert.convert<String>(json['frozenSemenBatch']);
if (frozenSemenBatch != null) {
breedingRecordDetailEntity.frozenSemenBatch = frozenSemenBatch;
}
final String? matingDate = jsonConvert.convert<String>(json['matingDate']);
if (matingDate != null) {
breedingRecordDetailEntity.matingDate = matingDate;
}
final String? isReturn = jsonConvert.convert<String>(json['isReturn']);
if (isReturn != null) {
breedingRecordDetailEntity.isReturn = isReturn;
}
final String? backLoveDate = jsonConvert.convert<String>(json['backLoveDate']);
if (backLoveDate != null) {
breedingRecordDetailEntity.backLoveDate = backLoveDate;
}
final String? dueDate = jsonConvert.convert<String>(json['dueDate']);
if (dueDate != null) {
breedingRecordDetailEntity.dueDate = dueDate;
}
final String? pregnancy = jsonConvert.convert<String>(json['pregnancy']);
if (pregnancy != null) {
breedingRecordDetailEntity.pregnancy = pregnancy;
}
final String? deptId = jsonConvert.convert<String>(json['deptId']);
if (deptId != null) {
breedingRecordDetailEntity.deptId = deptId;
}
final String? caId = jsonConvert.convert<String>(json['caId']);
if (caId != null) {
breedingRecordDetailEntity.caId = caId;
}
final String? uploadStatus = jsonConvert.convert<String>(json['uploadStatus']);
if (uploadStatus != null) {
breedingRecordDetailEntity.uploadStatus = uploadStatus;
}
final String? searchValue = jsonConvert.convert<String>(json['searchValue']);
if (searchValue != null) {
breedingRecordDetailEntity.searchValue = searchValue;
}
final String? createBy = jsonConvert.convert<String>(json['createBy']);
if (createBy != null) {
breedingRecordDetailEntity.createBy = createBy;
}
final String? createTime = jsonConvert.convert<String>(json['createTime']);
if (createTime != null) {
breedingRecordDetailEntity.createTime = createTime;
}
final String? updateBy = jsonConvert.convert<String>(json['updateBy']);
if (updateBy != null) {
breedingRecordDetailEntity.updateBy = updateBy;
}
final String? updateTime = jsonConvert.convert<String>(json['updateTime']);
if (updateTime != null) {
breedingRecordDetailEntity.updateTime = updateTime;
}
final String? remark = jsonConvert.convert<String>(json['remark']);
if (remark != null) {
breedingRecordDetailEntity.remark = remark;
}
return breedingRecordDetailEntity;
}
Map<String, dynamic> $BreedingRecordDetailEntityToJson(BreedingRecordDetailEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['unid'] = entity.unid;
data['fUnid'] = entity.fUnid;
data['matingStyle'] = entity.matingStyle;
data['cattleresumeId'] = entity.cattleresumeId;
data['registrationNo'] = entity.registrationNo;
data['individualNo'] = entity.individualNo;
data['frozenSemenBatch'] = entity.frozenSemenBatch;
data['matingDate'] = entity.matingDate;
data['isReturn'] = entity.isReturn;
data['backLoveDate'] = entity.backLoveDate;
data['dueDate'] = entity.dueDate;
data['pregnancy'] = entity.pregnancy;
data['deptId'] = entity.deptId;
data['caId'] = entity.caId;
data['uploadStatus'] = entity.uploadStatus;
data['searchValue'] = entity.searchValue;
data['createBy'] = entity.createBy;
data['createTime'] = entity.createTime;
data['updateBy'] = entity.updateBy;
data['updateTime'] = entity.updateTime;
data['remark'] = entity.remark;
return data;
}
extension BreedingRecordDetailEntityExtension on BreedingRecordDetailEntity {
BreedingRecordDetailEntity copyWith({
Id? id,
String? unid,
String? fUnid,
String? matingStyle,
String? cattleresumeId,
String? registrationNo,
String? individualNo,
String? frozenSemenBatch,
String? matingDate,
String? isReturn,
String? backLoveDate,
String? dueDate,
String? pregnancy,
String? deptId,
String? caId,
String? uploadStatus,
String? searchValue,
String? createBy,
String? createTime,
String? updateBy,
String? updateTime,
String? remark,
}) {
return BreedingRecordDetailEntity()
..id = id ?? this.id
..unid = unid ?? this.unid
..fUnid = fUnid ?? this.fUnid
..matingStyle = matingStyle ?? this.matingStyle
..cattleresumeId = cattleresumeId ?? this.cattleresumeId
..registrationNo = registrationNo ?? this.registrationNo
..individualNo = individualNo ?? this.individualNo
..frozenSemenBatch = frozenSemenBatch ?? this.frozenSemenBatch
..matingDate = matingDate ?? this.matingDate
..isReturn = isReturn ?? this.isReturn
..backLoveDate = backLoveDate ?? this.backLoveDate
..dueDate = dueDate ?? this.dueDate
..pregnancy = pregnancy ?? this.pregnancy
..deptId = deptId ?? this.deptId
..caId = caId ?? this.caId
..uploadStatus = uploadStatus ?? this.uploadStatus
..searchValue = searchValue ?? this.searchValue
..createBy = createBy ?? this.createBy
..createTime = createTime ?? this.createTime
..updateBy = updateBy ?? this.updateBy
..updateTime = updateTime ?? this.updateTime
..remark = remark ?? this.remark;
}
}
\ No newline at end of file
import 'package:anchor_collect_flutter/generated/json/base/json_convert_content.dart';
import 'package:anchor_collect_flutter/models/breeding_record_entity.dart';
import 'package:isar/isar.dart';
BreedingRecordEntity $BreedingRecordEntityFromJson(Map<String, dynamic> json) {
final BreedingRecordEntity breedingRecordEntity = BreedingRecordEntity();
final Id? id = jsonConvert.convert<Id>(json['id']);
if (id != null) {
breedingRecordEntity.id = id;
}
final String? unid = jsonConvert.convert<String>(json['unid']);
if (unid != null) {
breedingRecordEntity.unid = unid;
}
final String? cattleresumeId = jsonConvert.convert<String>(json['cattleresumeId']);
if (cattleresumeId != null) {
breedingRecordEntity.cattleresumeId = cattleresumeId;
}
final String? registrationNo = jsonConvert.convert<String>(json['registrationNo']);
if (registrationNo != null) {
breedingRecordEntity.registrationNo = registrationNo;
}
final String? individualNo = jsonConvert.convert<String>(json['individualNo']);
if (individualNo != null) {
breedingRecordEntity.individualNo = individualNo;
}
final String? raiseVarieties = jsonConvert.convert<String>(json['raiseVarieties']);
if (raiseVarieties != null) {
breedingRecordEntity.raiseVarieties = raiseVarieties;
}
final String? location = jsonConvert.convert<String>(json['location']);
if (location != null) {
breedingRecordEntity.location = location;
}
final String? breedingPlantId = jsonConvert.convert<String>(json['breedingPlantId']);
if (breedingPlantId != null) {
breedingRecordEntity.breedingPlantId = breedingPlantId;
}
final String? uploadStatus = jsonConvert.convert<String>(json['uploadStatus']);
if (uploadStatus != null) {
breedingRecordEntity.uploadStatus = uploadStatus;
}
final String? deptId = jsonConvert.convert<String>(json['deptId']);
if (deptId != null) {
breedingRecordEntity.deptId = deptId;
}
final String? searchValue = jsonConvert.convert<String>(json['searchValue']);
if (searchValue != null) {
breedingRecordEntity.searchValue = searchValue;
}
final String? createBy = jsonConvert.convert<String>(json['createBy']);
if (createBy != null) {
breedingRecordEntity.createBy = createBy;
}
final String? createTime = jsonConvert.convert<String>(json['createTime']);
if (createTime != null) {
breedingRecordEntity.createTime = createTime;
}
final String? updateBy = jsonConvert.convert<String>(json['updateBy']);
if (updateBy != null) {
breedingRecordEntity.updateBy = updateBy;
}
final String? updateTime = jsonConvert.convert<String>(json['updateTime']);
if (updateTime != null) {
breedingRecordEntity.updateTime = updateTime;
}
final String? remark = jsonConvert.convert<String>(json['remark']);
if (remark != null) {
breedingRecordEntity.remark = remark;
}
return breedingRecordEntity;
}
Map<String, dynamic> $BreedingRecordEntityToJson(BreedingRecordEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['unid'] = entity.unid;
data['cattleresumeId'] = entity.cattleresumeId;
data['registrationNo'] = entity.registrationNo;
data['individualNo'] = entity.individualNo;
data['raiseVarieties'] = entity.raiseVarieties;
data['location'] = entity.location;
data['breedingPlantId'] = entity.breedingPlantId;
data['uploadStatus'] = entity.uploadStatus;
data['deptId'] = entity.deptId;
data['searchValue'] = entity.searchValue;
data['createBy'] = entity.createBy;
data['createTime'] = entity.createTime;
data['updateBy'] = entity.updateBy;
data['updateTime'] = entity.updateTime;
data['remark'] = entity.remark;
return data;
}
extension BreedingRecordEntityExtension on BreedingRecordEntity {
BreedingRecordEntity copyWith({
Id? id,
String? unid,
String? cattleresumeId,
String? registrationNo,
String? individualNo,
String? raiseVarieties,
String? location,
String? breedingPlantId,
String? uploadStatus,
String? deptId,
String? searchValue,
String? createBy,
String? createTime,
String? updateBy,
String? updateTime,
String? remark,
}) {
return BreedingRecordEntity()
..id = id ?? this.id
..unid = unid ?? this.unid
..cattleresumeId = cattleresumeId ?? this.cattleresumeId
..registrationNo = registrationNo ?? this.registrationNo
..individualNo = individualNo ?? this.individualNo
..raiseVarieties = raiseVarieties ?? this.raiseVarieties
..location = location ?? this.location
..breedingPlantId = breedingPlantId ?? this.breedingPlantId
..uploadStatus = uploadStatus ?? this.uploadStatus
..deptId = deptId ?? this.deptId
..searchValue = searchValue ?? this.searchValue
..createBy = createBy ?? this.createBy
..createTime = createTime ?? this.createTime
..updateBy = updateBy ?? this.updateBy
..updateTime = updateTime ?? this.updateTime
..remark = remark ?? this.remark;
}
}
\ No newline at end of file
import 'package:anchor_collect_flutter/generated/json/base/json_convert_content.dart';
import 'package:anchor_collect_flutter/models/immune_batch_detail_entity.dart';
import 'package:isar/isar.dart';
ImmuneBatchDetailEntity $ImmuneBatchDetailEntityFromJson(Map<String, dynamic> json) {
final ImmuneBatchDetailEntity immuneBatchDetailEntity = ImmuneBatchDetailEntity();
final Id? id = jsonConvert.convert<Id>(json['id']);
if (id != null) {
immuneBatchDetailEntity.id = id;
}
final String? unid = jsonConvert.convert<String>(json['unid']);
if (unid != null) {
immuneBatchDetailEntity.unid = unid;
}
final String? cattleresumeUnid = jsonConvert.convert<String>(json['cattleresumeUnid']);
if (cattleresumeUnid != null) {
immuneBatchDetailEntity.cattleresumeUnid = cattleresumeUnid;
}
final String? registrationNo = jsonConvert.convert<String>(json['registrationNo']);
if (registrationNo != null) {
immuneBatchDetailEntity.registrationNo = registrationNo;
}
final String? individualNo = jsonConvert.convert<String>(json['individualNo']);
if (individualNo != null) {
immuneBatchDetailEntity.individualNo = individualNo;
}
final String? immunebatchUnid = jsonConvert.convert<String>(json['immunebatchUnid']);
if (immunebatchUnid != null) {
immuneBatchDetailEntity.immunebatchUnid = immunebatchUnid;
}
final String? deptId = jsonConvert.convert<String>(json['deptId']);
if (deptId != null) {
immuneBatchDetailEntity.deptId = deptId;
}
final String? uploadStatus = jsonConvert.convert<String>(json['uploadStatus']);
if (uploadStatus != null) {
immuneBatchDetailEntity.uploadStatus = uploadStatus;
}
return immuneBatchDetailEntity;
}
Map<String, dynamic> $ImmuneBatchDetailEntityToJson(ImmuneBatchDetailEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['unid'] = entity.unid;
data['cattleresumeUnid'] = entity.cattleresumeUnid;
data['registrationNo'] = entity.registrationNo;
data['individualNo'] = entity.individualNo;
data['immunebatchUnid'] = entity.immunebatchUnid;
data['deptId'] = entity.deptId;
data['uploadStatus'] = entity.uploadStatus;
return data;
}
extension ImmuneBatchDetailEntityExtension on ImmuneBatchDetailEntity {
ImmuneBatchDetailEntity copyWith({
Id? id,
String? unid,
String? cattleresumeUnid,
String? registrationNo,
String? individualNo,
String? immunebatchUnid,
String? deptId,
String? uploadStatus,
}) {
return ImmuneBatchDetailEntity()
..id = id ?? this.id
..unid = unid ?? this.unid
..cattleresumeUnid = cattleresumeUnid ?? this.cattleresumeUnid
..registrationNo = registrationNo ?? this.registrationNo
..individualNo = individualNo ?? this.individualNo
..immunebatchUnid = immunebatchUnid ?? this.immunebatchUnid
..deptId = deptId ?? this.deptId
..uploadStatus = uploadStatus ?? this.uploadStatus;
}
}
\ No newline at end of file
import 'package:anchor_collect_flutter/generated/json/base/json_convert_content.dart';
import 'package:anchor_collect_flutter/models/immune_batch_entity.dart';
import 'package:isar/isar.dart';
ImmuneBatchEntity $ImmuneBatchEntityFromJson(Map<String, dynamic> json) {
final ImmuneBatchEntity immuneBatchEntity = ImmuneBatchEntity();
final Id? id = jsonConvert.convert<Id>(json['id']);
if (id != null) {
immuneBatchEntity.id = id;
}
final String? unid = jsonConvert.convert<String>(json['unid']);
if (unid != null) {
immuneBatchEntity.unid = unid;
}
final String? circleNo = jsonConvert.convert<String>(json['circleNo']);
if (circleNo != null) {
immuneBatchEntity.circleNo = circleNo;
}
final String? immuneExp = jsonConvert.convert<String>(json['immuneExp']);
if (immuneExp != null) {
immuneBatchEntity.immuneExp = immuneExp;
}
final String? immuneDate = jsonConvert.convert<String>(json['immuneDate']);
if (immuneDate != null) {
immuneBatchEntity.immuneDate = immuneDate;
}
final String? immunePerson = jsonConvert.convert<String>(json['immunePerson']);
if (immunePerson != null) {
immuneBatchEntity.immunePerson = immunePerson;
}
final String? perinatalPeriod = jsonConvert.convert<String>(json['perinatalPeriod']);
if (perinatalPeriod != null) {
immuneBatchEntity.perinatalPeriod = perinatalPeriod;
}
final String? vaccineName = jsonConvert.convert<String>(json['vaccineName']);
if (vaccineName != null) {
immuneBatchEntity.vaccineName = vaccineName;
}
final String? lotnumber = jsonConvert.convert<String>(json['lotnumber']);
if (lotnumber != null) {
immuneBatchEntity.lotnumber = lotnumber;
}
final String? manufacturer = jsonConvert.convert<String>(json['manufacturer']);
if (manufacturer != null) {
immuneBatchEntity.manufacturer = manufacturer;
}
final String? specifications = jsonConvert.convert<String>(json['specifications']);
if (specifications != null) {
immuneBatchEntity.specifications = specifications;
}
final String? immuneDosage = jsonConvert.convert<String>(json['immuneDosage']);
if (immuneDosage != null) {
immuneBatchEntity.immuneDosage = immuneDosage;
}
final String? immuneMethod = jsonConvert.convert<String>(json['immuneMethod']);
if (immuneMethod != null) {
immuneBatchEntity.immuneMethod = immuneMethod;
}
final String? uploadStatus = jsonConvert.convert<String>(json['uploadStatus']);
if (uploadStatus != null) {
immuneBatchEntity.uploadStatus = uploadStatus;
}
final String? deptId = jsonConvert.convert<String>(json['deptId']);
if (deptId != null) {
immuneBatchEntity.deptId = deptId;
}
final String? searchValue = jsonConvert.convert<String>(json['searchValue']);
if (searchValue != null) {
immuneBatchEntity.searchValue = searchValue;
}
final String? createBy = jsonConvert.convert<String>(json['createBy']);
if (createBy != null) {
immuneBatchEntity.createBy = createBy;
}
final String? createTime = jsonConvert.convert<String>(json['createTime']);
if (createTime != null) {
immuneBatchEntity.createTime = createTime;
}
final String? updateBy = jsonConvert.convert<String>(json['updateBy']);
if (updateBy != null) {
immuneBatchEntity.updateBy = updateBy;
}
final String? updateTime = jsonConvert.convert<String>(json['updateTime']);
if (updateTime != null) {
immuneBatchEntity.updateTime = updateTime;
}
final String? remark = jsonConvert.convert<String>(json['remark']);
if (remark != null) {
immuneBatchEntity.remark = remark;
}
return immuneBatchEntity;
}
Map<String, dynamic> $ImmuneBatchEntityToJson(ImmuneBatchEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['unid'] = entity.unid;
data['circleNo'] = entity.circleNo;
data['immuneExp'] = entity.immuneExp;
data['immuneDate'] = entity.immuneDate;
data['immunePerson'] = entity.immunePerson;
data['perinatalPeriod'] = entity.perinatalPeriod;
data['vaccineName'] = entity.vaccineName;
data['lotnumber'] = entity.lotnumber;
data['manufacturer'] = entity.manufacturer;
data['specifications'] = entity.specifications;
data['immuneDosage'] = entity.immuneDosage;
data['immuneMethod'] = entity.immuneMethod;
data['uploadStatus'] = entity.uploadStatus;
data['deptId'] = entity.deptId;
data['searchValue'] = entity.searchValue;
data['createBy'] = entity.createBy;
data['createTime'] = entity.createTime;
data['updateBy'] = entity.updateBy;
data['updateTime'] = entity.updateTime;
data['remark'] = entity.remark;
return data;
}
extension ImmuneBatchEntityExtension on ImmuneBatchEntity {
ImmuneBatchEntity copyWith({
Id? id,
String? unid,
String? circleNo,
String? immuneExp,
String? immuneDate,
String? immunePerson,
String? perinatalPeriod,
String? vaccineName,
String? lotnumber,
String? manufacturer,
String? specifications,
String? immuneDosage,
String? immuneMethod,
String? uploadStatus,
String? deptId,
String? searchValue,
String? createBy,
String? createTime,
String? updateBy,
String? updateTime,
String? remark,
}) {
return ImmuneBatchEntity()
..id = id ?? this.id
..unid = unid ?? this.unid
..circleNo = circleNo ?? this.circleNo
..immuneExp = immuneExp ?? this.immuneExp
..immuneDate = immuneDate ?? this.immuneDate
..immunePerson = immunePerson ?? this.immunePerson
..perinatalPeriod = perinatalPeriod ?? this.perinatalPeriod
..vaccineName = vaccineName ?? this.vaccineName
..lotnumber = lotnumber ?? this.lotnumber
..manufacturer = manufacturer ?? this.manufacturer
..specifications = specifications ?? this.specifications
..immuneDosage = immuneDosage ?? this.immuneDosage
..immuneMethod = immuneMethod ?? this.immuneMethod
..uploadStatus = uploadStatus ?? this.uploadStatus
..deptId = deptId ?? this.deptId
..searchValue = searchValue ?? this.searchValue
..createBy = createBy ?? this.createBy
..createTime = createTime ?? this.createTime
..updateBy = updateBy ?? this.updateBy
..updateTime = updateTime ?? this.updateTime
..remark = remark ?? this.remark;
}
}
\ No newline at end of file
import 'package:anchor_collect_flutter/generated/json/base/json_convert_content.dart';
import 'package:anchor_collect_flutter/models/medical_record_entity.dart';
import 'package:isar/isar.dart';
MedicalRecordEntity $MedicalRecordEntityFromJson(Map<String, dynamic> json) {
final MedicalRecordEntity medicalRecordEntity = MedicalRecordEntity();
final Id? id = jsonConvert.convert<Id>(json['id']);
if (id != null) {
medicalRecordEntity.id = id;
}
final String? unid = jsonConvert.convert<String>(json['unid']);
if (unid != null) {
medicalRecordEntity.unid = unid;
}
final String? cattleresumeId = jsonConvert.convert<String>(json['cattleresumeId']);
if (cattleresumeId != null) {
medicalRecordEntity.cattleresumeId = cattleresumeId;
}
final String? registrationNo = jsonConvert.convert<String>(json['registrationNo']);
if (registrationNo != null) {
medicalRecordEntity.registrationNo = registrationNo;
}
final String? individualNo = jsonConvert.convert<String>(json['individualNo']);
if (individualNo != null) {
medicalRecordEntity.individualNo = individualNo;
}
final String? treatDate = jsonConvert.convert<String>(json['treatDate']);
if (treatDate != null) {
medicalRecordEntity.treatDate = treatDate;
}
final String? treatPersonnel = jsonConvert.convert<String>(json['treatPersonnel']);
if (treatPersonnel != null) {
medicalRecordEntity.treatPersonnel = treatPersonnel;
}
final String? causeOf = jsonConvert.convert<String>(json['causeOf']);
if (causeOf != null) {
medicalRecordEntity.causeOf = causeOf;
}
final String? drugName = jsonConvert.convert<String>(json['drugName']);
if (drugName != null) {
medicalRecordEntity.drugName = drugName;
}
final String? specifications = jsonConvert.convert<String>(json['specifications']);
if (specifications != null) {
medicalRecordEntity.specifications = specifications;
}
final String? drugMethods = jsonConvert.convert<String>(json['drugMethods']);
if (drugMethods != null) {
medicalRecordEntity.drugMethods = drugMethods;
}
final double? drugNumber = jsonConvert.convert<double>(json['drugNumber']);
if (drugNumber != null) {
medicalRecordEntity.drugNumber = drugNumber;
}
final String? results = jsonConvert.convert<String>(json['results']);
if (results != null) {
medicalRecordEntity.results = results;
}
final String? uploadStatus = jsonConvert.convert<String>(json['uploadStatus']);
if (uploadStatus != null) {
medicalRecordEntity.uploadStatus = uploadStatus;
}
final String? deptId = jsonConvert.convert<String>(json['deptId']);
if (deptId != null) {
medicalRecordEntity.deptId = deptId;
}
final String? searchValue = jsonConvert.convert<String>(json['searchValue']);
if (searchValue != null) {
medicalRecordEntity.searchValue = searchValue;
}
final String? createBy = jsonConvert.convert<String>(json['createBy']);
if (createBy != null) {
medicalRecordEntity.createBy = createBy;
}
final String? createTime = jsonConvert.convert<String>(json['createTime']);
if (createTime != null) {
medicalRecordEntity.createTime = createTime;
}
final String? updateBy = jsonConvert.convert<String>(json['updateBy']);
if (updateBy != null) {
medicalRecordEntity.updateBy = updateBy;
}
final String? updateTime = jsonConvert.convert<String>(json['updateTime']);
if (updateTime != null) {
medicalRecordEntity.updateTime = updateTime;
}
final String? remark = jsonConvert.convert<String>(json['remark']);
if (remark != null) {
medicalRecordEntity.remark = remark;
}
return medicalRecordEntity;
}
Map<String, dynamic> $MedicalRecordEntityToJson(MedicalRecordEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['unid'] = entity.unid;
data['cattleresumeId'] = entity.cattleresumeId;
data['registrationNo'] = entity.registrationNo;
data['individualNo'] = entity.individualNo;
data['treatDate'] = entity.treatDate;
data['treatPersonnel'] = entity.treatPersonnel;
data['causeOf'] = entity.causeOf;
data['drugName'] = entity.drugName;
data['specifications'] = entity.specifications;
data['drugMethods'] = entity.drugMethods;
data['drugNumber'] = entity.drugNumber;
data['results'] = entity.results;
data['uploadStatus'] = entity.uploadStatus;
data['deptId'] = entity.deptId;
data['searchValue'] = entity.searchValue;
data['createBy'] = entity.createBy;
data['createTime'] = entity.createTime;
data['updateBy'] = entity.updateBy;
data['updateTime'] = entity.updateTime;
data['remark'] = entity.remark;
return data;
}
extension MedicalRecordEntityExtension on MedicalRecordEntity {
MedicalRecordEntity copyWith({
Id? id,
String? unid,
String? cattleresumeId,
String? registrationNo,
String? individualNo,
String? treatDate,
String? treatPersonnel,
String? causeOf,
String? drugName,
String? specifications,
String? drugMethods,
double? drugNumber,
String? results,
String? uploadStatus,
String? deptId,
String? searchValue,
String? createBy,
String? createTime,
String? updateBy,
String? updateTime,
String? remark,
}) {
return MedicalRecordEntity()
..id = id ?? this.id
..unid = unid ?? this.unid
..cattleresumeId = cattleresumeId ?? this.cattleresumeId
..registrationNo = registrationNo ?? this.registrationNo
..individualNo = individualNo ?? this.individualNo
..treatDate = treatDate ?? this.treatDate
..treatPersonnel = treatPersonnel ?? this.treatPersonnel
..causeOf = causeOf ?? this.causeOf
..drugName = drugName ?? this.drugName
..specifications = specifications ?? this.specifications
..drugMethods = drugMethods ?? this.drugMethods
..drugNumber = drugNumber ?? this.drugNumber
..results = results ?? this.results
..uploadStatus = uploadStatus ?? this.uploadStatus
..deptId = deptId ?? this.deptId
..searchValue = searchValue ?? this.searchValue
..createBy = createBy ?? this.createBy
..createTime = createTime ?? this.createTime
..updateBy = updateBy ?? this.updateBy
..updateTime = updateTime ?? this.updateTime
..remark = remark ?? this.remark;
}
}
\ No newline at end of file
......@@ -17,6 +17,22 @@ PerformanceEntity $PerformanceEntityFromJson(Map<String, dynamic> json) {
if (cattleresumeId != null) {
performanceEntity.cattleresumeId = cattleresumeId;
}
final String? registrationNo = jsonConvert.convert<String>(json['registrationNo']);
if (registrationNo != null) {
performanceEntity.registrationNo = registrationNo;
}
final String? individualNo = jsonConvert.convert<String>(json['individualNo']);
if (individualNo != null) {
performanceEntity.individualNo = individualNo;
}
final String? fatherReg = jsonConvert.convert<String>(json['fatherReg']);
if (fatherReg != null) {
performanceEntity.fatherReg = fatherReg;
}
final String? motherReg = jsonConvert.convert<String>(json['motherReg']);
if (motherReg != null) {
performanceEntity.motherReg = motherReg;
}
final String? age = jsonConvert.convert<String>(json['age']);
if (age != null) {
performanceEntity.age = age;
......@@ -137,6 +153,10 @@ Map<String, dynamic> $PerformanceEntityToJson(PerformanceEntity entity) {
data['id'] = entity.id;
data['unid'] = entity.unid;
data['cattleresumeId'] = entity.cattleresumeId;
data['registrationNo'] = entity.registrationNo;
data['individualNo'] = entity.individualNo;
data['fatherReg'] = entity.fatherReg;
data['motherReg'] = entity.motherReg;
data['age'] = entity.age;
data['measureDate'] = entity.measureDate;
data['height'] = entity.height;
......@@ -173,6 +193,10 @@ extension PerformanceEntityExtension on PerformanceEntity {
Id? id,
String? unid,
String? cattleresumeId,
String? registrationNo,
String? individualNo,
String? fatherReg,
String? motherReg,
String? age,
String? measureDate,
double? height,
......@@ -206,6 +230,10 @@ extension PerformanceEntityExtension on PerformanceEntity {
..id = id ?? this.id
..unid = unid ?? this.unid
..cattleresumeId = cattleresumeId ?? this.cattleresumeId
..registrationNo = registrationNo ?? this.registrationNo
..individualNo = individualNo ?? this.individualNo
..fatherReg = fatherReg ?? this.fatherReg
..motherReg = motherReg ?? this.motherReg
..age = age ?? this.age
..measureDate = measureDate ?? this.measureDate
..height = height ?? this.height
......
import 'package:anchor_collect_flutter/generated/json/base/json_convert_content.dart';
import 'package:anchor_collect_flutter/models/weight_man_entity.dart';
import 'package:isar/isar.dart';
WeightManEntity $WeightManEntityFromJson(Map<String, dynamic> json) {
final WeightManEntity weightManEntity = WeightManEntity();
final Id? id = jsonConvert.convert<Id>(json['id']);
if (id != null) {
weightManEntity.id = id;
}
final String? unid = jsonConvert.convert<String>(json['unid']);
if (unid != null) {
weightManEntity.unid = unid;
}
final String? cattleresumeId = jsonConvert.convert<String>(json['cattleresumeId']);
if (cattleresumeId != null) {
weightManEntity.cattleresumeId = cattleresumeId;
}
final double? weight = jsonConvert.convert<double>(json['weight']);
if (weight != null) {
weightManEntity.weight = weight;
}
final String? wTime = jsonConvert.convert<String>(json['wTime']);
if (wTime != null) {
weightManEntity.wTime = wTime;
}
final String? uploadStatus = jsonConvert.convert<String>(json['uploadStatus']);
if (uploadStatus != null) {
weightManEntity.uploadStatus = uploadStatus;
}
final String? registrationNo = jsonConvert.convert<String>(json['registrationNo']);
if (registrationNo != null) {
weightManEntity.registrationNo = registrationNo;
}
final String? individualNo = jsonConvert.convert<String>(json['individualNo']);
if (individualNo != null) {
weightManEntity.individualNo = individualNo;
}
final String? deptId = jsonConvert.convert<String>(json['deptId']);
if (deptId != null) {
weightManEntity.deptId = deptId;
}
final String? searchValue = jsonConvert.convert<String>(json['searchValue']);
if (searchValue != null) {
weightManEntity.searchValue = searchValue;
}
final String? createBy = jsonConvert.convert<String>(json['createBy']);
if (createBy != null) {
weightManEntity.createBy = createBy;
}
final String? createTime = jsonConvert.convert<String>(json['createTime']);
if (createTime != null) {
weightManEntity.createTime = createTime;
}
final String? updateBy = jsonConvert.convert<String>(json['updateBy']);
if (updateBy != null) {
weightManEntity.updateBy = updateBy;
}
final String? updateTime = jsonConvert.convert<String>(json['updateTime']);
if (updateTime != null) {
weightManEntity.updateTime = updateTime;
}
final String? remark = jsonConvert.convert<String>(json['remark']);
if (remark != null) {
weightManEntity.remark = remark;
}
return weightManEntity;
}
Map<String, dynamic> $WeightManEntityToJson(WeightManEntity entity) {
final Map<String, dynamic> data = <String, dynamic>{};
data['id'] = entity.id;
data['unid'] = entity.unid;
data['cattleresumeId'] = entity.cattleresumeId;
data['weight'] = entity.weight;
data['wTime'] = entity.wTime;
data['uploadStatus'] = entity.uploadStatus;
data['registrationNo'] = entity.registrationNo;
data['individualNo'] = entity.individualNo;
data['deptId'] = entity.deptId;
data['searchValue'] = entity.searchValue;
data['createBy'] = entity.createBy;
data['createTime'] = entity.createTime;
data['updateBy'] = entity.updateBy;
data['updateTime'] = entity.updateTime;
data['remark'] = entity.remark;
return data;
}
extension WeightManEntityExtension on WeightManEntity {
WeightManEntity copyWith({
Id? id,
String? unid,
String? cattleresumeId,
double? weight,
String? wTime,
String? uploadStatus,
String? registrationNo,
String? individualNo,
String? deptId,
String? searchValue,
String? createBy,
String? createTime,
String? updateBy,
String? updateTime,
String? remark,
}) {
return WeightManEntity()
..id = id ?? this.id
..unid = unid ?? this.unid
..cattleresumeId = cattleresumeId ?? this.cattleresumeId
..weight = weight ?? this.weight
..wTime = wTime ?? this.wTime
..uploadStatus = uploadStatus ?? this.uploadStatus
..registrationNo = registrationNo ?? this.registrationNo
..individualNo = individualNo ?? this.individualNo
..deptId = deptId ?? this.deptId
..searchValue = searchValue ?? this.searchValue
..createBy = createBy ?? this.createBy
..createTime = createTime ?? this.createTime
..updateBy = updateBy ?? this.updateBy
..updateTime = updateTime ?? this.updateTime
..remark = remark ?? this.remark;
}
}
\ No newline at end of file
import 'dart:convert';
import 'package:isar/isar.dart';
import '../generated/json/base/json_field.dart';
import '../generated/json/breeding_record_detail_entity.g.dart';
part 'breeding_record_detail_entity.g.dart';
@JsonSerializable()
@collection
class BreedingRecordDetailEntity{
Id id = Isar.autoIncrement;
/** unid主键 */
@Index(unique: true, replace: true)
String? unid;
/**
* 主表ID
*/
String? fUnid;
/**
* 配种方式;(本交,受精)
*/
String? matingStyle;
/**
* 种畜耳标号
*/
String? cattleresumeId;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
/**
* 冻精批次号
*/
String? frozenSemenBatch;
/**
* 配种日期
*/
String? matingDate;
/**
* 是否返情
*/
String? isReturn;
/**
* 返情日期
*/
String? backLoveDate;
/**
* 预产日期
*/
String? dueDate;
/**
* 配种成功
*/
String? pregnancy;
/**
* 部门id
*/
String? deptId;
/**
* 部门id
*/
String? caId;
/** 是否上传 0未上传,1已上传 */
String? uploadStatus;
/** 搜索值 */
String? searchValue;
/** 创建者 */
String? createBy;
/** 创建时间 */
String? createTime;
/** 更新者 */
String? updateBy;
/** 更新时间 */
String? updateTime;
/** 备注 */
String? remark;
BreedingRecordDetailEntity();
factory BreedingRecordDetailEntity.fromJson(Map<String, dynamic> json) =>
$BreedingRecordDetailEntityFromJson(json);
Map<String, dynamic> toJson() => $BreedingRecordDetailEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
\ No newline at end of file
This diff is collapsed.
import 'dart:convert';
import 'package:isar/isar.dart';
import '../generated/json/base/json_field.dart';
import '../generated/json/breeding_record_entity.g.dart';
part 'breeding_record_entity.g.dart';
@JsonSerializable()
@collection
class BreedingRecordEntity {
Id id = Isar.autoIncrement;
/** unid主键 */
@Index(unique: true, replace: true)
String? unid;
/**
* 母畜耳标号
*/
String? cattleresumeId;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
/**
* 饲养品种(利木赞;西门塔尔等)
*/
String? raiseVarieties;
/**
* 所在地
*/
String? location;
/**
* 所属种畜站
*/
String? breedingPlantId;
/** 是否上传 0未上传,1已上传 */
String? uploadStatus;
/**
* 部门id
*/
String? deptId;
/** 搜索值 */
String? searchValue;
/** 创建者 */
String? createBy;
/** 创建时间 */
String? createTime;
/** 更新者 */
String? updateBy;
/** 更新时间 */
String? updateTime;
/** 备注 */
String? remark;
BreedingRecordEntity();
factory BreedingRecordEntity.fromJson(Map<String, dynamic> json) =>
$BreedingRecordEntityFromJson(json);
Map<String, dynamic> toJson() => $BreedingRecordEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
This diff is collapsed.
......@@ -13,7 +13,6 @@ class DictEntity {
Id id = Isar.autoIncrement;
/** 字典编码 */
@Index(unique: true, replace: true)
String? dictCode;
/** 字典排序 */
......@@ -23,6 +22,7 @@ class DictEntity {
String? dictLabel;
/** 字典键值 */
@Index(unique: true, replace: true)
String? dictValue;
/** 字典类型 */
......
import 'dart:convert';
import 'package:isar/isar.dart';
import '../generated/json/base/json_field.dart';
import '../generated/json/immune_batch_detail_entity.g.dart';
part 'immune_batch_detail_entity.g.dart';
@JsonSerializable()
@collection
class ImmuneBatchDetailEntity{
Id id = Isar.autoIncrement;
/** unid主键 */
@Index(unique: true, replace: true)
String? unid;
/**
* 基础信息unid
*/
String? cattleresumeUnid;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
/**
* 免疫记录unid
*/
String? immunebatchUnid;
/**
* 部门id
*/
String? deptId;
/** 是否上传 0未上传,1已上传 */
String? uploadStatus;
ImmuneBatchDetailEntity();
factory ImmuneBatchDetailEntity.fromJson(Map<String, dynamic> json) =>
$ImmuneBatchDetailEntityFromJson(json);
Map<String, dynamic> toJson() => $ImmuneBatchDetailEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
\ No newline at end of file
This diff is collapsed.
import 'dart:convert';
import 'package:isar/isar.dart';
import '../generated/json/base/json_field.dart';
import '../generated/json/immune_batch_entity.g.dart';
part 'immune_batch_entity.g.dart';
@JsonSerializable()
@collection
class ImmuneBatchEntity{
Id id = Isar.autoIncrement;
/** unid主键 */
@Index(unique: true, replace: true)
String? unid;
/**
* 圈舍号
*/
String? circleNo;
/**
* 免疫有效期(月)
*/
String? immuneExp;
/**
* 免疫日期
*/
String? immuneDate;
/**
* 免疫人员
*/
String? immunePerson;
/**
* 围药期(月)
*/
String? perinatalPeriod;
/**
* 疫苗名称
*/
String? vaccineName;
/**
* 疫苗批号
*/
String? lotnumber;
/**
* 生产厂家
*/
String? manufacturer;
/**
* 规格
*/
String? specifications;
/**
* 免疫剂量
*/
String? immuneDosage;
/**
* 免疫方法;(滴鼻,注射,口服,刺种,气雾)
*/
String? immuneMethod;
/** 是否上传 0未上传,1已上传 */
String? uploadStatus;
/**
* 部门id
*/
String? deptId;
/** 搜索值 */
String? searchValue;
/** 创建者 */
String? createBy;
/** 创建时间 */
String? createTime;
/** 更新者 */
String? updateBy;
/** 更新时间 */
String? updateTime;
/** 备注 */
String? remark;
ImmuneBatchEntity();
factory ImmuneBatchEntity.fromJson(Map<String, dynamic> json) =>
$ImmuneBatchEntityFromJson(json);
Map<String, dynamic> toJson() => $ImmuneBatchEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
\ No newline at end of file
This diff is collapsed.
import 'dart:convert';
import 'package:isar/isar.dart';
import '../generated/json/base/json_field.dart';
import '../generated/json/medical_record_entity.g.dart';
part 'medical_record_entity.g.dart';
@JsonSerializable()
@collection
class MedicalRecordEntity{
Id id = Isar.autoIncrement;
/** unid主键 */
@Index(unique: true, replace: true)
String? unid;
/**
* 基本信息ID
*/
String? cattleresumeId;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
/**
* 诊疗日期
*/
String? treatDate;
/**
* 治疗人员
*/
String? treatPersonnel;
/**
* 病因
*/
String? causeOf;
/**
* 用药名称
*/
String? drugName;
/**
* 规格
*/
String? specifications;
/**
* 用药方法
*/
String? drugMethods;
/**
* 用药数量
*/
double? drugNumber;
/**
* 诊疗结果
*/
String? results;
/** 是否上传 0未上传,1已上传 */
String? uploadStatus;
/**
* 部门id
*/
String? deptId;
/** 搜索值 */
String? searchValue;
/** 创建者 */
String? createBy;
/** 创建时间 */
String? createTime;
/** 更新者 */
String? updateBy;
/** 更新时间 */
String? updateTime;
/** 备注 */
String? remark;
MedicalRecordEntity();
factory MedicalRecordEntity.fromJson(Map<String, dynamic> json) =>
$MedicalRecordEntityFromJson(json);
Map<String, dynamic> toJson() => $MedicalRecordEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -24,6 +24,18 @@ class PerformanceEntity{
*/
String? cattleresumeId;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
/** 父登记号 */
String? fatherReg;
/** 母登记号 */
String? motherReg;
/**
* 年龄
*/
......
This diff is collapsed.
import 'dart:convert';
import 'package:isar/isar.dart';
import '../generated/json/base/json_field.dart';
import '../generated/json/weight_man_entity.g.dart';
part 'weight_man_entity.g.dart';
@JsonSerializable()
@collection
class WeightManEntity{
Id id = Isar.autoIncrement;
/** unid主键 */
@Index(unique: true, replace: true)
String? unid;
/**
* 基本信息ID
*/
String? cattleresumeId;
/**
* 体重
*/
double? weight;
/** 称重日期 */
String? wTime;
/** 是否上传 0未上传,1已上传 */
String? uploadStatus;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
/**
* 部门id
*/
String? deptId;
/** 搜索值 */
String? searchValue;
/** 创建者 */
String? createBy;
/** 创建时间 */
String? createTime;
/** 更新者 */
String? updateBy;
/** 更新时间 */
String? updateTime;
/** 备注 */
String? remark;
WeightManEntity();
factory WeightManEntity.fromJson(Map<String, dynamic> json) =>
$WeightManEntityFromJson(json);
Map<String, dynamic> toJson() => $WeightManEntityToJson(this);
@override
String toString() {
return jsonEncode(this);
}
}
\ No newline at end of file
This diff is collapsed.
import 'package:get/get.dart';
import 'breeding_record_logic.dart';
class BreedingRecordBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut(() => BreedingRecordLogic());
}
}
import 'package:get/get.dart';
import 'breeding_record_detail_logic.dart';
class BreedingRecordDetailBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut(() => BreedingRecordDetailLogic());
}
}
import 'package:anchor_collect_flutter/models/breeding_record_detail_entity.dart';
import 'package:get/get.dart';
import 'package:uuid/uuid.dart';
import 'package:flutter/material.dart';
import '../../../congifs.dart';
import '../../../controllers/global_service.dart';
import '../../../models/breeding_record_entity.dart';
import '../../../rfid/rfid_plugin.dart';
import '../../../routes/routes.dart';
import '../../../utils/dialog_utils.dart';
import '../../../utils/dict_utils.dart';
import '../../../utils/empty_utils.dart';
import '../../../utils/sp_helper.dart';
import 'breeding_record_detail_state.dart';
class BreedingRecordDetailLogic extends GetxController {
final BreedingRecordDetailState state = BreedingRecordDetailState();
// 创建一个Uuid实例
var uuid = Uuid();
@override
void onReady() {
Map<String, dynamic> arguments = Get.arguments;
BreedingRecordDetailEntity? detailEntity = arguments['detailEntity'];
BreedingRecordEntity? entity = arguments['entity'];
if (entity == null) {
DialogUtils.showToast('数据信息问题');
Get.back(result: 'refresh');
} else {
if (detailEntity != null) {
state.entity.value = detailEntity;
state.isModify = true;
state.unid = state.entity.value.unid!;
} else {
state.entity.value.unid = uuid.v4().hashCode.toString() + uuid.v4().hashCode.toString();
state.entity.value.cattleresumeId = entity.cattleresumeId;
state.entity.value.registrationNo = entity.registrationNo;
state.entity.value.individualNo = entity.individualNo;
state.entity.value.fUnid = entity.unid;
}
refreshDictData();
}
}
///初始化字典项
refreshDictData() async {
state.matingStyle =
await DictUtils.getDictName('zxgl_cattlemating_matingStyle', state.entity.value.matingStyle ?? '');
// state.grade = await DictUtils.getDictName('zxgl_cattleresume_grade', state.entity.value.grade ?? '');
update();
}
calculateDueDate(String matingDate){
// DateFormat dateFormatter = DateFormat('yyyy-MM-dd');
// DateTime startDate = DateTime(2024, 1, 21);
// dateFormatter.add(const Duration(days: 128));
// final dateString = dateFormatter.format(matingDate),
// DateTime.parse(dateString).;
update();
}
save() async {
if (await checkRequiredFields()) {
return;
}
DialogUtils.showLoadingDialog('保存中。。。');
if (state.isModify) {
state.entity.value.updateTime = DateTime.now().toString();
state.entity.value.updateBy = SpHelper.getStorage(Config.SP_STR_USERNAME);
} else {
state.entity.value.createTime = DateTime.now().toString();
state.entity.value.createBy = SpHelper.getStorage(Config.SP_STR_USERNAME);
}
state.entity.value.deptId = SpHelper.getStorage(Config.SP_DEPT_ID);
state.entity.value.uploadStatus = '0';
///保存配种详情
await GlobalService.to.isar.writeTxn(() async => {
await GlobalService.to.isar.breedingRecordDetailEntitys.put(state.entity.value),
});
DialogUtils.showToast('保存配种详情成功');
DialogUtils.dismissDialog();
Get.back(result: 'refresh');
}
Future<bool> checkRequiredFields() async {
if (!EmptyUtils.isStrNotEmpty(state.entity.value.cattleresumeId)) {
DialogUtils.showToast('高频耳标或者可视耳标无效');
return true;
}
// if (!EmptyUtils.isStrNotEmpty(state.entity.individualNo)) {
// DialogUtils.showToast('必须填写可视耳标');
// return true;
// }
// if (!EmptyUtils.isStrNotEmpty(state.entity.photoPath) && !EmptyUtils.isStrNotEmpty(state.photoPath)) {
// DialogUtils.showToast('必须上传牛只拍照');
// return true;
// }
// if (!EmptyUtils.isStrNotEmpty(state.entity.circleNo)) {
// DialogUtils.showToast('必须选择圈舍');
// return true;
// }
// if (!EmptyUtils.isStrNotEmpty(state.entity.raiseType)) {
// DialogUtils.showToast('必须选择饲养类型');
// return true;
// }
if (!EmptyUtils.isStrNotEmpty(state.entity.value.matingDate)) {
DialogUtils.showToast('必须选择配种日期');
return true;
}
if (!EmptyUtils.isStrNotEmpty(state.entity.value.matingStyle)) {
DialogUtils.showToast('必须选择配种方式');
return true;
}
// if (state.entity.value.drugNumber == null ||state.entity.value.drugNumber == 0) {
// DialogUtils.showToast('必须填写用药数量');
// return true;
// }
// if (state.entity.birthHeavy == null || state.entity.birthHeavy == 0) {
// DialogUtils.showToast('必须填写出生重量');
// return true;
// }
// if (!EmptyUtils.isStrNotEmpty(state.entity.sex)) {
// DialogUtils.showToast('必须选择性别');
// return true;
// }
// if (!EmptyUtils.isStrNotEmpty(state.entity.status)) {
// DialogUtils.showToast('必须选择状态');
// return true;
// }
// if (!EmptyUtils.isStrNotEmpty(state.entity.colour)) {
// DialogUtils.showToast('必须填写犊牛毛色');
// return true;
// }
return false;
}
copyEntity(BreedingRecordDetailEntity formerEntity) {
state.entity.value.id = formerEntity.id;
state.entity.value.unid = formerEntity.unid;
state.entity.value.cattleresumeId = formerEntity.cattleresumeId;
state.entity.value.registrationNo = formerEntity.registrationNo;
state.entity.value.individualNo = formerEntity.individualNo;
state.entity.value.fUnid = formerEntity.fUnid;
state.entity.value.matingStyle = formerEntity.matingStyle;
state.entity.value.frozenSemenBatch = formerEntity.frozenSemenBatch;
state.entity.value.matingDate = formerEntity.matingDate;
state.entity.value.isReturn = formerEntity.isReturn;
state.entity.value.backLoveDate = formerEntity.backLoveDate;
state.entity.value.dueDate = formerEntity.dueDate;
state.entity.value.pregnancy = formerEntity.pregnancy;
state.entity.value.uploadStatus = formerEntity.uploadStatus;
state.entity.value.deptId = formerEntity.deptId;
state.entity.value.searchValue = formerEntity.searchValue;
state.entity.value.createBy = formerEntity.createBy;
state.entity.value.createTime = formerEntity.createTime;
state.entity.value.updateBy = formerEntity.updateBy;
state.entity.value.updateTime = formerEntity.updateTime;
state.entity.value.remark = formerEntity.remark;
}
}
import 'package:anchor_collect_flutter/models/breeding_record_detail_entity.dart';
import 'package:get/get.dart';
class BreedingRecordDetailState {
late Rx<BreedingRecordDetailEntity> entity = BreedingRecordDetailEntity().obs;
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
late String unid;
bool isModify = false;
late String matingStyle='';
BreedingRecordDetailState() {
///Initialize variables
}
}
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:intl/intl.dart';
import '../../../utils/dialog_utils.dart';
import '../../../utils/dict_utils.dart';
import 'breeding_record_detail_logic.dart';
class BreedingRecordDetailPage extends StatelessWidget {
BreedingRecordDetailPage({Key? key}) : super(key: key);
final logic = Get.find<BreedingRecordDetailLogic>();
final state = Get.find<BreedingRecordDetailLogic>().state;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('配种详情'),
backgroundColor: Colors.blue,
centerTitle: true,
),
body: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(
child: GetBuilder<BreedingRecordDetailLogic>(builder: (logic) {
return ListView(
children: [
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
const SizedBox(
width: 10,
),
getItemView('高频耳标', state.entity.value.registrationNo ?? '', () => {}),
const SizedBox(
width: 10,
),
],
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
const SizedBox(
width: 10,
),
getItemView('可视耳标', state.entity.value.individualNo ?? '', () => {}),
const SizedBox(
width: 10,
),
],
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
const SizedBox(
width: 10,
),
getItemView(
'配种方式',
state.matingStyle ?? '',
() async => {
DialogUtils.showSingleListDialog(
await DictUtils.getDictList('zxgl_cattlemating_matingStyle'),
onPositive: (selectReslut) => {
state.matingStyle = selectReslut.key,
state.entity.value.matingStyle = selectReslut.value,
logic.update(),
}),
}),
getItemView(
'配种日期',
state.entity.value.matingDate ?? '',
() => {
DialogUtils.showTimeDialog(
Get.context!,
isTime: false,
title: '请选择配种日期',
onPositive: (date) => {
state.entity.value.matingDate = date,
logic.calculateDueDate(date),
},
),
}),
],
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
const SizedBox(
width: 10,
),
getItemView(
'预产日期',
state.entity.value.dueDate ?? '',
() => {
// DialogUtils.showTimeDialog(
// Get.context!,
// isTime: false,
// title: '请选择预产日期',
// onPositive: (date) => {
// itemDateList[i].dueDate = date,
// update(),
// },
// ),
}),
getItemView(
'冻精批次',
state.entity.value.frozenSemenBatch ?? '',
() => {
DialogUtils.showInputDialog(
hintText: '输入冻精批次',
onPositive: (text) => {
state.entity.value.frozenSemenBatch = text ?? '',
logic.update(),
}),
}),
],
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
const SizedBox(
width: 10,
),
getItemView(
'备注',
state.entity.value.remark ?? '',
() => {
// DialogUtils.showInputDialog(
// hintText: '输入备注',
// onPositive: (text) => {
// itemDateList[i].remark = text ?? '',
// update(),
// }),
}),
],
),
),
const SizedBox(
height: 5,
),
],
);
}),
),
// Row(children: [
// Expanded(
// child:
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.blue),
foregroundColor: MaterialStateProperty.all(Colors.white),
padding: MaterialStateProperty.all(const EdgeInsets.all(10)),
),
onPressed: () => {
logic.save(),
},
child: const Text("保存"),
),
// ),
// ]),
],
),
);
}
getItemView(String title, String context, Function() onClick) {
return Expanded(
child: InkWell(
onTap: onClick,
child: Container(
decoration: const BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 2,
),
],
),
padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(
height: 10,
),
Text(
title,
style: const TextStyle(
color: Colors.blue,
fontSize: 14,
),
),
const SizedBox(
height: 10,
),
SizedBox(
height: 1,
child: Container(
color: Colors.black12,
height: 1,
),
),
const SizedBox(
height: 10,
),
Text(
context,
style: const TextStyle(
height: 1.5,
color: Colors.black,
fontSize: 14,
),
),
const SizedBox(
height: 10,
),
],
),
),
),
);
}
}
import 'package:get/get.dart';
import 'breeding_record_list_logic.dart';
class BreedingRecordListBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut(() => BreedingRecordListLogic());
}
}
import 'package:anchor_collect_flutter/models/breeding_record_entity.dart';
import 'package:anchor_collect_flutter/utils/dict_utils.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:isar/isar.dart';
import '../../../congifs.dart';
import '../../../controllers/global_service.dart';
import '../../../models/cattle_resume_entity.dart';
import '../../../rfid/rfid_plugin.dart';
import '../../../routes/routes.dart';
import '../../../utils/empty_utils.dart';
import '../../../utils/sp_helper.dart';
import 'breeding_record_list_state.dart';
class BreedingRecordListLogic extends GetxController {
final BreedingRecordListState state = BreedingRecordListState();
bool isShow = false;
late TextEditingController highController;
@override
void onInit() {
highController = TextEditingController();
Map<String, dynamic>? arguments = Get.arguments;
if (arguments != null) {
state.cattleResumeEntity = arguments['cattleResumeEntity'];
}
}
queryByFilter() async {
state.dataList.clear();
state.items.clear();
if (!EmptyUtils.isStrNotEmpty(state.filterHighNo) && !EmptyUtils.isStrNotEmpty(state.filterVisualNo)) {
state.isFilter = false;
} else {
state.isFilter = true;
// CattleResumeEntity? cattleResumeEntity = await GlobalService.to.isar.cattleResumeEntitys
// .filter()
// .optional(state.cattleResumeEntity != null, (q) => q.unidEqualTo(state.cattleResumeEntity!.unid))
// .optional(EmptyUtils.isStrNotEmpty(state.filterHighNo), (q) => q.registrationNoEqualTo(state.filterHighNo))
// .optional(EmptyUtils.isStrNotEmpty(state.filterVisualNo), (q) => q.individualNoEqualTo(state.filterVisualNo))
// .findFirst();
}
isShow = false;
queryFirstPage();
}
queryFirstPage() {
state.dataList.clear();
state.pagination = 1;
queryOnePage();
}
queryOnePage() async {
var pageData = await GlobalService.to.isar.breedingRecordEntitys
.filter()
.unidIsNotEmpty()
.optional(state.cattleResumeEntity != null, (q) => q.cattleresumeIdEqualTo(state.cattleResumeEntity!.unid))
.optional(!Config.isAdmin, (q) => q.deptIdEqualTo(SpHelper.getStorage(Config.SP_DEPT_ID)))
.optional(EmptyUtils.isStrNotEmpty(state.filterHighNo), (q) => q.registrationNoEqualTo(state.filterHighNo))
.optional(EmptyUtils.isStrNotEmpty(state.filterVisualNo), (q) => q.individualNoEqualTo(state.filterVisualNo))
.sortByCreateTimeDesc()
.offset(state.pageCount * (state.pagination - 1))
.limit(state.pageCount)
.findAll();
if (pageData.isEmpty) {
state.pagination--;
}
//查询出高频耳标和可视耳标
if (pageData != null) {
for (int i = 0; i < pageData!.length; i++) {
CattleResumeEntity? cre = await GlobalService.to.isar.cattleResumeEntitys
.filter()
.unidEqualTo(pageData[i].cattleresumeId)
.findFirst();
if (cre != null) {
pageData[i].cattleresumeId = cre.unid;
pageData[i].registrationNo = cre.registrationNo;
pageData[i].individualNo = cre.individualNo;
pageData[i].breedingPlantId = await DictUtils.getDictName('zxgl_breeding_list', cre.deptId ?? '');
pageData[i].raiseVarieties = await DictUtils.getDictName('zxgl_cattle_raiseVarieties', cre.raiseVarieties ?? '');
}
}
}
state.dataList.addAll(pageData);
getItemList(state.dataList);
}
onRefresh() {
state.isFilter = false;
queryFirstPage();
}
onLoad() {
if (!state.isFilter) {
state.pagination++;
queryOnePage();
}
}
clean() {
state.filterHighNo = '';
state.filterVisualNo = '';
highController.text = '';
update();
}
getItemList(List<BreedingRecordEntity> itemDateList) async {
List<Widget> list = [];
if (kDebugMode) {
print('配种列表数量:${itemDateList.length}');
}
for (int i = 0; i < itemDateList.length; i++) {
list.add(Padding(
padding: const EdgeInsets.all(15.0),
child: InkWell(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
getCattleResumeItem('电子耳标', itemDateList[i].registrationNo),
const SizedBox(
height: 5,
),
getCattleResumeItem('可视耳标', itemDateList[i].individualNo),
const SizedBox(
height: 5,
),
getCattleResumeItem('所属种蓄站', itemDateList[i].breedingPlantId),
const SizedBox(
height: 5,
),
getCattleResumeItem('饲养品种', itemDateList[i].raiseVarieties ?? ''),
],
),
onTap: () => itemOnClickListener(entity: itemDateList[i]),
),
));
}
state.items = list;
update();
}
getCattleResumeItem(String title, String? context) {
// print('why:$title:$context');
return Row(
children: [
Text(
title,
style: const TextStyle(
color: Colors.black,
fontSize: 15,
),
),
const Expanded(
child: SizedBox(
height: 1,
),
),
Text(
context ?? '',
style: const TextStyle(
color: Colors.black45,
fontSize: 15,
),
),
],
);
}
Future<void> itemOnClickListener({BreedingRecordEntity? entity}) async {
Map<String, dynamic> params = {};
params.putIfAbsent("entity", () => entity);
params.putIfAbsent("cattleResumeEntity", () => state.cattleResumeEntity);
var date = await Get.toNamed(AppRoute.BREEDING_RECORD, arguments: params);
if (date == 'refresh') {
queryFirstPage();
}
}
///扫描高频耳标
scanRfid() {
if (!Config.isConnect) {
Get.toNamed(AppRoute.SETTING);
return;
}
if (!RfidPlugin.isInventory) {
RfidPlugin.startInventory((epc, agrs1) {
RfidPlugin.stopInventory();
print('why:epc:$epc');
state.filterHighNo = epc;
RfidPlugin.isInventory = false;
highController.text = state.filterHighNo;
update();
});
}
}
}
import 'package:anchor_collect_flutter/models/breeding_record_entity.dart';
import 'package:flutter/cupertino.dart';
import '../../../models/cattle_resume_entity.dart';
class BreedingRecordListState {
late List<BreedingRecordEntity> dataList;
late List<Widget> items;
CattleResumeEntity? cattleResumeEntity;
int pageCount = 20;
int pagination = 1;
String filterHighNo='';
String filterVisualNo='';
bool isFilter = false;
BreedingRecordListState() {
items = [];
dataList = [];
}
}
import 'package:easy_refresh/easy_refresh.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../../congifs.dart';
import 'breeding_record_list_logic.dart';
class BreedingRecordListPage extends StatelessWidget {
BreedingRecordListPage({Key? key}) : super(key: key);
final logic = Get.find<BreedingRecordListLogic>();
final state = Get.find<BreedingRecordListLogic>().state;
late EasyRefreshController _controller;
@override
Widget build(BuildContext context) {
_controller = EasyRefreshController();
logic.queryFirstPage();
return Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: const Text('配种列表'),
backgroundColor: Colors.blue,
centerTitle: true,
actions: [
Padding(
padding: const EdgeInsets.all(5.0),
child: InkWell(
child: const Icon(Icons.search),
onTap: () {
logic.clean();
logic.isShow = !logic.isShow;
logic.update();
},
),
),
Config.isAdmin?Container():Padding(
padding: const EdgeInsets.all(5.0),
child: InkWell(
child: const Center(
child: Text('新增'),
),
onTap: () => {
logic.itemOnClickListener(),
},
),
),
],
),
body: GetBuilder<BreedingRecordListLogic>(builder: (logic) {
return Center(
child: Stack(children: [
EasyRefresh(
controller: _controller,
onLoad: () => logic.onLoad(),
onRefresh: () => logic.onRefresh(),
child: ListView.separated(
itemCount: state.items.length,
itemBuilder: (context, index) {
return state.items[index];
},
separatorBuilder: (context, index) {
return Container(
height: 3,
color: Colors.black12,
);
},
),
),
logic.isShow
? Row(
children: [
Expanded(
child: InkWell(
child: Container(
height: double.infinity,
color: Colors.black26,
),
onTap: () => {
logic.isShow = false,
logic.update(),
},
),
),
GetBuilder<BreedingRecordListLogic>(builder: (logic) {
return Container(
width: 280,
color: Colors.white,
padding: const EdgeInsets.all(20),
child: Column(
mainAxisSize: MainAxisSize.max,
children: [
TextField(
readOnly: true,
controller: logic.highController,
onChanged: (text) {
state.filterHighNo = text;
},
decoration: const InputDecoration(
prefixIcon: Icon(Icons.search),
border: OutlineInputBorder(),
hintText: '电子耳标(点击扫描)',
contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0),
),
onTap: () => {
logic.scanRfid(),
},
),
const SizedBox(
height: 10,
),
TextField(
onChanged: (text) {
state.filterVisualNo = text;
},
decoration: const InputDecoration(
prefixIcon: Icon(Icons.search),
border: OutlineInputBorder(),
hintText: '可视耳标',
contentPadding: EdgeInsets.symmetric(horizontal: 10.0, vertical: 8.0),
),
),
const SizedBox(
height: 10,
),
SizedBox(
width: Get.width,
child: TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.blue),
foregroundColor: MaterialStateProperty.all(Colors.white),
padding: MaterialStateProperty.all(const EdgeInsets.all(10)),
),
onPressed: () => {
logic.queryByFilter(),
},
child: const Text("查询"),
),
),
const SizedBox(
height: 10,
),
SizedBox(
width: Get.width,
child: TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.white),
foregroundColor: MaterialStateProperty.all(Colors.blue),
padding: MaterialStateProperty.all(const EdgeInsets.all(10)),
shape: MaterialStateProperty.all<RoundedRectangleBorder>(
RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
),
side: MaterialStateProperty.all<BorderSide>(const BorderSide(
color: Colors.black54, // 边框颜色
width: 1, // 边框宽度
)),
),
onPressed: () => logic.clean(),
child: const Text("重置"),
),
),
],
),
);
}),
],
)
: Container(),
]),
);
}),
);
}
}
import 'package:anchor_collect_flutter/models/breeding_record_entity.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:isar/isar.dart';
import 'package:uuid/uuid.dart';
import '../../congifs.dart';
import '../../controllers/global_service.dart';
import '../../models/breeding_record_detail_entity.dart';
import '../../models/cattle_resume_entity.dart';
import '../../rfid/rfid_plugin.dart';
import '../../routes/routes.dart';
import '../../utils/dialog_utils.dart';
import '../../utils/dict_utils.dart';
import '../../utils/empty_utils.dart';
import '../../utils/sp_helper.dart';
import 'breeding_record_state.dart';
class BreedingRecordLogic extends GetxController {
final BreedingRecordState state = BreedingRecordState();
// 创建一个Uuid实例
var uuid = Uuid();
@override
void onInit() {
Map<String, dynamic>? arguments = Get.arguments;
if (arguments != null) {
BreedingRecordEntity? entity = arguments['entity'];
state.cattleResumeEntity = arguments['cattleResumeEntity'];
state.unid = uuid.v4().hashCode.toString() + uuid.v4().hashCode.toString();
if (entity != null) {
state.entity.value = entity;
state.isModify = true;
state.unid = state.entity.value.unid!;
queryBreedingRecordDetail();
} else {
///如果没有配种记录,先要查询一下
if (state.cattleResumeEntity != null) {
queryBreedingRecord('', '');
}
}
}
}
///查主表
queryBreedingRecord(String registrationNo, String individualNo) async {
BreedingRecordEntity? bre = await GlobalService.to.isar.breedingRecordEntitys
.filter()
.optional(state.cattleResumeEntity != null, (q) => q.cattleresumeIdEqualTo(state.cattleResumeEntity!.unid))
.optional(EmptyUtils.isStrNotEmpty(registrationNo), (q) => q.registrationNoEqualTo(registrationNo))
.optional(EmptyUtils.isStrNotEmpty(individualNo), (q) => q.individualNoEqualTo(individualNo))
.sortByCreateTimeDesc()
.findFirst();
if (bre != null) {
copyEntity(bre);
queryBreedingRecordDetail();
} else {
///没有就创建新的
CattleResumeEntity? cre = await GlobalService.to.isar.cattleResumeEntitys
.filter()
.optional(EmptyUtils.isStrNotEmpty(registrationNo), (q) => q.registrationNoEqualTo(registrationNo))
.optional(EmptyUtils.isStrNotEmpty(individualNo), (q) => q.individualNoEqualTo(individualNo))
.sortByCreateTimeDesc()
.findFirst();
if (cre != null) {
state.entity.value.unid = state.unid;
state.entity.value.cattleresumeId = cre.unid;
state.entity.value.registrationNo = cre.registrationNo;
state.entity.value.individualNo = cre.individualNo;
update();
} else {
DialogUtils.showWarningDialog('无此标签数据!');
}
}
}
///查子表数据
queryBreedingRecordDetail() async {
state.dataList.clear();
var pageData = await GlobalService.to.isar.breedingRecordDetailEntitys
.filter()
.unidIsNotEmpty()
.fUnidEqualTo(state.entity.value.unid)
.sortByCreateTimeDesc()
.findAll();
//查询出高频耳标和可视耳标
if (pageData != null) {
for (int i = 0; i < pageData!.length; i++) {
pageData[i].cattleresumeId = state.entity.value.cattleresumeId;
pageData[i].registrationNo = state.entity.value.registrationNo;
pageData[i].individualNo = state.entity.value.individualNo;
}
}
state.dataList.addAll(pageData);
getItemList(state.dataList);
}
clean() {
update();
}
Future<void> itemOnClickListener({BreedingRecordDetailEntity? entity}) async {
if (entity == null) {
///保存配种主表
await GlobalService.to.isar.writeTxn(() async => {
await GlobalService.to.isar.breedingRecordEntitys.put(state.entity.value),
});
}
Map<String, dynamic> params = {};
params.putIfAbsent("entity", () => state.entity.value);
params.putIfAbsent("detailEntity", () => entity);
var date = await Get.toNamed(AppRoute.BREEDING_RECORD_DETAIL, arguments: params);
if (date == 'refresh') {
queryBreedingRecordDetail();
}
}
///扫描高频耳标
scanRfid() {
if (!Config.isConnect) {
Get.toNamed(AppRoute.SETTING);
return;
}
if (!RfidPlugin.isInventory) {
RfidPlugin.startInventory((epc, agrs1) {
RfidPlugin.stopInventory();
print('why:epc:$epc');
RfidPlugin.isInventory = false;
state.entity.value.registrationNo = epc;
state.entity.value.individualNo = '';
state.entity.value = BreedingRecordEntity();
queryBreedingRecord(epc, '');
update();
});
}
}
copyEntity(BreedingRecordEntity formerEntity) {
state.entity.value.id = formerEntity.id;
state.entity.value.unid = formerEntity.unid;
state.entity.value.cattleresumeId = formerEntity.cattleresumeId;
state.entity.value.registrationNo = formerEntity.registrationNo;
state.entity.value.individualNo = formerEntity.individualNo;
state.entity.value.raiseVarieties = formerEntity.raiseVarieties;
state.entity.value.location = formerEntity.location;
state.entity.value.breedingPlantId = formerEntity.breedingPlantId;
state.entity.value.uploadStatus = formerEntity.uploadStatus;
state.entity.value.deptId = formerEntity.deptId;
state.entity.value.searchValue = formerEntity.searchValue;
state.entity.value.createBy = formerEntity.createBy;
state.entity.value.createTime = formerEntity.createTime;
state.entity.value.updateBy = formerEntity.updateBy;
state.entity.value.updateTime = formerEntity.updateTime;
state.entity.value.remark = formerEntity.remark;
}
///子表item布局
getItemList(List<BreedingRecordDetailEntity> itemDateList) async {
List<Widget> list = [];
if (kDebugMode) {
print('配种列表数量:${itemDateList.length}');
}
for (int i = 0; i < itemDateList.length; i++) {
list.add(Padding(
padding: const EdgeInsets.all(15.0),
child: InkWell(
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
SizedBox(
height: 5,
child: Container(
height: 5,
color: Colors.black12,
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
getDialogItemView(
'配种方式',
await DictUtils.getDictName(
'zxgl_cattlemating_matingStyle', itemDateList[i].matingStyle ?? '')),
getDialogItemView('配种日期', itemDateList[i].matingDate ?? ''),
],
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
getDialogItemView('预产日期', itemDateList[i].dueDate ?? ''),
getDialogItemView('冻精批次', itemDateList[i].frozenSemenBatch ?? ''),
],
),
),
Padding(
padding: const EdgeInsets.all(2.0),
child: Row(
children: [
getDialogItemView('备注', itemDateList[i].remark ?? ''),
],
),
),
const SizedBox(
height: 5,
),
],
),
onTap: () => itemOnClickListener(entity: itemDateList[i]),
),
));
}
state.items = list;
update();
}
///弹窗item
getDialogItemView(String title, String context) {
return Expanded(
child: Container(
decoration: const BoxDecoration(
color: Colors.white,
boxShadow: [
BoxShadow(
color: Colors.black12,
blurRadius: 2,
),
],
),
padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const SizedBox(
height: 10,
),
Text(
title,
style: const TextStyle(
color: Colors.blue,
fontSize: 14,
),
),
const SizedBox(
height: 10,
),
SizedBox(
height: 1,
child: Container(
color: Colors.black12,
height: 1,
),
),
const SizedBox(
height: 10,
),
Text(
context,
style: const TextStyle(
height: 1.5,
color: Colors.black,
fontSize: 14,
),
),
const SizedBox(
height: 10,
),
],
),
),
);
}
}
import 'package:anchor_collect_flutter/models/breeding_record_detail_entity.dart';
import 'package:anchor_collect_flutter/models/breeding_record_entity.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../models/cattle_resume_entity.dart';
class BreedingRecordState {
late Rx<BreedingRecordEntity> entity = BreedingRecordEntity().obs;
CattleResumeEntity? cattleResumeEntity;
late List<BreedingRecordDetailEntity> dataList = [];
late List<Widget> items = [];
/** 电子耳标 */
String? registrationNo;
/** 可视耳标 */
String? individualNo;
late String unid;
bool isModify = false;
BreedingRecordState() {
///Initialize variables
}
}
This diff is collapsed.
......@@ -2,29 +2,26 @@ import 'package:flutter/material.dart';
import '../../../models/cattle_resume_entity.dart';
class CattleResumeListState {
late List<CattleResumeEntity> dataList;
late List<Widget> items;
int pageCount = 10;
int pageCount = 20;
int pagination = 1;
String filterHighNo='';
String filterVisualNo='';
String filterFatherNo='';
String filterMotherNo='';
String filterHighNo = '';
String filterVisualNo = '';
String filterFatherNo = '';
String filterMotherNo = '';
String cattleManId = '';
String cattleManName = '';
bool isFilter = false;
bool isFilter = false;
String? status = '';///牛只状态 饲养 淘汰 出售
CattleResumeListState() {
items = [];
dataList = [
// CattleResumeEntity('1234567890',registrationNo: '111111111', individualNo: '111', circleNo: '001', raiseVarieties: '牛'),
// CattleResumeEntity('2342424324',registrationNo: '2222222222', individualNo: '222', circleNo: '002', raiseVarieties: '牛'),
// CattleResumeEntity('45645645646',registrationNo: '3333333333', individualNo: '333', circleNo: '003', raiseVarieties: '牛'),
// CattleResumeEntity('76868768686',registrationNo: '4444444444', individualNo: '444', circleNo: '004', raiseVarieties: '牛'),
];
dataList = [];
}
}
import 'package:get/get.dart';
import '../../models/cattle_resume_entity.dart';
class CattleResumeState {
late CattleResumeEntity entity = CattleResumeEntity();
late Rx<CattleResumeEntity> entity = CattleResumeEntity().obs;
late String photoPath='';
late String raiseType='';
......
......@@ -4,17 +4,19 @@ import 'package:anchor_collect_flutter/models/user_model.dart';
import 'package:get/get.dart';
import 'package:isar/isar.dart';
import '../../congifs.dart';
import '../../controllers/global_service.dart';
import '../../routes/routes.dart';
import '../../utils/sp_helper.dart';
class HomeLogic extends GetxController {
late RxString username = ''.obs;
late String password = '';
late RxInt breedingCount = 0.obs;
late RxInt obsoleteCount = 0.obs;
late RxInt deadCount = 0.obs;
late RxInt sellCount = 0.obs;
late int breedingCount = 0;
late int obsoleteCount = 0;
late int deadCount = 0;
late int sellCount = 0;
@override
void onReady() {
......@@ -59,10 +61,20 @@ class HomeLogic extends GetxController {
}
getBreedingCount() async {
breedingCount.value = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('1').count();
obsoleteCount.value = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('2').count();
deadCount.value = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('3').count();
sellCount.value = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('4').count();
breedingCount = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('1')
.optional(!Config.isAdmin, (q) => q.deptIdEqualTo(SpHelper.getStorage(Config.SP_DEPT_ID))).count();
obsoleteCount = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('2')
.optional(!Config.isAdmin, (q) => q.deptIdEqualTo(SpHelper.getStorage(Config.SP_DEPT_ID))).count();
deadCount = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('3')
.optional(!Config.isAdmin, (q) => q.deptIdEqualTo(SpHelper.getStorage(Config.SP_DEPT_ID))).count();
sellCount = await GlobalService.to.isar.cattleResumeEntitys.filter().statusEqualTo('4')
.optional(!Config.isAdmin, (q) => q.deptIdEqualTo(SpHelper.getStorage(Config.SP_DEPT_ID))).count();
update();
}
setBreedingCount(){
breedingCount = 0;
update();
}
forWard(String title) {
......@@ -71,14 +83,19 @@ class HomeLogic extends GetxController {
Get.toNamed(AppRoute.CATTLE_RESUME_LIST);
break;
case '性能测定':
Get.toNamed(AppRoute.PERFORMANCE_LIST);
break;
case '诊疗记录':
Get.toNamed(AppRoute.MEDICAL_RECORD_LIST);
break;
case '配种记录':
Get.toNamed(AppRoute.BREEDING_RECORD_LIST);
break;
case '免疫记录':
Get.toNamed(AppRoute.IMMUNE_BATCH_LIST);
break;
case '称重管理':
Get.toNamed(AppRoute.WEIGHT_MAN_LIST);
break;
}
}
......
This diff is collapsed.
import 'package:get/get.dart';
import 'immune_batch_logic.dart';
class ImmuneBatchBinding extends Bindings {
@override
void dependencies() {
Get.lazyPut(() => ImmuneBatchLogic());
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -22,7 +22,7 @@ class MainPage extends StatelessWidget {
HomePage(),
MessagePage(),
SyncPage(),
const MinePage(),
MinePage(),
];
final PageController _pageController = PageController(
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment