diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 18a7105..8515e58 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.OvertimeCaseActivity; import com.casic.dcms.view.PersonActivity; -import com.casic.dcms.view.PipelineManagerActivity; import com.casic.dcms.view.SearchCaseActivity; import com.casic.dcms.view.StreetlightManagerActivity; import com.casic.dcms.view.bridge.BridgeMaintainActivity; @@ -24,6 +23,7 @@ import com.casic.dcms.view.department.DeptHandleActivity; import com.casic.dcms.view.handle.HandleCaseActivity; import com.casic.dcms.view.map.CaseOnMapActivity; +import com.casic.dcms.view.pipeline.PipelineManagerActivity; import com.casic.dcms.view.statistics.DataAnalysisActivity; import com.casic.dcms.view.toilet.PublicToiletActivity; import com.casic.dcms.view.upload.BriefCaseActivity; diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 18a7105..8515e58 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.OvertimeCaseActivity; import com.casic.dcms.view.PersonActivity; -import com.casic.dcms.view.PipelineManagerActivity; import com.casic.dcms.view.SearchCaseActivity; import com.casic.dcms.view.StreetlightManagerActivity; import com.casic.dcms.view.bridge.BridgeMaintainActivity; @@ -24,6 +23,7 @@ import com.casic.dcms.view.department.DeptHandleActivity; import com.casic.dcms.view.handle.HandleCaseActivity; import com.casic.dcms.view.map.CaseOnMapActivity; +import com.casic.dcms.view.pipeline.PipelineManagerActivity; import com.casic.dcms.view.statistics.DataAnalysisActivity; import com.casic.dcms.view.toilet.PublicToiletActivity; import com.casic.dcms.view.upload.BriefCaseActivity; diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java deleted file mode 100644 index c619ef3..0000000 --- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.content.Intent; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityPipeBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.view.map.WarningOnMapActivity; -import com.casic.dcms.vm.AlarmViewModel; -import com.casic.dcms.widgets.CancelAlarmDialog; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.divider.ItemDecoration; -import com.pengxh.androidx.lite.hub.FloatHub; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.SaveKeyValues; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class PipelineManagerActivity extends AndroidxBaseActivity { - - private static final String TAG = "PipelineManagerActivity"; - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private AlarmViewModel alarmViewModel; - private NormalRecyclerAdapter adapter; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("管网管理"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchCancelDialog(); - break; - case 1: - startActivity(new Intent(context, WarningOnMapActivity.class)); - break; - case 2: - startActivity(new Intent(context, WellListActivity.class)); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - alarmViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); - alarmViewModel.resultModel.observe(this, new Observer() { - @Override - public void onChanged(AlarmDataBean alarmDataBean) { - if (alarmDataBean.getCode() == 200) { - SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); - List dataRows = alarmDataBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210626); - } - } - } - }); - - alarmViewModel.cancelActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - if (actionResultBean.getCode() == 200) { - StringHub.show(context, "取消报警成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainAlarmList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - } - - @Override - protected void onResume() { - super.onResume(); - pageIndex = 1; - obtainAlarmList(); - } - - private void obtainAlarmList() { - alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainAlarmList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainAlarmList(); - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210626) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainAlarmList(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.alarmPositionView, item.getPosition()) - .setText(R.id.alarmTimeView, item.getAlarmTime()) - .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - showSingleCancelDialog(item.getJobId()); - } - }); - } - }; - viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); - viewBinding.warningRecyclerView.setAdapter(adapter); - } - } - return true; - }; - - //单个消警 - private void showSingleCancelDialog(String jobId) { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelSingleAlarm(jobId, status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键消警 - private void showBatchCancelDialog() { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelBatchAlarm(status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 18a7105..8515e58 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.OvertimeCaseActivity; import com.casic.dcms.view.PersonActivity; -import com.casic.dcms.view.PipelineManagerActivity; import com.casic.dcms.view.SearchCaseActivity; import com.casic.dcms.view.StreetlightManagerActivity; import com.casic.dcms.view.bridge.BridgeMaintainActivity; @@ -24,6 +23,7 @@ import com.casic.dcms.view.department.DeptHandleActivity; import com.casic.dcms.view.handle.HandleCaseActivity; import com.casic.dcms.view.map.CaseOnMapActivity; +import com.casic.dcms.view.pipeline.PipelineManagerActivity; import com.casic.dcms.view.statistics.DataAnalysisActivity; import com.casic.dcms.view.toilet.PublicToiletActivity; import com.casic.dcms.view.upload.BriefCaseActivity; diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java deleted file mode 100644 index c619ef3..0000000 --- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.content.Intent; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityPipeBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.view.map.WarningOnMapActivity; -import com.casic.dcms.vm.AlarmViewModel; -import com.casic.dcms.widgets.CancelAlarmDialog; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.divider.ItemDecoration; -import com.pengxh.androidx.lite.hub.FloatHub; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.SaveKeyValues; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class PipelineManagerActivity extends AndroidxBaseActivity { - - private static final String TAG = "PipelineManagerActivity"; - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private AlarmViewModel alarmViewModel; - private NormalRecyclerAdapter adapter; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("管网管理"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchCancelDialog(); - break; - case 1: - startActivity(new Intent(context, WarningOnMapActivity.class)); - break; - case 2: - startActivity(new Intent(context, WellListActivity.class)); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - alarmViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); - alarmViewModel.resultModel.observe(this, new Observer() { - @Override - public void onChanged(AlarmDataBean alarmDataBean) { - if (alarmDataBean.getCode() == 200) { - SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); - List dataRows = alarmDataBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210626); - } - } - } - }); - - alarmViewModel.cancelActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - if (actionResultBean.getCode() == 200) { - StringHub.show(context, "取消报警成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainAlarmList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - } - - @Override - protected void onResume() { - super.onResume(); - pageIndex = 1; - obtainAlarmList(); - } - - private void obtainAlarmList() { - alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainAlarmList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainAlarmList(); - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210626) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainAlarmList(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.alarmPositionView, item.getPosition()) - .setText(R.id.alarmTimeView, item.getAlarmTime()) - .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - showSingleCancelDialog(item.getJobId()); - } - }); - } - }; - viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); - viewBinding.warningRecyclerView.setAdapter(adapter); - } - } - return true; - }; - - //单个消警 - private void showSingleCancelDialog(String jobId) { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelSingleAlarm(jobId, status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键消警 - private void showBatchCancelDialog() { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelBatchAlarm(status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/WellListActivity.java deleted file mode 100644 index 0a87678..0000000 --- a/app/src/main/java/com/casic/dcms/view/WellListActivity.java +++ /dev/null @@ -1,277 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityWellListBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.utils.MapHelper; -import com.casic.dcms.vm.WellViewModel; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class WellListActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private NormalRecyclerAdapter adapter; - private WellViewModel wellViewModel; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("窨井列表"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(view -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_OPTION_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchOptionDialog("布防", "1"); - break; - case 1: - showBatchOptionDialog("撤防", "0"); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - wellViewModel = new ViewModelProvider(this).get(WellViewModel.class); - } - - @Override - protected void onResume() { - obtainWellList(); - super.onResume(); - } - - private void obtainWellList() { - wellViewModel.obtainWellList(pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainWellList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainWellList(); - } - }); - - wellViewModel.listModel.observe(this, new Observer() { - @Override - public void onChanged(WellListBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210628); - } - } - } - }); - - wellViewModel.operationActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - StringHub.show(context, "操作成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainWellList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - wellViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210628) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_well_rv_l, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, WellListBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.wellTypeView, item.getWellTypeName()) - .setText(R.id.wellNameView, item.getWellName()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.wellPositionView, item.getPosition()) - .setText(R.id.wellStatusView, "已" + item.getBfztName()); - - String bfzt = item.getBfzt(); - if (bfzt.equals("0")) { - viewHolder.setText(R.id.wellOptionButton, "布防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.onLineColor)); - } else { - viewHolder.setText(R.id.wellOptionButton, "撤防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.qmui_config_color_red)); - } - - viewHolder.setOnClickListener(R.id.wellNameView, new View.OnClickListener() { - @Override - public void onClick(View v) { - StringHub.show(context, "井深" + item.getDeep() + "m"); - } - }); - - viewHolder.setOnClickListener(R.id.wellOptionButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - String bfzt = item.getBfzt(); - String bfztName; - if (bfzt.equals("0")) { - bfztName = "布防"; - bfzt = "1"; - } else if (bfzt.equals("1")) { - bfztName = "撤防"; - bfzt = "0"; - } else { - StringHub.show(context, "窨井状态错误,无法进行撤防或者布防"); - return; - } - showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt); - } - }); - } - }; - viewBinding.wellRecyclerView.setAdapter(adapter); - adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { - @Override - public void onItemClicked(int position, WellListBean.DataBean.RowsBean rowsBean) { - String lng = rowsBean.getCoordinateX(); - String lat = rowsBean.getCoordinateY(); - MapHelper.displayOnMap(context, "others", lng, lat); - } - }); - } - } - return true; - }; - - //单个撤防/布防 - private void showSingleOptionDialog(String bfztName, String id, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定要对该井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateSingleWell(id, bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键撤防/布防 - private void showBatchOptionDialog(String bfztName, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定对全部井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateBatchWell(bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 18a7105..8515e58 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.OvertimeCaseActivity; import com.casic.dcms.view.PersonActivity; -import com.casic.dcms.view.PipelineManagerActivity; import com.casic.dcms.view.SearchCaseActivity; import com.casic.dcms.view.StreetlightManagerActivity; import com.casic.dcms.view.bridge.BridgeMaintainActivity; @@ -24,6 +23,7 @@ import com.casic.dcms.view.department.DeptHandleActivity; import com.casic.dcms.view.handle.HandleCaseActivity; import com.casic.dcms.view.map.CaseOnMapActivity; +import com.casic.dcms.view.pipeline.PipelineManagerActivity; import com.casic.dcms.view.statistics.DataAnalysisActivity; import com.casic.dcms.view.toilet.PublicToiletActivity; import com.casic.dcms.view.upload.BriefCaseActivity; diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java deleted file mode 100644 index c619ef3..0000000 --- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.content.Intent; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityPipeBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.view.map.WarningOnMapActivity; -import com.casic.dcms.vm.AlarmViewModel; -import com.casic.dcms.widgets.CancelAlarmDialog; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.divider.ItemDecoration; -import com.pengxh.androidx.lite.hub.FloatHub; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.SaveKeyValues; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class PipelineManagerActivity extends AndroidxBaseActivity { - - private static final String TAG = "PipelineManagerActivity"; - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private AlarmViewModel alarmViewModel; - private NormalRecyclerAdapter adapter; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("管网管理"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchCancelDialog(); - break; - case 1: - startActivity(new Intent(context, WarningOnMapActivity.class)); - break; - case 2: - startActivity(new Intent(context, WellListActivity.class)); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - alarmViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); - alarmViewModel.resultModel.observe(this, new Observer() { - @Override - public void onChanged(AlarmDataBean alarmDataBean) { - if (alarmDataBean.getCode() == 200) { - SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); - List dataRows = alarmDataBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210626); - } - } - } - }); - - alarmViewModel.cancelActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - if (actionResultBean.getCode() == 200) { - StringHub.show(context, "取消报警成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainAlarmList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - } - - @Override - protected void onResume() { - super.onResume(); - pageIndex = 1; - obtainAlarmList(); - } - - private void obtainAlarmList() { - alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainAlarmList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainAlarmList(); - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210626) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainAlarmList(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.alarmPositionView, item.getPosition()) - .setText(R.id.alarmTimeView, item.getAlarmTime()) - .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - showSingleCancelDialog(item.getJobId()); - } - }); - } - }; - viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); - viewBinding.warningRecyclerView.setAdapter(adapter); - } - } - return true; - }; - - //单个消警 - private void showSingleCancelDialog(String jobId) { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelSingleAlarm(jobId, status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键消警 - private void showBatchCancelDialog() { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelBatchAlarm(status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/WellListActivity.java deleted file mode 100644 index 0a87678..0000000 --- a/app/src/main/java/com/casic/dcms/view/WellListActivity.java +++ /dev/null @@ -1,277 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityWellListBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.utils.MapHelper; -import com.casic.dcms.vm.WellViewModel; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class WellListActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private NormalRecyclerAdapter adapter; - private WellViewModel wellViewModel; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("窨井列表"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(view -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_OPTION_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchOptionDialog("布防", "1"); - break; - case 1: - showBatchOptionDialog("撤防", "0"); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - wellViewModel = new ViewModelProvider(this).get(WellViewModel.class); - } - - @Override - protected void onResume() { - obtainWellList(); - super.onResume(); - } - - private void obtainWellList() { - wellViewModel.obtainWellList(pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainWellList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainWellList(); - } - }); - - wellViewModel.listModel.observe(this, new Observer() { - @Override - public void onChanged(WellListBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210628); - } - } - } - }); - - wellViewModel.operationActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - StringHub.show(context, "操作成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainWellList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - wellViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210628) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_well_rv_l, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, WellListBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.wellTypeView, item.getWellTypeName()) - .setText(R.id.wellNameView, item.getWellName()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.wellPositionView, item.getPosition()) - .setText(R.id.wellStatusView, "已" + item.getBfztName()); - - String bfzt = item.getBfzt(); - if (bfzt.equals("0")) { - viewHolder.setText(R.id.wellOptionButton, "布防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.onLineColor)); - } else { - viewHolder.setText(R.id.wellOptionButton, "撤防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.qmui_config_color_red)); - } - - viewHolder.setOnClickListener(R.id.wellNameView, new View.OnClickListener() { - @Override - public void onClick(View v) { - StringHub.show(context, "井深" + item.getDeep() + "m"); - } - }); - - viewHolder.setOnClickListener(R.id.wellOptionButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - String bfzt = item.getBfzt(); - String bfztName; - if (bfzt.equals("0")) { - bfztName = "布防"; - bfzt = "1"; - } else if (bfzt.equals("1")) { - bfztName = "撤防"; - bfzt = "0"; - } else { - StringHub.show(context, "窨井状态错误,无法进行撤防或者布防"); - return; - } - showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt); - } - }); - } - }; - viewBinding.wellRecyclerView.setAdapter(adapter); - adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { - @Override - public void onItemClicked(int position, WellListBean.DataBean.RowsBean rowsBean) { - String lng = rowsBean.getCoordinateX(); - String lat = rowsBean.getCoordinateY(); - MapHelper.displayOnMap(context, "others", lng, lat); - } - }); - } - } - return true; - }; - - //单个撤防/布防 - private void showSingleOptionDialog(String bfztName, String id, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定要对该井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateSingleWell(id, bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键撤防/布防 - private void showBatchOptionDialog(String bfztName, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定对全部井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateBatchWell(bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java new file mode 100644 index 0000000..1b1c5df --- /dev/null +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -0,0 +1,244 @@ +package com.casic.dcms.view.pipeline; + +import android.content.Context; +import android.os.Handler; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.databinding.ActivityPipeBinding; +import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.AlarmDataBean; +import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.view.map.WarningOnMapActivity; +import com.casic.dcms.vm.AlarmViewModel; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.divider.ItemDecoration; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.FloatHub; +import com.pengxh.androidx.lite.hub.IntHub; +import com.pengxh.androidx.lite.hub.StringHub; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.SaveKeyValues; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class PipelineManagerActivity extends AndroidxBaseActivity { + + private static final String TAG = "PipelineManagerActivity"; + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private AlarmViewModel alarmViewModel; + private NormalRecyclerAdapter adapter; + private List dataBeans = new ArrayList<>(); + private int pageIndex = 1; + private boolean isRefresh, isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); + + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + viewBinding.titleBarLayout.titleView.setText("管网管理"); + viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + showBatchCancelDialog(); + break; + case 1: + ContextHub.navigatePageTo(context, WarningOnMapActivity.class); + break; + case 2: + ContextHub.navigatePageTo(context, WellListActivity.class); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(viewBinding.titleBarLayout.rightImageView); + }); + } + + @Override + protected void observeRequestState() { + alarmViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); + alarmViewModel.resultModel.observe(this, new Observer() { + @Override + public void onChanged(AlarmDataBean alarmDataBean) { + if (alarmDataBean.getCode() == 200) { + SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); + List dataRows = alarmDataBean.getData().getRows(); + if (isRefresh) { + adapter.setRefreshData(dataRows); + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + StringHub.show(context, "到底了,别拉了"); + } + adapter.setLoadMoreData(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + } + }); + + alarmViewModel.cancelActionModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean actionResultBean) { + if (actionResultBean.getCode() == 200) { + StringHub.show(context, "取消报警成功"); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + obtainAlarmList(); + } else { + StringHub.show(context, "操作失败,请重试"); + } + } + }); + } + + @Override + protected void onResume() { + super.onResume(); + pageIndex = 1; + obtainAlarmList(); + } + + private void obtainAlarmList() { + alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); + } + + @Override + public void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainAlarmList(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainAlarmList(); + } + }); + } + + private final Handler.Callback callback = msg -> { + if (msg.what == 20210626) { + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainAlarmList(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { + viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) + .setText(R.id.wellCodeView, item.getWellCode()) + .setText(R.id.alarmPositionView, item.getPosition()) + .setText(R.id.alarmTimeView, item.getAlarmTime()) + .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { + @Override + public void onClick(View v) { + showSingleCancelDialog(item.getJobId()); + } + }); + } + }; + viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); + viewBinding.warningRecyclerView.setAdapter(adapter); + } + } + return true; + }; + + //单个消警 + private void showSingleCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + alarmViewModel.cancelSingleAlarm(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + //一键消警 + private void showBatchCancelDialog() { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + alarmViewModel.cancelBatchAlarm(status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 18a7105..8515e58 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.OvertimeCaseActivity; import com.casic.dcms.view.PersonActivity; -import com.casic.dcms.view.PipelineManagerActivity; import com.casic.dcms.view.SearchCaseActivity; import com.casic.dcms.view.StreetlightManagerActivity; import com.casic.dcms.view.bridge.BridgeMaintainActivity; @@ -24,6 +23,7 @@ import com.casic.dcms.view.department.DeptHandleActivity; import com.casic.dcms.view.handle.HandleCaseActivity; import com.casic.dcms.view.map.CaseOnMapActivity; +import com.casic.dcms.view.pipeline.PipelineManagerActivity; import com.casic.dcms.view.statistics.DataAnalysisActivity; import com.casic.dcms.view.toilet.PublicToiletActivity; import com.casic.dcms.view.upload.BriefCaseActivity; diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java deleted file mode 100644 index c619ef3..0000000 --- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.content.Intent; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityPipeBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.view.map.WarningOnMapActivity; -import com.casic.dcms.vm.AlarmViewModel; -import com.casic.dcms.widgets.CancelAlarmDialog; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.divider.ItemDecoration; -import com.pengxh.androidx.lite.hub.FloatHub; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.SaveKeyValues; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class PipelineManagerActivity extends AndroidxBaseActivity { - - private static final String TAG = "PipelineManagerActivity"; - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private AlarmViewModel alarmViewModel; - private NormalRecyclerAdapter adapter; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("管网管理"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchCancelDialog(); - break; - case 1: - startActivity(new Intent(context, WarningOnMapActivity.class)); - break; - case 2: - startActivity(new Intent(context, WellListActivity.class)); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - alarmViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); - alarmViewModel.resultModel.observe(this, new Observer() { - @Override - public void onChanged(AlarmDataBean alarmDataBean) { - if (alarmDataBean.getCode() == 200) { - SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); - List dataRows = alarmDataBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210626); - } - } - } - }); - - alarmViewModel.cancelActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - if (actionResultBean.getCode() == 200) { - StringHub.show(context, "取消报警成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainAlarmList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - } - - @Override - protected void onResume() { - super.onResume(); - pageIndex = 1; - obtainAlarmList(); - } - - private void obtainAlarmList() { - alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainAlarmList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainAlarmList(); - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210626) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainAlarmList(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.alarmPositionView, item.getPosition()) - .setText(R.id.alarmTimeView, item.getAlarmTime()) - .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - showSingleCancelDialog(item.getJobId()); - } - }); - } - }; - viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); - viewBinding.warningRecyclerView.setAdapter(adapter); - } - } - return true; - }; - - //单个消警 - private void showSingleCancelDialog(String jobId) { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelSingleAlarm(jobId, status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键消警 - private void showBatchCancelDialog() { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelBatchAlarm(status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/WellListActivity.java deleted file mode 100644 index 0a87678..0000000 --- a/app/src/main/java/com/casic/dcms/view/WellListActivity.java +++ /dev/null @@ -1,277 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityWellListBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.utils.MapHelper; -import com.casic.dcms.vm.WellViewModel; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class WellListActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private NormalRecyclerAdapter adapter; - private WellViewModel wellViewModel; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("窨井列表"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(view -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_OPTION_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchOptionDialog("布防", "1"); - break; - case 1: - showBatchOptionDialog("撤防", "0"); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - wellViewModel = new ViewModelProvider(this).get(WellViewModel.class); - } - - @Override - protected void onResume() { - obtainWellList(); - super.onResume(); - } - - private void obtainWellList() { - wellViewModel.obtainWellList(pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainWellList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainWellList(); - } - }); - - wellViewModel.listModel.observe(this, new Observer() { - @Override - public void onChanged(WellListBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210628); - } - } - } - }); - - wellViewModel.operationActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - StringHub.show(context, "操作成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainWellList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - wellViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210628) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_well_rv_l, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, WellListBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.wellTypeView, item.getWellTypeName()) - .setText(R.id.wellNameView, item.getWellName()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.wellPositionView, item.getPosition()) - .setText(R.id.wellStatusView, "已" + item.getBfztName()); - - String bfzt = item.getBfzt(); - if (bfzt.equals("0")) { - viewHolder.setText(R.id.wellOptionButton, "布防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.onLineColor)); - } else { - viewHolder.setText(R.id.wellOptionButton, "撤防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.qmui_config_color_red)); - } - - viewHolder.setOnClickListener(R.id.wellNameView, new View.OnClickListener() { - @Override - public void onClick(View v) { - StringHub.show(context, "井深" + item.getDeep() + "m"); - } - }); - - viewHolder.setOnClickListener(R.id.wellOptionButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - String bfzt = item.getBfzt(); - String bfztName; - if (bfzt.equals("0")) { - bfztName = "布防"; - bfzt = "1"; - } else if (bfzt.equals("1")) { - bfztName = "撤防"; - bfzt = "0"; - } else { - StringHub.show(context, "窨井状态错误,无法进行撤防或者布防"); - return; - } - showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt); - } - }); - } - }; - viewBinding.wellRecyclerView.setAdapter(adapter); - adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { - @Override - public void onItemClicked(int position, WellListBean.DataBean.RowsBean rowsBean) { - String lng = rowsBean.getCoordinateX(); - String lat = rowsBean.getCoordinateY(); - MapHelper.displayOnMap(context, "others", lng, lat); - } - }); - } - } - return true; - }; - - //单个撤防/布防 - private void showSingleOptionDialog(String bfztName, String id, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定要对该井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateSingleWell(id, bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键撤防/布防 - private void showBatchOptionDialog(String bfztName, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定对全部井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateBatchWell(bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java new file mode 100644 index 0000000..1b1c5df --- /dev/null +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -0,0 +1,244 @@ +package com.casic.dcms.view.pipeline; + +import android.content.Context; +import android.os.Handler; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.databinding.ActivityPipeBinding; +import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.AlarmDataBean; +import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.view.map.WarningOnMapActivity; +import com.casic.dcms.vm.AlarmViewModel; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.divider.ItemDecoration; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.FloatHub; +import com.pengxh.androidx.lite.hub.IntHub; +import com.pengxh.androidx.lite.hub.StringHub; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.SaveKeyValues; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class PipelineManagerActivity extends AndroidxBaseActivity { + + private static final String TAG = "PipelineManagerActivity"; + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private AlarmViewModel alarmViewModel; + private NormalRecyclerAdapter adapter; + private List dataBeans = new ArrayList<>(); + private int pageIndex = 1; + private boolean isRefresh, isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); + + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + viewBinding.titleBarLayout.titleView.setText("管网管理"); + viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + showBatchCancelDialog(); + break; + case 1: + ContextHub.navigatePageTo(context, WarningOnMapActivity.class); + break; + case 2: + ContextHub.navigatePageTo(context, WellListActivity.class); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(viewBinding.titleBarLayout.rightImageView); + }); + } + + @Override + protected void observeRequestState() { + alarmViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); + alarmViewModel.resultModel.observe(this, new Observer() { + @Override + public void onChanged(AlarmDataBean alarmDataBean) { + if (alarmDataBean.getCode() == 200) { + SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); + List dataRows = alarmDataBean.getData().getRows(); + if (isRefresh) { + adapter.setRefreshData(dataRows); + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + StringHub.show(context, "到底了,别拉了"); + } + adapter.setLoadMoreData(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + } + }); + + alarmViewModel.cancelActionModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean actionResultBean) { + if (actionResultBean.getCode() == 200) { + StringHub.show(context, "取消报警成功"); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + obtainAlarmList(); + } else { + StringHub.show(context, "操作失败,请重试"); + } + } + }); + } + + @Override + protected void onResume() { + super.onResume(); + pageIndex = 1; + obtainAlarmList(); + } + + private void obtainAlarmList() { + alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); + } + + @Override + public void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainAlarmList(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainAlarmList(); + } + }); + } + + private final Handler.Callback callback = msg -> { + if (msg.what == 20210626) { + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainAlarmList(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { + viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) + .setText(R.id.wellCodeView, item.getWellCode()) + .setText(R.id.alarmPositionView, item.getPosition()) + .setText(R.id.alarmTimeView, item.getAlarmTime()) + .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { + @Override + public void onClick(View v) { + showSingleCancelDialog(item.getJobId()); + } + }); + } + }; + viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); + viewBinding.warningRecyclerView.setAdapter(adapter); + } + } + return true; + }; + + //单个消警 + private void showSingleCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + alarmViewModel.cancelSingleAlarm(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + //一键消警 + private void showBatchCancelDialog() { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + alarmViewModel.cancelBatchAlarm(status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java new file mode 100644 index 0000000..a4fc663 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -0,0 +1,278 @@ +package com.casic.dcms.view.pipeline; + +import android.content.Context; +import android.os.Handler; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.databinding.ActivityWellListBinding; +import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.WellListBean; +import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.MapHelper; +import com.casic.dcms.vm.WellViewModel; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.divider.ItemDecoration; +import com.pengxh.androidx.lite.hub.FloatHub; +import com.pengxh.androidx.lite.hub.IntHub; +import com.pengxh.androidx.lite.hub.StringHub; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class WellListActivity extends AndroidxBaseActivity { + + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private NormalRecyclerAdapter adapter; + private WellViewModel wellViewModel; + private List dataBeans = new ArrayList<>(); + private int pageIndex = 1; + private boolean isRefresh, isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); + + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + viewBinding.titleBarLayout.titleView.setText("窨井列表"); + viewBinding.titleBarLayout.rightImageView.setOnClickListener(view -> { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + showBatchOptionDialog("布防", "1"); + break; + case 1: + showBatchOptionDialog("撤防", "0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(viewBinding.titleBarLayout.rightImageView); + }); + } + + @Override + protected void observeRequestState() { + wellViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + wellViewModel = new ViewModelProvider(this).get(WellViewModel.class); + wellViewModel.listModel.observe(this, new Observer() { + @Override + public void onChanged(WellListBean resultBean) { + if (resultBean.getCode() == 200) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + adapter.setRefreshData(dataRows); + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + StringHub.show(context, "到底了,别拉了"); + } + adapter.setLoadMoreData(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + } + }); + + wellViewModel.operationActionModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + StringHub.show(context, "操作成功"); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + obtainWellList(); + } else { + StringHub.show(context, "操作失败,请重试"); + } + } + }); + } + + @Override + protected void onResume() { + obtainWellList(); + super.onResume(); + } + + private void obtainWellList() { + wellViewModel.obtainWellList(pageIndex); + } + + @Override + public void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainWellList(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainWellList(); + } + }); + } + + private final Handler.Callback callback = msg -> { + if (msg.what == 20210628) { + if (dataBeans.size() == 0) { + viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + viewBinding.emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_well_rv_l, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, WellListBean.DataBean.RowsBean item) { + viewHolder.setText(R.id.wellTypeView, item.getWellTypeName()) + .setText(R.id.wellNameView, item.getWellName()) + .setText(R.id.wellCodeView, item.getWellCode()) + .setText(R.id.wellPositionView, item.getPosition()) + .setText(R.id.wellStatusView, "已" + item.getBfztName()); + + String bfzt = item.getBfzt(); + if (bfzt.equals("0")) { + viewHolder.setText(R.id.wellOptionButton, "布防") + .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.onLineColor)); + } else { + viewHolder.setText(R.id.wellOptionButton, "撤防") + .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.qmui_config_color_red)); + } + + viewHolder.setOnClickListener(R.id.wellNameView, new View.OnClickListener() { + @Override + public void onClick(View v) { + StringHub.show(context, "井深" + item.getDeep() + "m"); + } + }); + + viewHolder.setOnClickListener(R.id.wellOptionButton, new View.OnClickListener() { + @Override + public void onClick(View v) { + String bfzt = item.getBfzt(); + String bfztName; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + StringHub.show(context, "窨井状态错误,无法进行撤防或者布防"); + return; + } + showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt); + } + }); + } + }; + viewBinding.wellRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); + viewBinding.wellRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, WellListBean.DataBean.RowsBean rowsBean) { + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + MapHelper.displayOnMap(context, "others", lng, lat); + } + }); + } + } + return true; + }; + + //单个撤防/布防 + private void showSingleOptionDialog(String bfztName, String id, String bfzt) { + new AlertControlDialog.Builder() + .setContext(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick() { + wellViewModel.operateSingleWell(id, bfzt); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + //一键撤防/布防 + private void showBatchOptionDialog(String bfztName, String bfzt) { + new AlertControlDialog.Builder() + .setContext(this) + .setTitle("确认操作") + .setMessage("确定对全部井进行" + bfztName + "吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick() { + wellViewModel.operateBatchWell(bfzt); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32535b5..36ebec8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,8 +106,8 @@ - - + + diff --git a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java index 18a7105..8515e58 100644 --- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java @@ -14,7 +14,6 @@ import com.casic.dcms.utils.StringHelper; import com.casic.dcms.view.OvertimeCaseActivity; import com.casic.dcms.view.PersonActivity; -import com.casic.dcms.view.PipelineManagerActivity; import com.casic.dcms.view.SearchCaseActivity; import com.casic.dcms.view.StreetlightManagerActivity; import com.casic.dcms.view.bridge.BridgeMaintainActivity; @@ -24,6 +23,7 @@ import com.casic.dcms.view.department.DeptHandleActivity; import com.casic.dcms.view.handle.HandleCaseActivity; import com.casic.dcms.view.map.CaseOnMapActivity; +import com.casic.dcms.view.pipeline.PipelineManagerActivity; import com.casic.dcms.view.statistics.DataAnalysisActivity; import com.casic.dcms.view.toilet.PublicToiletActivity; import com.casic.dcms.view.upload.BriefCaseActivity; diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java deleted file mode 100644 index c619ef3..0000000 --- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.content.Intent; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityPipeBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.AlarmDataBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.view.map.WarningOnMapActivity; -import com.casic.dcms.vm.AlarmViewModel; -import com.casic.dcms.widgets.CancelAlarmDialog; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.divider.ItemDecoration; -import com.pengxh.androidx.lite.hub.FloatHub; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.SaveKeyValues; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class PipelineManagerActivity extends AndroidxBaseActivity { - - private static final String TAG = "PipelineManagerActivity"; - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private AlarmViewModel alarmViewModel; - private NormalRecyclerAdapter adapter; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("管网管理"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchCancelDialog(); - break; - case 1: - startActivity(new Intent(context, WarningOnMapActivity.class)); - break; - case 2: - startActivity(new Intent(context, WellListActivity.class)); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - alarmViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); - alarmViewModel.resultModel.observe(this, new Observer() { - @Override - public void onChanged(AlarmDataBean alarmDataBean) { - if (alarmDataBean.getCode() == 200) { - SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); - List dataRows = alarmDataBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210626); - } - } - } - }); - - alarmViewModel.cancelActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - if (actionResultBean.getCode() == 200) { - StringHub.show(context, "取消报警成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainAlarmList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - } - - @Override - protected void onResume() { - super.onResume(); - pageIndex = 1; - obtainAlarmList(); - } - - private void obtainAlarmList() { - alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainAlarmList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainAlarmList(); - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210626) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { - @Override - public void onClick(View v) { - pageIndex = 1; - obtainAlarmList(); - } - }); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.alarmPositionView, item.getPosition()) - .setText(R.id.alarmTimeView, item.getAlarmTime()) - .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - showSingleCancelDialog(item.getJobId()); - } - }); - } - }; - viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); - viewBinding.warningRecyclerView.setAdapter(adapter); - } - } - return true; - }; - - //单个消警 - private void showSingleCancelDialog(String jobId) { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelSingleAlarm(jobId, status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键消警 - private void showBatchCancelDialog() { - //已处理status = 3,无需处理status = 4 - new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick(String status, String editReason) { - alarmViewModel.cancelBatchAlarm(status, editReason); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/WellListActivity.java deleted file mode 100644 index 0a87678..0000000 --- a/app/src/main/java/com/casic/dcms/view/WellListActivity.java +++ /dev/null @@ -1,277 +0,0 @@ -package com.casic.dcms.view; - -import android.content.Context; -import android.os.Handler; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; - -import androidx.annotation.NonNull; -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; - -import com.casic.dcms.R; -import com.casic.dcms.databinding.ActivityWellListBinding; -import com.casic.dcms.model.ActionResultBean; -import com.casic.dcms.model.WellListBean; -import com.casic.dcms.utils.DialogHelper; -import com.casic.dcms.utils.LocaleConstant; -import com.casic.dcms.utils.MapHelper; -import com.casic.dcms.vm.WellViewModel; -import com.gyf.immersionbar.ImmersionBar; -import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; -import com.pengxh.androidx.lite.adapter.ViewHolder; -import com.pengxh.androidx.lite.base.AndroidxBaseActivity; -import com.pengxh.androidx.lite.hub.IntHub; -import com.pengxh.androidx.lite.hub.StringHub; -import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; -import com.pengxh.androidx.lite.utils.WeakReferenceHandler; -import com.pengxh.androidx.lite.vm.LoadState; -import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; -import com.qmuiteam.qmui.util.QMUIDisplayHelper; -import com.qmuiteam.qmui.widget.popup.QMUIPopup; -import com.qmuiteam.qmui.widget.popup.QMUIPopups; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; -import com.scwang.smartrefresh.layout.listener.OnRefreshListener; - -import java.util.ArrayList; -import java.util.List; - -public class WellListActivity extends AndroidxBaseActivity { - - private final Context context = this; - private WeakReferenceHandler weakReferenceHandler; - private NormalRecyclerAdapter adapter; - private WellViewModel wellViewModel; - private List dataBeans = new ArrayList<>(); - private int pageIndex = 1; - private boolean isRefresh, isLoadMore = false; - - @Override - protected void setupTopBarLayout() { - ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); - ImmersionBar.with(this).statusBarDarkFont(true).init(); - - viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); - viewBinding.titleBarLayout.titleView.setText("窨井列表"); - viewBinding.titleBarLayout.rightImageView.setOnClickListener(view -> { - int popupWidth = QMUIDisplayHelper.dp2px(context, 100); - ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_OPTION_ITEMS); - QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - switch (position) { - case 0: - showBatchOptionDialog("布防", "1"); - break; - case 1: - showBatchOptionDialog("撤防", "0"); - break; - } - } - }).animStyle(QMUIPopup.ANIM_AUTO) - .shadowElevation(10, 1) - .radius(10) - .show(viewBinding.titleBarLayout.rightImageView); - }); - } - - @Override - protected void observeRequestState() { - - } - - @Override - public void initData() { - weakReferenceHandler = new WeakReferenceHandler(callback); - wellViewModel = new ViewModelProvider(this).get(WellViewModel.class); - } - - @Override - protected void onResume() { - obtainWellList(); - super.onResume(); - } - - private void obtainWellList() { - wellViewModel.obtainWellList(pageIndex); - } - - @Override - public void initEvent() { - viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { - @Override - public void onRefresh(@NonNull final RefreshLayout refreshLayout) { - isRefresh = true; - //刷新之后页码重置 - pageIndex = 1; - obtainWellList(); - } - }); - viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { - @Override - public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { - isLoadMore = true; - pageIndex++; - obtainWellList(); - } - }); - - wellViewModel.listModel.observe(this, new Observer() { - @Override - public void onChanged(WellListBean resultBean) { - if (resultBean.getCode() == 200) { - List dataRows = resultBean.getData().getRows(); - if (isRefresh) { - adapter.setRefreshData(dataRows); - viewBinding.refreshLayout.finishRefresh(); - isRefresh = false; - } else if (isLoadMore) { - if (dataRows.size() == 0) { - StringHub.show(context, "到底了,别拉了"); - } - adapter.setLoadMoreData(dataRows); - viewBinding.refreshLayout.finishLoadMore(); - isLoadMore = false; - } else { - dataBeans = dataRows; - weakReferenceHandler.sendEmptyMessage(20210628); - } - } - } - }); - - wellViewModel.operationActionModel.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean resultBean) { - if (resultBean.isSuccess()) { - StringHub.show(context, "操作成功"); - //取消成功之后自动刷新列表 - isRefresh = true; - pageIndex = 1; - obtainWellList(); - } else { - StringHub.show(context, "操作失败,请重试"); - } - } - }); - wellViewModel.loadState.observe(this, new Observer() { - @Override - public void onChanged(LoadState loadState) { - if (loadState == LoadState.Loading) { - DialogHelper.showLoadingDialog(context, "处理中,请稍后..."); - } else { - DialogHelper.dismissLoadingDialog(); - } - } - }); - } - - private final Handler.Callback callback = msg -> { - if (msg.what == 20210628) { - if (dataBeans.size() == 0) { - viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null); - } else { - viewBinding.emptyView.hide(); - adapter = new NormalRecyclerAdapter(R.layout.item_well_rv_l, dataBeans) { - @Override - public void convertView(ViewHolder viewHolder, int position, WellListBean.DataBean.RowsBean item) { - viewHolder.setText(R.id.wellTypeView, item.getWellTypeName()) - .setText(R.id.wellNameView, item.getWellName()) - .setText(R.id.wellCodeView, item.getWellCode()) - .setText(R.id.wellPositionView, item.getPosition()) - .setText(R.id.wellStatusView, "已" + item.getBfztName()); - - String bfzt = item.getBfzt(); - if (bfzt.equals("0")) { - viewHolder.setText(R.id.wellOptionButton, "布防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.onLineColor)); - } else { - viewHolder.setText(R.id.wellOptionButton, "撤防") - .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.qmui_config_color_red)); - } - - viewHolder.setOnClickListener(R.id.wellNameView, new View.OnClickListener() { - @Override - public void onClick(View v) { - StringHub.show(context, "井深" + item.getDeep() + "m"); - } - }); - - viewHolder.setOnClickListener(R.id.wellOptionButton, new View.OnClickListener() { - @Override - public void onClick(View v) { - String bfzt = item.getBfzt(); - String bfztName; - if (bfzt.equals("0")) { - bfztName = "布防"; - bfzt = "1"; - } else if (bfzt.equals("1")) { - bfztName = "撤防"; - bfzt = "0"; - } else { - StringHub.show(context, "窨井状态错误,无法进行撤防或者布防"); - return; - } - showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt); - } - }); - } - }; - viewBinding.wellRecyclerView.setAdapter(adapter); - adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { - @Override - public void onItemClicked(int position, WellListBean.DataBean.RowsBean rowsBean) { - String lng = rowsBean.getCoordinateX(); - String lat = rowsBean.getCoordinateY(); - MapHelper.displayOnMap(context, "others", lng, lat); - } - }); - } - } - return true; - }; - - //单个撤防/布防 - private void showSingleOptionDialog(String bfztName, String id, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定要对该井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateSingleWell(id, bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } - - //一键撤防/布防 - private void showBatchOptionDialog(String bfztName, String bfzt) { - new AlertControlDialog.Builder() - .setContext(this) - .setTitle("确认操作") - .setMessage("确定对全部井进行" + bfztName + "吗?") - .setNegativeButton("取消") - .setPositiveButton("确定") - .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { - @Override - public void onConfirmClick() { - wellViewModel.operateBatchWell(bfzt); - } - - @Override - public void onCancelClick() { - - } - }).build().show(); - } -} diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java new file mode 100644 index 0000000..1b1c5df --- /dev/null +++ b/app/src/main/java/com/casic/dcms/view/pipeline/PipelineManagerActivity.java @@ -0,0 +1,244 @@ +package com.casic.dcms.view.pipeline; + +import android.content.Context; +import android.os.Handler; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.databinding.ActivityPipeBinding; +import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.AlarmDataBean; +import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.view.map.WarningOnMapActivity; +import com.casic.dcms.vm.AlarmViewModel; +import com.casic.dcms.widgets.CancelAlarmDialog; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.divider.ItemDecoration; +import com.pengxh.androidx.lite.hub.ContextHub; +import com.pengxh.androidx.lite.hub.FloatHub; +import com.pengxh.androidx.lite.hub.IntHub; +import com.pengxh.androidx.lite.hub.StringHub; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.SaveKeyValues; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class PipelineManagerActivity extends AndroidxBaseActivity { + + private static final String TAG = "PipelineManagerActivity"; + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private AlarmViewModel alarmViewModel; + private NormalRecyclerAdapter adapter; + private List dataBeans = new ArrayList<>(); + private int pageIndex = 1; + private boolean isRefresh, isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); + + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + viewBinding.titleBarLayout.titleView.setText("管网管理"); + viewBinding.titleBarLayout.rightImageView.setOnClickListener(v -> { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_LIST_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + showBatchCancelDialog(); + break; + case 1: + ContextHub.navigatePageTo(context, WarningOnMapActivity.class); + break; + case 2: + ContextHub.navigatePageTo(context, WellListActivity.class); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(viewBinding.titleBarLayout.rightImageView); + }); + } + + @Override + protected void observeRequestState() { + alarmViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + alarmViewModel = new ViewModelProvider(this).get(AlarmViewModel.class); + alarmViewModel.resultModel.observe(this, new Observer() { + @Override + public void onChanged(AlarmDataBean alarmDataBean) { + if (alarmDataBean.getCode() == 200) { + SaveKeyValues.putValue("alarmTotal", alarmDataBean.getData().getTotal()); + List dataRows = alarmDataBean.getData().getRows(); + if (isRefresh) { + adapter.setRefreshData(dataRows); + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + StringHub.show(context, "到底了,别拉了"); + } + adapter.setLoadMoreData(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210626); + } + } + } + }); + + alarmViewModel.cancelActionModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean actionResultBean) { + if (actionResultBean.getCode() == 200) { + StringHub.show(context, "取消报警成功"); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + obtainAlarmList(); + } else { + StringHub.show(context, "操作失败,请重试"); + } + } + }); + } + + @Override + protected void onResume() { + super.onResume(); + pageIndex = 1; + obtainAlarmList(); + } + + private void obtainAlarmList() { + alarmViewModel.obtainAlarmList(LocaleConstant.PAGE_LIMIT, pageIndex); + } + + @Override + public void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainAlarmList(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainAlarmList(); + } + }); + } + + private final Handler.Callback callback = msg -> { + if (msg.what == 20210626) { + if (dataBeans.size() == 0) { + viewBinding.emptyView.show(false, "设备状态很好,没有任何报警", null, "刷新", new View.OnClickListener() { + @Override + public void onClick(View v) { + pageIndex = 1; + obtainAlarmList(); + } + }); + } else { + viewBinding.emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_alarm_recycleview, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, AlarmDataBean.DataBean.RowsBean item) { + viewHolder.setText(R.id.alarmMessageView, item.getAlarmMessage()) + .setText(R.id.wellCodeView, item.getWellCode()) + .setText(R.id.alarmPositionView, item.getPosition()) + .setText(R.id.alarmTimeView, item.getAlarmTime()) + .setOnClickListener(R.id.cancelAlarmButton, new View.OnClickListener() { + @Override + public void onClick(View v) { + showSingleCancelDialog(item.getJobId()); + } + }); + } + }; + viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); + viewBinding.warningRecyclerView.setAdapter(adapter); + } + } + return true; + }; + + //单个消警 + private void showSingleCancelDialog(String jobId) { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + alarmViewModel.cancelSingleAlarm(jobId, status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + //一键消警 + private void showBatchCancelDialog() { + //已处理status = 3,无需处理status = 4 + new CancelAlarmDialog.Builder().setContext(this).setOnDialogButtonClickListener(new CancelAlarmDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick(String status, String editReason) { + alarmViewModel.cancelBatchAlarm(status, editReason); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } +} diff --git a/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java new file mode 100644 index 0000000..a4fc663 --- /dev/null +++ b/app/src/main/java/com/casic/dcms/view/pipeline/WellListActivity.java @@ -0,0 +1,278 @@ +package com.casic.dcms.view.pipeline; + +import android.content.Context; +import android.os.Handler; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; + +import androidx.annotation.NonNull; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; + +import com.casic.dcms.R; +import com.casic.dcms.databinding.ActivityWellListBinding; +import com.casic.dcms.model.ActionResultBean; +import com.casic.dcms.model.WellListBean; +import com.casic.dcms.utils.DialogHelper; +import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.MapHelper; +import com.casic.dcms.vm.WellViewModel; +import com.gyf.immersionbar.ImmersionBar; +import com.pengxh.androidx.lite.adapter.NormalRecyclerAdapter; +import com.pengxh.androidx.lite.adapter.ViewHolder; +import com.pengxh.androidx.lite.base.AndroidxBaseActivity; +import com.pengxh.androidx.lite.divider.ItemDecoration; +import com.pengxh.androidx.lite.hub.FloatHub; +import com.pengxh.androidx.lite.hub.IntHub; +import com.pengxh.androidx.lite.hub.StringHub; +import com.pengxh.androidx.lite.utils.ImmerseStatusBarManager; +import com.pengxh.androidx.lite.utils.WeakReferenceHandler; +import com.pengxh.androidx.lite.vm.LoadState; +import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; +import com.qmuiteam.qmui.util.QMUIDisplayHelper; +import com.qmuiteam.qmui.widget.popup.QMUIPopup; +import com.qmuiteam.qmui.widget.popup.QMUIPopups; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnLoadMoreListener; +import com.scwang.smartrefresh.layout.listener.OnRefreshListener; + +import java.util.ArrayList; +import java.util.List; + +public class WellListActivity extends AndroidxBaseActivity { + + private final Context context = this; + private WeakReferenceHandler weakReferenceHandler; + private NormalRecyclerAdapter adapter; + private WellViewModel wellViewModel; + private List dataBeans = new ArrayList<>(); + private int pageIndex = 1; + private boolean isRefresh, isLoadMore = false; + + @Override + protected void setupTopBarLayout() { + ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white)); + ImmersionBar.with(this).statusBarDarkFont(true).init(); + + viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish()); + viewBinding.titleBarLayout.titleView.setText("窨井列表"); + viewBinding.titleBarLayout.rightImageView.setOnClickListener(view -> { + int popupWidth = QMUIDisplayHelper.dp2px(context, 100); + ArrayAdapter popupListAdapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, LocaleConstant.POPUP_OPTION_ITEMS); + QMUIPopups.listPopup(context, popupWidth, popupWidth * 2, popupListAdapter, new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + switch (position) { + case 0: + showBatchOptionDialog("布防", "1"); + break; + case 1: + showBatchOptionDialog("撤防", "0"); + break; + } + } + }).animStyle(QMUIPopup.ANIM_AUTO) + .shadowElevation(10, 1) + .radius(10) + .show(viewBinding.titleBarLayout.rightImageView); + }); + } + + @Override + protected void observeRequestState() { + wellViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(context, "数据加载中,请稍后"); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + public void initData() { + weakReferenceHandler = new WeakReferenceHandler(callback); + wellViewModel = new ViewModelProvider(this).get(WellViewModel.class); + wellViewModel.listModel.observe(this, new Observer() { + @Override + public void onChanged(WellListBean resultBean) { + if (resultBean.getCode() == 200) { + List dataRows = resultBean.getData().getRows(); + if (isRefresh) { + adapter.setRefreshData(dataRows); + viewBinding.refreshLayout.finishRefresh(); + isRefresh = false; + } else if (isLoadMore) { + if (dataRows.size() == 0) { + StringHub.show(context, "到底了,别拉了"); + } + adapter.setLoadMoreData(dataRows); + viewBinding.refreshLayout.finishLoadMore(); + isLoadMore = false; + } else { + dataBeans = dataRows; + weakReferenceHandler.sendEmptyMessage(20210628); + } + } + } + }); + + wellViewModel.operationActionModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.isSuccess()) { + StringHub.show(context, "操作成功"); + //取消成功之后自动刷新列表 + isRefresh = true; + pageIndex = 1; + obtainWellList(); + } else { + StringHub.show(context, "操作失败,请重试"); + } + } + }); + } + + @Override + protected void onResume() { + obtainWellList(); + super.onResume(); + } + + private void obtainWellList() { + wellViewModel.obtainWellList(pageIndex); + } + + @Override + public void initEvent() { + viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() { + @Override + public void onRefresh(@NonNull final RefreshLayout refreshLayout) { + isRefresh = true; + //刷新之后页码重置 + pageIndex = 1; + obtainWellList(); + } + }); + viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() { + @Override + public void onLoadMore(@NonNull final RefreshLayout refreshLayout) { + isLoadMore = true; + pageIndex++; + obtainWellList(); + } + }); + } + + private final Handler.Callback callback = msg -> { + if (msg.what == 20210628) { + if (dataBeans.size() == 0) { + viewBinding.emptyView.show("抱歉,无法为您查到窨井数据", null); + } else { + viewBinding.emptyView.hide(); + adapter = new NormalRecyclerAdapter(R.layout.item_well_rv_l, dataBeans) { + @Override + public void convertView(ViewHolder viewHolder, int position, WellListBean.DataBean.RowsBean item) { + viewHolder.setText(R.id.wellTypeView, item.getWellTypeName()) + .setText(R.id.wellNameView, item.getWellName()) + .setText(R.id.wellCodeView, item.getWellCode()) + .setText(R.id.wellPositionView, item.getPosition()) + .setText(R.id.wellStatusView, "已" + item.getBfztName()); + + String bfzt = item.getBfzt(); + if (bfzt.equals("0")) { + viewHolder.setText(R.id.wellOptionButton, "布防") + .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.onLineColor)); + } else { + viewHolder.setText(R.id.wellOptionButton, "撤防") + .setBackgroundColor(R.id.wellOptionButton, IntHub.convertColor(context, R.color.qmui_config_color_red)); + } + + viewHolder.setOnClickListener(R.id.wellNameView, new View.OnClickListener() { + @Override + public void onClick(View v) { + StringHub.show(context, "井深" + item.getDeep() + "m"); + } + }); + + viewHolder.setOnClickListener(R.id.wellOptionButton, new View.OnClickListener() { + @Override + public void onClick(View v) { + String bfzt = item.getBfzt(); + String bfztName; + if (bfzt.equals("0")) { + bfztName = "布防"; + bfzt = "1"; + } else if (bfzt.equals("1")) { + bfztName = "撤防"; + bfzt = "0"; + } else { + StringHub.show(context, "窨井状态错误,无法进行撤防或者布防"); + return; + } + showSingleOptionDialog(bfztName, dataBeans.get(position).getId(), bfzt); + } + }); + } + }; + viewBinding.wellRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f)); + viewBinding.wellRecyclerView.setAdapter(adapter); + adapter.setOnItemClickedListener(new NormalRecyclerAdapter.OnItemClickedListener() { + @Override + public void onItemClicked(int position, WellListBean.DataBean.RowsBean rowsBean) { + String lng = rowsBean.getCoordinateX(); + String lat = rowsBean.getCoordinateY(); + MapHelper.displayOnMap(context, "others", lng, lat); + } + }); + } + } + return true; + }; + + //单个撤防/布防 + private void showSingleOptionDialog(String bfztName, String id, String bfzt) { + new AlertControlDialog.Builder() + .setContext(this) + .setTitle("确认操作") + .setMessage("确定要对该井进行" + bfztName + "吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick() { + wellViewModel.operateSingleWell(id, bfzt); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } + + //一键撤防/布防 + private void showBatchOptionDialog(String bfztName, String bfzt) { + new AlertControlDialog.Builder() + .setContext(this) + .setTitle("确认操作") + .setMessage("确定对全部井进行" + bfztName + "吗?") + .setNegativeButton("取消") + .setPositiveButton("确定") + .setOnDialogButtonClickListener(new AlertControlDialog.OnDialogButtonClickListener() { + @Override + public void onConfirmClick() { + wellViewModel.operateBatchWell(bfzt); + } + + @Override + public void onCancelClick() { + + } + }).build().show(); + } +} diff --git a/app/src/main/java/com/casic/dcms/vm/WellViewModel.java b/app/src/main/java/com/casic/dcms/vm/WellViewModel.java index 99acf42..5094030 100644 --- a/app/src/main/java/com/casic/dcms/vm/WellViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/WellViewModel.java @@ -29,16 +29,22 @@ public MutableLiveData operationActionModel = new MutableLiveData<>(); public void obtainWellList(int offset) { + loadState.setValue(LoadState.Loading); Observable observable = RetrofitServiceManager.getWellListResult(offset); ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { @Override public void onCompleted() { - + loadState.setValue(LoadState.Success); } @Override public void onError(Throwable e) { - + loadState.setValue(LoadState.Fail); + if (e instanceof ConnectException) { + StringHub.show(BaseApplication.get(), "连接失败,请检查网络或者服务器"); + } else { + StringHub.show(BaseApplication.get(), "服务器异常,请联系管理员"); + } } @Override @@ -50,6 +56,9 @@ WellListBean resultBean = gson.fromJson(response, new TypeToken() { }.getType()); listModel.setValue(resultBean); + } else { + loadState.setValue(LoadState.Fail); + StringHelper.showErrorMessage(response); } } catch (IOException e) { e.printStackTrace(); @@ -98,17 +107,15 @@ } public void operateSingleWell(String wellId, String bfzt) { - loadState.setValue(LoadState.Loading); Observable wellDetailObservable = RetrofitServiceManager.getSingleOptionWellResult(wellId, bfzt); ObserverSubscriber.addSubscribe(wellDetailObservable, new OnObserverCallback() { @Override public void onCompleted() { - loadState.setValue(LoadState.Success); + } @Override public void onError(Throwable e) { - loadState.setValue(LoadState.Fail); if (e instanceof ConnectException) { StringHub.show(BaseApplication.get(), "连接失败,请检查网络或者服务器"); } else { @@ -126,7 +133,6 @@ }.getType()); operationActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) { @@ -137,17 +143,15 @@ } public void operateBatchWell(String bfzt) { - loadState.setValue(LoadState.Loading); Observable wellDetailObservable = RetrofitServiceManager.getBatchOptionWellResult(bfzt); ObserverSubscriber.addSubscribe(wellDetailObservable, new OnObserverCallback() { @Override public void onCompleted() { - loadState.setValue(LoadState.Success); + } @Override public void onError(Throwable e) { - loadState.setValue(LoadState.Fail); if (e instanceof ConnectException) { StringHub.show(BaseApplication.get(), "连接失败,请检查网络或者服务器"); } else { @@ -165,7 +169,6 @@ }.getType()); operationActionModel.setValue(resultBean); } else { - loadState.setValue(LoadState.Fail); StringHelper.showErrorMessage(response); } } catch (IOException e) {