From a0e8f81afc4fe2a21a5c504d53e569ea50d463d6 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 15 三月 2024 11:51:23 +0800
Subject: [PATCH] 2024年03月15日11:51:17

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java |  112 +++++++++++++++++++++++++------------------------------
 1 files changed, 51 insertions(+), 61 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
index 1b6d81d..d656e12 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -7,7 +7,6 @@
 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.GatewayType;
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.internet.HttpClient;
@@ -37,7 +36,6 @@
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import io.dcloud.common.adapter.util.DeviceInfo;
 
 
 /**
@@ -84,64 +82,55 @@
         return newList;
     }
 
-    /**
-     * 鑾峰彇褰撳墠浣忓畢鐨勩�愪富銆戦�嗗彉鍣�
-     */
-    public GatewayBean getCurrentHomeMainGateway(String homeId) {
-        return queryCurrentHomeMainGateway(this.getCurrentHomeGatewayList(homeId), homeId);
-    }
-
-    /**
-     * 鏌ヨ褰撳墠浣忓畢鐨勩�愪富銆戦�嗗彉鍣�
-     */
-    public GatewayBean queryCurrentHomeMainGateway(List<GatewayBean> list, String homeId) {
-        if (list == null || list.size() == 0) {
-            return null;
-        }
-        GatewayBean findGatewayBean = null;
-        for (int i = 0; i < list.size(); i++) {
-            GatewayBean gatewayBean = list.get(i);
-            if (gatewayBean.getMaster().equals(GatewayMasterType.MasterTrue) && gatewayBean.getHomeId().equals(homeId)) {
-                //鎵惧埌杩斿洖
-                findGatewayBean = gatewayBean;
-                break;
-            }
-        }
-        return findGatewayBean;
-    }
-
 
     /**
      * 閫嗗彉鍣ㄤ笂浼犳暟鎹埌浜戠(鍖呮嫭:sid锛宱id)
      *
      * @param homeId 浣忓畢id
-     * @param mac    璁惧mac
+     * @param list   閫嗗彉鍣ㄥ垪琛�
      */
-    public void uploadDataToCloud(String homeId, String mac, CloudCallBeak<Boolean> callBeak) {
-        getInverterOidList(mac, new LinkCallBack<List<OidBean>>() {
-            @Override
-            public void onSuccess(List<OidBean> oidBeanList) {
-                if (oidBeanList == null) {
-                    return;
+    public void uploadDataToCloud(String homeId, List<GatewayBean> list, CloudCallBeak<Boolean> callBeak) {
+        if (list == null || list.size() == 0) {
+            return;
+        }
+        List<OidBean> oidList = new ArrayList<>();
+        AtomicInteger atomicInteger = new AtomicInteger(0);
+        for (int i = 0; i < list.size(); i++) {
+            atomicInteger.set(atomicInteger.get() + 1);
+            GatewayBean gatewayBean = list.get(i);
+            if (gatewayBean == null || TextUtils.isEmpty(gatewayBean.getDevice_mac())) {
+                continue;
+            }
+            getInverterOidList(gatewayBean.getDevice_mac(), new LinkCallBack<List<OidBean>>() {
+                @Override
+                public void onSuccess(List<OidBean> oidBeanList) {
+                    if (oidBeanList == null) {
+                        return;
+                    }
+                    oidList.addAll(oidBeanList);
+                    if (atomicInteger.get() == oidList.size()) {
+                        //鍏ㄩ儴鑾峰彇鍚庡啀涓婁紶
+                        fullUpdateOid(homeId, oidList, new CloudCallBeak<Boolean>() {
+                            @Override
+                            public void onSuccess(Boolean obj) {
+                                HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�--->浣忓畢id:" + homeId + "--->mac:" + gatewayBean.getDevice_mac(), true);
+                            }
+
+                            @Override
+                            public void onFailure(HDLException e) {
+                                HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�--->浣忓畢id:" + homeId + "--->mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
+                            }
+                        });
+                    }
                 }
-                fullUpdateOid(homeId, oidBeanList, new CloudCallBeak<Boolean>() {
-                    @Override
-                    public void onSuccess(Boolean obj) {
-                        HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�--->浣忓畢id:" + homeId + "--->mac:" + mac, true);
-                    }
 
-                    @Override
-                    public void onFailure(HDLException e) {
-                        HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�--->浣忓畢id:" + homeId + "--->mac:" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
-                    }
-                });
-            }
+                @Override
+                public void onError(HDLLinkException e) {
+                    HdlLogLogic.print("鑾峰彇閫嗗彉鍣╫id鍒楄〃澶辫触--->浣忓畢id:" + homeId + "--->mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
+                }
+            });
+        }
 
-            @Override
-            public void onError(HDLLinkException e) {
-                HdlLogLogic.print("鑾峰彇閫嗗彉鍣╫id鍒楄〃澶辫触--->浣忓畢id:" + homeId + "--->mac:" + mac + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
-            }
-        });
 
     }
 
@@ -173,7 +162,8 @@
                 if (cloudCallBeak != null) {
                     cloudCallBeak.onSuccess(true);
                     //涓存椂鐨勯�昏緫锛屼笂浼爋id鍒楄〃鍒颁簯绔�
-                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null);
+                    List<GatewayBean> list = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(homeId);
+                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null);
                 }
             }
 
@@ -189,23 +179,23 @@
     /**
      * 娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠涓�
      *
-     * @param mac           -
+     * @param list           閫嗗彉鍣ㄥ垪琛�
      * @param cloudCallBeak -
      */
-    public void addAllInverterDeviceToCloud(String homeId, String mac, List<GatewayBean> list, CloudCallBeak<Boolean> cloudCallBeak) {
+    public void addAllInverterDeviceToCloud(String homeId, List<GatewayBean> list, CloudCallBeak<Boolean> cloudCallBeak) {
 
         String requestUrl = HttpApi.POST_Device_Add_All;
         JsonObject json = new JsonObject();
         json.addProperty("homeId", homeId);
         JsonArray ary = new JsonArray();
         for (int i = 0; i < list.size(); i++) {
-            GatewayBean gatewayBean=list.get(i);
+            GatewayBean gatewayBean = list.get(i);
             JsonObject inverterInfo = new JsonObject();
-            inverterInfo.addProperty("mac",gatewayBean.getDevice_mac());
-            inverterInfo.addProperty("spk",gatewayBean.getGatewayType());
-            inverterInfo.addProperty("sid",gatewayBean.getSid());
-            inverterInfo.addProperty("oid",gatewayBean.getOid());
-            inverterInfo.addProperty("name",gatewayBean.getDevice_name());
+            inverterInfo.addProperty("mac", gatewayBean.getDevice_mac());
+            inverterInfo.addProperty("spk", gatewayBean.getGatewayType());
+            inverterInfo.addProperty("sid", gatewayBean.getSid());
+            inverterInfo.addProperty("oid", gatewayBean.getOid());
+            inverterInfo.addProperty("name", gatewayBean.getDevice_name());
             ary.add(inverterInfo);
         }
         json.add("devices", ary);
@@ -217,7 +207,7 @@
                 if (cloudCallBeak != null) {
                     cloudCallBeak.onSuccess(true);
                     //涓存椂鐨勯�昏緫锛屼笂浼爋id鍒楄〃鍒颁簯绔�
-                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null);
+                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), list, null);
                 }
             }
 

--
Gitblit v1.8.0