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

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |  144 ++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 132 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 0c8f79a..dc2df03 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -8,18 +8,13 @@
 import android.content.ServiceConnection;
 import android.content.pm.PackageManager;
 import android.location.Location;
-import android.location.LocationListener;
 import android.location.LocationManager;
 import android.os.IBinder;
-import android.provider.Settings;
 import android.text.TextUtils;
-import android.util.Log;
 
-import androidx.annotation.NonNull;
 import androidx.core.app.ActivityCompat;
 
 import com.google.gson.Gson;
-import com.google.gson.JsonObject;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.linkpm.sdk.device.bean.DeviceOidInfoBean;
 import com.hdl.linkpm.sdk.ota.bean.CloudDeviceFirmwaresBean;
@@ -39,6 +34,11 @@
 import com.hdl.photovoltaic.ui.bean.DeviceTimeBean;
 import com.hdl.photovoltaic.ui.bean.Geolocation;
 import com.hdl.photovoltaic.ui.bean.OidBean;
+import com.hdl.photovoltaic.ui.me.AsRegardsActivity;
+import com.hdl.photovoltaic.ui.me.PersonalDataActivity;
+import com.hdl.photovoltaic.ui.me.SetActivity;
+import com.hdl.photovoltaic.ui.newC.MessageCenterList;
+import com.hdl.photovoltaic.ui.newC.PowerStationsListEdit;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.uni.HDLUniMPSDKManager;
 import com.hdl.photovoltaic.utils.NetworkUtils;
@@ -61,9 +61,9 @@
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import io.dcloud.feature.unimp.DCUniMPJSCallback;
 import okhttp3.ResponseBody;
@@ -160,6 +160,11 @@
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD: {
                         this.uniAddInverterDeviceToCloud(mode_type, data, callback);
                     }
+                    //娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠
+                    case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ADD_All: {
+                        this.uniAddAllInverterDeviceToCloud(mode_type, data, callback);
+                    }
+
                     break;
                     //鍒犻櫎浜戠閫嗗彉鍣�
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_DEL: {
@@ -316,7 +321,6 @@
 
                 }
             } else if (HDLUniMP.UNI_EVENT_REPLY_OTHER_MODEL.equals(topic)) {
-
                 //鍏跺畠妯″潡
                 switch (type) {
                     //鑾峰彇娓╁害鍗曚綅
@@ -338,6 +342,52 @@
                         String customizeContentFormat = getKeyValue("customizeContentFormat", getKeyValue("data", data));
                         HdlLogLogic.print("uni--->log--->" + customizeContentFormat, true);
                     }
+                }
+            } else if (HDLUniMP.UNI_EVENT_REPLY_MINE_MODEL.equals(topic)) {
+                //鎴戠殑妯″潡
+                switch (type) {
+                    //璧勬枡缂栬緫
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_EDIT_USER_INFO: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), PersonalDataActivity.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //鐢电珯閫夋嫨
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_SELECTED_POWERSTATION: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), PowerStationsListEdit.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //娑堟伅涓績
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_MESSAGE_CENTER: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), MessageCenterList.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //鍏充簬
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_ABOUT: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), AsRegardsActivity.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+                    //璁剧疆
+                    case HDLUniMP.UNI_EVENT_REPLY_MINE_SETTING: {
+                        Intent intent = new Intent();
+                        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                        intent.setClass(HDLApp.getInstance(), SetActivity.class);
+                        HDLApp.getInstance().startActivity(intent);
+                    }
+                    break;
+
+
                 }
             }
 
@@ -1131,6 +1181,7 @@
 
     }
 
+
     /**
      * 閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓�
      *
@@ -1177,6 +1228,73 @@
                 uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
             }
         });
+    }
+
+    /**
+     * 澶氫釜閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓�
+     *
+     * @param data     uni鏁版嵁
+     * @param callback uni鍥炶皟
+     */
+    private void uniAddAllInverterDeviceToCloud(String type, Object data, DCUniMPJSCallback callback) {
+//        com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(data);
+        String mac = getKeyValue("mac", getKeyValue("data", data));
+        String homeId = UserConfigManage.getInstance().getHomeId();
+        GatewayBean gatewayBean = HDLLinkLocalGateway.getInstance().getLocalGateway(mac);
+        if (gatewayBean == null) {
+            uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback);
+
+            return;
+        }
+        List<GatewayBean> list = new ArrayList<>();
+        //璁板綍鏉℃暟
+        AtomicInteger atomicInteger = new AtomicInteger(0);
+        final boolean[] is_boolean = {false};
+        for (int i = 0; i < list.size(); i++) {
+
+            HdlDeviceLogic.getInstance().setGatewayRemoteParam(homeId, mac, new LinkCallBack<Boolean>() {
+                @Override
+                public void onSuccess(Boolean obj) {
+                    HdlDeviceLogic.getInstance().editGatewayParam(mac, new LinkCallBack<Boolean>() {
+                        @Override
+                        public void onSuccess(Boolean obj) {
+                            atomicInteger.set(atomicInteger.get() + 1);
+                            //鏈�鍚庝竴鏉℃墠鍋氭坊鍔犻�嗗彉鍣ㄩ�昏緫澶勭悊
+                            if (atomicInteger.get() == list.size()) {
+                                HdlDeviceLogic.getInstance().addAllInverterDeviceToCloud(homeId, mac, list, new CloudCallBeak<Boolean>() {
+                                    @Override
+                                    public void onSuccess(Boolean obj) {
+                                        uniCallbackData(type, null, callback);
+                                    }
+
+                                    @Override
+                                    public void onFailure(HDLException e) {
+                                        uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+                                    }
+                                });
+                            }
+
+                        }
+
+                        @Override
+                        public void onError(HDLLinkException e) {
+                            uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+                            is_boolean[0] = true;
+                        }
+                    });
+                }
+
+                @Override
+                public void onError(HDLLinkException e) {
+                    uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
+                    is_boolean[0] = true;
+                }
+            });
+            if (is_boolean[0]) {
+                //鍙湁涓棿鏈変竴鏉℃寚浠よ缃け璐�,榛樿鍏ㄩ儴澶辫触;
+                break;
+            }
+        }
     }
 
     /**
@@ -1285,7 +1403,8 @@
     private void sendModBus(String type, Object data, DCUniMPJSCallback callback) {
         String tempData = getKeyValue("data", data);
         if (TextUtils.isEmpty(tempData)) {
-            HdlLogLogic.print("data鍐呭涓虹┖--->", false);
+            uniCallbackData(type, null, -2, "data鍐呭涓虹┖", callback);
+            //HdlLogLogic.print("data鍐呭涓虹┖--->", false);
             return;
         }
         ModBusBean modBusBean = new Gson().fromJson(tempData, ModBusBean.class);
@@ -1296,24 +1415,25 @@
 //            modBusBean.setOid("0101050217BBC400");
 //        }
         if (modBusBean.getMac() == null || modBusBean.getData() == null) {
-            HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true);
+            uniCallbackData(type, null, -2, "鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖", callback);
+            //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->鍙戦�佸け璐�,(mac鎴栬�卭id)涓虹┖." + Arrays.toString(modBusBean.getData()), true);
             return;
         }
 
-        HdlLogLogic.print("uni--->鍙戦��--->ModBus--->" + Arrays.toString(modBusBean.getData()), true);
+        //HdlLogLogic.print("uni--->鍙戦��--->ModBus--->" + Arrays.toString(modBusBean.getData()), true);
         //鍙戦�乵odbus鍗忚
         HDLModBusConnect.getInstance().Send(modBusBean.getMac(), modBusBean.getData(), new ModbusCallBack() {
             @Override
             public void onSuccess(int[] data) {
                 uniCallbackData(type, data, callback);
-                HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true);
+//                HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + Arrays.toString(data), true);
 
             }
 
             @Override
             public void onError(HDLLinkException e) {
                 uniCallbackData(type, null, e.getCode(), e.getMsg(), callback);
-                HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true);
+                //HdlLogLogic.print("uni--->鎺ユ敹--->ModBus--->" + e.getMsg() + "(" + e.getCode() + ")", true);
             }
         });
     }

--
Gitblit v1.8.0