diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,8 @@
-
-
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
deleted file mode 100644
index 817fe40..0000000
--- a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.amap.api.location.AMapLocation;
-import com.amap.api.services.core.LatLonPoint;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityBridgeBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.BridgeConfigBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.LocationHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.IAddressListener;
-import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.SignInDialog;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.IntHub;
-import com.pengxh.androidx.lite.hub.LongHub;
-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.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
-
-import java.util.List;
-
-public class BridgeMaintainActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "BridgeMaintainActivity";
- private final Context context = BridgeMaintainActivity.this;
- private BridgeViewModel bridgeViewModel;
- private String bridgeId = "";
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("路桥养护");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- });
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- }
-
- @Override
- protected void initEvent() {
- viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- List bridges = StringHelper.getBridgeBeanList();
- if (bridges.size() == 0) {
- StringHub.show(context, "获取桥梁数据异常");
- return;
- }
- BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
- sheetBuilder.setTitle("选择桥梁");
- for (BridgeConfigBean.BridgesBean bean : bridges) {
- sheetBuilder.addItem(bean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- bridgeId = String.valueOf(bridges.get(position).getId());
- viewBinding.bridgeNameView.setText(tag);
- viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new BottomListSheetBuilder(context)
- .setTitle("养护内容")
- .addItem("日常养护,无异常")
- .addItem("清除表面污垢")
- .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
- .addItem("清除暴露钢筋的锈渍、恢复保护层")
- .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- viewBinding.maintainView.setText(tag);
- viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
- viewBinding.maintainDateView.setText(systemDate);
- viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
-
- @Override
- public void onAMapLocationGet(AMapLocation aMapLocation) {
- if (TextUtils.isEmpty(bridgeId)) {
- StringHub.show(context, "请先选择养护的桥梁");
- return;
- }
- String maintainContent = viewBinding.maintainView.getText().toString();
- if (TextUtils.isEmpty(maintainContent)) {
- StringHub.show(context, "请选择养护的内容");
- return;
- }
- LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
- LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
- @Override
- public void onGetAddress(String address) {
- Log.d(TAG, "onGetAddress: " + address);
- SaveKeyValues.putValue("maintainAddress", address);
-
- //提交养护记录
- bridgeViewModel.submitMaintain(
- bridgeId,
- maintainContent,
- viewBinding.maintainDateView.getText().toString(),
- StringHelper.getUserBean().getId(),
- String.valueOf(aMapLocation.getLongitude()),
- String.valueOf(aMapLocation.getLatitude()),
- StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
- );
- }
- });
- }
- }, true);
- }
- });
- bridgeViewModel.submitResultModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
- if (resultBean.getCode() == 200) {
- new SignInDialog.Builder()
- .setContext(context)
- .setTitle("桥梁养护记录提交成功")
- .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
- .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- }).build().show();
- }
- }
- });
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
deleted file mode 100644
index 817fe40..0000000
--- a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.amap.api.location.AMapLocation;
-import com.amap.api.services.core.LatLonPoint;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityBridgeBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.BridgeConfigBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.LocationHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.IAddressListener;
-import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.SignInDialog;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.IntHub;
-import com.pengxh.androidx.lite.hub.LongHub;
-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.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
-
-import java.util.List;
-
-public class BridgeMaintainActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "BridgeMaintainActivity";
- private final Context context = BridgeMaintainActivity.this;
- private BridgeViewModel bridgeViewModel;
- private String bridgeId = "";
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("路桥养护");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- });
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- }
-
- @Override
- protected void initEvent() {
- viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- List bridges = StringHelper.getBridgeBeanList();
- if (bridges.size() == 0) {
- StringHub.show(context, "获取桥梁数据异常");
- return;
- }
- BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
- sheetBuilder.setTitle("选择桥梁");
- for (BridgeConfigBean.BridgesBean bean : bridges) {
- sheetBuilder.addItem(bean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- bridgeId = String.valueOf(bridges.get(position).getId());
- viewBinding.bridgeNameView.setText(tag);
- viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new BottomListSheetBuilder(context)
- .setTitle("养护内容")
- .addItem("日常养护,无异常")
- .addItem("清除表面污垢")
- .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
- .addItem("清除暴露钢筋的锈渍、恢复保护层")
- .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- viewBinding.maintainView.setText(tag);
- viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
- viewBinding.maintainDateView.setText(systemDate);
- viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
-
- @Override
- public void onAMapLocationGet(AMapLocation aMapLocation) {
- if (TextUtils.isEmpty(bridgeId)) {
- StringHub.show(context, "请先选择养护的桥梁");
- return;
- }
- String maintainContent = viewBinding.maintainView.getText().toString();
- if (TextUtils.isEmpty(maintainContent)) {
- StringHub.show(context, "请选择养护的内容");
- return;
- }
- LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
- LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
- @Override
- public void onGetAddress(String address) {
- Log.d(TAG, "onGetAddress: " + address);
- SaveKeyValues.putValue("maintainAddress", address);
-
- //提交养护记录
- bridgeViewModel.submitMaintain(
- bridgeId,
- maintainContent,
- viewBinding.maintainDateView.getText().toString(),
- StringHelper.getUserBean().getId(),
- String.valueOf(aMapLocation.getLongitude()),
- String.valueOf(aMapLocation.getLatitude()),
- StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
- );
- }
- });
- }
- }, true);
- }
- });
- bridgeViewModel.submitResultModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
- if (resultBean.getCode() == 200) {
- new SignInDialog.Builder()
- .setContext(context)
- .setTitle("桥梁养护记录提交成功")
- .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
- .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- }).build().show();
- }
- }
- });
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
deleted file mode 100644
index 6f35405..0000000
--- a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
-import com.casic.dcms.model.MaintainRecordBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.RangeDateActionSheet;
-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.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 MaintainRecordActivity extends AndroidxBaseActivity {
-
- private final Context context = MaintainRecordActivity.this;
- private BridgeViewModel bridgeViewModel;
- private List dataBeans = new ArrayList<>();
- private WeakReferenceHandler weakReferenceHandler;
- private NormalRecyclerAdapter adapter;
- private int pageIndex = 1;
- private boolean isRefresh = false;
- private boolean isLoadMore = false;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- bridgeViewModel.recordModel.observe(this, new Observer() {
- @Override
- public void onChanged(MaintainRecordBean 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(20210622);
- }
- }
- }
- });
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
-
- @Override
- protected void initEvent() {
- viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
- @Override
- public void onDateRangeSelected(String startDate, String endDate) {
- viewBinding.dateView.setText(startDate + "~" + endDate);
-
- pageIndex = 1;
- obtainMaintainRecord(startDate, endDate);
- }
- }).build().show();
- }
- });
- viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
- @Override
- public void onRefresh(@NonNull RefreshLayout refreshLayout) {
- isRefresh = true;
- //刷新之后页码重置
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
- @Override
- public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
- isLoadMore = true;
- pageIndex++;
- obtainMaintainRecord("", "");
- }
- });
- }
-
- private void obtainMaintainRecord(String start, String end) {
- bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
- }
-
- private final Handler.Callback callback = msg -> {
- if (msg.what == 20210622) {
- if (dataBeans.size() == 0) {
- viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- } else {
- viewBinding.emptyView.hide();
- adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
- @Override
- public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
- String description = item.getDescription();
- if (TextUtils.isEmpty(description)) {
- viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
- } else {
- viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
- viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- StringHub.show(context, description);
- }
- });
- }
- viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
- .setText(R.id.maintainContentView, item.getContent())
- .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
- }
- };
- viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
- viewBinding.recordRecyclerView.setAdapter(adapter);
- }
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
deleted file mode 100644
index 817fe40..0000000
--- a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.amap.api.location.AMapLocation;
-import com.amap.api.services.core.LatLonPoint;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityBridgeBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.BridgeConfigBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.LocationHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.IAddressListener;
-import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.SignInDialog;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.IntHub;
-import com.pengxh.androidx.lite.hub.LongHub;
-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.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
-
-import java.util.List;
-
-public class BridgeMaintainActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "BridgeMaintainActivity";
- private final Context context = BridgeMaintainActivity.this;
- private BridgeViewModel bridgeViewModel;
- private String bridgeId = "";
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("路桥养护");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- });
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- }
-
- @Override
- protected void initEvent() {
- viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- List bridges = StringHelper.getBridgeBeanList();
- if (bridges.size() == 0) {
- StringHub.show(context, "获取桥梁数据异常");
- return;
- }
- BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
- sheetBuilder.setTitle("选择桥梁");
- for (BridgeConfigBean.BridgesBean bean : bridges) {
- sheetBuilder.addItem(bean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- bridgeId = String.valueOf(bridges.get(position).getId());
- viewBinding.bridgeNameView.setText(tag);
- viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new BottomListSheetBuilder(context)
- .setTitle("养护内容")
- .addItem("日常养护,无异常")
- .addItem("清除表面污垢")
- .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
- .addItem("清除暴露钢筋的锈渍、恢复保护层")
- .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- viewBinding.maintainView.setText(tag);
- viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
- viewBinding.maintainDateView.setText(systemDate);
- viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
-
- @Override
- public void onAMapLocationGet(AMapLocation aMapLocation) {
- if (TextUtils.isEmpty(bridgeId)) {
- StringHub.show(context, "请先选择养护的桥梁");
- return;
- }
- String maintainContent = viewBinding.maintainView.getText().toString();
- if (TextUtils.isEmpty(maintainContent)) {
- StringHub.show(context, "请选择养护的内容");
- return;
- }
- LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
- LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
- @Override
- public void onGetAddress(String address) {
- Log.d(TAG, "onGetAddress: " + address);
- SaveKeyValues.putValue("maintainAddress", address);
-
- //提交养护记录
- bridgeViewModel.submitMaintain(
- bridgeId,
- maintainContent,
- viewBinding.maintainDateView.getText().toString(),
- StringHelper.getUserBean().getId(),
- String.valueOf(aMapLocation.getLongitude()),
- String.valueOf(aMapLocation.getLatitude()),
- StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
- );
- }
- });
- }
- }, true);
- }
- });
- bridgeViewModel.submitResultModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
- if (resultBean.getCode() == 200) {
- new SignInDialog.Builder()
- .setContext(context)
- .setTitle("桥梁养护记录提交成功")
- .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
- .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- }).build().show();
- }
- }
- });
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
deleted file mode 100644
index 6f35405..0000000
--- a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
-import com.casic.dcms.model.MaintainRecordBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.RangeDateActionSheet;
-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.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 MaintainRecordActivity extends AndroidxBaseActivity {
-
- private final Context context = MaintainRecordActivity.this;
- private BridgeViewModel bridgeViewModel;
- private List dataBeans = new ArrayList<>();
- private WeakReferenceHandler weakReferenceHandler;
- private NormalRecyclerAdapter adapter;
- private int pageIndex = 1;
- private boolean isRefresh = false;
- private boolean isLoadMore = false;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- bridgeViewModel.recordModel.observe(this, new Observer() {
- @Override
- public void onChanged(MaintainRecordBean 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(20210622);
- }
- }
- }
- });
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
-
- @Override
- protected void initEvent() {
- viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
- @Override
- public void onDateRangeSelected(String startDate, String endDate) {
- viewBinding.dateView.setText(startDate + "~" + endDate);
-
- pageIndex = 1;
- obtainMaintainRecord(startDate, endDate);
- }
- }).build().show();
- }
- });
- viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
- @Override
- public void onRefresh(@NonNull RefreshLayout refreshLayout) {
- isRefresh = true;
- //刷新之后页码重置
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
- @Override
- public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
- isLoadMore = true;
- pageIndex++;
- obtainMaintainRecord("", "");
- }
- });
- }
-
- private void obtainMaintainRecord(String start, String end) {
- bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
- }
-
- private final Handler.Callback callback = msg -> {
- if (msg.what == 20210622) {
- if (dataBeans.size() == 0) {
- viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- } else {
- viewBinding.emptyView.hide();
- adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
- @Override
- public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
- String description = item.getDescription();
- if (TextUtils.isEmpty(description)) {
- viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
- } else {
- viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
- viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- StringHub.show(context, description);
- }
- });
- }
- viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
- .setText(R.id.maintainContentView, item.getContent())
- .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
- }
- };
- viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
- viewBinding.recordRecyclerView.setAdapter(adapter);
- }
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
index 29f73b6..c619ef3 100644
--- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
@@ -15,6 +15,7 @@
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;
@@ -23,6 +24,8 @@
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;
@@ -87,7 +90,11 @@
alarmViewModel.loadState.observe(this, new Observer() {
@Override
public void onChanged(LoadState loadState) {
-
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
}
});
}
@@ -196,6 +203,7 @@
});
}
};
+ viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
viewBinding.warningRecyclerView.setAdapter(adapter);
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
deleted file mode 100644
index 817fe40..0000000
--- a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.amap.api.location.AMapLocation;
-import com.amap.api.services.core.LatLonPoint;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityBridgeBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.BridgeConfigBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.LocationHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.IAddressListener;
-import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.SignInDialog;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.IntHub;
-import com.pengxh.androidx.lite.hub.LongHub;
-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.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
-
-import java.util.List;
-
-public class BridgeMaintainActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "BridgeMaintainActivity";
- private final Context context = BridgeMaintainActivity.this;
- private BridgeViewModel bridgeViewModel;
- private String bridgeId = "";
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("路桥养护");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- });
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- }
-
- @Override
- protected void initEvent() {
- viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- List bridges = StringHelper.getBridgeBeanList();
- if (bridges.size() == 0) {
- StringHub.show(context, "获取桥梁数据异常");
- return;
- }
- BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
- sheetBuilder.setTitle("选择桥梁");
- for (BridgeConfigBean.BridgesBean bean : bridges) {
- sheetBuilder.addItem(bean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- bridgeId = String.valueOf(bridges.get(position).getId());
- viewBinding.bridgeNameView.setText(tag);
- viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new BottomListSheetBuilder(context)
- .setTitle("养护内容")
- .addItem("日常养护,无异常")
- .addItem("清除表面污垢")
- .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
- .addItem("清除暴露钢筋的锈渍、恢复保护层")
- .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- viewBinding.maintainView.setText(tag);
- viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
- viewBinding.maintainDateView.setText(systemDate);
- viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
-
- @Override
- public void onAMapLocationGet(AMapLocation aMapLocation) {
- if (TextUtils.isEmpty(bridgeId)) {
- StringHub.show(context, "请先选择养护的桥梁");
- return;
- }
- String maintainContent = viewBinding.maintainView.getText().toString();
- if (TextUtils.isEmpty(maintainContent)) {
- StringHub.show(context, "请选择养护的内容");
- return;
- }
- LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
- LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
- @Override
- public void onGetAddress(String address) {
- Log.d(TAG, "onGetAddress: " + address);
- SaveKeyValues.putValue("maintainAddress", address);
-
- //提交养护记录
- bridgeViewModel.submitMaintain(
- bridgeId,
- maintainContent,
- viewBinding.maintainDateView.getText().toString(),
- StringHelper.getUserBean().getId(),
- String.valueOf(aMapLocation.getLongitude()),
- String.valueOf(aMapLocation.getLatitude()),
- StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
- );
- }
- });
- }
- }, true);
- }
- });
- bridgeViewModel.submitResultModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
- if (resultBean.getCode() == 200) {
- new SignInDialog.Builder()
- .setContext(context)
- .setTitle("桥梁养护记录提交成功")
- .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
- .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- }).build().show();
- }
- }
- });
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
deleted file mode 100644
index 6f35405..0000000
--- a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
-import com.casic.dcms.model.MaintainRecordBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.RangeDateActionSheet;
-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.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 MaintainRecordActivity extends AndroidxBaseActivity {
-
- private final Context context = MaintainRecordActivity.this;
- private BridgeViewModel bridgeViewModel;
- private List dataBeans = new ArrayList<>();
- private WeakReferenceHandler weakReferenceHandler;
- private NormalRecyclerAdapter adapter;
- private int pageIndex = 1;
- private boolean isRefresh = false;
- private boolean isLoadMore = false;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- bridgeViewModel.recordModel.observe(this, new Observer() {
- @Override
- public void onChanged(MaintainRecordBean 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(20210622);
- }
- }
- }
- });
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
-
- @Override
- protected void initEvent() {
- viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
- @Override
- public void onDateRangeSelected(String startDate, String endDate) {
- viewBinding.dateView.setText(startDate + "~" + endDate);
-
- pageIndex = 1;
- obtainMaintainRecord(startDate, endDate);
- }
- }).build().show();
- }
- });
- viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
- @Override
- public void onRefresh(@NonNull RefreshLayout refreshLayout) {
- isRefresh = true;
- //刷新之后页码重置
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
- @Override
- public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
- isLoadMore = true;
- pageIndex++;
- obtainMaintainRecord("", "");
- }
- });
- }
-
- private void obtainMaintainRecord(String start, String end) {
- bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
- }
-
- private final Handler.Callback callback = msg -> {
- if (msg.what == 20210622) {
- if (dataBeans.size() == 0) {
- viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- } else {
- viewBinding.emptyView.hide();
- adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
- @Override
- public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
- String description = item.getDescription();
- if (TextUtils.isEmpty(description)) {
- viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
- } else {
- viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
- viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- StringHub.show(context, description);
- }
- });
- }
- viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
- .setText(R.id.maintainContentView, item.getContent())
- .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
- }
- };
- viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
- viewBinding.recordRecyclerView.setAdapter(adapter);
- }
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
index 29f73b6..c619ef3 100644
--- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
@@ -15,6 +15,7 @@
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;
@@ -23,6 +24,8 @@
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;
@@ -87,7 +90,11 @@
alarmViewModel.loadState.observe(this, new Observer() {
@Override
public void onChanged(LoadState loadState) {
-
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
}
});
}
@@ -196,6 +203,7 @@
});
}
};
+ viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
viewBinding.warningRecyclerView.setAdapter(adapter);
}
}
diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java
new file mode 100644
index 0000000..857866b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java
@@ -0,0 +1,191 @@
+package com.casic.dcms.view.bridge;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityBridgeBinding;
+import com.casic.dcms.model.ActionResultBean;
+import com.casic.dcms.model.BridgeConfigBean;
+import com.casic.dcms.utils.DialogHelper;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.vm.BridgeViewModel;
+import com.casic.dcms.widgets.SignInDialog;
+import com.gyf.immersionbar.ImmersionBar;
+import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.hub.ContextHub;
+import com.pengxh.androidx.lite.hub.IntHub;
+import com.pengxh.androidx.lite.hub.LongHub;
+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.vm.LoadState;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
+
+import java.util.List;
+
+public class BridgeMaintainActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private final Context context = BridgeMaintainActivity.this;
+ private BridgeViewModel bridgeViewModel;
+ private String bridgeId = "";
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
+
+ viewBinding.titleBarLayout.titleView.setText("路桥养护");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
+ }
+ });
+ }
+
+ @Override
+ protected void observeRequestState() {
+ bridgeViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initData() {
+ bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
+ bridgeViewModel.submitResultModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.getCode() == 200) {
+ new SignInDialog.Builder()
+ .setContext(context)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
+ }
+ }).build().show();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ List bridges = StringHelper.getBridgeBeanList();
+ if (bridges.size() == 0) {
+ StringHub.show(context, "获取桥梁数据异常");
+ return;
+ }
+ BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
+ sheetBuilder.setTitle("选择桥梁");
+ for (BridgeConfigBean.BridgesBean bean : bridges) {
+ sheetBuilder.addItem(bean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ bridgeId = String.valueOf(bridges.get(position).getId());
+ viewBinding.bridgeNameView.setText(tag);
+ viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
+ }
+ }).build().show();
+ }
+ });
+
+ viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new BottomListSheetBuilder(context)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ viewBinding.maintainView.setText(tag);
+ viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
+ }
+ }).build().show();
+ }
+ });
+
+ String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
+ viewBinding.maintainDateView.setText(systemDate);
+ viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
+
+ viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ StringHub.show(context, "请先选择养护的桥梁");
+ return;
+ }
+ String maintainContent = viewBinding.maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ StringHub.show(context, "请选择养护的内容");
+ return;
+ }
+ LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ Log.d(TAG, "onGetAddress: " + address);
+ SaveKeyValues.putValue("maintainAddress", address);
+
+ //提交养护记录
+ bridgeViewModel.submitMaintain(
+ bridgeId,
+ maintainContent,
+ viewBinding.maintainDateView.getText().toString(),
+ StringHelper.getUserBean().getId(),
+ String.valueOf(aMapLocation.getLongitude()),
+ String.valueOf(aMapLocation.getLatitude()),
+ StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
+ );
+ }
+ });
+ }
+ }, true);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
deleted file mode 100644
index 817fe40..0000000
--- a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.amap.api.location.AMapLocation;
-import com.amap.api.services.core.LatLonPoint;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityBridgeBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.BridgeConfigBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.LocationHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.IAddressListener;
-import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.SignInDialog;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.IntHub;
-import com.pengxh.androidx.lite.hub.LongHub;
-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.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
-
-import java.util.List;
-
-public class BridgeMaintainActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "BridgeMaintainActivity";
- private final Context context = BridgeMaintainActivity.this;
- private BridgeViewModel bridgeViewModel;
- private String bridgeId = "";
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("路桥养护");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- });
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- }
-
- @Override
- protected void initEvent() {
- viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- List bridges = StringHelper.getBridgeBeanList();
- if (bridges.size() == 0) {
- StringHub.show(context, "获取桥梁数据异常");
- return;
- }
- BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
- sheetBuilder.setTitle("选择桥梁");
- for (BridgeConfigBean.BridgesBean bean : bridges) {
- sheetBuilder.addItem(bean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- bridgeId = String.valueOf(bridges.get(position).getId());
- viewBinding.bridgeNameView.setText(tag);
- viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new BottomListSheetBuilder(context)
- .setTitle("养护内容")
- .addItem("日常养护,无异常")
- .addItem("清除表面污垢")
- .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
- .addItem("清除暴露钢筋的锈渍、恢复保护层")
- .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- viewBinding.maintainView.setText(tag);
- viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
- viewBinding.maintainDateView.setText(systemDate);
- viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
-
- @Override
- public void onAMapLocationGet(AMapLocation aMapLocation) {
- if (TextUtils.isEmpty(bridgeId)) {
- StringHub.show(context, "请先选择养护的桥梁");
- return;
- }
- String maintainContent = viewBinding.maintainView.getText().toString();
- if (TextUtils.isEmpty(maintainContent)) {
- StringHub.show(context, "请选择养护的内容");
- return;
- }
- LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
- LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
- @Override
- public void onGetAddress(String address) {
- Log.d(TAG, "onGetAddress: " + address);
- SaveKeyValues.putValue("maintainAddress", address);
-
- //提交养护记录
- bridgeViewModel.submitMaintain(
- bridgeId,
- maintainContent,
- viewBinding.maintainDateView.getText().toString(),
- StringHelper.getUserBean().getId(),
- String.valueOf(aMapLocation.getLongitude()),
- String.valueOf(aMapLocation.getLatitude()),
- StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
- );
- }
- });
- }
- }, true);
- }
- });
- bridgeViewModel.submitResultModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
- if (resultBean.getCode() == 200) {
- new SignInDialog.Builder()
- .setContext(context)
- .setTitle("桥梁养护记录提交成功")
- .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
- .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- }).build().show();
- }
- }
- });
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
deleted file mode 100644
index 6f35405..0000000
--- a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
-import com.casic.dcms.model.MaintainRecordBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.RangeDateActionSheet;
-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.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 MaintainRecordActivity extends AndroidxBaseActivity {
-
- private final Context context = MaintainRecordActivity.this;
- private BridgeViewModel bridgeViewModel;
- private List dataBeans = new ArrayList<>();
- private WeakReferenceHandler weakReferenceHandler;
- private NormalRecyclerAdapter adapter;
- private int pageIndex = 1;
- private boolean isRefresh = false;
- private boolean isLoadMore = false;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- bridgeViewModel.recordModel.observe(this, new Observer() {
- @Override
- public void onChanged(MaintainRecordBean 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(20210622);
- }
- }
- }
- });
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
-
- @Override
- protected void initEvent() {
- viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
- @Override
- public void onDateRangeSelected(String startDate, String endDate) {
- viewBinding.dateView.setText(startDate + "~" + endDate);
-
- pageIndex = 1;
- obtainMaintainRecord(startDate, endDate);
- }
- }).build().show();
- }
- });
- viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
- @Override
- public void onRefresh(@NonNull RefreshLayout refreshLayout) {
- isRefresh = true;
- //刷新之后页码重置
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
- @Override
- public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
- isLoadMore = true;
- pageIndex++;
- obtainMaintainRecord("", "");
- }
- });
- }
-
- private void obtainMaintainRecord(String start, String end) {
- bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
- }
-
- private final Handler.Callback callback = msg -> {
- if (msg.what == 20210622) {
- if (dataBeans.size() == 0) {
- viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- } else {
- viewBinding.emptyView.hide();
- adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
- @Override
- public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
- String description = item.getDescription();
- if (TextUtils.isEmpty(description)) {
- viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
- } else {
- viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
- viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- StringHub.show(context, description);
- }
- });
- }
- viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
- .setText(R.id.maintainContentView, item.getContent())
- .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
- }
- };
- viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
- viewBinding.recordRecyclerView.setAdapter(adapter);
- }
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
index 29f73b6..c619ef3 100644
--- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
@@ -15,6 +15,7 @@
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;
@@ -23,6 +24,8 @@
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;
@@ -87,7 +90,11 @@
alarmViewModel.loadState.observe(this, new Observer() {
@Override
public void onChanged(LoadState loadState) {
-
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
}
});
}
@@ -196,6 +203,7 @@
});
}
};
+ viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
viewBinding.warningRecyclerView.setAdapter(adapter);
}
}
diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java
new file mode 100644
index 0000000..857866b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java
@@ -0,0 +1,191 @@
+package com.casic.dcms.view.bridge;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityBridgeBinding;
+import com.casic.dcms.model.ActionResultBean;
+import com.casic.dcms.model.BridgeConfigBean;
+import com.casic.dcms.utils.DialogHelper;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.vm.BridgeViewModel;
+import com.casic.dcms.widgets.SignInDialog;
+import com.gyf.immersionbar.ImmersionBar;
+import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.hub.ContextHub;
+import com.pengxh.androidx.lite.hub.IntHub;
+import com.pengxh.androidx.lite.hub.LongHub;
+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.vm.LoadState;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
+
+import java.util.List;
+
+public class BridgeMaintainActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private final Context context = BridgeMaintainActivity.this;
+ private BridgeViewModel bridgeViewModel;
+ private String bridgeId = "";
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
+
+ viewBinding.titleBarLayout.titleView.setText("路桥养护");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
+ }
+ });
+ }
+
+ @Override
+ protected void observeRequestState() {
+ bridgeViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initData() {
+ bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
+ bridgeViewModel.submitResultModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.getCode() == 200) {
+ new SignInDialog.Builder()
+ .setContext(context)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
+ }
+ }).build().show();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ List bridges = StringHelper.getBridgeBeanList();
+ if (bridges.size() == 0) {
+ StringHub.show(context, "获取桥梁数据异常");
+ return;
+ }
+ BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
+ sheetBuilder.setTitle("选择桥梁");
+ for (BridgeConfigBean.BridgesBean bean : bridges) {
+ sheetBuilder.addItem(bean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ bridgeId = String.valueOf(bridges.get(position).getId());
+ viewBinding.bridgeNameView.setText(tag);
+ viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
+ }
+ }).build().show();
+ }
+ });
+
+ viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new BottomListSheetBuilder(context)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ viewBinding.maintainView.setText(tag);
+ viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
+ }
+ }).build().show();
+ }
+ });
+
+ String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
+ viewBinding.maintainDateView.setText(systemDate);
+ viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
+
+ viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ StringHub.show(context, "请先选择养护的桥梁");
+ return;
+ }
+ String maintainContent = viewBinding.maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ StringHub.show(context, "请选择养护的内容");
+ return;
+ }
+ LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ Log.d(TAG, "onGetAddress: " + address);
+ SaveKeyValues.putValue("maintainAddress", address);
+
+ //提交养护记录
+ bridgeViewModel.submitMaintain(
+ bridgeId,
+ maintainContent,
+ viewBinding.maintainDateView.getText().toString(),
+ StringHelper.getUserBean().getId(),
+ String.valueOf(aMapLocation.getLongitude()),
+ String.valueOf(aMapLocation.getLatitude()),
+ StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
+ );
+ }
+ });
+ }
+ }, true);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java
new file mode 100644
index 0000000..55e5936
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java
@@ -0,0 +1,183 @@
+package com.casic.dcms.view.bridge;
+
+import android.content.Context;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
+import com.casic.dcms.model.MaintainRecordBean;
+import com.casic.dcms.utils.DialogHelper;
+import com.casic.dcms.vm.BridgeViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
+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.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 MaintainRecordActivity extends AndroidxBaseActivity {
+
+ private final Context context = MaintainRecordActivity.this;
+ private BridgeViewModel bridgeViewModel;
+ private List dataBeans = new ArrayList<>();
+ private WeakReferenceHandler weakReferenceHandler;
+ private NormalRecyclerAdapter adapter;
+ private int pageIndex = 1;
+ private boolean isRefresh = false;
+ private boolean isLoadMore = false;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
+
+ viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void observeRequestState() {
+ bridgeViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(callback);
+ bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
+ bridgeViewModel.recordModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(MaintainRecordBean 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(20210622);
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ pageIndex = 1;
+ obtainMaintainRecord("", "");
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ viewBinding.dateView.setText(startDate + "~" + endDate);
+
+ pageIndex = 1;
+ obtainMaintainRecord(startDate, endDate);
+ }
+ }).build().show();
+ }
+ });
+ viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ obtainMaintainRecord("", "");
+ }
+ });
+ viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ obtainMaintainRecord("", "");
+ }
+ });
+ }
+
+ private void obtainMaintainRecord(String start, String end) {
+ bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
+ }
+
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ pageIndex = 1;
+ obtainMaintainRecord("", "");
+ }
+ });
+ } else {
+ viewBinding.emptyView.hide();
+ adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
+ @Override
+ public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
+ String description = item.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
+ } else {
+ viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
+ viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ StringHub.show(context, description);
+ }
+ });
+ }
+ viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
+ .setText(R.id.maintainContentView, item.getContent())
+ .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
+ }
+ };
+ viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ }
+ }
+ return true;
+ };
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b18fd67..32535b5 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -103,8 +103,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 21490f0..18a7105 100644
--- a/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
+++ b/app/src/main/java/com/casic/dcms/fragment/HomePageFragment.java
@@ -12,12 +12,12 @@
import com.casic.dcms.model.UserBean;
import com.casic.dcms.utils.LocaleConstant;
import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.view.BridgeMaintainActivity;
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;
import com.casic.dcms.view.business.ChangeShopInfoActivity;
import com.casic.dcms.view.business.PackageCaseActivity;
import com.casic.dcms.view.check.CheckCaseActivity;
diff --git a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
deleted file mode 100644
index 817fe40..0000000
--- a/app/src/main/java/com/casic/dcms/view/BridgeMaintainActivity.java
+++ /dev/null
@@ -1,192 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.core.content.ContextCompat;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.amap.api.location.AMapLocation;
-import com.amap.api.services.core.LatLonPoint;
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityBridgeBinding;
-import com.casic.dcms.model.ActionResultBean;
-import com.casic.dcms.model.BridgeConfigBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.utils.LocationHelper;
-import com.casic.dcms.utils.StringHelper;
-import com.casic.dcms.utils.callback.IAddressListener;
-import com.casic.dcms.utils.callback.ILocationListener;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.SignInDialog;
-import com.gyf.immersionbar.ImmersionBar;
-import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
-import com.pengxh.androidx.lite.hub.ContextHub;
-import com.pengxh.androidx.lite.hub.IntHub;
-import com.pengxh.androidx.lite.hub.LongHub;
-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.vm.LoadState;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
-import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
-
-import java.util.List;
-
-public class BridgeMaintainActivity extends AndroidxBaseActivity {
-
- private static final String TAG = "BridgeMaintainActivity";
- private final Context context = BridgeMaintainActivity.this;
- private BridgeViewModel bridgeViewModel;
- private String bridgeId = "";
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("路桥养护");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- });
- }
-
- @Override
- protected void observeRequestState() {
-
- }
-
- @Override
- protected void initData() {
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- }
-
- @Override
- protected void initEvent() {
- viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- List bridges = StringHelper.getBridgeBeanList();
- if (bridges.size() == 0) {
- StringHub.show(context, "获取桥梁数据异常");
- return;
- }
- BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
- sheetBuilder.setTitle("选择桥梁");
- for (BridgeConfigBean.BridgesBean bean : bridges) {
- sheetBuilder.addItem(bean.getName());
- }
- sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- bridgeId = String.valueOf(bridges.get(position).getId());
- viewBinding.bridgeNameView.setText(tag);
- viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new BottomListSheetBuilder(context)
- .setTitle("养护内容")
- .addItem("日常养护,无异常")
- .addItem("清除表面污垢")
- .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
- .addItem("清除暴露钢筋的锈渍、恢复保护层")
- .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
- .setGravityCenter(true)
- .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
- @Override
- public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
- dialog.dismiss();
- viewBinding.maintainView.setText(tag);
- viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
- }
- }).build().show();
- }
- });
-
- String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
- viewBinding.maintainDateView.setText(systemDate);
- viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
-
- viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
-
- @Override
- public void onAMapLocationGet(AMapLocation aMapLocation) {
- if (TextUtils.isEmpty(bridgeId)) {
- StringHub.show(context, "请先选择养护的桥梁");
- return;
- }
- String maintainContent = viewBinding.maintainView.getText().toString();
- if (TextUtils.isEmpty(maintainContent)) {
- StringHub.show(context, "请选择养护的内容");
- return;
- }
- LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
- LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
- @Override
- public void onGetAddress(String address) {
- Log.d(TAG, "onGetAddress: " + address);
- SaveKeyValues.putValue("maintainAddress", address);
-
- //提交养护记录
- bridgeViewModel.submitMaintain(
- bridgeId,
- maintainContent,
- viewBinding.maintainDateView.getText().toString(),
- StringHelper.getUserBean().getId(),
- String.valueOf(aMapLocation.getLongitude()),
- String.valueOf(aMapLocation.getLatitude()),
- StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
- );
- }
- });
- }
- }, true);
- }
- });
- bridgeViewModel.submitResultModel.observe(this, new Observer() {
- @Override
- public void onChanged(ActionResultBean resultBean) {
- String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
- if (resultBean.getCode() == 200) {
- new SignInDialog.Builder()
- .setContext(context)
- .setTitle("桥梁养护记录提交成功")
- .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
- .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
- @Override
- public void onViewClick() {
- ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
- }
- }).build().show();
- }
- }
- });
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
deleted file mode 100644
index 6f35405..0000000
--- a/app/src/main/java/com/casic/dcms/view/MaintainRecordActivity.java
+++ /dev/null
@@ -1,183 +0,0 @@
-package com.casic.dcms.view;
-
-import android.content.Context;
-import android.os.Handler;
-import android.text.TextUtils;
-import android.view.View;
-
-import androidx.annotation.NonNull;
-import androidx.lifecycle.Observer;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.casic.dcms.R;
-import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
-import com.casic.dcms.model.MaintainRecordBean;
-import com.casic.dcms.utils.DialogHelper;
-import com.casic.dcms.vm.BridgeViewModel;
-import com.casic.dcms.widgets.RangeDateActionSheet;
-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.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 MaintainRecordActivity extends AndroidxBaseActivity {
-
- private final Context context = MaintainRecordActivity.this;
- private BridgeViewModel bridgeViewModel;
- private List dataBeans = new ArrayList<>();
- private WeakReferenceHandler weakReferenceHandler;
- private NormalRecyclerAdapter adapter;
- private int pageIndex = 1;
- private boolean isRefresh = false;
- private boolean isLoadMore = false;
-
- @Override
- protected void setupTopBarLayout() {
- ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
- ImmersionBar.with(this).statusBarDarkFont(true).init();
-
- viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
- viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
- }
-
- @Override
- protected void observeRequestState() {
- bridgeViewModel.loadState.observe(this, new Observer() {
- @Override
- public void onChanged(LoadState loadState) {
- if (loadState == LoadState.Loading) {
- DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
- } else {
- DialogHelper.dismissLoadingDialog();
- }
- }
- });
- }
-
- @Override
- protected void initData() {
- weakReferenceHandler = new WeakReferenceHandler(callback);
- bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
- bridgeViewModel.recordModel.observe(this, new Observer() {
- @Override
- public void onChanged(MaintainRecordBean 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(20210622);
- }
- }
- }
- });
- }
-
- @Override
- protected void onResume() {
- super.onResume();
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
-
- @Override
- protected void initEvent() {
- viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
- @Override
- public void onDateRangeSelected(String startDate, String endDate) {
- viewBinding.dateView.setText(startDate + "~" + endDate);
-
- pageIndex = 1;
- obtainMaintainRecord(startDate, endDate);
- }
- }).build().show();
- }
- });
- viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
- @Override
- public void onRefresh(@NonNull RefreshLayout refreshLayout) {
- isRefresh = true;
- //刷新之后页码重置
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
- @Override
- public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
- isLoadMore = true;
- pageIndex++;
- obtainMaintainRecord("", "");
- }
- });
- }
-
- private void obtainMaintainRecord(String start, String end) {
- bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
- }
-
- private final Handler.Callback callback = msg -> {
- if (msg.what == 20210622) {
- if (dataBeans.size() == 0) {
- viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- pageIndex = 1;
- obtainMaintainRecord("", "");
- }
- });
- } else {
- viewBinding.emptyView.hide();
- adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
- @Override
- public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
- String description = item.getDescription();
- if (TextUtils.isEmpty(description)) {
- viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
- } else {
- viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
- viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- StringHub.show(context, description);
- }
- });
- }
- viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
- .setText(R.id.maintainContentView, item.getContent())
- .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
- }
- };
- viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
- viewBinding.recordRecyclerView.setAdapter(adapter);
- }
- }
- return true;
- };
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
index 29f73b6..c619ef3 100644
--- a/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
+++ b/app/src/main/java/com/casic/dcms/view/PipelineManagerActivity.java
@@ -15,6 +15,7 @@
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;
@@ -23,6 +24,8 @@
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;
@@ -87,7 +90,11 @@
alarmViewModel.loadState.observe(this, new Observer() {
@Override
public void onChanged(LoadState loadState) {
-
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "数据加载中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
}
});
}
@@ -196,6 +203,7 @@
});
}
};
+ viewBinding.warningRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
viewBinding.warningRecyclerView.setAdapter(adapter);
}
}
diff --git a/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java
new file mode 100644
index 0000000..857866b
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/view/bridge/BridgeMaintainActivity.java
@@ -0,0 +1,191 @@
+package com.casic.dcms.view.bridge;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+
+import androidx.core.content.ContextCompat;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.amap.api.location.AMapLocation;
+import com.amap.api.services.core.LatLonPoint;
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityBridgeBinding;
+import com.casic.dcms.model.ActionResultBean;
+import com.casic.dcms.model.BridgeConfigBean;
+import com.casic.dcms.utils.DialogHelper;
+import com.casic.dcms.utils.LocationHelper;
+import com.casic.dcms.utils.StringHelper;
+import com.casic.dcms.utils.callback.IAddressListener;
+import com.casic.dcms.utils.callback.ILocationListener;
+import com.casic.dcms.vm.BridgeViewModel;
+import com.casic.dcms.widgets.SignInDialog;
+import com.gyf.immersionbar.ImmersionBar;
+import com.pengxh.androidx.lite.base.AndroidxBaseActivity;
+import com.pengxh.androidx.lite.hub.ContextHub;
+import com.pengxh.androidx.lite.hub.IntHub;
+import com.pengxh.androidx.lite.hub.LongHub;
+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.vm.LoadState;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
+import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder;
+
+import java.util.List;
+
+public class BridgeMaintainActivity extends AndroidxBaseActivity {
+
+ private static final String TAG = "BridgeMaintainActivity";
+ private final Context context = BridgeMaintainActivity.this;
+ private BridgeViewModel bridgeViewModel;
+ private String bridgeId = "";
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
+
+ viewBinding.titleBarLayout.titleView.setText("路桥养护");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ viewBinding.titleBarLayout.rightImageView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
+ }
+ });
+ }
+
+ @Override
+ protected void observeRequestState() {
+ bridgeViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "养护记录签到中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initData() {
+ bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
+ bridgeViewModel.submitResultModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(ActionResultBean resultBean) {
+ String maintainAddress = (String) SaveKeyValues.getValue("maintainAddress", "");
+ if (resultBean.getCode() == 200) {
+ new SignInDialog.Builder()
+ .setContext(context)
+ .setTitle("桥梁养护记录提交成功")
+ .setAddress(maintainAddress.equals("") ? "详细位置解析失败" : maintainAddress)
+ .setOnDialogClickListener(new SignInDialog.OnDialogClickListener() {
+ @Override
+ public void onViewClick() {
+ ContextHub.navigatePageTo(context, MaintainRecordActivity.class);
+ }
+ }).build().show();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.bridgeLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ List bridges = StringHelper.getBridgeBeanList();
+ if (bridges.size() == 0) {
+ StringHub.show(context, "获取桥梁数据异常");
+ return;
+ }
+ BottomListSheetBuilder sheetBuilder = new BottomListSheetBuilder(context);
+ sheetBuilder.setTitle("选择桥梁");
+ for (BridgeConfigBean.BridgesBean bean : bridges) {
+ sheetBuilder.addItem(bean.getName());
+ }
+ sheetBuilder.setGravityCenter(true).setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ bridgeId = String.valueOf(bridges.get(position).getId());
+ viewBinding.bridgeNameView.setText(tag);
+ viewBinding.bridgeNameView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
+ }
+ }).build().show();
+ }
+ });
+
+ viewBinding.maintainContentLayout.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new BottomListSheetBuilder(context)
+ .setTitle("养护内容")
+ .addItem("日常养护,无异常")
+ .addItem("清除表面污垢")
+ .addItem("修补混凝土空洞、破损、剥落和表面风化及裂缝")
+ .addItem("清除暴露钢筋的锈渍、恢复保护层")
+ .addItem("处理各种横、纵向构件的开裂、开焊和锈蚀")
+ .setGravityCenter(true)
+ .setOnSheetItemClickListener(new BottomListSheetBuilder.OnSheetItemClickListener() {
+ @Override
+ public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
+ dialog.dismiss();
+ viewBinding.maintainView.setText(tag);
+ viewBinding.maintainView.setTextColor(ContextCompat.getColor(context, R.color.mainTextColor));
+ }
+ }).build().show();
+ }
+ });
+
+ String systemDate = LongHub.timestampToDate(System.currentTimeMillis());
+ viewBinding.maintainDateView.setText(systemDate);
+ viewBinding.liablePersonView.setText(StringHelper.getUserBean().getAccount());
+
+ viewBinding.submitButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ LocationHelper.obtainCurrentLocation(context, new ILocationListener() {
+
+ @Override
+ public void onAMapLocationGet(AMapLocation aMapLocation) {
+ if (TextUtils.isEmpty(bridgeId)) {
+ StringHub.show(context, "请先选择养护的桥梁");
+ return;
+ }
+ String maintainContent = viewBinding.maintainView.getText().toString();
+ if (TextUtils.isEmpty(maintainContent)) {
+ StringHub.show(context, "请选择养护的内容");
+ return;
+ }
+ LatLonPoint latLonPoint = new LatLonPoint(aMapLocation.getLatitude(), aMapLocation.getLongitude());
+ LocationHelper.antiCodingLocation(context, latLonPoint, new IAddressListener() {
+ @Override
+ public void onGetAddress(String address) {
+ Log.d(TAG, "onGetAddress: " + address);
+ SaveKeyValues.putValue("maintainAddress", address);
+
+ //提交养护记录
+ bridgeViewModel.submitMaintain(
+ bridgeId,
+ maintainContent,
+ viewBinding.maintainDateView.getText().toString(),
+ StringHelper.getUserBean().getId(),
+ String.valueOf(aMapLocation.getLongitude()),
+ String.valueOf(aMapLocation.getLatitude()),
+ StringHub.filterSpaceOrEnter(viewBinding.remarksView.getText().toString())
+ );
+ }
+ });
+ }
+ }, true);
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java
new file mode 100644
index 0000000..55e5936
--- /dev/null
+++ b/app/src/main/java/com/casic/dcms/view/bridge/MaintainRecordActivity.java
@@ -0,0 +1,183 @@
+package com.casic.dcms.view.bridge;
+
+import android.content.Context;
+import android.os.Handler;
+import android.text.TextUtils;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+import androidx.lifecycle.Observer;
+import androidx.lifecycle.ViewModelProvider;
+
+import com.casic.dcms.R;
+import com.casic.dcms.databinding.ActivityMaintainRecordBinding;
+import com.casic.dcms.model.MaintainRecordBean;
+import com.casic.dcms.utils.DialogHelper;
+import com.casic.dcms.vm.BridgeViewModel;
+import com.casic.dcms.widgets.RangeDateActionSheet;
+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.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 MaintainRecordActivity extends AndroidxBaseActivity {
+
+ private final Context context = MaintainRecordActivity.this;
+ private BridgeViewModel bridgeViewModel;
+ private List dataBeans = new ArrayList<>();
+ private WeakReferenceHandler weakReferenceHandler;
+ private NormalRecyclerAdapter adapter;
+ private int pageIndex = 1;
+ private boolean isRefresh = false;
+ private boolean isLoadMore = false;
+
+ @Override
+ protected void setupTopBarLayout() {
+ ImmerseStatusBarManager.setColor(this, IntHub.convertColor(this, R.color.white));
+ ImmersionBar.with(this).statusBarDarkFont(true).init();
+
+ viewBinding.titleBarLayout.titleView.setText("桥梁养护记录");
+ viewBinding.titleBarLayout.leftBackView.setOnClickListener(v -> finish());
+ }
+
+ @Override
+ protected void observeRequestState() {
+ bridgeViewModel.loadState.observe(this, new Observer() {
+ @Override
+ public void onChanged(LoadState loadState) {
+ if (loadState == LoadState.Loading) {
+ DialogHelper.showLoadingDialog(context, "查询记录中,请稍后");
+ } else {
+ DialogHelper.dismissLoadingDialog();
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void initData() {
+ weakReferenceHandler = new WeakReferenceHandler(callback);
+ bridgeViewModel = new ViewModelProvider(this).get(BridgeViewModel.class);
+ bridgeViewModel.recordModel.observe(this, new Observer() {
+ @Override
+ public void onChanged(MaintainRecordBean 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(20210622);
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ pageIndex = 1;
+ obtainMaintainRecord("", "");
+ }
+
+ @Override
+ protected void initEvent() {
+ viewBinding.calendarView.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ new RangeDateActionSheet.Builder().setContext(context).setOnActionSheetListener(new RangeDateActionSheet.OnDateRangeSelectedListener() {
+ @Override
+ public void onDateRangeSelected(String startDate, String endDate) {
+ viewBinding.dateView.setText(startDate + "~" + endDate);
+
+ pageIndex = 1;
+ obtainMaintainRecord(startDate, endDate);
+ }
+ }).build().show();
+ }
+ });
+ viewBinding.refreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(@NonNull RefreshLayout refreshLayout) {
+ isRefresh = true;
+ //刷新之后页码重置
+ pageIndex = 1;
+ obtainMaintainRecord("", "");
+ }
+ });
+ viewBinding.refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
+ isLoadMore = true;
+ pageIndex++;
+ obtainMaintainRecord("", "");
+ }
+ });
+ }
+
+ private void obtainMaintainRecord(String start, String end) {
+ bridgeViewModel.obtainMaintainRecord(start, end, pageIndex);
+ }
+
+ private final Handler.Callback callback = msg -> {
+ if (msg.what == 20210622) {
+ if (dataBeans.size() == 0) {
+ viewBinding.emptyView.show(false, "抱歉,没有查到相关养护记录", null, "刷新", new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ pageIndex = 1;
+ obtainMaintainRecord("", "");
+ }
+ });
+ } else {
+ viewBinding.emptyView.hide();
+ adapter = new NormalRecyclerAdapter(R.layout.item_maintain_rv_l, dataBeans) {
+ @Override
+ public void convertView(ViewHolder viewHolder, int position, MaintainRecordBean.DataBean.RowsBean item) {
+ String description = item.getDescription();
+ if (TextUtils.isEmpty(description)) {
+ viewHolder.setVisibility(R.id.descriptionImageView, View.GONE);
+ } else {
+ viewHolder.setVisibility(R.id.descriptionImageView, View.VISIBLE);
+ viewHolder.setOnClickListener(R.id.descriptionImageView, new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ StringHub.show(context, description);
+ }
+ });
+ }
+ viewHolder.setText(R.id.bridgeNameView, item.getBridgeName())
+ .setText(R.id.maintainContentView, item.getContent())
+ .setText(R.id.maintainTimeView, item.getMaintainTimeStr());
+ }
+ };
+ viewBinding.recordRecyclerView.addItemDecoration(new ItemDecoration(FloatHub.dp2px(context, 10), 0f));
+ viewBinding.recordRecyclerView.setAdapter(adapter);
+ }
+ }
+ return true;
+ };
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java
index a67fac2..63e2e14 100644
--- a/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java
+++ b/app/src/main/java/com/casic/dcms/vm/AlarmViewModel.java
@@ -66,17 +66,15 @@
}
public void cancelSingleAlarm(String id, String jobStatus, String handleMessage) {
- loadState.setValue(LoadState.Loading);
Observable commonActionObservable = RetrofitServiceManager.getCancelAlarmResult(id, jobStatus, handleMessage);
ObserverSubscriber.addSubscribe(commonActionObservable, 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 {
@@ -94,7 +92,6 @@
}.getType());
cancelActionModel.setValue(resultBean);
} else {
- loadState.setValue(LoadState.Fail);
StringHelper.showErrorMessage(response);
}
} catch (IOException e) {
@@ -105,17 +102,15 @@
}
public void cancelBatchAlarm(String jobStatus, String handleMessage) {
- loadState.setValue(LoadState.Loading);
Observable commonActionObservable = RetrofitServiceManager.getCancelAlarmResult(jobStatus, handleMessage);
ObserverSubscriber.addSubscribe(commonActionObservable, 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 {
@@ -133,7 +128,6 @@
}.getType());
cancelActionModel.setValue(resultBean);
} else {
- loadState.setValue(LoadState.Fail);
StringHelper.showErrorMessage(response);
}
} catch (IOException e) {