管灌系统巡查员智能手机App
zuoxiao
2025-02-11 dde9027478b772dd60371937413ac2838c4f3bbd
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -5,11 +5,9 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -42,7 +40,6 @@
import com.dayu.pipirrapp.bean.net.InspectionRequest;
import com.dayu.pipirrapp.bean.net.MarkerListResult;
import com.dayu.pipirrapp.bean.net.MarkerResult;
import com.dayu.pipirrapp.bean.net.PipeNetworkListResult;
import com.dayu.pipirrapp.bean.net.PipeNetworkResult;
import com.dayu.pipirrapp.dao.DaoSingleton;
import com.dayu.pipirrapp.databinding.FragmentMapBinding;
@@ -65,7 +62,6 @@
import com.dayu.pipirrapp.utils.WebViewUtils;
import com.dayu.pipirrapp.view.ConfirmDialog;
import com.dayu.pipirrapp.view.TipUtil;
import com.example.expand_button.ExpandButton;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.Permission;
import com.hjq.permissions.XXPermissions;
@@ -145,6 +141,7 @@
            getCenterPoint();
            getMarkerData();
            getDivideList();
            getPipeNetworkList();
        });
    }
@@ -237,6 +234,28 @@
                                for (DivideBean divide : divides) {
                                    divideBeanMap.put(divide.getId(), divide);
                                    setMapDivide(divide);
                                }
                            }
                        }, throwable -> {
                            Log.e(TAG, "Load divides error: " + throwable.getMessage());
                            getDivideList();
                        }, () -> {
                            // 当Maybe为空时调用
                            getDivideList();
                        })
        );
        //异步加载管网数据
        compositeDisposable.add(
                DaoSingleton.getAsynchInstance(this.getContext()).pipeNetDao().getAll()
                        .subscribeOn(Schedulers.io())
                        .observeOn(AndroidSchedulers.mainThread())
                        .subscribe(pipeNetworkBeans -> {
                            if (pipeNetworkBeans == null || pipeNetworkBeans.isEmpty()) {
                                getPipeNetworkList();
                            } else {
                                for (PipeNetworkBean pipeNetworkBean : pipeNetworkBeans) {
                                }
                            }
                        }, throwable -> {
@@ -1067,21 +1086,22 @@
     * 获取管网
     */
    private void getPipeNetworkList() {
        ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/project/network/all", PipeNetworkListResult.class, null, new SubscriberListener<BaseResponse<PipeNetworkListResult>>() {
        ApiManager.getInstance().requestGetHideLoading(MapFragment.this.getContext(), BASE_URL + "/project/network/all", PipeNetworkResult.class, null, new SubscriberListener<BaseResponse<List<PipeNetworkResult>>>() {
            @Override
            public void onNext(BaseResponse<PipeNetworkListResult> t) {
            public void onNext(BaseResponse<List<PipeNetworkResult>> t) {
                try {
                    if (t.isSuccess()) {
                        if (t.getContent().getObj() != null && !t.getContent().getObj().isEmpty()) {
                        if (t.getContent() != null && t.getContent().size() > 0) {
                            List<DivideBean> divideBeans = new ArrayList<>();
                            for (PipeNetworkResult divideResult : t.getContent().getObj()) {
                                PipeNetworkBean divideBean = getPipeNetworkBean(divideResult);
                                setMapDivide(divideBean);
//                                divideBeans.add(divideBean);
                            List<PipeNetworkBean> pipeNetBeans = new ArrayList<>();
                            PipeNetworkBean pipeNetBean = new PipeNetworkBean();
                            for (PipeNetworkResult pipeNetworkResult : t.getContent()) {
                                pipeNetBean.setNetworkId(pipeNetworkResult.getNetworkId());
                                pipeNetBean.setType(pipeNetworkResult.getType());
                                pipeNetBean.setData(pipeNetworkResult.getData());
                            }
                            // 使用 RxJava 异步插入数据
                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).divideDao().insertAll(divideBeans)
                            DaoSingleton.getAsynchInstance(MapFragment.this.getContext()).pipeNetDao().insertAll(pipeNetBeans)
                                    .subscribeOn(Schedulers.io()) // 在 IO 线程上执行
                                    .observeOn(AndroidSchedulers.mainThread()) // 在主线程上观察
                                    .subscribe(() -> {