From 63b0ee228bf52e8e9c4d7fc51a1117543c9a67af Mon Sep 17 00:00:00 2001
From: 刘卫锦 <lwj@hdlchina.com.cn>
Date: 星期一, 03 七月 2023 19:02:40 +0800
Subject: [PATCH] Merge branch 'master' of http://172.16.1.23:6688/r/~wjc/HDLPhotovoltaicDebugAPP

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java |   85 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 73 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
index 4e7f0d6..83e6b6a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -532,32 +532,93 @@
         //閰嶇疆鏈湴閫氫俊鐨勪俊鎭�
         initLocalLinkSdk();
 
-//        HdlDeviceLogic.getInstance().getInverterDeviceList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<CloudInverterDeviceBean>() {
-//            @Override
-//            public void onSuccess(CloudInverterDeviceBean obj) {
-//
-//
-//            }
-//
-//            @Override
-//            public void onFailure(Exception exception) {
-//
-//            }
-//        });
         HdlDeviceLogic.getInstance().searchGateway(new GatewayCallBack() {
             @Override
             public void onSuccess(List<GatewayBean> gatewayBeanList) {
+                HdlDeviceLogic.getInstance().getCloudInverterDeviceList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<List<CloudInverterDeviceBean>>() {
+                    @Override
+                    public void onSuccess(List<CloudInverterDeviceBean> list) {
+                        if (list == null) {
+                            //浜戠娌℃湁缁戝畾閫嗗彉鍣�,娓呯┖鏈湴鍒楄〃;
+                            HDLLinkLocalGateway.getInstance().getGatewayList().clear();
+                            return;
+                        }
+                        //鏀堕泦鍒犻櫎閫嗗彉鍣╯id
+                        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 i = 0; i < removeSidList.size(); i++) {
+                            //鑾峰彇鏈湴鐨勬绫虫尝
+                            removeInverter(removeSidList.get(i));
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(Exception exception) {
+
+                    }
+                });
             }
 
             @Override
             public void onError(HDLLinkException e) {
+                HdlDeviceLogic.getInstance().getCloudInverterDeviceList(UserConfigManage.getInstance().getHomeId(), new CloudCallBeak<List<CloudInverterDeviceBean>>() {
+                    @Override
+                    public void onSuccess(List<CloudInverterDeviceBean> list) {
+                        if (list == null) {
+                            return;
+                        }
+                        if (list.size() <= 0) {
+                            return;
+                        }
+                        HDLLinkLocalGateway.getInstance().getGatewayList().clear();
+                        for (int i = 0; i < list.size(); i++) {
+                            CloudInverterDeviceBean cloudInverterDeviceBean = list.get(i);
+                            GatewayBean gatewayBean = new GatewayBean();
+                            gatewayBean.setOid(cloudInverterDeviceBean.getOid());
+                            gatewayBean.setSid(cloudInverterDeviceBean.getSid());
+                            gatewayBean.setGatewayId(cloudInverterDeviceBean.getGatewayId());
+                            gatewayBean.setOnline(cloudInverterDeviceBean.isOnline());
+                            gatewayBean.setDevice_name(cloudInverterDeviceBean.getGatewayName());
+                            gatewayBean.setHomeId(UserConfigManage.getInstance().getHomeId());
+                            gatewayBean.setLocalEncrypt(true);
+                            gatewayBean.setMaster("true");
+                            HDLLinkLocalGateway.getInstance().getGatewayList().add(gatewayBean);
+                        }
 
+                    }
+
+                    @Override
+                    public void onFailure(Exception exception) {
+
+                    }
+                });
             }
         });
 
 
+    }
 
+    /**
+     * 鍒犻櫎鏈湴閫嗗彉鍣�
+     *
+     * @param sid 璁惧sid
+     */
+    private void removeInverter(String sid) {
+        //鑾峰彇鏈湴鐨勬绫虫尝
+        GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(sid);
+        if (gatewayBean != null) {
+            HDLLinkLocalGateway.getInstance().getGatewayList().remove(gatewayBean);
+        }
     }
 
     /**

--
Gitblit v1.8.0