wjc
2 天以前 bcdd75fb55b4c887e10b660a31538bf15bfd1c82
2025年07月31日13:17:34
3个文件已修改
113 ■■■■ 已修改文件
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -12,6 +12,7 @@
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.home.type.HomeType;
@@ -25,6 +26,7 @@
import com.hdl.photovoltaic.databinding.ActivityCpowerStationBinding;
import com.hdl.photovoltaic.enums.NetworkType;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlDeviceLogic;
import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
import com.hdl.photovoltaic.other.HdlLogLogic;
@@ -259,16 +261,20 @@
                String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C;
                HdlUniLogic.getInstance().openUniMP(path, null);
            } else {
                //解决问题手机没有网自动登录进来,默认传上一次的住宅id
                //1,解决手机没有外网,获取不到电站列表,自动登录进来,默认传上一次的住宅id;
                //2,之前电站列表只有一个电站,然后删除掉电站,这时住宅id还缓存着,再一次进来,默认传上一次的住宅id;
                String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + UserConfigManage.getInstance().getHomeId() + "&homeName=" + UserConfigManage.getInstance().getHomeName();
                HdlUniLogic.getInstance().openUniMP(path, null);
            }
        } else {
            int select_home = 0;
            if (!TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {//本地缓存住宅id不为空再遍历查找
            for (int i = 0; i < HouseIdList.size(); i++) {
                if (HouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
                    select_home = i;
                    break;
                    }
                }
            }
            HouseIdBean houseIdBean = HouseIdList.get(select_home);
@@ -494,6 +500,43 @@
//                        HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                        HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
//                        HdlDeviceLogic.getInstance().searchAllNetworkGateway(null);//逆变器wifi状态-重新搜索一下逆变器-重新更新连接状态
                    } else if (linkResponse.getTopic().endsWith("/app/thing/event/appHomeRefresh/up")) {
                        try {
                            //住宅交付状态回滚通知
                            String[] topicArray = linkResponse.getTopic().split("/");
                            if (topicArray.length < 2) {
                                return;
                            }
                            final String HomeId = topicArray[1];
                            //先删除电站
                            HdlResidenceLogic.getInstance().delHouseId(HomeId);
                            List<HouseIdBean> localHouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
                            if (localHouseIdList.isEmpty()) {
                                JsonObject jsonObject = new JsonObject();
                                jsonObject.addProperty("homeId", "");
                                HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                                uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS);
                                uniCallBackBaseBean.setData(jsonObject);
                                HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                            } else {
                                if (HomeId.equals(UserConfigManage.getInstance().getHomeId()) || TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                                    HouseIdBean houseIdBean = localHouseIdList.get(0);
                                    HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
                                    JsonObject jsonObject = new JsonObject();
                                    jsonObject.addProperty("homeId", houseIdBean.getHomeId());
                                    jsonObject.addProperty("homeName", houseIdBean.getHomeName());
                                    jsonObject.addProperty("powerStationStatus", houseIdBean.getPowerStationStatus() + "");
                                    HDLUniMP.UniCallBackBaseBean uniCallBackBaseBean = new HDLUniMP.UniCallBackBaseBean();
                                    uniCallBackBaseBean.setType(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_REFRESH_DETAILS);
                                    uniCallBackBaseBean.setData(jsonObject);
                                    HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
                                }
                            }
                        } catch (Exception e) {
                        }
                        //通知电站列表更新
                        HdlCommonLogic.getInstance().postEventBus(ConstantManage.REFRESH_HOME_LIST, ConstantManage.REFRESH_HOME_LIST);
                        HdlLogLogic.print(linkResponse.getTopic() + new Gson().toJson(linkResponse.getData()), true);
                    }
                }
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsListActivity.java
@@ -7,6 +7,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.view.View;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -73,6 +74,8 @@
        getWindow().setNavigationBarColor(getColor(R.color.text_FF000000));
        //初始化数据
        initData();
        //设置当前电站选中状态
        setSelectState();
        //初始化
        initView();
        //初始化界面监听器
@@ -81,10 +84,13 @@
//        downReadData(false);
    }
    /**
     * 初始化电站列表数据
     */
    private void initData() {
        this.houseListBeanIDList = new ArrayList<>();
        this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
        setSelectState();
//        setSelectState();
    }
    private void initEvent() {
@@ -149,14 +155,14 @@
                                @Override
                                public void onSuccess(List<GatewayBean> list) {
                                    //发起删除电站指令
                                    deleteResidence(houseIdBean.getHomeId(), list);
                                    deleteResidence(position, houseIdBean, list);
                                }
                                @Override
                                public void onFailure(HDLException e) {
                                    //发起删除电站指令
                                    deleteResidence(houseIdBean.getHomeId(), null);
                                    deleteResidence(position, houseIdBean, null);
                                }
                            });
@@ -283,7 +289,7 @@
                                if (houseListAdapter != null) {
                                    //重新获取列表数据
                                    initData();
                                    refreshDetails();
                                    refreshDetails("");
                                    //更新电站选中状态
                                    setSelectState();
                                    //更新列表数据
@@ -405,23 +411,25 @@
    /**
     * 删除电站
     *
     * @param homeId 电站id
     * @param position    索引值
     * @param houseIdBean 电站id对象
     * @param list   逆变器列表
     */
    private void deleteResidence(String homeId, List<GatewayBean> list) {
    private void deleteResidence(final int position, final 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); //发起初始化指令给逆变器;(注意:前面已先解绑云端逆变器,mqtt通道已断开,初始化只能是本地发送(先搜索局域网逆变器列表,建立本地通讯通道))
                HdlResidenceLogic.getInstance().delHouseId(homeId);//删除电站缓存
                HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());//删除电站缓存
                initData();//初始化缓存数据
                refreshDetails();
                //更新电站选中状态
                setSelectState();
                refreshDetails(houseIdBean.getHomeId());
                setSelectState();//更新电站选中状态
                if (houseListAdapter != null) {
                houseListAdapter.setList(houseListBeanIDList); //更新列表数据
                }
                nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空
            }
@@ -524,7 +532,7 @@
     * 通知uni更新数据
     * (在平台上删除C端当前住宅后,获取列表实收要通知uni那边更新界面卡片)
     */
    private void refreshDetails() {
    private void refreshDetails(final String homeId) {
        try {
            List<HouseIdBean> localHouseIdList = HdlResidenceLogic.getInstance().getHouseIdList();
            if (localHouseIdList.isEmpty()) {
@@ -535,15 +543,7 @@
                uniCallBackBaseBean.setData(jsonObject);
                HdlUniLogic.getInstance().sendUni(HDLUniMP.UNI_EVENT_NOTIFICATION_DEVICE_MODEL, uniCallBackBaseBean);
            } else {
                int select_home = -1;
                for (int i = 0; i < localHouseIdList.size(); i++) {
                    if (localHouseIdList.get(i).getHomeId().equals(UserConfigManage.getInstance().getHomeId())) {
                        select_home = i;
                        break;
                    }
                }
                if (select_home == -1) {
                    //找不到默认第一个
                if (homeId.equals(UserConfigManage.getInstance().getHomeId()) || TextUtils.isEmpty(UserConfigManage.getInstance().getHomeId())) {
                    HouseIdBean houseIdBean = localHouseIdList.get(0);
                    HdlResidenceLogic.getInstance().switchHouse(houseIdBean, true);
                    JsonObject jsonObject = new JsonObject();
app/src/main/java/com/hdl/photovoltaic/ui/newC/PowerStationsMoveActivity.java
@@ -15,14 +15,20 @@
import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.databinding.ActivityPowerStationsMoveBinding;
import com.hdl.photovoltaic.enums.ShowErrorMode;
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.other.HdlCommonLogic;
import com.hdl.photovoltaic.other.HdlResidenceLogic;
import com.hdl.photovoltaic.other.HdlThreadLogic;
import com.hdl.photovoltaic.ui.bean.HouseIdBean;
import com.hdl.photovoltaic.ui.newC.adapter.HouseMoveAdapter;
import com.hdl.photovoltaic.uni.HDLUniMP;
import com.hdl.photovoltaic.widget.refreshlayout.BGARefreshLayout;
import com.hdl.photovoltaic.widget.refreshlayout.HDLRefreshViewHolder;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
@@ -61,6 +67,7 @@
        this.houseListBeanIDList = new ArrayList<>();
        this.houseListBeanIDList.addAll(HdlResidenceLogic.getInstance().getHouseIdList());
    }
    /**
     * 下拉刷新的逻辑
@@ -137,7 +144,9 @@
                            //移动电站位置
                            HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
                            initData();//初始化缓存数据
                            if (houseMoveAdapter != null) {
                            houseMoveAdapter.setList(houseListBeanIDList);//重新刷新列表
                            }
                            nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空
                            //通知外面更新位置
                            HdlCommonLogic.getInstance().postEventBus(ConstantManage.REFRESH_HOME_LIST, ConstantManage.REFRESH_HOME_LIST);
@@ -238,5 +247,22 @@
        super.onDestroy();
    }
    /**
     * 收到EventBUs通知
     *
     * @param eventBus 数据
     */
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onEventMessage(BaseEventBus eventBus) {
        super.onEventMessage(eventBus);
        if (ConstantManage.REFRESH_HOME_LIST.equals(eventBus.getTopic())) {
            if (houseMoveAdapter != null) {
                initData();
                houseMoveAdapter.setList(houseListBeanIDList);
            }
            nullDataUpdateUi(houseListBeanIDList);//检测数据是否为空
        }
    }
}