From 6266d263e91a6e90c64fb3e6f2be348146371cc8 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期五, 17 五月 2024 16:17:03 +0800
Subject: [PATCH] 2024年05月17日16:17:01

---
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseListFragment.java |  163 ++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 103 insertions(+), 60 deletions(-)

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 b4e83d1..f94d30b 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
@@ -34,6 +34,7 @@
 import com.hdl.photovoltaic.ui.adapter.HouseInfoAdapter;
 import com.hdl.photovoltaic.ui.bean.DeviceBean;
 import com.hdl.photovoltaic.ui.bean.HouseIdBean;
+import com.hdl.photovoltaic.ui.bean.StatusOverviewBean;
 import com.hdl.photovoltaic.uni.HDLUniMP;
 import com.hdl.photovoltaic.utils.PermissionUtils;
 import com.hdl.photovoltaic.widget.DefaultFilteringDialog;
@@ -42,6 +43,10 @@
 import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
 import com.hdl.sdk.link.core.bean.gateway.GatewayBean;
 import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
+
+import org.greenrobot.eventbus.EventBus;
+import org.greenrobot.eventbus.Subscribe;
+import org.greenrobot.eventbus.ThreadMode;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -87,6 +92,9 @@
 
     @Override
     public void onBindView(Bundle savedInstanceState) {
+        //鏀惧湪杩欓噷涔熷锛岃繖閲屽彧鏄鍒涘缓涓�娆�
+//        loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+//        getStatusOverview();
         initData();
         //鍒濆鍖�
         initView();
@@ -106,6 +114,8 @@
                 isClickPowerStationLabel = true;
                 viewBinding.powerStationLabel.setTextAppearance(R.style.Text20Style);
                 viewBinding.deviceLabel.setTextAppearance(R.style.Text16Style);
+                viewBinding.editIv.setVisibility(View.VISIBLE);//缂栬緫鍥炬爣闅愯棌
+                viewBinding.addIv.setVisibility(View.VISIBLE);//娣诲姞鍥炬爣闅愯棌
                 viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);//鐢电珯鏍囩銆愮埗瀹瑰櫒銆戞樉绀�
                 viewBinding.deviceLabelParent.setVisibility(View.GONE);//璁惧鏍囩銆愮埗瀹瑰櫒銆戦殣钘�
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
@@ -191,7 +201,7 @@
                 if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
                     if (!isHouseLoadingMore) {
                         // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+                        HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴");
                         loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, ++currentHouseListPage, false);
                     }
                 }
@@ -202,7 +212,7 @@
             @Override
             public void onClick(int position, HouseIdBean houseIdBean) {
                 //鐐瑰嚮浣忓畢璇︽儏
-                HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏--->" + new Gson().toJson(houseIdBean), false);
+                HdlLogLogic.print("鐐瑰嚮浣忓畢璇︽儏---" + new Gson().toJson(houseIdBean), false);
                 HdlResidenceLogic.getInstance().switchHouse(houseIdBean);
                 String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus();
                 HdlUniLogic.getInstance().openUniMP(path, null);
@@ -377,7 +387,7 @@
                 if (visibleItemCount > 0 && visibleItemCount + firstVisibleItemPosition == totalItemCount) {
                     if (!isDeviceLoadingMore) {
                         // 婊戝姩鍒颁簡搴曢儴锛屾墽琛岀浉搴旂殑鎿嶄綔
-                        HdlLogLogic.print("--->婊戝姩鍒颁簡搴曢儴");
+                        HdlLogLogic.print("---婊戝姩鍒颁簡搴曢儴");
                         loadNextPageDeviceList(false, ++currentDeviceListPage, false);
                     }
                 }
@@ -398,6 +408,11 @@
     private void initView() {
         viewBinding.powerStationLabelParent.setVisibility(View.VISIBLE);
         viewBinding.deviceLabelParent.setVisibility(View.GONE);
+
+        viewBinding.powerStationAllIl.stationTitleTv.setText(getString(R.string.message_all));
+        viewBinding.powerStationFaultsIl.stationTitleTv.setText(getString(R.string.my_power_station_malfunction));
+        viewBinding.hpowerStationOfflineIl.stationTitleTv.setText(getString(R.string.my_power_station_off_line));
+        viewBinding.powerStationConnectedIl.stationTitleTv.setText(getString(R.string.to_be_added));
         //鐢电珯鏍囩
         houseInfoAdapter = new HouseInfoAdapter(_mActivity);
         viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
@@ -422,6 +437,8 @@
             this.deviceInfoList.add(new DeviceBean());
 //            this.deviceInfoList.addAll(HdlDeviceLogic.getInstance().getListDevice());
         }
+
+
     }
 
     /**
@@ -429,11 +446,13 @@
      *
      * @param eventBus 鏁版嵁
      */
-    @Override
+    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
     public void onEventMessage(BaseEventBus eventBus) {
         super.onEventMessage(eventBus);
         if (HDLUniMP.UNI_EVENT_REPLY_HOME_MODEL.equals(eventBus.getTopic())) {
             if (HDLUniMP.UNI_EVENT_REPLY_HOME_CREATION.equals(eventBus.getType())) {
+                // 鍙栨秷绮樻�т簨浠�
+                EventBus.getDefault().removeStickyEvent(eventBus);
                 //uin鍒涘缓鐢电珯鎴愬姛鍚庨�氱煡
                 loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
                 if (eventBus.getData() != null) {
@@ -444,6 +463,8 @@
 
                 }
             } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_EDIT.equals(eventBus.getType())) {
+                // 鍙栨秷绮樻�т簨浠�
+                EventBus.getDefault().removeStickyEvent(eventBus);
                 //todo 鐜板湪榛樿鍒锋柊鍏ㄩ儴
                 //uin缂栬緫浣忓畢閫氱煡
 //                String homeId = HdlUniLogic.getInstance().getKeyValue("homeId", eventBus.getData());
@@ -470,6 +491,8 @@
 
             }
         } else if (HDLUniMP.UNI_EVENT_REPLY_HOME_CLOSE_HOME_DETAILS_PAGE.equals(eventBus.getType())) {
+            // 鍙栨秷绮樻�т簨浠�
+            EventBus.getDefault().removeStickyEvent(eventBus);
             //uin鍏抽棴浣忓畢璇︽儏鐣岄潰閫氱煡
             if (MqttRecvClient.getInstance() != null) {
                 MqttRecvClient.getInstance().removeAllTopic();
@@ -477,6 +500,8 @@
             loadNextPageHouseList(false, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
 
         } else if (HDLUniMP.UNI_EVENT_REPLY_DEVICE_LIST.equals(eventBus.getType())) {
+            // 鍙栨秷绮樻�т簨浠�
+            EventBus.getDefault().removeStickyEvent(eventBus);
             //杩涘幓浣忓畢璇︽儏uni璇诲彇閫嗗彉鍣ㄥ垪琛ㄦ垚鍔熷悗閫氱煡
             for (int i = 0; i < HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()).size(); i++) {
                 String gatewayId = HdlDeviceLogic.getInstance().getCurrentHomeGatewayList(UserConfigManage.getInstance().getHomeId()).get(i).getGatewayId();
@@ -488,10 +513,43 @@
         } else if (eventBus.getTopic().equals(ConstantManage.homepage_title_tab_switch)) {
             //鎺ユ敹澶栭儴鐐瑰嚮浜嬩欢
             if (eventBus.getType().equals(HomepageTitleTabSwitch.powerstation.toString())) {
+                // 鍙栨秷绮樻�т簨浠�
+                EventBus.getDefault().removeStickyEvent(eventBus);
                 HdlLogLogic.print("姝e湪鐐瑰嚮銆愮數绔欍��");
+//                HdlThreadLogic.runSubThread(new Runnable() {
+//                    @Override
+//                    public void run() {
                 loadNextPageHouseList(true, key, value, installedCapacityMinValue, installedCapacityMaxValue, gridTypeValue, powerStationStatusValue, 1, true);
+                getStatusOverview();
+//                    }
+//                });
+
             }
         }
+    }
+
+
+    /**
+     * 鐢电珯鐘舵�佹瑙�
+     */
+    private void getStatusOverview() {
+        HdlResidenceLogic.getInstance().getStatusOverview(new CloudCallBeak<StatusOverviewBean>() {
+            @Override
+            public void onSuccess(StatusOverviewBean statusOverviewBean) {
+                if (statusOverviewBean == null) {
+                    return;
+                }
+                viewBinding.powerStationAllIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getTotal()));
+                viewBinding.powerStationFaultsIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getFault()));
+                viewBinding.hpowerStationOfflineIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getOffline()));
+                viewBinding.powerStationConnectedIl.stationTotalTv.setText(HdlCommonLogic.convertString(statusOverviewBean.getConnecting()));
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+
+            }
+        });
     }
 
 
@@ -511,15 +569,7 @@
      * @param pageNo               椤电爜
      * @param isClear              鏄惁娓呴櫎鏁版嵁
      */
-    private void loadNextPageHouseList(boolean isRefreshing,
-                                       String key,
-                                       String keyValue,
-                                       String installedCapacityMin,
-                                       String installedCapacityMax,
-                                       String gridType,
-                                       String powerStationStatus,
-                                       long pageNo,
-                                       boolean isClear) {
+    private void loadNextPageHouseList(boolean isRefreshing, String key, String keyValue, String installedCapacityMin, String installedCapacityMax, String gridType, String powerStationStatus, long pageNo, boolean isClear) {
         if (isClear) {
             clearData();
         }
@@ -535,57 +585,50 @@
         }
 
         //鑾峰彇浣忓畢(鐢电珯)ID鍒楄〃
-        HdlResidenceLogic.getInstance().getResidenceIdList(
-                key,
-                keyValue,
-                installedCapacityMin,
-                installedCapacityMax,
-                gridType,
-                powerStationStatus,
-                pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() {
+        HdlResidenceLogic.getInstance().getResidenceIdList(key, keyValue, installedCapacityMin, installedCapacityMax, gridType, powerStationStatus, pageNo, pageSize, new CloudCallBeak<HdlResidenceLogic.HouseBeanClass>() {
+            @Override
+            public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) {
+                HdlThreadLogic.runMainThread(new Runnable() {
                     @Override
-                    public void onSuccess(HdlResidenceLogic.HouseBeanClass houseBeanClass) {
-                        HdlThreadLogic.runMainThread(new Runnable() {
-                            @Override
-                            public void run() {
-                                if (isRefreshing) {
-                                    hideLoading();
-                                }
-                                isHouseLoadingMore = false;
-                                if (houseBeanClass != null) {
-                                    currentHouseListTotal = (int) houseBeanClass.getTotalPage();
-                                    currentHouseListPage = (int) houseBeanClass.getPageNo();
-                                    //鏇存柊缂撳瓨
-                                    HdlResidenceLogic.getInstance().setHouseIdList(houseBeanClass.getList());
-                                    if (houseInfoAdapter != null) {
-                                        initData();
-                                        //鏇存柊UI
-                                        houseInfoAdapter.setList(houseListBeanIDList);
-                                    }
-                                }
-                                nullDataUpdateUi();
+                    public void run() {
+                        if (isRefreshing) {
+                            hideLoading();
+                        }
+                        isHouseLoadingMore = false;
+                        if (houseBeanClass != null) {
+                            currentHouseListTotal = (int) houseBeanClass.getTotalPage();
+                            currentHouseListPage = (int) houseBeanClass.getPageNo();
+                            //鏇存柊缂撳瓨
+                            HdlResidenceLogic.getInstance().setHouseIdList(houseBeanClass.getList());
+                            if (houseInfoAdapter != null) {
+                                initData();
+                                //鏇存柊UI
+                                houseInfoAdapter.setList(houseListBeanIDList);
                             }
-                        }, _mActivity, ShowErrorMode.YES);
+                        }
+                        nullDataUpdateUi();
+                    }
+                }, _mActivity, ShowErrorMode.YES);
+
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                HdlThreadLogic.runMainThread(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (currentHouseListPage > 1) {
+                            --currentHouseListPage;
+                        }
+                        isHouseLoadingMore = false;
+                        if (isRefreshing) {
+                            hideLoading();
+                        }
 
                     }
-
-                    @Override
-                    public void onFailure(HDLException e) {
-                        HdlThreadLogic.runMainThread(new Runnable() {
-                            @Override
-                            public void run() {
-                                if (currentHouseListPage > 1) {
-                                    --currentHouseListPage;
-                                }
-                                isHouseLoadingMore = false;
-                                if (isRefreshing) {
-                                    hideLoading();
-                                }
-
-                            }
-                        }, _mActivity, ShowErrorMode.YES);
-                    }
-                });
+                }, _mActivity, ShowErrorMode.YES);
+            }
+        });
     }
 
     /**

--
Gitblit v1.8.0