wjc
2026-03-24 c4ae4589c6c001329ebb731589b209e8ddcbf7ca
app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -8,7 +8,7 @@
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -18,8 +18,6 @@
import androidx.annotation.NonNull;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.google.gson.Gson;
import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -31,15 +29,21 @@
import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
import com.hdl.photovoltaic.base.CustomBaseFragment;
import com.hdl.photovoltaic.enums.DebugStatus;
import com.hdl.photovoltaic.enums.DebugType;
import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
import com.hdl.photovoltaic.enums.Languages;
import com.hdl.photovoltaic.enums.LogoutType;
import com.hdl.photovoltaic.enums.LowerTagType;
import com.hdl.photovoltaic.enums.PowerStationStatus;
import com.hdl.photovoltaic.enums.PowerStationType;
import com.hdl.photovoltaic.enums.ProjectOperation;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.enums.SortType;
import com.hdl.photovoltaic.enums.SortValue;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.listener.LinkCallBack;
import com.hdl.photovoltaic.listener.OnCallBeak;
import com.hdl.photovoltaic.other.HdlAccountLogic;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlDialogLogic;
@@ -56,9 +60,11 @@
import com.hdl.photovoltaic.utils.GPSManagerUtils;
import com.hdl.photovoltaic.utils.PermissionUtils;
import com.hdl.photovoltaic.utils.URLEncodingUtils;
import com.hdl.photovoltaic.widget.AddPowerStationDialog;
import com.hdl.photovoltaic.widget.ConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.DefaultFilteringDialog;
import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog;
import com.hdl.photovoltaic.widget.adapter.PowerStationDialogAdapter;
import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
import com.hdl.sdk.link.common.exception.HDLLinkException;
@@ -104,6 +110,7 @@
    private String installedCapacityMaxValue = "";//最大组串容量(装机容量)
    private String screeningConditionStatus = DebugStatus.All;//筛选条件状态
    private String powerStationStatusValue = PowerStationStatus.All;//电站状态(全部 不传该过滤参数,1:正常(运行),2:离线,3:待接入,4:故障)
    private String powerStationTypeValue = PowerStationType.All;//电站类型(INV = 逆变器电站;BMS = BMS电站)
    private final long pageSize = 100;//一页大小
@@ -117,6 +124,7 @@
        installedCapacityMaxValue = "";
        screeningConditionStatus = DebugStatus.All;
        powerStationStatusValue = PowerStationStatus.All;
        powerStationTypeValue = PowerStationType.All;
    }
    @Override
@@ -136,7 +144,12 @@
    }
    private void initEvent() {
        viewBinding.exitTv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HdlAccountLogic.getInstance().logout(LogoutType.NormalLogout);
            }
        });
        //电站标签
        viewBinding.powerStationLabel.setOnClickListener(new View.OnClickListener() {
            @Override
@@ -148,7 +161,7 @@
                selectedTitleLabelStyle();
                initializationState();
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
@@ -174,7 +187,7 @@
                powerStationStatusValue = PowerStationStatus.All;
                stationStatusStyle(viewBinding.allLl, viewBinding.allDesTv);
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //故障
@@ -187,7 +200,7 @@
                powerStationStatusValue = PowerStationStatus.malfunction;
                stationStatusStyle(viewBinding.faultsLl, viewBinding.faultsDesTv);
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //离线
@@ -200,7 +213,7 @@
                powerStationStatusValue = PowerStationStatus.off;
                stationStatusStyle(viewBinding.offlineLl, viewBinding.offlineDesTv);
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //待接入
@@ -213,25 +226,54 @@
                powerStationStatusValue = PowerStationStatus.connecting;
                stationStatusStyle(viewBinding.connectedLl, viewBinding.connectedDesTv);
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //电站添加
        //点击进入新配置入网界面
        viewBinding.addIv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                requestPermissions(new OnCallBeak() {
                    @Override
                    public void onClickCallBeak() {
//                        UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
//                        HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
                    }
                });
                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
            }
        });
        //长按进入旧配置入网界面
        viewBinding.addIv.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
                HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
//                AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity);
//                addPowerStationDialog.show();
//                addPowerStationDialog.setCanceledOnTouchOutside(true);
//                addPowerStationDialog.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() {
//                    @Override
//                    public void onClick(int position, String str) {
////                        debugging_str = str;
//                        addPowerStationDialog.dismiss();
////                        UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
////                        if (_mActivity.getString(R.string.simple_debugging).equals(str)) {
////                            HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
////                        } else {
////                            HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
////                        }
////                        requestPermissions(new OnCallBeak() {
////                            @Override
////                            public void onClickCallBeak() {
//////                        UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
//////                        HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
////                            }
////                        });
//                    }
//                });
                return true;
            }
        });
        //电站搜索
        viewBinding.powerStationSearchClickCl.setOnClickListener(new View.OnClickListener() {
            @Override
@@ -247,15 +289,16 @@
            public void onClick(View v) {
                DefaultFilteringDialog defaultFilteringDialog = new DefaultFilteringDialog(_mActivity);
                defaultFilteringDialog.show();
                defaultFilteringDialog.initState(installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus);
                defaultFilteringDialog.initState(installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationTypeValue);
                defaultFilteringDialog.setOnClickListener(new DefaultFilteringDialog.OnClickListener() {
                    @Override
                    public void confirm(String min, String max, String state) {
                    public void confirm(String min, String max, String state, String powerStationType) {
                        installedCapacityMinValue = min;//最小组串容量(装机容量)
                        installedCapacityMaxValue = max;//最大组串容量(装机容量)
                        screeningConditionStatus = state;//调试状态(全部;调试中;调试完成;已交付;授权调试)
                        powerStationTypeValue = powerStationType;//电站类型(INV = 逆变器电站;BMS = BMS电站)
                        getStatusOverview();
                        loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                        loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
                    }
                });
            }
@@ -264,12 +307,11 @@
        houseInfoAdapter.setNoOnclickListener(new HouseInfoAdapter.OnclickListener() {
            @Override
            public void onClick(int position, HouseIdBean houseIdBean) {
                HdlLogLogic.print("点击住宅详情---" + new Gson().toJson(houseIdBean), false);
                //点击住宅详情
                UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(0);
                HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
                String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
                HdlUniLogic.getInstance().openUniMP(path, null);
                HdlLogLogic.print("点击住宅详情---" + new Gson().toJson(houseIdBean), false);
                HdlResidenceLogic.getInstance().openPowerStationDetails(houseIdBean);
            }
            @Override
@@ -303,49 +345,70 @@
            @Override
            public void onDelClick(int position, HouseIdBean houseIdBean) {
                final boolean isWaitDelivered = houseIdBean.getDebugStatus().equals(DebugStatus.WAIT_DELIVERED);
                DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity);
                delayedConfirmationCancelDialog.show();
                delayedConfirmationCancelDialog.isHideTitle(true);
                String homeName = "\"" + houseIdBean.getHomeName() + "\"";
                delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace("%s", homeName));
                delayedConfirmationCancelDialog.startCountdown(4);
                String placeholder = UserConfigManage.getInstance().getCurrentAppLanguage().equals(Languages.ar) ? "s%" : "%s";
                if (isWaitDelivered) {
                    //"是否将电站的调试状态回退到调试中"
                    delayedConfirmationCancelDialog.setContent(getString(R.string.debug_status_rollback).replace(placeholder, homeName));
                } else {
                    delayedConfirmationCancelDialog.startCountdown(4);
                    delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace(placeholder, homeName));
                }
                delayedConfirmationCancelDialog.setYesOnclickListener(new DelayedConfirmationCancelDialog.onYesOnclickListener() {
                    @Override
                    public void Confirm() {
                        delayedConfirmationCancelDialog.dismiss();
                        showLoading(getString(R.string.deleting_please_wait));
                        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(houseIdBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
                            @Override
                            public void onSuccess(List<GatewayBean> list) {
                                //发起删除电站指令
                                deleteResidence(houseIdBean.getHomeId(), list);
                        if (isWaitDelivered) {
                            showLoading();
                            HdlResidenceLogic.getInstance().setUpdateProjectDebugStatus(houseIdBean.getHomeId(), houseIdBean.getCommunityId(), getString(R.string.re_commissioning_power_station), ProjectOperation.DEBUGGING_AGAIN.toString(), new CloudCallBeak<Boolean>() {
                                @Override
                                public void onSuccess(Boolean list) {
                                    hideLoading();
                                    if (houseInfoAdapter != null) {
                                        houseIdBean.setDebugStatus(DebugStatus.Debugging);
                                        HdlResidenceLogic.getInstance().updateHouseIdBean(houseIdBean);
                                        initData();
                                        if (houseInfoAdapter != null) {
                                            houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//重新刷新列表
                                        }
                                        //更新UI
//                                        houseInfoAdapter.notifyItemChanged(position);
                                    }
                                }
                            }
                                @Override
                                public void onFailure(HDLException e) {
                                    hideLoading();
                                }
                            });
                        } else {
                            showLoading(getString(R.string.deleting_please_wait));
//                            if (houseIdBean.getDebugType().equals(DebugType.NORMAL)) {
                            //【常规方式】发起删除电站指令(搜索网关是考虑到网关没有连接到云端,使用本地发送初始化指令)
                            // 硬件那边叫新固件也发初始化 2025年10月14日10:55:18
                            HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(houseIdBean.getHomeId(), houseIdBean.getPowerStationType(), new CloudCallBeak<List<GatewayBean>>() {
                                @Override
                                public void onSuccess(List<GatewayBean> list) {
                                    //发起删除电站指令
                                    deleteResidence(position, houseIdBean, list);
                            @Override
                            public void onFailure(HDLException e) {
                                //发起删除电站指令
                                deleteResidence(houseIdBean.getHomeId(), null);
                            }
                        });
                                }
//                        //删除住宅
//                        HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
//                            @Override
//                            public void onSuccess(Boolean obj) {
//                                HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());
//                                initData();//初始化缓存数据
//                                houseInfoAdapter.setList(houseListBeanIDList);//重新刷新列表
//                                nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空
                                @Override
                                public void onFailure(HDLException e) {
                                    //发起删除电站指令
                                    deleteResidence(position, houseIdBean, null);
                                }
                            });
//                            } else {
//                                //【简易方式】发起删除电站指令
//                                deleteResidence(position, houseIdBean, null);
//                            }
//
//                            @Override
//                            public void onFailure(HDLException e) {
//                                HdlThreadLogic.toast(_mActivity, e);
//                            }
//                        });
                        }
                    }
                });
                delayedConfirmationCancelDialog.setNoOnclickListener(new DelayedConfirmationCancelDialog.onNoOnclickListener() {
@@ -366,7 +429,7 @@
                key = SortType.installedCapacitySort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //额定功率筛选
@@ -378,7 +441,7 @@
                key = SortType.invPowerSort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //电站电池容量筛选
@@ -390,7 +453,7 @@
                key = SortType.batteryCapacitySort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //电站当日发电量筛选
@@ -402,13 +465,19 @@
                key = SortType.todayElectricitySort;
                value = isSelected ? SortValue.ascending : SortValue.descending;
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        });
        //设备点击
        deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() {
            @Override
            public void onClick(int position, CloudInverterDeviceBean deviceBean) {
                deviceBean.setActivate(true);//默认激活
//                //杨涛说这个列表不返回未激活的设备,所以去掉判断
//                if (!deviceBean.isActivate()) {
//                    HdlThreadLogic.toast(_mActivity, getString(R.string.device_not_activated));
//                    return;
//                }
//                GatewayBean gatewayBean = new GatewayBean();
//                gatewayBean.setCategorySecondName(deviceBean.getCategorySecondName());
//                gatewayBean.setDevice_mac(deviceBean.getOsn());
@@ -436,7 +505,17 @@
                HdlDeviceLogic.getInstance().setDeviceRemoteInfo(newList, deviceBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
                    @Override
                    public void onSuccess(List<GatewayBean> obj) {
                        GatewayBean newGatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(deviceBean.getOsn());
                        if (newGatewayBean == null) {
                            HdlThreadLogic.toast(_mActivity, getString(R.string.device_off));
                            return;
                        }
                        if (TextUtils.isEmpty(newGatewayBean.getGatewayId()) || TextUtils.isEmpty(newGatewayBean.getAesKey())) {
                            //这里只支持远程调试,远程拿不到mqtt通讯秘钥以及gatewayId;
                            HdlThreadLogic.toast(_mActivity, getString(R.string.device_failed_to_certificate) + "(124004)");
                            return;
                        }
                        String jsonEncryption = URLEncodingUtils.encodeURIComponent(new Gson().toJson(newGatewayBean));
                        String path = HDLUniMP.UNI_EVENT_OPEN_DEVICE_DETAILS + "?inverterInfo=" + jsonEncryption;
                        HdlUniLogic.getInstance().openUniMP(path, null);
@@ -505,6 +584,13 @@
    private void initView() {
        if (UserConfigManage.getInstance().isTourist_mode()) {
            viewBinding.addIv.setVisibility(View.GONE);
            viewBinding.exitTv.setVisibility(View.VISIBLE);
        } else {
            viewBinding.addIv.setVisibility(View.VISIBLE);
            viewBinding.exitTv.setVisibility(View.GONE);
        }
        viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
        viewBinding.deviceLabelParent.setVisibility(View.GONE);
@@ -514,7 +600,6 @@
        viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
        viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter);
        houseInfoAdapter.setList(this.houseListBeanIDList, powerStationStatusValue);
        //设备标签
        deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
        viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
@@ -536,7 +621,11 @@
            viewBinding.powerStationLabel.setTextAppearance(R.style.Text18Style);
            viewBinding.deviceLabel.setTextAppearance(R.style.Text14Style);
//            viewBinding.editIv.setVisibility(View.VISIBLE);//编辑图标隐藏
            viewBinding.addIv.setVisibility(View.VISIBLE);//添加图标隐藏
            if (UserConfigManage.getInstance().isTourist_mode()) {
                viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏
            } else {
                viewBinding.addIv.setVisibility(View.VISIBLE);//添加图标隐藏
            }
            viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//电站标签【父容器】显示
            viewBinding.deviceLabelParent.setVisibility(View.GONE);//设备标签【父容器】隐藏
            if (viewBinding.deviceNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
@@ -546,7 +635,11 @@
            viewBinding.deviceLabel.setTextAppearance(R.style.Text18Style);
            viewBinding.powerStationLabel.setTextAppearance(R.style.Text14Style);
//            viewBinding.editIv.setVisibility(View.GONE);//编辑图标隐藏
            viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏
            if (UserConfigManage.getInstance().isTourist_mode()) {
                viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏
            } else {
                viewBinding.addIv.setVisibility(View.GONE);//添加图标隐藏
            }
            viewBinding.powerStationLabelParent.setVisibility(View.GONE);//电站标签【父容器】隐藏
            viewBinding.deviceLabelParent.setVisibility(View.VISIBLE);//设备标签【父容器】显示
            if (viewBinding.homeNullDataIc.getRoot().getVisibility() == View.VISIBLE) {
@@ -581,15 +674,18 @@
            if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) {
                // 取消粘性事件
                EventBus.getDefault().removeStickyEvent(eventBus);
                //uin创建电站成功后通知
                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                if (eventBus.getData() != null) {
                    Gson gson = new Gson();
                    String json = eventBus.getData().toString();
                    HouseIdBean houseIdBean = gson.fromJson(json, HouseIdBean.class);
                    HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
                }
//                HdlLogLogic.print("进来了---11111" + eventBus.getData().toString());
//                //uin创建电站成功后通知
//                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
//                if (eventBus.getData() != null) {
//                    HdlLogLogic.print("进来了---" + eventBus.getData().toString());
//                    Gson gson = new Gson();
//                    String json = eventBus.getData().toString();
//                    HouseIdBean houseIdBean = gson.fromJson(json, HouseIdBean.class);
//                    HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
//                    HdlLogLogic.print("进来了---结束" + eventBus.getData().toString());
//
//                }
            } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT.equals(eventBus.getType())) {
                // 取消粘性事件
                EventBus.getDefault().removeStickyEvent(eventBus);
@@ -627,7 +723,7 @@
//                    MqttRecvClient.getInstance().removeAllTopic();
//                }
                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            }
        } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
            // 取消粘性事件
@@ -670,7 +766,7 @@
                initializationState();
                stationStatusStyle(viewBinding.allLl, viewBinding.allDesTv);
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            } else if (eventBus.getType().equals(ConstantManage.station_page)) {
                // 取消粘性事件
                EventBus.getDefault().removeStickyEvent(eventBus);
@@ -688,7 +784,7 @@
                    stationStatusStyle(viewBinding.connectedLl, viewBinding.connectedDesTv);
                }
                getStatusOverview();
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
            } else if (eventBus.getType().equals(ConstantManage.station_edit)) {
                //编辑后更新一下住宅列表
                //loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
@@ -707,7 +803,7 @@
     * 电站状态概览
     */
    private void getStatusOverview() {
        HdlResidenceLogic.getInstance().getStatusOverview(screeningConditionStatus, installedCapacityMinValue, installedCapacityMaxValue, new CloudCallBeak<StatusOverviewBean>() {
        HdlResidenceLogic.getInstance().getStatusOverview(screeningConditionStatus, installedCapacityMinValue, installedCapacityMaxValue, powerStationTypeValue, new CloudCallBeak<StatusOverviewBean>() {
            @Override
            public void onSuccess(StatusOverviewBean statusOverviewBean) {
                if (statusOverviewBean == null) {
@@ -741,10 +837,11 @@
     * @param installedCapacityMax 最大组串容量(装机容量)
     * @param gridType             调试状态(全部;调试中;调试完成;已交付;授权调试)
     * @param powerStationStatus   电站状态 (全部  :"";1 : 正常;2 : 离线; 3 : 待接入;4 : 故障)
     * @param powerStationType     电站类型(INV = 逆变器电站;BMS = BMS电站)
     * @param pageNo               页码
     * @param isClear              是否清除数据
     */
    private void loadNextPageHouseList(boolean isRefreshing, String key, String keyValue, String installedCapacityMin, String installedCapacityMax, String gridType, String powerStationStatus, long pageNo, boolean isClear) {
    private void loadNextPageHouseList(boolean isRefreshing, String key, String keyValue, String installedCapacityMin, String installedCapacityMax, String gridType, String powerStationStatus, String powerStationType, long pageNo, boolean isClear) {
        isReadData = true;
        if (isClear) {
            clearData();
@@ -761,7 +858,7 @@
        }
        //获取住宅(电站)ID列表
        HdlResidenceLogic.getInstance().getResidenceIdList(key, keyValue, installedCapacityMin, installedCapacityMax, gridType, powerStationStatus, pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() {
        HdlResidenceLogic.getInstance().getResidenceIdList(key, keyValue, installedCapacityMin, installedCapacityMax, gridType, powerStationStatus, powerStationType, pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() {
            @Override
            public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) {
                HdlThreadLogic.runMainThread(new Runnable() {
@@ -828,7 +925,7 @@
        if (isRefreshing) {
            showLoading(getString(R.string.device_loading));
        }
        //获取住宅(电站)ID列表
        //获取设备列表
        HdlDeviceLogic.getInstance().getPowerStationDeviceList("", pageNo, pageSize, new CloudCallBeak<PageNumberObject<CloudInverterDeviceBean>>() {
            @Override
            public void onSuccess(PageNumberObject<CloudInverterDeviceBean> pageNumberObject) {
@@ -948,20 +1045,27 @@
    /**
     * 删除电站
     *
     * @param homeId 电站id
     * @param list   逆变器列表
     * @param position    位置
     * @param houseIdBean 电站id对象
     * @param list        逆变器列表
     */
    private void deleteResidence(String homeId, List<GatewayBean> list) {
    private void deleteResidence(int position, HouseIdBean houseIdBean, List<GatewayBean> list) {
        //删除住宅
        HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
        HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
            @Override
            public void onSuccess(Boolean obj) {
                hideLoading();
                initializeInverter(list); //发起初始化指令给逆变器;(注意:只能是本地发送了(要搜索局域网逆变器列表,建立本地通讯通道),删除电站成功后,云端解绑逆变器的关系)
                HdlResidenceLogic.getInstance().delHouseId(homeId);//删除电站缓存
                //硬件那边叫新固件也发初始化 2025年10月14日10:55:18
//                if (houseIdBean.getDebugType().equals(DebugType.NORMAL)) {
                initializeInverter(list); //发起初始化指令给逆变器;(注意:前面已先解绑云端逆变器,mqtt通道已断开,初始化只能是本地发送(先搜索局域网逆变器列表,建立本地通讯通道))
//                }
                HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());//删除电站缓存
                initData();//初始化缓存数据
                houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//重新刷新列表
                if (houseInfoAdapter != null) {
                    houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//重新刷新列表
//                    houseInfoAdapter.notifyItemRemoved(position);//只刷新当前的位置
                }
                getStatusOverview();//删除成功后刷新电站状态概览
                nullDataUpdateUi();//检测数据是否为空
            }
@@ -1002,18 +1106,30 @@
    public void requestPermissions(OnCallBeak onCallBeak) {
        //ACCESS_FINE_LOCATION   允许使用GPS定位
        //ACCESS_COARSE_LOCATION   允许使用WIFI热点或基站来获取粗略的定位
        //ACCESS_FINE_LOCATION    允许使用GPS定位
        //ACCESS_COARSE_LOCATION    允许使用WIFI热点或基站来获取粗略的定位
        String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION});
        if (ary.length > 0) {
            this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
        } else {
            UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
            HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
            locationUpdates();
            AddPowerStationDialog addPowerStationDialog = new AddPowerStationDialog(_mActivity);
            addPowerStationDialog.show();
            addPowerStationDialog.setCanceledOnTouchOutside(true);
            addPowerStationDialog.setItemOnclickListener(new PowerStationDialogAdapter.OnclickListener() {
                @Override
                public void onClick(int position, String str) {
                    addPowerStationDialog.dismiss();
//                    UserConfigManage.getInstance().setCurrentAppLanguage(itemData.getLanguage());
//                    UserConfigManage.getInstance().Save();
                    UserConfigManage.getInstance().setUniBottomSafeDistanceBackgroundColor(1);
                    if (_mActivity.getString(R.string.simple_debugging).equals(str)) {
                        HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION_SIMPLE, null);
                    } else {
                        HdlUniLogic.getInstance().openUniMP(HDLUniMP.UNI_EVENT_OPEN_HOME_CREATION, null);
                    }
                    locationUpdates();
                }
            });
        }
    }
@@ -1079,7 +1195,7 @@
                        // 执行任务(如更新UI、跳转等)
                        viewBinding.fragmentHouseSrl.endRefreshing();
                        //加载最新数据完成
                        loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, 1, true);
                        loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, 1, true);
                        getStatusOverview();
                    }
                }.execute();
@@ -1106,7 +1222,7 @@
                        viewBinding.fragmentHouseSrl.endLoadingMore();
                        if (!isHouseLoadingMore) {
                            // 滑动到了底部,执行相应的操作
                            loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, ++currentHouseListPage, false);
                            loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, screeningConditionStatus, powerStationStatusValue, powerStationTypeValue, ++currentHouseListPage, false);
                        }
                    }
                }.execute();
@@ -1142,7 +1258,7 @@
                    @Override
                    protected void onPostExecute(Void aVoid) {
                        viewBinding.fragmentDeviceSrl.endRefreshing();
                        loadNextPageDeviceList(true, 1, true);
                        loadNextPageDeviceList(false, 1, true);
                    }
                }.execute();
            }
@@ -1181,4 +1297,4 @@
    }
}
}