From 413b905fb1af7f421b801a3d7ad0b84b57e919ab Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 15 四月 2025 08:54:11 +0800
Subject: [PATCH] 2025年04月15日08:54:09

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java |   58 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 34 insertions(+), 24 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 26c788d..bdaec7d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -40,6 +40,7 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 
 
@@ -326,6 +327,7 @@
 
                     @Override
                     public void onError(HDLLinkException e) {
+                        HdlLogLogic.print("鑾峰彇oid鍒楄〃澶辫触---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
                     }
                 });
                 SystemClock.sleep(200);
@@ -333,10 +335,13 @@
         } else {
             //鍙湁杩涘叆璇︽儏鐣岄潰
             List<OidBean> newOidList = new ArrayList<>();
+            //琛ㄧず涓棿浠讳綍涓�涓け璐ラ兘鏄敼鍙樼敤澧為噺涓婁紶
+            AtomicBoolean isIncrementalOidAddition = new AtomicBoolean(false);
             AtomicInteger atomicInteger = new AtomicInteger(0);
             for (int i = 0; i < list.size(); i++) {
                 GatewayBean gatewayBean = list.get(i);
                 if (gatewayBean == null || TextUtils.isEmpty(gatewayBean.getDevice_mac())) {
+//                    isIncrementalOidAddition.set(true);
                     continue;
                 }
                 getInverterOidList(gatewayBean.getDevice_mac(), new LinkCallBack<List<OidBean>>() {
@@ -344,6 +349,7 @@
                     public void onSuccess(List<OidBean> oidBeanList) {
                         atomicInteger.set(atomicInteger.get() + 1);
                         if (oidBeanList == null) {
+//                            isIncrementalOidAddition.set(true);
                             return;
                         }
                         newOidList.addAll(oidBeanList);
@@ -351,31 +357,33 @@
                             if (newOidList.isEmpty()) {
                                 return;
                             }
-//                        //澧為噺娣诲姞oid
-//                        updateOidAdd(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);
-//                            }
-//                        });
+                            if (isIncrementalOidAddition.get()) {
+                                //澧為噺娣诲姞oid
+                                updateOidAdd(homeId, newOidList, new CloudCallBeak<Boolean>() {
+                                    @Override
+                                    public void onSuccess(Boolean obj) {
+                                        HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac(), true);
+                                    }
 
-                            //鍏ㄩ儴鑾峰彇鍚庡啀涓婁紶
-                            fullUpdateOid(homeId, newOidList, new CloudCallBeak<Boolean>() {
-                                @Override
-                                public void onSuccess(Boolean obj) {
-                                    HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�(鍏ㄩ噺)---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "---\r\n鏁版嵁---" + new Gson().toJson(newOidList), true);
-                                }
+                                    @Override
+                                    public void onFailure(HDLException e) {
+                                        HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
+                                    }
+                                });
+                            } else {
+                                //鍏ㄩ儴鑾峰彇鍚庡啀涓婁紶
+                                fullUpdateOid(homeId, newOidList, new CloudCallBeak<Boolean>() {
+                                    @Override
+                                    public void onSuccess(Boolean obj) {
+                                        HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔垚鍔�(鍏ㄩ噺)---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "---\r\n鏁版嵁---" + new Gson().toJson(newOidList), true);
+                                    }
 
-                                @Override
-                                public void onFailure(HDLException e) {
-                                    HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�(鍏ㄩ噺)---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
-                                }
-                            });
+                                    @Override
+                                    public void onFailure(HDLException e) {
+                                        HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�(鍏ㄩ噺)---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
+                                    }
+                                });
+                            }
                         }
                     }
 
@@ -399,6 +407,8 @@
                                     HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�(澧為噺)---浣忓畢id:" + homeId + "---mac:" + gatewayBean.getDevice_mac() + "-->" + e.getMsg() + "(" + e.getCode() + ")", true);
                                 }
                             });
+                        } else {
+                            isIncrementalOidAddition.set(true);
                         }
                     }
                 });
@@ -630,7 +640,7 @@
             HdlLogLogic.print("涓婁紶oid鍒楄〃鍒颁簯绔け璐�---褰撳墠浣忓畢id:" + UserConfigManage.getInstance().getHomeId() + "---涓婁紶浣忓畢id:" + homeId, true);
             return;
         }
-        if (oidList == null || oidList.size() == 0) {
+        if (oidList == null || oidList.isEmpty()) {
             HdlLogLogic.print("oid鍒楄〃涓虹┖锛屾棤娉曞叏閲忔洿鏂皁id鍒颁簯绔�---", true);
             return;
         }

--
Gitblit v1.8.0