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