From 17484333e6621a0285b61d50ceedc8698861120b Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 11 三月 2024 20:54:41 +0800
Subject: [PATCH] 2024年03月11日20:54:25

---
 app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java              |    4 +
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java                      |    1 
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java           |   33 ++++++++
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java                 |   75 ++++++++++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java |   37 ++++----
 app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java              |   47 +++++++++++
 6 files changed, 179 insertions(+), 18 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
index 66ae087..b7dfcbe 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java
@@ -46,11 +46,15 @@
     public static final String POST_PowerStation_Info = "/home-wisdom/app/powerStation/info";
     //鐢电珯缂栬緫
     public static final String POST_PowerStation_Edit = "/home-wisdom/app/powerStation/edit";
+    //鐢电珯鎺掑簭
+    public static final String POST_PowerStation_UserSort = "/home-wisdom/app/powerStation/userSort";
     //endregion
 
     //region -----璁惧绠$悊---------
     //娣诲姞閫嗗彉鍣�
     public static final String POST_Device_Add = "/home-wisdom/program/device/independentRegister";
+    //鎵归噺娣诲姞閫嗗彉鍣�
+    public static final String POST_Device_Add_All= "/home-wisdom/program/device/batchIndependentRegister";
     //鑾峰彇閫嗗彉鍣ㄥ垪琛�
     public static final String POST_Device_List = "/home-wisdom/app/device/inverter/list";
     //鍒犻櫎閫嗗彉鍣�
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 49cdca5..1b6d81d 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlDeviceLogic.java
@@ -7,6 +7,7 @@
 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;
@@ -35,6 +36,8 @@
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
+
+import io.dcloud.common.adapter.util.DeviceInfo;
 
 
 /**
@@ -184,6 +187,50 @@
     }
 
     /**
+     * 娣诲姞澶氫釜閫嗗彉鍣ㄥ埌浜戠涓�
+     *
+     * @param mac           -
+     * @param cloudCallBeak -
+     */
+    public void addAllInverterDeviceToCloud(String homeId, String mac, 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);
+            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());
+            ary.add(inverterInfo);
+        }
+        json.add("devices", ary);
+        // json.addProperty("zoneType", "password");//鍖哄煙
+
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String str) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(true);
+                    //涓存椂鐨勯�昏緫锛屼笂浼爋id鍒楄〃鍒颁簯绔�
+                    uploadDataToCloud(UserConfigManage.getInstance().getHomeId(), mac, null);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+    }
+
+    /**
      * 鑾峰彇浜戠閫嗗彉鍣ㄥ垪琛�
      *
      * @param homeId        浣忓畢id
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 e3ca3cd..1470572 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -381,6 +381,39 @@
     }
 
     /**
+     * 浣忓畢(鐢电珯)绉诲姩浣嶇疆
+     *
+     * @param homeId        鐢电珯id
+     * @param frontHomeId   鍓嶉潰鐨勭數绔檌d锛屽鏋滀笉浼犺〃绀烘帓鍒扮涓�浣�
+     * @param cloudCallBeak -
+     */
+    public void moveResidence(String homeId, String frontHomeId, CloudCallBeak<Boolean> cloudCallBeak) {
+        String requestUrl = HttpApi.POST_PowerStation_UserSort;
+        JsonObject json = new JsonObject();
+        json.addProperty("homeId", homeId);
+        if (!TextUtils.isEmpty(frontHomeId)) {
+            json.addProperty("frontHomeId", frontHomeId);
+        }
+//        json.addProperty("zoneType", "zoneType");
+        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String str) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onSuccess(true);
+                }
+
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                if (cloudCallBeak != null) {
+                    cloudCallBeak.onFailure(e);
+                }
+            }
+        });
+    }
+
+    /**
      * 鍒犻櫎浣忓畢(鐢电珯)
      *
      * @param homeId        -
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 be8f1e0..90b32bf 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -18,6 +18,7 @@
 import androidx.annotation.NonNull;
 import androidx.core.app.ActivityCompat;
 
+import com.alibaba.fastjson.JSON;
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
 import com.hdl.linkpm.sdk.core.exception.HDLException;
@@ -70,6 +71,7 @@
 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;
@@ -166,6 +168,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: {
@@ -1182,6 +1189,7 @@
 
     }
 
+
     /**
      * 閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓�
      *
@@ -1231,6 +1239,73 @@
     }
 
     /**
+     * 澶氫釜閫嗗彉鍣ㄦ坊鍔犲埌浜戠涓�
+     *
+     * @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;
+            }
+        }
+    }
+
+    /**
      * 鍒犻櫎浜戠涓婇�嗗彉鍣�
      *
      * @param data     uni鏁版嵁
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
index 7f027f0..46300d6 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java
@@ -2,7 +2,6 @@
 
 import android.Manifest;
 import android.content.Context;
-import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.hardware.camera2.CameraManager;
 import android.os.Bundle;
@@ -28,8 +27,6 @@
 import com.hdl.photovoltaic.other.HdlUniLogic;
 import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
-import com.hdl.photovoltaic.ui.newC.MessageCenterList;
-import com.hdl.photovoltaic.ui.newC.PowerStationsListEdit;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.widget.DelayedConfirmationCancelDialog;
@@ -113,21 +110,25 @@
 
             @Override
             public void onMoveClick(int position, HouseIdBean houseIdBean) {
-//                HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
-//                    @Override
-//                    public void onSuccess(Boolean obj) {
-                //绉诲姩鐢电珯浣嶇疆
-                HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
-                initData();//鍒濆鍖栫紦瀛樻暟鎹�
-                houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
-                nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
-//                    }
-//
-//                    @Override
-//                    public void onFailure(HDLException e) {
-//                        HdlThreadLogic.toast(_mActivity, e);
-//                    }
-//                });
+                String frontHomeId = "";
+                if (position > 0) {
+                    frontHomeId = houseListBeanIDList.get(position - 1).getHomeId();
+                }
+                HdlResidenceLogic.getInstance().moveResidence(houseIdBean.getHomeId(), frontHomeId, new CloudCallBeak<Boolean>() {
+                    @Override
+                    public void onSuccess(Boolean obj) {
+                        //绉诲姩鐢电珯浣嶇疆
+                        HdlResidenceLogic.getInstance().moveHouseId(houseIdBean.getHomeId());
+                        initData();//鍒濆鍖栫紦瀛樻暟鎹�
+                        houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
+                        nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
+                    }
+
+                    @Override
+                    public void onFailure(HDLException e) {
+                        HdlThreadLogic.toast(_mActivity, e);
+                    }
+                });
 
 
             }
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
index ee64094..4f259b0 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -30,6 +30,7 @@
     public final static String UNI_EVENT_REPLY_DEVICE_NET_LIST = "net_list";//缃戠粶閫嗗彉鍣ㄨ澶囧垪琛�
     public final static String UNI_EVENT_REPLY_DEVICE_CHILD_LIST = "child_list";//閫嗗彉鍣ㄣ�愪笅鎸傘�戣澶囧垪琛�
     public final static String UNI_EVENT_REPLY_DEVICE_ADD = "add";//璁惧娣诲姞
+    public final static String UNI_EVENT_REPLY_DEVICE_ADD_All = "add_all";//娣诲姞澶氫釜璁惧
     public final static String UNI_EVENT_REPLY_DEVICE_DEL = "del";//璁惧鍒犻櫎
     public final static String UNI_EVENT_REPLY_DEVICE_OID = "oid";//璁惧銆愬寘鎷笅鎸傝澶囥�憃id鍒楄〃
     public final static String UNI_EVENT_REPLY_DEVICE_TIME = "time";//璁惧鏃堕棿璇诲彇

--
Gitblit v1.8.0