From 87cd5df70918e6ba1af849c5f026d3719bfdb1ac Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 09 四月 2025 09:06:29 +0800 Subject: [PATCH] Merge branch '1.5.2' into dev --- app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java | 424 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 384 insertions(+), 40 deletions(-) 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 471483e..4112b49 100644 --- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java +++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java @@ -4,29 +4,23 @@ import android.graphics.BitmapFactory; import android.os.Build; import android.text.TextUtils; +import android.util.Log; import com.google.gson.Gson; import com.google.gson.JsonObject; import com.hdl.linkpm.sdk.core.exception.HDLException; -import com.hdl.photovoltaic.bean.HttpResponsePack; import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.internet.HttpClient; import com.hdl.photovoltaic.internet.api.HttpApi; -import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak; import com.hdl.photovoltaic.listener.CloudCallBeak; -import com.hdl.photovoltaic.ui.bean.CloudInverterDeviceBean; +import com.hdl.photovoltaic.ui.bean.ContactBean; import com.hdl.photovoltaic.ui.bean.HouseInfoBean; import com.hdl.photovoltaic.ui.bean.HouseIdBean; -import com.hdl.photovoltaic.ui.bean.MessageBean; -import com.hdl.sdk.link.common.exception.HDLLinkException; -import com.hdl.sdk.link.core.bean.gateway.GatewayBean; -import com.hdl.sdk.link.core.callback.GatewayCallBack; +import com.hdl.photovoltaic.ui.bean.StatusOverviewBean; import com.hdl.sdk.link.core.config.HDLLinkConfig; import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient; -import com.hdl.sdk.link.gateway.HDLLinkLocalGateway; -import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -37,7 +31,7 @@ */ public class HdlResidenceLogic { - public static final int pageSize = 500; + public static final int pageSize = 50; private static volatile HdlResidenceLogic sHdlResidenceLogic; @@ -74,21 +68,95 @@ this.houseInfoList = houseInfoList; } + public void clearHouseList() { + if (mHouseIdList != null && mHouseIdList.size() > 0) { + mHouseIdList.clear(); + } + if (houseInfoList != null && houseInfoList.size() > 0) { + houseInfoList.clear(); + } + } + + /** * 鑾峰彇缂撳瓨浣忓畢ID鍒楄〃 * * @return 浣忓畢ID鍒楄〃 */ public List<HouseIdBean> getHouseIdList() { - return houseIdList; + return mHouseIdList; } - public void setHouseIdList(List<HouseIdBean> houseIdList) { - if (houseIdList == null) { - houseIdList = new ArrayList<>(); + /** + * 璁剧疆鍒楄〃鏁版嵁 + * + * @param list 鏂板垪琛� + * @param isClear 鏄惁娓呴櫎鏃ф暟鎹�,true琛ㄧず娓呴櫎,鍚﹀垯涓嶆竻闄�; + */ + public void setHouseIdList(List<HouseIdBean> list, boolean isClear) { + if (list == null || list.size() == 0) { + return; } - this.houseIdList = houseIdList; + if (isClear) { + this.clearHouseList(); + } + if (this.mHouseIdList.size() == 0) { + this.mHouseIdList.addAll(list); + return; + } + for (int i = 0; i < list.size(); i++) { + this.setSingleHouseId(list.get(i)); + } } + + /** + * 璁剧疆鍒楄〃鏁版嵁 + * + * @param list 鏂板垪琛ㄦ暟鎹� + */ + public void setHouseIdList(List<HouseIdBean> list) { + if (list == null || list.size() == 0) { + return; + } + if (this.mHouseIdList.size() == 0) { + this.mHouseIdList.addAll(list); + return; + } + for (int i = 0; i < list.size(); i++) { + this.setSingleHouseId(list.get(i)); + } + } + + /** + * 娣诲姞鐢电珯Id鍒板垪琛ㄩ噷闈� + * + * @param houseIdBean -鐢电珯Id瀵硅薄 + */ + public void setSingleHouseId(HouseIdBean houseIdBean) { + try { + if (houseIdBean == null) { + return; + } + boolean if_boolean = false; + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseIdBean.getHomeId())) { + //瀛樺湪鏇挎崲 + mHouseIdList.remove(i); + mHouseIdList.add(i, houseIdBean); + if_boolean = true; + break; + } + } + if (!if_boolean) { + //娌℃湁娣诲姞 + this.mHouseIdList.add(houseIdBean); + } + } catch (Exception e) { + String mes = e.getMessage(); + HdlLogLogic.print("--->" + mes); + } + } + /** * 鍒犻櫎鐢电珯 @@ -99,9 +167,9 @@ if (TextUtils.isEmpty(houseId)) { return; } - for (int i = 0; i < houseIdList.size(); i++) { - if (houseIdList.get(i).getHomeId().equals(houseId)) { - houseIdList.remove(i); + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseId)) { + mHouseIdList.remove(i); break; } } @@ -117,8 +185,8 @@ return; } int index = -1; - for (int i = 0; i < houseIdList.size(); i++) { - if (houseIdList.get(i).getHomeId().equals(houseId)) { + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(houseId)) { index = i; break; } @@ -128,12 +196,12 @@ } //index==0琛ㄧず鍙湁涓�涓厓绱犳垨鑰呭湪棣栦綅,涓嶉渶瑕佺Щ鍔ㄤ綅缃� if (index > 0) { - Collections.swap(houseIdList, index - 1, index); + Collections.swap(mHouseIdList, index - 1, index); } } //浣忓畢ID鍒楄〃 - private List<HouseIdBean> houseIdList = new ArrayList<>(); + private List<HouseIdBean> mHouseIdList = new ArrayList<>(); //浣忓畢璇︽儏鍒楄〃 private List<HouseInfoBean> houseInfoList = new ArrayList<>(); @@ -149,12 +217,12 @@ @Override public void onSuccess(List<HouseIdBean> houseListBeanIDList) { if (houseListBeanIDList != null && houseListBeanIDList.size() > 0) { - houseIdList.clear(); - houseIdList.addAll(houseListBeanIDList); + mHouseIdList.clear(); + mHouseIdList.addAll(houseListBeanIDList); //璁板綍璇锋眰鏉℃暟 AtomicInteger atomicInteger = new AtomicInteger(0); - for (int i = 0; i < houseIdList.size(); i++) { - HouseIdBean houseIdBean = houseIdList.get(i); + for (int i = 0; i < mHouseIdList.size(); i++) { + HouseIdBean houseIdBean = mHouseIdList.get(i); //鑾峰彇浣忓畢璇︽儏鍒楄〃 getResidenceInfo(houseIdBean.getHomeId(), new CloudCallBeak<HouseInfoBean>() { @Override @@ -169,7 +237,7 @@ //娣诲姞鍒版湰鍦扮紦瀛� addHouseToLocalMemory(houseInfoBean); } - if (atomicInteger.get() == houseIdList.size()) { + if (atomicInteger.get() == mHouseIdList.size()) { //鏈�鍚庝竴鏉¢��鍑� if (cloudCallBeak != null) { cloudCallBeak.onSuccess(true); @@ -181,7 +249,7 @@ @Override public void onFailure(HDLException e) { atomicInteger.set(atomicInteger.get() + 1); - if (atomicInteger.get() == houseIdList.size()) { + if (atomicInteger.get() == mHouseIdList.size()) { //鏈�鍚庝竴鏉¢��鍑� if (cloudCallBeak != null) { cloudCallBeak.onFailure(e); @@ -218,7 +286,6 @@ * ascending:鍗囧簭), */ public void getResidenceIdList(String key, String keyValue, CloudCallBeak<List<HouseIdBean>> cloudCallBeak) { - String requestUrl = HttpApi.POST_PowerStation_List; JsonObject json = new JsonObject(); if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(keyValue)) { @@ -279,6 +346,86 @@ } }); } + } + + @Override + public void onFailure(HDLException exception) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(exception); + } + } + }); + + + } + + /** + * 鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃 + * + * @param key 鍙戠數鍔熺巼鎺掑簭(powerSort); + * 浠婃棩鍙戠數閲忔帓搴�(todayElectricitySort); + * 鍒涘缓鏃堕棿鎺掑簭(createTimeSort); + * @param keyValue (descending:闄嶅簭 + * ascending:鍗囧簭), + * @param installedCapacityMin 鏈�灏忕粍涓插閲�(瑁呮満瀹归噺) + * @param installedCapacityMax 鏈�澶х粍涓插閲�(瑁呮満瀹归噺) + * @param debugStatus 璋冭瘯鐘舵��(鍏ㄩ儴;璋冭瘯涓�;璋冭瘯瀹屾垚;宸蹭氦浠�;鎺堟潈璋冭瘯) + * @param powerStationStatus 鐢电珯鐘舵�� (鍏ㄩ儴 锛�"";1 锛� 姝e父;2 锛� 绂荤嚎; 3 锛� 寰呮帴鍏�;4 锛� 鏁呴殰) + * @param pageNo 椤电爜 + * @param pageSize 椤垫暟锛堜竴椤靛灏戞暟鎹級 + */ + public void getResidenceIdList(String key, String keyValue, String installedCapacityMin, String installedCapacityMax, String debugStatus, String powerStationStatus, long pageNo, long pageSize, CloudCallBeak<HouseBeanClass> cloudCallBeak) { + + String requestUrl = HttpApi.POST_PowerStation_List; + JsonObject json = new JsonObject(); + if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(keyValue)) { + json.addProperty(key, keyValue);//鍙戠數鍔熺巼鎺掑簭(descending:闄嶅簭ascending:鍗囧簭) + } + if (!TextUtils.isEmpty(installedCapacityMin)) { + try { + int value = Integer.parseInt(installedCapacityMin);//鍙兘鏈夊紓甯�,鐢ㄦ埛杈撳叆鍊艰秴鏃秈nt鏈�澶ц嚧瀵艰嚧鐨� + json.addProperty("installedCapacityMin", value); + } catch (Exception ignored) { + } + } + if (!TextUtils.isEmpty(installedCapacityMax)) { + try { + int value = Integer.parseInt(installedCapacityMax);//鍙兘鏈夊紓甯�,鐢ㄦ埛杈撳叆鍊艰秴鏃秈nt鏈�澶ц嚧瀵艰嚧鐨� + json.addProperty("installedCapacityMax", value); + } catch (Exception ignored) { + } + } + if (!TextUtils.isEmpty(debugStatus)) { + try { + json.addProperty("debugStatus", debugStatus); + } catch (Exception ignored) { + } + } + if (!TextUtils.isEmpty(powerStationStatus)) { + try { + int value = Integer.parseInt(powerStationStatus); + json.addProperty("powerStationStatus", value); + } catch (Exception ignored) { + } + } +// json.addProperty("zoneType", "password");//鍖哄煙 + json.addProperty("pageNo", pageNo);//椤电爜 + json.addProperty("pageSize", pageSize);//椤垫暟 + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (TextUtils.isEmpty(jsonStr)) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(new HouseBeanClass()); + } + return; + } + Gson gson = new Gson(); + HouseBeanClass houseInfoBeanClass = gson.fromJson(jsonStr, HouseBeanClass.class); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(houseInfoBeanClass); + } + } @@ -444,6 +591,37 @@ } /** + * 鐢电珯鐘舵�佹瑙�(瀹夎鍟�) + */ + public void getStatusOverview(CloudCallBeak<StatusOverviewBean> cloudCallBeak) { + String requestUrl = HttpApi.POST_statusOverview; + JsonObject json = new JsonObject(); +// json.addProperty("zoneType", zoneType);//鍖哄煙 + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (TextUtils.isEmpty(jsonStr)) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(new StatusOverviewBean()); + } + } + Gson gson = new Gson(); + StatusOverviewBean statusOverviewBean = gson.fromJson(jsonStr, StatusOverviewBean.class); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(statusOverviewBean); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + } + + /** * 娣诲姞浣忓畢(鐢电珯)鍒颁簯绔� * * @param houseInfoBean - @@ -556,6 +734,41 @@ } + + /** + * 鑱旂郴鎴戜滑 + * + * @param cloudCallBeak - + */ + public void getResidenceUtilContact(CloudCallBeak<ContactBean> cloudCallBeak) { + String requestUrl = HttpApi.B_POST_GET_UTIL_CONTACT; + JsonObject json = new JsonObject(); + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (TextUtils.isEmpty(jsonStr)) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(new ContactBean()); + return; + } + } + ContactBean contactBean = new Gson().fromJson(jsonStr, ContactBean.class); + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(contactBean); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + + } + /** * 鑾峰彇鐢ㄦ埛鑷畾涔夐厤缃俯搴﹀崟浣嶈鎯� * @@ -566,7 +779,6 @@ JsonObject json = new JsonObject(); // json.addProperty("homeId", homeId); - List<MessageBean> list = new ArrayList<>(); HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { @Override public void onSuccess(String jsonStr) { @@ -655,9 +867,9 @@ * @return 鍒楄〃绱㈠紩 */ public HouseIdBean getHouseId(String homeId) { - for (int i = 0; i < houseIdList.size(); i++) { - if (houseIdList.get(i).getHomeId().equals(homeId)) { - return houseIdList.get(i); + for (int i = 0; i < mHouseIdList.size(); i++) { + if (mHouseIdList.get(i).getHomeId().equals(homeId)) { + return mHouseIdList.get(i); } } return null; @@ -666,13 +878,16 @@ /** * 鍒囨崲浣忓畢 * - * @param houseIdBean 浣忓畢Id瀵硅薄 + * @param houseIdBean 浣忓畢Id瀵硅薄 + * @param checkStationId 琛ㄧず鏄惁鍚姩妫�楠岀數绔橧d鐨勯�昏緫锛坱rue琛ㄧず妫�娴�,鍚﹀垯涓嶆楠岋級 */ - public void switchHouse(HouseIdBean houseIdBean) { + public void switchHouse(HouseIdBean houseIdBean, boolean checkStationId) { String homeId = UserConfigManage.getInstance().getHomeId(); - if (houseIdBean.getHomeId().equals(homeId)) { - HdlLogLogic.print("鐐瑰嚮鍚屼竴涓綇瀹�--->" + homeId); - return; + if (checkStationId) { + if (houseIdBean.getHomeId().equals(homeId)) { + HdlLogLogic.print("鐐瑰嚮鍚屼竴涓綇瀹�--->" + homeId); + return; + } } //璁㈤槄瑕佸叏閮ㄥ彇娑� if (MqttRecvClient.getInstance() != null) { @@ -694,7 +909,7 @@ //閲嶆柊鍒涘缓浣忓畢鏂囦欢澶� HdlFileLogic.getInstance().createDirectory(); //杩涘幓浣忓畢璇︽儏鎼滅储涓�涓嬮�嗗彉鍣ㄥ垪琛�,鐩殑鏄缓绔嬮�氳閫氶亾; - HdlDeviceLogic.getInstance().searchCurrentHomeGateway(null); + HdlDeviceLogic.getInstance().searchCurrentHomeGateway(houseIdBean.getHomeId(), null); } @@ -725,6 +940,135 @@ }); } + /** + * 鐢电珯鎺堟潈瀹夎鍟嗭紙C绔級 + * 鎻忚堪锛氫氦浠樺悗鐨勪綇瀹咃紝C绔敤鎴峰彲浠ュ紑鍚巿鏉冨悗瀹夎鍟嗗彲浠ョ户缁皟璇曠數绔� + * + * @param homeId 鐢电珯id + * @param debugPerm 鎺堟潈鐘舵�侊紙true鍙互缁х画璋冭瘯锛� + * @param cloudCallBeak - + */ + public void homeUpdateDebugPerm(String homeId, boolean debugPerm, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.C_POST_HOME_UPDATEDEBUGPERM; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("debugPerm", debugPerm); +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } + + /** + * 鑾峰彇鐢电珯浜や粯浜岀淮鐮侊紙B绔級 + * 鎻忚堪锛氬畨瑁呭晢鐢电珯鐨勪氦浠樹簩缁寸爜 + * + * @param homeId 鐢电珯id + * @param cloudCallBeak - + */ + public void getDeliveryUrlQrcode(String homeId, CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_getDeliveryUrlQrcode; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(jsonStr); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } + + + /** + * 鑾峰彇鐢电珯浜や粯URl锛圔绔級 + * 鎻忚堪锛氬畨瑁呭晢鐢电珯鐨勪氦浠楿Rl + * + * @param homeId 鐢电珯id + * @param cloudCallBeak - + */ + public void getDeliveryUrl(String homeId, CloudCallBeak<String> cloudCallBeak) { + String requestUrl = HttpApi.POST_getDeliveryUrl; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(jsonStr); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } + + + /** + * 鐢电珯鎵嬪姩浜や粯(B绔�) + * 鎻忚堪锛氬畨瑁呭晢鎵嬪姩浜や粯鐢电珯缁欐寚瀹氱殑C绔处鍙� + * + * @param homeId 鐢电珯id + * @param account C绔处鍙� + * @param cloudCallBeak - + */ + public void getDeliverToAccount(String homeId, String account, CloudCallBeak<Boolean> cloudCallBeak) { + String requestUrl = HttpApi.POST_deliverToAccount; + JsonObject json = new JsonObject(); + json.addProperty("homeId", homeId); + json.addProperty("account", account);//C绔处鍙� +// json.addProperty("zoneType", memberBean.getId());//鍖哄煙 + + HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() { + @Override + public void onSuccess(String jsonStr) { + if (cloudCallBeak != null) { + cloudCallBeak.onSuccess(true); + } + } + + @Override + public void onFailure(HDLException e) { + if (cloudCallBeak != null) { + cloudCallBeak.onFailure(e); + } + } + }); + + } /** * 娣诲姞鎺ㄩ�乀oken @@ -760,7 +1104,7 @@ } - static class HouseBeanClass { + public static class HouseBeanClass { //鎬绘潯鏁� private long totalCount; -- Gitblit v1.8.0