hxb
2024-04-01 fdcfe6ef562cc3e8bbd6fcf2faedfbd9571f4490
app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -212,8 +212,8 @@
            public void onSuccess(String str) {
                if (cloudCallBeak != null) {
                    cloudCallBeak.onSuccess(true);
                    //临时的逻辑,上传oid列表到云端
                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null);
                    //临时的逻辑,上传oid列表到云端(去掉,原因是我上传成功后,网关再次全量上传oid列表,会把之前oid列表覆盖掉)
//                    uploadDataToCloud(homeId, list, null);
                }
            }
@@ -763,15 +763,11 @@
                                    if (atomicInteger.get() == list.size()) {
                                        //收集删除逆变器sid
                                        List<String> removeSidList = new ArrayList<>();
                                        for (int i = 0; i < list.size(); i++) {
                                            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
                                            for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                                GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                                if (!cloudInverterDeviceBean.getSid().equals(gatewayBean.getSid())) {
                                                    //本地有,云端没有,删除本地;
                                                    removeSidList.add(gatewayBean.getSid());
                                                }
                                        for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                            GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                            if (!querySidInverter(list, gatewayBean.getSid())) {
                                                //本地有,云端没有,删除本地;
                                                removeSidList.add(gatewayBean.getSid());
                                            }
                                        }
                                        for (int i = 0; i < removeSidList.size(); i++) {
@@ -791,15 +787,11 @@
                                    if (atomicInteger.get() == list.size()) {
                                        //收集删除逆变器sid
                                        List<String> removeSidList = new ArrayList<>();
                                        for (int i = 0; i < list.size(); i++) {
                                            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
                                            for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                                GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                                if (!cloudInverterDeviceBean.getSid().equals(gatewayBean.getSid())) {
                                                    //本地有,云端没有,删除本地;
                                                    removeSidList.add(gatewayBean.getSid());
                                                }
                                        for (int j = 0; j < HDLLinkLocalGateway.getInstance().getGatewayList().size(); j++) {
                                            GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getGatewayList().get(j);
                                            if (!querySidInverter(list, gatewayBean.getSid())) {
                                                //本地有,云端没有,删除本地;
                                                removeSidList.add(gatewayBean.getSid());
                                            }
                                        }
                                        for (int i = 0; i < removeSidList.size(); i++) {
@@ -892,6 +884,22 @@
                });
            }
        });
    }
    /**
     * 通过sid查询逆变器
     *
     * @param list 云端上逆变器列表
     * @return 存在为true, 否则为false
     */
    private boolean querySidInverter(List<CloudInverterDeviceBean> list, String sid) {
        for (int i = 0; i < list.size(); i++) {
            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
            if (sid.equals(cloudInverterDeviceBean.getSid())) {
                return true;
            }
        }
        return false;
    }
    /**
@@ -1139,7 +1147,9 @@
        gatewayBean.setAddresses(cloudInverterDeviceBean.getAddresses());//子网号/设备号,逆变器地址
        gatewayBean.setPowerPvNow(cloudInverterDeviceBean.getPowerPvNow());//发电功率
        gatewayBean.setTotalElectricityPvToday(cloudInverterDeviceBean.getTotalElectricityPvToday());//今日发电量
        gatewayBean.setDevice_model(cloudInverterDeviceBean.getOmodel());//设备型号
        if (!TextUtils.isEmpty(cloudInverterDeviceBean.getOmodel())) {
            gatewayBean.setDevice_model(cloudInverterDeviceBean.getOmodel());//设备型号
        }
        gatewayBean.setSpk(cloudInverterDeviceBean.getSpk());//设备spk