From db937c029a3f9dbaec86cbbc944ebbee3ece13be Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 31 七月 2025 14:49:17 +0800
Subject: [PATCH] Merge branch '1.4.4' into dev

---
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |  107 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 64 insertions(+), 43 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
index de58c0a..e26b8aa 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java
@@ -29,9 +29,11 @@
 import com.hdl.photovoltaic.databinding.FragmentHouseListBinding;
 import com.hdl.photovoltaic.base.CustomBaseFragment;
 import com.hdl.photovoltaic.enums.DebugStatus;
+import com.hdl.photovoltaic.enums.DebugType;
 import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
 import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.PowerStationStatus;
+import com.hdl.photovoltaic.enums.ProjectOperation;
 import com.hdl.photovoltaic.enums.ShowErrorMode;
 import com.hdl.photovoltaic.enums.SortType;
 import com.hdl.photovoltaic.enums.SortValue;
@@ -317,49 +319,59 @@
 
             @Override
             public void onDelClick(int position, HouseIdBean houseIdBean) {
-
+                final boolean isWaitDelivered = houseIdBean.getDebugStatus().equals(DebugStatus.WAIT_DELIVERED);
                 DelayedConfirmationCancelDialog delayedConfirmationCancelDialog = new DelayedConfirmationCancelDialog(_mActivity);
                 delayedConfirmationCancelDialog.show();
                 delayedConfirmationCancelDialog.isHideTitle(true);
                 String homeName = "\"" + houseIdBean.getHomeName() + "\"";
-                delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace("%s", homeName));
-
-                delayedConfirmationCancelDialog.startCountdown(4);
+                if (isWaitDelivered) {
+                    //"鏄惁灏嗙數绔欑殑璋冭瘯鐘舵�佸洖閫�鍒拌皟璇曚腑"
+                    delayedConfirmationCancelDialog.setContent(getString(R.string.debug_status_rollback).replace("%s", homeName));
+                } else {
+                    delayedConfirmationCancelDialog.startCountdown(4);
+                    delayedConfirmationCancelDialog.setContent(getString(R.string.delete_power_station).replace("%s", homeName));
+                }
                 delayedConfirmationCancelDialog.setYesOnclickListener(new DelayedConfirmationCancelDialog.onYesOnclickListener() {
                     @Override
                     public void Confirm() {
                         delayedConfirmationCancelDialog.dismiss();
-                        showLoading(getString(R.string.deleting_please_wait));
-                        HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(houseIdBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
-                            @Override
-                            public void onSuccess(List<GatewayBean> list) {
-                                //鍙戣捣鍒犻櫎鐢电珯鎸囦护
-                                deleteResidence(houseIdBean.getHomeId(), list);
+                        if (isWaitDelivered) {
+                            showLoading();
+                            HdlResidenceLogic.getInstance().setUpdateProjectDebugStatus(houseIdBean.getHomeId(), houseIdBean.getCommunityId(), houseIdBean.getFlowRecordContent(), ProjectOperation.DEBUGGING_AGAIN.toString(), new CloudCallBeak<Boolean>() {
+                                @Override
+                                public void onSuccess(Boolean list) {
+                                    hideLoading();
+                                    if (houseInfoAdapter != null) {
+                                        houseIdBean.setDebugStatus(DebugStatus.Debugging);
+                                        HdlResidenceLogic.getInstance().updateHouseIdBean(houseIdBean);
+                                        initData();
+                                        //鏇存柊UI
+                                        houseInfoAdapter.notifyItemChanged(position);
+                                    }
+                                }
 
-                            }
+                                @Override
+                                public void onFailure(HDLException e) {
+                                    hideLoading();
+                                }
+                            });
+                        } else {
+                            showLoading(getString(R.string.deleting_please_wait));
+                            HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(houseIdBean.getHomeId(), new CloudCallBeak<List<GatewayBean>>() {
+                                @Override
+                                public void onSuccess(List<GatewayBean> list) {
+                                    //鍙戣捣鍒犻櫎鐢电珯鎸囦护
+                                    deleteResidence(position, houseIdBean, list);
 
-                            @Override
-                            public void onFailure(HDLException e) {
-                                //鍙戣捣鍒犻櫎鐢电珯鎸囦护
-                                deleteResidence(houseIdBean.getHomeId(), null);
-                            }
-                        });
+                                }
 
-//                        //鍒犻櫎浣忓畢
-//                        HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
-//                            @Override
-//                            public void onSuccess(Boolean obj) {
-//                                HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());
-//                                initData();//鍒濆鍖栫紦瀛樻暟鎹�
-//                                houseInfoAdapter.setList(houseListBeanIDList);//閲嶆柊鍒锋柊鍒楄〃
-//                                nullDataUpdateUi(houseListBeanIDList);//妫�娴嬫暟鎹槸鍚︿负绌�
-//                            }
-//
-//                            @Override
-//                            public void onFailure(HDLException e) {
-//                                HdlThreadLogic.toast(_mActivity, e);
-//                            }
-//                        });
+                                @Override
+                                public void onFailure(HDLException e) {
+                                    //鍙戣捣鍒犻櫎鐢电珯鎸囦护
+                                    deleteResidence(position, houseIdBean, null);
+                                }
+                            });
+                        }
                     }
                 });
                 delayedConfirmationCancelDialog.setNoOnclickListener(new DelayedConfirmationCancelDialog.onNoOnclickListener() {
@@ -423,6 +435,10 @@
         deviceInfoAdapter.setOnclickListener(new DeviceInfoAdapter.OnClickListener() {
             @Override
             public void onClick(int position, CloudInverterDeviceBean deviceBean) {
+                if (!deviceBean.isActivate()) {
+                    HdlThreadLogic.toast(_mActivity, getString(R.string.device_not_activated));
+                    return;
+                }
 //                GatewayBean gatewayBean = new GatewayBean();
 //                gatewayBean.setCategorySecondName(deviceBean.getCategorySecondName());
 //                gatewayBean.setDevice_mac(deviceBean.getOsn());
@@ -538,7 +554,6 @@
         viewBinding.fragmentHouseSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
         viewBinding.fragmentHouseSrlListRc.setAdapter(houseInfoAdapter);
         houseInfoAdapter.setList(this.houseListBeanIDList, powerStationStatusValue);
-
         //璁惧鏍囩
         deviceInfoAdapter = new DeviceInfoAdapter(_mActivity);
         viewBinding.fragmentDeviceSrlListRc.setLayoutManager(new LinearLayoutManager(_mActivity));
@@ -975,20 +990,26 @@
     /**
      * 鍒犻櫎鐢电珯
      *
-     * @param homeId 鐢电珯id
-     * @param list   閫嗗彉鍣ㄥ垪琛�
+     * @param position    浣嶇疆
+     * @param houseIdBean 鐢电珯id瀵硅薄
+     * @param list        閫嗗彉鍣ㄥ垪琛�
      */
-    private void deleteResidence(String homeId, List<GatewayBean> list) {
+    private void deleteResidence(int position, HouseIdBean houseIdBean, List<GatewayBean> list) {
 
         //鍒犻櫎浣忓畢
-        HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
+        HdlResidenceLogic.getInstance().delResidence(houseIdBean.getHomeId(), new CloudCallBeak<Boolean>() {
             @Override
             public void onSuccess(Boolean obj) {
                 hideLoading();
-                initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍓嶉潰宸插厛瑙g粦浜戠閫嗗彉鍣紝mqtt閫氶亾宸叉柇寮�锛屽垵濮嬪寲鍙兘鏄湰鍦板彂閫�(鍏堟悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾)锛�
-                HdlResidenceLogic.getInstance().delHouseId(homeId);//鍒犻櫎鐢电珯缂撳瓨
+                if (houseIdBean.getDebugType().equals(DebugType.NORMAL)) {
+                    initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍓嶉潰宸插厛瑙g粦浜戠閫嗗彉鍣紝mqtt閫氶亾宸叉柇寮�锛屽垵濮嬪寲鍙兘鏄湰鍦板彂閫�(鍏堟悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾)锛�
+                }
+                HdlResidenceLogic.getInstance().delHouseId(houseIdBean.getHomeId());//鍒犻櫎鐢电珯缂撳瓨
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
-                houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
+                if (houseInfoAdapter != null) {
+//                    houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
+                    houseInfoAdapter.notifyItemRemoved(position);//鍙埛鏂板綋鍓嶇殑浣嶇疆
+                }
                 getStatusOverview();//鍒犻櫎鎴愬姛鍚庡埛鏂扮數绔欑姸鎬佹瑙�
                 nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
             }
@@ -1029,8 +1050,8 @@
 
     public void requestPermissions(OnCallBeak onCallBeak) {
 
-        //ACCESS_FINE_LOCATION	鍏佽浣跨敤GPS瀹氫綅
-        //ACCESS_COARSE_LOCATION	鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣�
+        //ACCESS_FINE_LOCATION    鍏佽浣跨敤GPS瀹氫綅
+        //ACCESS_COARSE_LOCATION    鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣�
         String[] ary = PermissionUtils.checkPermission(_mActivity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION});
         if (ary.length > 0) {
             this.requestPermissions(ary, PermissionUtils.STATUS_SUCCESS);
@@ -1220,4 +1241,4 @@
     }
 
 
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0