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