From ef0dba8548e2813beee2af8c8c3db72c3cb56da0 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 30 七月 2025 18:53:07 +0800
Subject: [PATCH] 2025年07月30日18:53:03

---
 app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java                    |   25 ++++++
 app/src/main/java/com/hdl/photovoltaic/internet/api/HttpApi.java                   |    3 
 app/src/main/res/values-zh/strings.xml                                             |    3 
 app/src/main/java/com/hdl/photovoltaic/ui/powerstation/HouseAndDeviceFragment.java |   88 ++++++++++++---------
 app/src/main/res/values/strings.xml                                                |    1 
 app/src/main/res/values-en/strings.xml                                             |    1 
 app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java                |   55 +++++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java            |    7 +
 app/src/main/java/com/hdl/photovoltaic/enums/ProjectOperation.java                 |   35 ++++++++
 9 files changed, 180 insertions(+), 38 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/enums/ProjectOperation.java b/app/src/main/java/com/hdl/photovoltaic/enums/ProjectOperation.java
new file mode 100644
index 0000000..092d256
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/enums/ProjectOperation.java
@@ -0,0 +1,35 @@
+package com.hdl.photovoltaic.enums;
+
+/**
+ * 椤圭洰鐘舵�� 锛堜氦浠樸�侀獙鏀躲�佹挙閿�浜や粯銆侀獙鏀舵湭閫氳繃銆侀噸鏂拌皟璇曘�佷氦浠樺洖婊氱瓑鎿嶄綔锛�
+ */
+public @interface ProjectOperation {
+    /**
+     * 浜や粯
+     */
+    String DELIVERY = "DELIVERY";
+    /**
+     * 鎾ら攢浜や粯
+     */
+    String CANCEL_DELIVERY = "CANCEL_DELIVERY";
+    /**
+     * 楠屾敹
+     */
+    String ACCEPTANCE = "ACCEPTANCE";
+    /**
+     * 楠屾敹鏈�氳繃
+     */
+    String ACCEPTANCE_FAIL = "ACCEPTANCE_FAIL";
+    /**
+     * 閲嶆柊璋冭瘯
+     */
+    String DEBUGGING_AGAIN = "DEBUGGING_AGAIN";
+    /**
+     * 浜や粯鍥炴粴
+     */
+    String DELIVERY_ROLLBACK = "DELIVERY_ROLLBACK";
+    /**
+     * 鏈煡
+     */
+    String SCAN_CODE_TO_GET = "SCAN_CODE_TO_GET";
+}
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 7024e93..69ff5e8 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
@@ -168,6 +168,9 @@
 
     //鐢电珯鎵嬪姩浜や粯(瀹夎鍟�)
     public static final String POST_deliverToAccount = "/home-wisdom/app/powerStation/deliverToAccount";
+
+    //鏇存柊椤圭洰鐘舵�� 锛堜氦浠樸�侀獙鏀躲�佹挙閿�浜や粯銆侀獙鏀舵湭閫氳繃銆侀噸鏂拌皟璇曘�佷氦浠樺洖婊氱瓑鎿嶄綔锛夛紙https://hdl-gz.yuque.com/wnkbmh/diiq35/kegldc#gWveC锛�
+    public static final String POST_UpdateProjectDebugStatus = "/smart-footstone/mgmt/community/project/updateProjectDebugStatus";
     //endregion
 
 
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 0c7bf1d..e816a8f 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlResidenceLogic.java
@@ -11,6 +11,7 @@
 import com.hdl.linkpm.sdk.core.exception.HDLException;
 import com.hdl.photovoltaic.config.AppConfigManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.ProjectOperation;
 import com.hdl.photovoltaic.internet.HttpClient;
 import com.hdl.photovoltaic.internet.api.HttpApi;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
@@ -170,6 +171,25 @@
         for (int i = 0; i < mHouseIdList.size(); i++) {
             if (mHouseIdList.get(i).getHomeId().equals(houseId)) {
                 mHouseIdList.remove(i);
+                break;
+            }
+        }
+    }
+
+    /**
+     * 鐢电珯Id瀵硅薄鏇存柊
+     *
+     * @param houseIdBean 鐢电珯id瀵硅薄
+     */
+    public void updateHouseIdBean(HouseIdBean houseIdBean) {
+        if (houseIdBean == null) {
+            return;
+        }
+        for (int i = 0; i < mHouseIdList.size(); i++) {
+            HouseIdBean h = mHouseIdList.get(i);
+            if (h.getHomeId().equals(houseIdBean.getHomeId())) {
+                h.setDebugStatus(houseIdBean.getDebugStatus());
+                //mHouseIdList.set(i,houseIdBean);鏁翠釜瀵硅薄鏇挎崲
                 break;
             }
         }
@@ -1086,6 +1106,41 @@
     }
 
     /**
+     * 鏇存柊椤圭洰鐘舵�� 锛堜氦浠樸�侀獙鏀躲�佹挙閿�浜や粯銆侀獙鏀舵湭閫氳繃銆侀噸鏂拌皟璇曘�佷氦浠樺洖婊氱瓑鎿嶄綔锛夛紙https://hdl-gz.yuque.com/wnkbmh/diiq35/kegldc#gWveC锛�
+     *
+     * @param homeId            鐢电珯id
+     * @param communityId       绀惧尯id
+     * @param flowRecordContent 娴佽浆璁板綍鍐呭
+     * @param projectOperation  椤圭洰鐘舵��
+     * @param cloudCallBeak     -
+     */
+    public void setUpdateProjectDebugStatus(String homeId, String communityId, String flowRecordContent, String projectOperation, CloudCallBeak<Boolean> cloudCallBeak) {
+        String requestUrl = HttpApi.POST_UpdateProjectDebugStatus;
+        JsonObject json = new JsonObject();
+        json.addProperty("houseId", homeId);
+        json.addProperty("communityId", communityId);
+        json.addProperty("flowRecordContent", flowRecordContent);//娴佽浆璁板綍鍐呭
+        json.addProperty("projectFlowRecordActionEnum", projectOperation);
+
+        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
      *
      * @param cloudCallBeak -
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
index 118d590..c6c447e 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java
@@ -108,6 +108,11 @@
             //鏈氦浠樺畬瑕佹樉绀哄垹闄ゆ寜閽�
             holder.home_del_ll.setVisibility(View.VISIBLE);
         }
+        if (houseIdBean.getDebugStatus().equals(DebugStatus.WAIT_DELIVERED)) {
+            //鏇存敼鎴愬洖婊氬浘鏍�
+            holder.home_del_ll.setVisibility(View.VISIBLE);
+            holder.del_home_iv.setImageResource(R.drawable.roll_back);
+        }
 
         //鍒犻櫎鐢电珯
         holder.home_del_ll.setOnClickListener(new View.OnClickListener() {
@@ -278,6 +283,7 @@
         public RelativeLayout item_parent_rl;//鏉$洰鐖跺鍣�
         public LinearLayout home_move_ll;//绉诲姩鐢电珯浣嶇疆
         public LinearLayout home_del_ll;//鍒犻櫎鐢电珯
+        public ImageView del_home_iv;
         public TextView home_location_tv;//鐢电珯鍦板潃
         public SwipeLayout item_parent_swipeLayout;//鐖跺鍣�
 
@@ -299,6 +305,7 @@
             item_parent_rl = itemView.findViewById(R.id.item_parent_rl);
             home_move_ll = itemView.findViewById(R.id.move_ll);
             home_del_ll = itemView.findViewById(R.id.del_ll);
+            del_home_iv = itemView.findViewById(R.id.del_home_iv);
             home_location_tv = itemView.findViewById(R.id.home_location_tv);
             item_parent_swipeLayout = itemView.findViewById(R.id.item_parent_swipeLayout);
         }
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java b/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java
index 5a0d354..d39800e 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/bean/HouseIdBean.java
@@ -11,6 +11,9 @@
  */
 public class HouseIdBean implements Serializable {
     private String homeId;//鐢电珯id
+    private String debugType="NORMAL";//璋冭瘯绫诲瀷(NORMAL =甯歌璋冭瘯;SIMPLE =绠�鏄撹皟璇�)
+    private String communityId="";//椤圭洰id
+    private String flowRecordContent="";//娴佽浆璁板綍鍐呭
     private String powerStationImage;//鐢电珯鍥剧墖
     private String homeName;//鐢电珯鍚嶇О
     private String installedCapacity;//缁勪覆瀹归噺(鍒涘缓鐢电珯鏃惰緭鍏ョ殑缁勪覆瀹归噺)
@@ -60,7 +63,29 @@
      * SECONDARY_DEBUGGIN = 鎺堟潈璋冭瘯
      */
     private String debugStatus;
+    public String getDebugType() {
+        return debugType;
+    }
 
+    public void setDebugType(String debugType) {
+        this.debugType = debugType;
+    }
+
+    public String getCommunityId() {
+        return communityId;
+    }
+
+    public void setCommunityId(String communityId) {
+        this.communityId = communityId;
+    }
+
+    public String getFlowRecordContent() {
+        return flowRecordContent;
+    }
+
+    public void setFlowRecordContent(String flowRecordContent) {
+        this.flowRecordContent = flowRecordContent;
+    }
     public String getDebugStatus() {
         return debugStatus == null ? "" : debugStatus;
     }
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..703bf16 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
@@ -32,6 +32,7 @@
 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 +318,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(houseIdBean.getHomeId(), list, position);
 
-                            @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(houseIdBean.getHomeId(), null, position);
+                                }
+                            });
+                        }
                     }
                 });
                 delayedConfirmationCancelDialog.setNoOnclickListener(new DelayedConfirmationCancelDialog.onNoOnclickListener() {
@@ -538,7 +549,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,10 +985,11 @@
     /**
      * 鍒犻櫎鐢电珯
      *
-     * @param homeId 鐢电珯id
-     * @param list   閫嗗彉鍣ㄥ垪琛�
+     * @param homeId   鐢电珯id
+     * @param list     閫嗗彉鍣ㄥ垪琛�
+     * @param position 浣嶇疆
      */
-    private void deleteResidence(String homeId, List<GatewayBean> list) {
+    private void deleteResidence(String homeId, List<GatewayBean> list, int position) {
 
         //鍒犻櫎浣忓畢
         HdlResidenceLogic.getInstance().delResidence(homeId, new CloudCallBeak<Boolean>() {
@@ -988,7 +999,10 @@
                 initializeInverter(list); //鍙戣捣鍒濆鍖栨寚浠ょ粰閫嗗彉鍣�;锛堟敞鎰�:鍓嶉潰宸插厛瑙g粦浜戠閫嗗彉鍣紝mqtt閫氶亾宸叉柇寮�锛屽垵濮嬪寲鍙兘鏄湰鍦板彂閫�(鍏堟悳绱㈠眬鍩熺綉閫嗗彉鍣ㄥ垪琛紝寤虹珛鏈湴閫氳閫氶亾)锛�
                 HdlResidenceLogic.getInstance().delHouseId(homeId);//鍒犻櫎鐢电珯缂撳瓨
                 initData();//鍒濆鍖栫紦瀛樻暟鎹�
-                houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
+                if (houseInfoAdapter != null) {
+//                    houseInfoAdapter.setList(houseListBeanIDList, powerStationStatusValue);//閲嶆柊鍒锋柊鍒楄〃
+                    houseInfoAdapter.notifyItemRemoved(position);//鍙埛鏂板綋鍓嶇殑浣嶇疆
+                }
                 getStatusOverview();//鍒犻櫎鎴愬姛鍚庡埛鏂扮數绔欑姸鎬佹瑙�
                 nullDataUpdateUi();//妫�娴嬫暟鎹槸鍚︿负绌�
             }
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index d601908..d75124f 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -373,4 +373,5 @@
     <string name="event_content">Event content</string>
     <string name="remark">remark</string>
     <string name="treatment_options">Treatment options</string>
+    <string name="debug_status_rollback">Should the commissioning status of the %s power station be rolled back to commissioning?</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index 7824de2..96f7316 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -368,5 +368,6 @@
     <string name="event_title">浜嬩欢鏍囬</string>
     <string name="event_content">浜嬩欢鍐呭</string>
     <string name="remark">澶囨敞</string>
-    <string name="treatment_options">澶勭悊鏂规</string>
+    <string name="treatment_options">澶勭悊鏂规</string>鏄惁灏嗙數绔欑殑璋冭瘯鐘舵�佸洖閫�鍒拌皟璇曚腑
+    <string name="debug_status_rollback">鏄惁灏�%s鐢电珯鐨勮皟璇曠姸鎬佸洖閫�鍒拌皟璇曚腑锛�</string>
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 73aa1ac..d548f5e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -375,6 +375,7 @@
     <string name="event_content">Event content</string>
     <string name="remark">remark</string>
     <string name="treatment_options">Treatment options</string>
+    <string name="debug_status_rollback">Should the commissioning status of the %s power station be rolled back to commissioning?</string>
 
 
 </resources>
\ No newline at end of file

--
Gitblit v1.8.0