diff --git a/lib/http/modules/key_tasks_api.dart b/lib/http/modules/key_tasks_api.dart index 3cb7f49..ff9d612 100644 --- a/lib/http/modules/key_tasks_api.dart +++ b/lib/http/modules/key_tasks_api.dart @@ -47,6 +47,18 @@ class KeyTasksApi { ); } + /// 删除 + static Future> deleteTasksData(String id) { + return HttpManager().request( + '${ApiService.basePath}/keyProject', + '/keyProject/$id', + method: Method.post, + data: { + // ...data + }, + ); + } + /// 摄像头系统-获取所有的摄像头数据 static Future> getKeyTasksListCameraAll(String type) { return HttpManager().request( @@ -153,4 +165,31 @@ class KeyTasksApi { } + /// 隐患处罚 + static Future> getHiddenDangerPenalty(Map data) { + return HttpManager().request( + '${ApiService.basePath}/keyProject', + '/hidden/penalty/feedback/list', + method: Method.post, + data: { + ...data + }, + ); + } + + /// 提交反馈 + static Future> setPenaltyFeedback(Map data) { + return HttpManager().request( + '${ApiService.basePath}/keyProject', + '/hidden/penalty/feedback/save', + method: Method.post, + data: { + ...data + }, + ); + } + + + + } \ No newline at end of file diff --git a/lib/pages/home/keyTasks/keyTasksDetail/keyTasksHiddenDanger/key_tasks_hidden_danger_detail.dart b/lib/pages/home/keyTasks/keyTasksDetail/keyTasksHiddenDanger/key_tasks_hidden_danger_detail.dart index 0ac85e2..3536a18 100644 --- a/lib/pages/home/keyTasks/keyTasksDetail/keyTasksHiddenDanger/key_tasks_hidden_danger_detail.dart +++ b/lib/pages/home/keyTasks/keyTasksDetail/keyTasksHiddenDanger/key_tasks_hidden_danger_detail.dart @@ -821,7 +821,7 @@ class _KeyTasksHiddenDangerDetailState extends State ), Divider(height: 1), - _buildInfoItem('处罚反馈人', SessionService.instance.userData?.name ?? "",), + _buildInfoItem('处罚反馈人', widget.foreignKey ,), const Divider(height: 1), GestureDetector( @@ -833,7 +833,7 @@ class _KeyTasksHiddenDangerDetailState extends State ); if (picked != null) { setState(() { - hiddenDangerRectification['rectificationTime']= DateFormat('yyyy-MM-dd HH:mm:ss').format(picked); + penaltyFeedbackData['feedbackTime']= DateFormat('yyyy-MM-dd HH:mm:ss').format(picked); }); } @@ -843,7 +843,7 @@ class _KeyTasksHiddenDangerDetailState extends State child: ListItemFactory.createRowSpaceBetweenItem( isRequired:true, leftText: "处罚反馈时间", - rightText: hiddenDangerRectification['rectificationTime'].isNotEmpty?hiddenDangerRectification['rectificationTime']:"请选择", + rightText: penaltyFeedbackData['feedbackTime'].isNotEmpty?hiddenDangerRectification['feedbackTime']:"请选择", isRight: true, ), ), @@ -1001,7 +1001,7 @@ class _KeyTasksHiddenDangerDetailState extends State height: 35, onPressed: () { if(widget.item==3){ - + _setPenaltyFeedback(); }else{ _setHiddenDangerRectification(); } @@ -1111,6 +1111,46 @@ class _KeyTasksHiddenDangerDetailState extends State } } + //隐患处理 + Future _setPenaltyFeedback() async { + try { + + + if (gaiHouImages.isEmpty) { + ToastUtil.showNormal(context, "请上传罚款缴纳单图片"); + return; + } + + penaltyFeedbackData['hiddenPenaltyId']=widget.itemId; + penaltyFeedbackData['feedbackUserId']=widget.hiddenId; + + LoadingDialogHelper.show(); + if (gaiHouImages.isNotEmpty) { + String url= await _addImgFilesZhengGaiID( + gaiHouImages, + UploadFileType.keyHomeworkRectificationPictures, + ); + penaltyFeedbackData['finePaymentReceipt']=url; + } + + LoadingDialogHelper.show(); + final Map raw = await KeyTasksApi.setPenaltyFeedback(penaltyFeedbackData,); + LoadingDialogHelper.hide(); + if (raw['success']) { + setState(() { + ToastUtil.showNormal(context, "提交成功"); + Navigator.of(context).pop('1'); + }); + } else { + ToastUtil.showNormal(context, "提交失败"); + } + } catch (e) { + // 出错时可以 Toast 或者在页面上显示错误状态 + print('加载首页数据失败:$e'); + LoadingDialogHelper.hide(); + } + } + //隐患验收 Future _setHiddenDangerAcceptance() async { try { @@ -1364,7 +1404,7 @@ class _KeyTasksHiddenDangerDetailState extends State final raw = await FileApi.uploadFiles(imagePaths, type, widget.hiddenId); if (raw['success']) { // raw['data']['foreignKey']; - return raw['data']; + return raw['data']['foreignKey']; } else { // _showMessage('反馈提交失败'); return ""; @@ -1711,4 +1751,15 @@ class _KeyTasksHiddenDangerDetailState extends State "repulseCause": "", "checkUserId": "", }; + + + //处罚反馈 + Map penaltyFeedbackData = { + "feedbackTime": "", + "hiddenPenaltyId": "", + "finePaymentReceipt": "", + "feedbackUserId": '' + }; + + } diff --git a/lib/pages/home/keyTasks/keyTasksDetail/key_tasks_confirm_detail_page.dart b/lib/pages/home/keyTasks/keyTasksDetail/key_tasks_confirm_detail_page.dart index 2462604..8d6bfe1 100644 --- a/lib/pages/home/keyTasks/keyTasksDetail/key_tasks_confirm_detail_page.dart +++ b/lib/pages/home/keyTasks/keyTasksDetail/key_tasks_confirm_detail_page.dart @@ -132,7 +132,7 @@ class _KeyTasksConfirmDetailPageState extends State { Divider(height: 1), _buildInfoItem('重点作业名称', pd['projectName'] ?? ''), Divider(height: 1), - _buildInfoItem('重点作业属性', pd['projectTypeName'] ?? ''), + _buildInfoItem('重点作业属性', pd['projectTypeName']!=null?pd['projectTypeName'].map((e) => e.toString()).join(","):''), Divider(height: 1), _buildInfoItem('计划工期开始', pd['planWorkStartDate'] ?? ''), Divider(height: 1), diff --git a/lib/pages/home/keyTasks/keyTasksDetail/punishmentKeyTasks/key_tasks_punishment_filter_page.dart b/lib/pages/home/keyTasks/keyTasksDetail/punishmentKeyTasks/key_tasks_punishment_filter_page.dart index 0fbe241..c669575 100644 --- a/lib/pages/home/keyTasks/keyTasksDetail/punishmentKeyTasks/key_tasks_punishment_filter_page.dart +++ b/lib/pages/home/keyTasks/keyTasksDetail/punishmentKeyTasks/key_tasks_punishment_filter_page.dart @@ -61,7 +61,7 @@ class _KeyTasksPunishmentFilterPageState extends State { Timer? _debounceTimer; String buttonTextOne = '查看'; String buttonTextTwo = '确认'; - String title = "隐患记录"; + String title = ""; final TextEditingController _searchController = TextEditingController(); @@ -53,8 +53,6 @@ class _KeyTasksPunishmentListState extends State { _searchController.addListener(_onSearchChanged); - String userId= SessionService.instance.accountId??''; - keyTasksPunishmentData['acceptUserId']=userId; _distinguishData(); } @@ -63,7 +61,6 @@ class _KeyTasksPunishmentListState extends State { buttonTextTwo = '反馈'; title = "处罚反馈"; - keyTasksPunishmentData['stateList']=[1,2,3,4]; final parentPerm = 'dashboard:Key-assignment:Hidden-hazard-record'; final targetPerm = ''; final menuPath = await RouteService.getMenuPath(parentPerm, targetPerm); @@ -108,15 +105,15 @@ class _KeyTasksPunishmentListState extends State { onRangeChanged: (range) { switch (range) { case RangeOption.oneDay: - keyTasksPunishmentData['startTime'] = DateFormat('yyyy-MM-dd HH:mm:ss') + keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat('yyyy-MM-dd HH:mm:ss') .format(DateTime.now().subtract(const Duration(days: 1))); break; case RangeOption.oneWeek: - keyTasksPunishmentData['startTime'] = DateFormat('yyyy-MM-dd HH:mm:ss') + keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat('yyyy-MM-dd HH:mm:ss') .format(DateTime.now().subtract(const Duration(days: 7))); break; case RangeOption.oneMonth: - keyTasksPunishmentData['startTime'] = DateFormat('yyyy-MM-dd HH:mm:ss') + keyTasksPunishmentData['hiddenCreateTimeStart'] = DateFormat('yyyy-MM-dd HH:mm:ss') .format(DateTime.now().subtract(const Duration(days: 30))); break; case RangeOption.threeMonths: @@ -397,9 +394,9 @@ class _KeyTasksPunishmentListState extends State { await pushPage( KeyTasksHiddenDangerDetail( 3, - pageData['id'], - pageData['hiddenId'], - pageData['foreignKey'], + pageData['hiddenPenaltyId']??'', + pageData['feedbackUserId']??'', + pageData['feedbackUserName']??'', false, ), context, @@ -456,45 +453,45 @@ class _KeyTasksPunishmentListState extends State { Future _getListData(bool loadMore) async { - // try { - // if (_isLoading) return; - // _isLoading = true; - // - // keyTasksPunishmentData['pageIndex']=_page; - // // keyTasksPunishmentData['hiddenDesc']=searchKey; - // - // LoadingDialogHelper.show(); - // final Map result = await KeyTasksApi.setKeyTasksHiddenDangerList(keyTasksPunishmentData); - // LoadingDialogHelper.hide(); - // - // if (result['success']) { - // _totalPage = result['pageSize'] ?? 1; - // final List newList = result['data'] ?? []; - // // setState(() { - // // _list.addAll(newList); - // // }); - // - // setState(() { - // if (loadMore) { - // _list.addAll(newList); - // } else { - // _list = newList; - // } - // _hasMore = _page < _totalPage; - // // if (_hasMore) _page++; - // }); - // } else { - // ToastUtil.showNormal(context, "加载数据失败"); - // // _showMessage('加载数据失败'); - // } - // } catch (e) { - // LoadingDialogHelper.hide(); - // // 出错时可以 Toast 或者在页面上显示错误状态 - // print('加载数据失败:$e'); - // } finally { - // // if (!loadMore) LoadingDialogHelper.hide(); - // _isLoading = false; - // } + try { + if (_isLoading) return; + _isLoading = true; + + keyTasksPunishmentData['pageIndex']=_page; + // keyTasksPunishmentData['hiddenDesc']=searchKey; + + LoadingDialogHelper.show(); + final Map result = await KeyTasksApi.getHiddenDangerPenalty(keyTasksPunishmentData); + LoadingDialogHelper.hide(); + + if (result['success']) { + _totalPage = result['pageSize'] ?? 1; + final List newList = result['data'] ?? []; + // setState(() { + // _list.addAll(newList); + // }); + + setState(() { + if (loadMore) { + _list.addAll(newList); + } else { + _list = newList; + } + _hasMore = _page < _totalPage; + // if (_hasMore) _page++; + }); + } else { + ToastUtil.showNormal(context, "加载数据失败"); + // _showMessage('加载数据失败'); + } + } catch (e) { + LoadingDialogHelper.hide(); + // 出错时可以 Toast 或者在页面上显示错误状态 + print('加载数据失败:$e'); + } finally { + // if (!loadMore) LoadingDialogHelper.hide(); + _isLoading = false; + } } String _getSourceDangers(final item) { @@ -564,21 +561,20 @@ class _KeyTasksPunishmentListState extends State { Map keyTasksPunishmentData={ - "hiddenDesc": "", - "stateList": [], + "needTotalCount": true, "pageSize": 20, - "pageIndex": 1, - - "source": "", - 'sourceName': "", - "startTime": "", - "endTime": "", - "projectName": "", - "hiddenFindUserName": "", "orderBy": "", - "orderDirection": "", + "hiddenCreateTimeStart": "", "groupBy": "", - + "fineFlag": 1, + "hiddenDesc": "", + "xgfCorpinfoName": "", + "pageIndex": '', + "hiddenSource": '', + "orderDirection": "", + "findUserName": "", + "projectName": "", + "hiddenCreateTimeEnd": "" }; diff --git a/lib/pages/home/keyTasks/key_tasks_confirm_list_page.dart b/lib/pages/home/keyTasks/key_tasks_confirm_list_page.dart index 90aefea..2dd414a 100644 --- a/lib/pages/home/keyTasks/key_tasks_confirm_list_page.dart +++ b/lib/pages/home/keyTasks/key_tasks_confirm_list_page.dart @@ -163,7 +163,7 @@ class _KeyTasksConfirmListPageState extends State { ), ), const SizedBox(height: 8), - _buildItemChild('重点作业属性:',item['projectTypeName']??""), + _buildItemChild('重点作业属性:',item['projectTypeName']!=null?item['projectTypeName'].map((e) => e.toString()).join(","):''), const SizedBox(height: 8), _buildItemChild('辖区单位:',item['jurisdictionCorpinfoName']??""), const SizedBox(height: 8), @@ -193,7 +193,7 @@ class _KeyTasksConfirmListPageState extends State { buttonStyle:ButtonStyleType.primary, text: '查看'),), - if((item['uncheckHiddenCount']==0&&item['unFinishInspectionCount']==0)||item["applyStatus"]==1)...[ + if(((item['uncheckHiddenCount']==0&&item['unFinishInspectionCount']==0)||item["applyStatus"]==1)&&item["applyStatus"]!=7)...[ const SizedBox(width: 8), Expanded(child: CustomButton( height: 35, @@ -218,7 +218,7 @@ class _KeyTasksConfirmListPageState extends State { text: item["applyStatus"]==1?'开工申请':'完工申请'),), ], - if(item["applyStatus"]==1)...[ + if(item["applyStatus"]==1&&item["createSource"]==2)...[ const SizedBox(width: 8), Expanded(child: CustomButton( height: 35, @@ -230,24 +230,35 @@ class _KeyTasksConfirmListPageState extends State { cancelText: '取消', ); if (ok) { - _upKeyTasksData(item); + _deleteTasksData(item); } }, - backgroundColor: h_AppBarColor(), + backgroundColor: Colors.red, textStyle: const TextStyle(color: Colors.red), - buttonStyle:ButtonStyleType.secondary, + buttonStyle: ButtonStyleType.primary, text: '删除'),), ], if(item["applyStatus"]==7)...[ const SizedBox(width: 8), + Expanded(child: CustomButton( + height: 35, + onPressed: () { + _goToDetail(item,index,2); + }, + backgroundColor: h_AppBarColor(), + textStyle: const TextStyle(color: Colors.red), + buttonStyle:ButtonStyleType.primary, + text: '重新提交'),), + const SizedBox(width: 8), Expanded(child: CustomButton( height: 35, onPressed: () async { final ok = await CustomAlertDialog.showConfirm( context, title: '驳回原因', - content: '驳回原因。。。。。。。。。', + cancelText:'', + content: item["rejectReason"]??'', ); }, @@ -403,7 +414,7 @@ class _KeyTasksConfirmListPageState extends State { Map keyTasksConfirmListData={ "projectName": "", - "applyStatusList": [1,4],//状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工 + "applyStatusList": [1,4,7],//状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工 "pageSize": 20, "pageIndex": 1, "needTotalCount": true, @@ -428,6 +439,25 @@ class _KeyTasksConfirmListPageState extends State { } } + Future _deleteTasksData( item) async { + try { + + final Map result; + result = await KeyTasksApi.deleteTasksData(item["id"]); + if (result['success'] ) { + ToastUtil.showNormal(context, '删除成功'); + // _list.remove(item); + getListData(false); + }else{ + ToastUtil.showNormal(context, '删除失败'); + // _showMessage('加载数据失败'); + } + } catch (e) { + // 出错时可以 Toast 或者在页面上显示错误状态 + print('加载数据失败:$e'); + } + } + Map upKeyTasksData={ "applyStatus": '5',