Browse Source

联调扦样详情

maqiang 1 year ago
parent
commit
f4ad8c16ed

+ 114 - 101
lib/model/rsp/sample_task_rsp.dart

@@ -21,90 +21,90 @@ class SampleTaskListRsp {
21 21
 
22 22
 @JsonSerializable(converters: [NumConverter(), StringConverter()])
23 23
 class SampleTaskItem {
24
-  final num? id;
25
-  final String? qyryName; // 人员名称
26
-  final String? fjrq; // 分解日期
27
-  final String? ypbh; // 样品编号
28
-  final String? jtpzmc; // 具体品种名称
29
-  final num? deliveryStatus; // 任务单任务状态:0是待扦样,1已扦样
30
-  final num? jhcysl; // 计划采样数量
31
-  final num? zljysl; // 质量检验数量
32
-  final num? pzjyjg; // 品质检验机构
33
-  final num? pzjysl; // 品质检验数量
34
-  final num? sajyjg; // 食安检验机构
35
-  final num? sajysl; // 食安检验数量
36
-  final num? jhcyjg; // 扦样机构
37
-  final String? lspz; // 粮食品种
38
-  final num? bchlx; // 病虫害类型
39
-  final String? bdcnhhhzs; // 被调查农户或合作社
40
-  final num? gcpwlx; // 工厂排污类型
41
-  final String? lxfs; // 联系方式
42
-  final num? qydbsl; // 扦样代表数量(公斤)
43
-  final String? qyddjwd; // 扦样地点经纬度
44
-  final String? qysj; // 扦样时间
45
-  final num? qysl; // 扦样数量(公斤)
46
-  final bool? scgczsffsbjyzdbch; // 生产过程中是否发生比较严重的病虫害
47
-  final String? sheng; // 省
48
-  final String? shi; // 市
49
-  final String? qu; // 区
50
-  final String? xian; // 县
51
-  final String? cun; // 村
52
-  final num? shidu; // 湿度
53
-  final String? shsj; // 收获时间
54
-  final num? trdllx; // 土壤地理类型
55
-  final num? wendu; // 温度
56
-  final num? wrwlx; // 污染物类型
57
-  final num? zzmj; // 种植面积(亩地)
58
-  final bool? zztdzwsfygcpw; // 种植土地周围是否有工厂排污
59
-  final bool? zztdzwsysytrsfywr; // 种植土地周围使用水源、土壤是否有污染
60
-  final num? zjBaseEnterpriseId; // 企业基本信息ID
61
-  final num? zjBasePersonnelId; // 人员基本信息表ID
62
-  final num? zjCodeSamplingTaskId;
63
-  final num? zjCodeSamplingPlanId; // 采样计划详情ID
64
-  final String? xzqh; // 行政区划
65
-  final num? zjBaseGrainInformationId; // 品种id
66
-  final num? cypzmc; // 采样品种名称
67
-  final String? cypzName; // 采样品种名称
68
-  final String? qyrwdh; // 扦样任务单号
69
-  final num? shengXzqh; // 省行政区划id
70
-  final num? shiXzqh; // 市行政区划id
71
-  final num? quXzqh; // 区行政区划id
72
-  final num? xiangXzqh; // 县行政区划id
73
-  final num? cunXzqh; // 村行政区划id
74
-  final num? createTime; // 创建时间
75
-  final num? state; // 0是待扦样,1已扦样,2已完成
76
-  final String? name; // 扦样人员姓名
77
-  final String? rwjssj; // 任务接收时间
78
-  final String? bsjzsj; // 报送截止时间
79
-  final num? rwlx; // 任务类型/监测环节
80
-  final num? jclb; // 监测类别
81
-  final String? dwmc; // 单位名称
82
-  final List<EnterpriseItem>? enterpriseList; // 机构信息
83
-  final List<UseMedicineItem>? codeUseMedicineList; // 种植期间农药使用情况
84
-  final String? zzpz; // 种植品种
85
-  final String? shengXzqhName; // 省
86
-  final String? shiXzqhName; // 市
87
-  final String? quXzqhName; // 区
88
-  final String? xiangXzqhName; // 县
89
-  final String? cunXzqhName; // 村
90
-  final String? cyjhbmCode; // 采样计划编号
91
-  final String? cyjhmc; // 采样计划名称
92
-  final String? niandu; // 年度
93
-  final List<SamplingTaskAllotSgjcItem>? codeSamplingTaskAllotSgjcRespList; // 任务分配
94
-  // final List<>? codeSamplingTaskDetailsKcjcRespVO; // 库存检测
95
-  // final List<>? fplist; // 分配多条信息
96
-  final num? sfyzpz; // 是否优质品种
97
-  final num? yzpzlx; // 优质品种类型
98
-  final num? shqjsffslyytq; // 收货期间是否发生连阴雨天气
99
-  final num? shlssfsfpg; // 收货粮食水分是否偏高
100
-  final num? jnlbdsffszmwr; // 近年来本地是否发生真菌毒素污染
101
-  final num? zjdswrlx; // 真菌毒素污染类型
102
-  final num? jnlbdsfzjswr; // 近年来本地是否发生重金属污染
103
-  final num? zjswrlx; // 重金属污染类型
104
-  final List<JyjgxxItem>? jyjgxxRespVOList; // 检验机构信息
105
-  final num? jypzStatus; // 检验品质按钮0显示1不显示
24
+  num? id;
25
+  String? qyryName; // 人员名称
26
+  String? fjrq; // 分解日期
27
+  String? ypbh; // 样品编号
28
+  String? jtpzmc; // 具体品种名称
29
+  num? deliveryStatus; // 任务单任务状态:0是待扦样,1已扦样
30
+  num? jhcysl; // 计划采样数量
31
+  num? zljysl; // 质量检验数量
32
+  num? pzjyjg; // 品质检验机构
33
+  num? pzjysl; // 品质检验数量
34
+  num? sajyjg; // 食安检验机构
35
+  num? sajysl; // 食安检验数量
36
+  num? jhcyjg; // 扦样机构
37
+  String? lspz; // 粮食品种
38
+  num? bchlx; // 病虫害类型
39
+  String? bdcnhhhzs; // 被调查农户或合作社
40
+  num? gcpwlx; // 工厂排污类型
41
+  String? lxfs; // 联系方式
42
+  num? qydbsl; // 扦样代表数量(公斤)
43
+  String? qyddjwd; // 扦样地点经纬度
44
+  String? qysj; // 扦样时间
45
+  num? qysl; // 扦样数量(公斤)
46
+  bool? scgczsffsbjyzdbch; // 生产过程中是否发生比较严重的病虫害
47
+  String? sheng; // 省
48
+  String? shi; // 市
49
+  String? qu; // 区
50
+  String? xian; // 县
51
+  String? cun; // 村
52
+  num? shidu; // 湿度
53
+  String? shsj; // 收获时间
54
+  num? trdllx; // 土壤地理类型
55
+  num? wendu; // 温度
56
+  num? wrwlx; // 污染物类型
57
+  num? zzmj; // 种植面积(亩地)
58
+  bool? zztdzwsfygcpw; // 种植土地周围是否有工厂排污
59
+  bool? zztdzwsysytrsfywr; // 种植土地周围使用水源、土壤是否有污染
60
+  num? zjBaseEnterpriseId; // 企业基本信息ID
61
+  num? zjBasePersonnelId; // 人员基本信息表ID
62
+  num? zjCodeSamplingTaskId;
63
+  num? zjCodeSamplingPlanId; // 采样计划详情ID
64
+  String? xzqh; // 行政区划
65
+  num? zjBaseGrainInformationId; // 品种id
66
+  num? cypzmc; // 采样品种名称
67
+  String? cypzName; // 采样品种名称
68
+  String? qyrwdh; // 扦样任务单号
69
+  num? shengXzqh; // 省行政区划id
70
+  num? shiXzqh; // 市行政区划id
71
+  num? quXzqh; // 区行政区划id
72
+  num? xiangXzqh; // 县行政区划id
73
+  num? cunXzqh; // 村行政区划id
74
+  num? createTime; // 创建时间
75
+  num? state; // 0是待扦样,1已扦样,2已完成
76
+  String? name; // 扦样人员姓名
77
+  String? rwjssj; // 任务接收时间
78
+  String? bsjzsj; // 报送截止时间
79
+  num? rwlx; // 任务类型/监测环节
80
+  num? jclb; // 监测类别
81
+  String? dwmc; // 单位名称
82
+  List<EnterpriseItem>? enterpriseList; // 机构信息
83
+  List<UseMedicineItem>? codeUseMedicineList; // 种植期间农药使用情况
84
+  String? zzpz; // 种植品种
85
+  String? shengXzqhName; // 省
86
+  String? shiXzqhName; // 市
87
+  String? quXzqhName; // 区
88
+  String? xiangXzqhName; // 县
89
+  String? cunXzqhName; // 村
90
+  String? cyjhbmCode; // 采样计划编号
91
+  String? cyjhmc; // 采样计划名称
92
+  String? niandu; // 年度
93
+  List<SamplingTaskAllotSgjcItem>? codeSamplingTaskAllotSgjcRespList; // 任务分配
94
+  // List<>? codeSamplingTaskDetailsKcjcRespVO; // 库存检测
95
+  // List<>? fplist; // 分配多条信息
96
+  num? sfyzpz; // 是否优质品种
97
+  num? yzpzlx; // 优质品种类型
98
+  num? shqjsffslyytq; // 收货期间是否发生连阴雨天气
99
+  num? shlssfsfpg; // 收货粮食水分是否偏高
100
+  num? jnlbdsffszmwr; // 近年来本地是否发生真菌毒素污染
101
+  num? zjdswrlx; // 真菌毒素污染类型
102
+  num? jnlbdsfzjswr; // 近年来本地是否发生重金属污染
103
+  num? zjswrlx; // 重金属污染类型
104
+  List<JyjgxxItem>? jyjgxxRespVOList; // 检验机构信息
105
+  num? jypzStatus; // 检验品质按钮0显示1不显示
106 106
 
107
-  const SampleTaskItem({
107
+  SampleTaskItem({
108 108
     this.id,
109 109
     this.qyryName,
110 110
     this.fjrq,
@@ -294,19 +294,19 @@ class EnterpriseItem {
294 294
 
295 295
 @JsonSerializable(converters: [NumConverter(), StringConverter()])
296 296
 class UseMedicineItem {
297
-  final num? id; //ID
298
-  final String? cjsj; //创建时间
299
-  final String? syff; //施药方式
300
-  final String? synypz; //使用农药品种
301
-  final num? synysl; //扦样使用农药的数量(公斤或毫升/每亩地)
302
-  final String? sysj; //施药时间
303
-  final num? zjCodeSamplingTaskDetailsKcjcId;
304
-  final num? zjCodeSamplingTaskDetailsSgjcId;
305
-  final String? createTime; //创建时间
306
-  final String? jcz; //检测值
307
-  final String? zczfw; //正常值范围
297
+  num? id; //ID
298
+  String? cjsj; //创建时间
299
+  String? syff; //施药方式
300
+  String? synypz; //使用农药品种
301
+  num? synysl; //扦样使用农药的数量(公斤或毫升/每亩地)
302
+  String? sysj; //施药时间
303
+  num? zjCodeSamplingTaskDetailsKcjcId;
304
+  num? zjCodeSamplingTaskDetailsSgjcId;
305
+  String? createTime; //创建时间
306
+  String? jcz; //检测值
307
+  String? zczfw; //正常值范围
308 308
 
309
-  const UseMedicineItem({
309
+  UseMedicineItem({
310 310
     this.id,
311 311
     this.cjsj,
312 312
     this.syff,
@@ -370,18 +370,31 @@ class SamplingTaskAllotSgjcItem {
370 370
 
371 371
 @JsonSerializable(converters: [NumConverter(), StringConverter()])
372 372
 class JyjgxxItem {
373
-  final num? zjBaseEnterpriseId; //企业id
374
-  final String? dwmc; //单位名称
375
-  final String? address; //具体地址
376
-  final String? jydh; //检验单号
377
-  final String? ypjssj; //样品接收时间
373
+  //企业id
374
+  final num? zjBaseEnterpriseId;
375
+
376
+  //单位名称
377
+  final String? dwmc;
378
+
379
+  //具体地址
380
+  final String? address;
381
+
382
+  //检验单号
383
+  final String? jydh;
384
+
385
+  //样品接收时间
386
+  final String? ypjssj;
387
+
388
+  //数据标记 1-质量,2-品质,3-食品安全,4-储存
389
+  final num? sjbj;
378 390
 
379
-  JyjgxxItem({
391
+  const JyjgxxItem({
380 392
     this.zjBaseEnterpriseId,
381 393
     this.dwmc,
382 394
     this.address,
383 395
     this.jydh,
384 396
     this.ypjssj,
397
+    this.sjbj,
385 398
   });
386 399
 
387 400
   factory JyjgxxItem.fromJson(Map<String, dynamic> json) => _$JyjgxxItemFromJson(json);

+ 70 - 14
lib/page/sample_task/reap_sample_detail/reap_sample_disaster_detail_page.dart

@@ -1,5 +1,7 @@
1 1
 import 'package:flutter/material.dart';
2
+import 'package:lszlgl/base/base_lifecycle_state.dart';
2 3
 import 'package:lszlgl/base/base_state.dart';
4
+import 'package:lszlgl/utils/string_utils.dart';
3 5
 import 'package:lszlgl/widget/button.dart';
4 6
 import 'package:lszlgl/widget/card_item.dart';
5 7
 
@@ -15,8 +17,14 @@ class ReapSampleDisasterDetailPage extends StatefulWidget {
15 17
   State<ReapSampleDisasterDetailPage> createState() => _ReapSampleDisasterDetailPageState();
16 18
 }
17 19
 
18
-class _ReapSampleDisasterDetailPageState extends BaseState<ReapSampleDisasterDetailPage>
19
-    with AutomaticKeepAliveClientMixin {
20
+class _ReapSampleDisasterDetailPageState extends BaseLifecycleState<ReapSampleDisasterDetailPage> with AutomaticKeepAliveClientMixin {
21
+  SampleTaskItem? data;
22
+
23
+  @override
24
+  void onInit() {
25
+    data = widget.data;
26
+  }
27
+
20 28
   @override
21 29
   bool get wantKeepAlive => true;
22 30
 
@@ -34,18 +42,66 @@ class _ReapSampleDisasterDetailPageState extends BaseState<ReapSampleDisasterDet
34 42
   Widget buildList() {
35 43
     return Column(
36 44
       children: [
37
-        CardItemWidget('种植土地周围是否有工厂排污', rightText: '是', bottomLine: true),
38
-        CardItemWidget('工厂排污类型', rightText: '***********', bottomLine: true),
39
-        CardItemWidget('种植土地周围使用水源、土壤是否有污染', rightText: '是', bottomLine: true),
40
-        CardItemWidget('污染物类型', rightText: '***********', bottomLine: true),
41
-        CardItemWidget('生产过程中是否发生比较严重的病虫害', rightText: '否', bottomLine: true),
42
-        CardItemWidget('病虫害类型', rightText: '***********', bottomLine: true),
43
-        CardItemWidget('收货期间是否发生连阴雨天气', rightText: '是', bottomLine: true),
44
-        CardItemWidget('收货粮食水分是否偏高', rightText: '否', bottomLine: true),
45
-        CardItemWidget('近年来本地是否发生真菌毒素污染', rightText: '是', bottomLine: true),
46
-        CardItemWidget('真菌毒素污染类型', rightText: '***********', bottomLine: true),
47
-        CardItemWidget('近年来本地是否发生重金属污染', rightText: '否', bottomLine: true),
48
-        CardItemWidget('重金属污染类型', rightText: '***********', bottomLine: true),
45
+        CardItemWidget(
46
+          '种植土地周围是否有工厂排污',
47
+          rightText: StringUtils.boolStr(data?.zztdzwsfygcpw),
48
+          bottomLine: true,
49
+        ),
50
+        CardItemWidget(
51
+          '工厂排污类型',
52
+          rightText: data?.gcpwlx?.toString() ?? '',
53
+          bottomLine: true,
54
+        ),
55
+        CardItemWidget(
56
+          '种植土地周围使用水源、土壤是否有污染',
57
+          rightText: StringUtils.boolStr(data?.zztdzwsysytrsfywr),
58
+          bottomLine: true,
59
+        ),
60
+        CardItemWidget(
61
+          '污染物类型',
62
+          rightText: data?.wrwlx?.toString() ?? '',
63
+          bottomLine: true,
64
+        ),
65
+        CardItemWidget(
66
+          '生产过程中是否发生比较严重的病虫害',
67
+          rightText: StringUtils.boolStr(data?.scgczsffsbjyzdbch),
68
+          bottomLine: true,
69
+        ),
70
+        CardItemWidget(
71
+          '病虫害类型',
72
+          rightText: data?.bchlx?.toString() ?? '',
73
+          bottomLine: true,
74
+        ),
75
+        CardItemWidget(
76
+          '收货期间是否发生连阴雨天气',
77
+          rightText: StringUtils.boolStrByNum(data?.shqjsffslyytq),
78
+          bottomLine: true,
79
+        ),
80
+        CardItemWidget(
81
+          '收货粮食水分是否偏高',
82
+          rightText: StringUtils.boolStrByNum(data?.shlssfsfpg),
83
+          bottomLine: true,
84
+        ),
85
+        CardItemWidget(
86
+          '近年来本地是否发生真菌毒素污染',
87
+          rightText: StringUtils.boolStrByNum(data?.jnlbdsffszmwr),
88
+          bottomLine: true,
89
+        ),
90
+        CardItemWidget(
91
+          '真菌毒素污染类型',
92
+          rightText: data?.zjdswrlx?.toString() ?? '',
93
+          bottomLine: true,
94
+        ),
95
+        CardItemWidget(
96
+          '近年来本地是否发生重金属污染',
97
+          rightText: StringUtils.boolStrByNum(data?.jnlbdsfzjswr),
98
+          bottomLine: true,
99
+        ),
100
+        CardItemWidget(
101
+          '重金属污染类型',
102
+          rightText: data?.zjswrlx?.toString() ?? '',
103
+          bottomLine: true,
104
+        ),
49 105
       ],
50 106
     );
51 107
   }

+ 30 - 9
lib/page/sample_task/reap_sample_detail/reap_sample_medicine_detail_page.dart

@@ -1,4 +1,5 @@
1 1
 import 'package:flutter/material.dart';
2
+import 'package:lszlgl/base/base_lifecycle_state.dart';
2 3
 import 'package:lszlgl/base/base_state.dart';
3 4
 import 'package:lszlgl/widget/button.dart';
4 5
 import 'package:lszlgl/widget/card_item.dart';
@@ -15,8 +16,14 @@ class ReapSampleMedicineDetailPage extends StatefulWidget {
15 16
   State<ReapSampleMedicineDetailPage> createState() => _ReapSampleMedicineDetailPageState();
16 17
 }
17 18
 
18
-class _ReapSampleMedicineDetailPageState extends BaseState<ReapSampleMedicineDetailPage>
19
-    with AutomaticKeepAliveClientMixin {
19
+class _ReapSampleMedicineDetailPageState extends BaseLifecycleState<ReapSampleMedicineDetailPage> with AutomaticKeepAliveClientMixin {
20
+  SampleTaskItem? data;
21
+
22
+  @override
23
+  void onInit() {
24
+    data = widget.data;
25
+  }
26
+
20 27
   @override
21 28
   bool get wantKeepAlive => true;
22 29
 
@@ -34,13 +41,13 @@ class _ReapSampleMedicineDetailPageState extends BaseState<ReapSampleMedicineDet
34 41
   Widget buildList() {
35 42
     return Column(
36 43
       children: List.generate(
37
-        2,
38
-        buildItem,
44
+        data?.codeUseMedicineList?.length ?? 0,
45
+        (index) => buildItem(index, data!.codeUseMedicineList![index]),
39 46
       ).toList(),
40 47
     );
41 48
   }
42 49
 
43
-  Widget buildItem(int index) {
50
+  Widget buildItem(int index, UseMedicineItem item) {
44 51
     return Container(
45 52
       clipBehavior: Clip.hardEdge,
46 53
       decoration: const BoxDecoration(
@@ -65,15 +72,29 @@ class _ReapSampleMedicineDetailPageState extends BaseState<ReapSampleMedicineDet
65 72
               child: Column(
66 73
                 mainAxisSize: MainAxisSize.min,
67 74
                 children: [
68
-                  CardItemWidget('使用农药品种', rightText: '***********', bottomLine: true, backgroundColor: null),
75
+                  CardItemWidget(
76
+                    '使用农药品种',
77
+                    rightText: item.synypz,
78
+                    bottomLine: true,
79
+                    backgroundColor: null,
80
+                  ),
69 81
                   CardItemWidget(
70 82
                     '使用农药的数量(公斤或毫升/每亩地)',
71
-                    rightText: '***********',
83
+                    rightText: item.synysl?.toString(),
72 84
                     bottomLine: true,
73 85
                     backgroundColor: null,
74 86
                   ),
75
-                  CardItemWidget('施药时间', rightText: '***********', bottomLine: true, backgroundColor: null),
76
-                  CardItemWidget('施药方法', rightText: '***********', backgroundColor: null),
87
+                  CardItemWidget(
88
+                    '施药时间',
89
+                    rightText: item.sysj,
90
+                    bottomLine: true,
91
+                    backgroundColor: null,
92
+                  ),
93
+                  CardItemWidget(
94
+                    '施药方法',
95
+                    rightText: item.syff,
96
+                    backgroundColor: null,
97
+                  ),
77 98
                 ],
78 99
               ),
79 100
             ),

+ 36 - 5
lib/page/sample_task/reap_sample_detail/reap_sample_org_detail_page.dart

@@ -1,4 +1,5 @@
1 1
 import 'package:flutter/material.dart';
2
+import 'package:lszlgl/base/base_lifecycle_state.dart';
2 3
 import 'package:lszlgl/base/base_state.dart';
3 4
 import 'package:lszlgl/widget/button.dart';
4 5
 import 'package:lszlgl/widget/card_item.dart';
@@ -15,7 +16,22 @@ class ReapSampleOrgDetailPage extends StatefulWidget {
15 16
   State<ReapSampleOrgDetailPage> createState() => _ReapSampleOrgDetailPageState();
16 17
 }
17 18
 
18
-class _ReapSampleOrgDetailPageState extends BaseState<ReapSampleOrgDetailPage> with AutomaticKeepAliveClientMixin {
19
+class _ReapSampleOrgDetailPageState extends BaseLifecycleState<ReapSampleOrgDetailPage> with AutomaticKeepAliveClientMixin {
20
+  SampleTaskItem? data;
21
+
22
+  String? zljyjg;
23
+
24
+  @override
25
+  void onInit() {
26
+    data = widget.data;
27
+    var list = data?.jyjgxxRespVOList;
28
+    if (list != null && list.isNotEmpty) {
29
+      for (JyjgxxItem item in list) {
30
+        // if(item.)
31
+      }
32
+    }
33
+  }
34
+
19 35
   @override
20 36
   bool get wantKeepAlive => true;
21 37
 
@@ -33,10 +49,25 @@ class _ReapSampleOrgDetailPageState extends BaseState<ReapSampleOrgDetailPage> w
33 49
   Widget buildList() {
34 50
     return Column(
35 51
       children: [
36
-        CardItemWidget('质量检验机构', rightText: '****', bottomLine: true),
37
-        CardItemWidget('机构地址', rightText: '****', bottomLine: true),
38
-        CardItemWidget('食品安全指标检验机构', rightText: '****', bottomLine: true),
39
-        CardItemWidget('机构地址', rightText: '****'),
52
+        CardItemWidget(
53
+          '质量检验机构',
54
+          rightText: zljyjg,
55
+          bottomLine: true,
56
+        ),
57
+        CardItemWidget(
58
+          '机构地址',
59
+          rightText: '****',
60
+          bottomLine: true,
61
+        ),
62
+        CardItemWidget(
63
+          '食品安全指标检验机构',
64
+          rightText: '****',
65
+          bottomLine: true,
66
+        ),
67
+        CardItemWidget(
68
+          '机构地址',
69
+          rightText: '****',
70
+        ),
40 71
       ],
41 72
     );
42 73
   }

+ 20 - 0
lib/utils/string_utils.dart

@@ -0,0 +1,20 @@
1
+/// 字符串工具类
2
+class StringUtils {
3
+  StringUtils._();
4
+
5
+  static String boolStr(bool? value) {
6
+    return switch (value) {
7
+      true => '是',
8
+      false => '否',
9
+      _ => '',
10
+    };
11
+  }
12
+
13
+  static String boolStrByNum(num? value) {
14
+    return switch (value) {
15
+      0 => '是',
16
+      1 => '否',
17
+      _ => '',
18
+    };
19
+  }
20
+}