From f10cda784bede39a861566850898747c38e6c94f Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 21 一月 2025 15:32:54 +0800
Subject: [PATCH] 2025年01月21日15:31:52

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java |  133 +++++++++++++++++++++++++++++--------------
 1 files changed, 89 insertions(+), 44 deletions(-)

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 9316532..019000b 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -13,6 +13,7 @@
 import android.os.SystemClock;
 import android.provider.Settings;
 import android.text.TextUtils;
+import android.util.Log;
 
 import androidx.core.app.ActivityCompat;
 
@@ -54,6 +55,7 @@
 import com.hdl.photovoltaic.ui.bean.MemberBean;
 import com.hdl.photovoltaic.ui.bean.NotRunBean;
 import com.hdl.photovoltaic.ui.bean.OidBean;
+import com.hdl.photovoltaic.ui.bean.QrcodeUrlBean;
 import com.hdl.photovoltaic.ui.bean.StaffBean;
 import com.hdl.photovoltaic.ui.bean.UnCountBean;
 import com.hdl.photovoltaic.ui.bean.UserRightTypeBean;
@@ -141,6 +143,8 @@
             if (!HDLUniMP.UNI_APP_ID.equals(appId)) {
                 return;
             }
+            long startTime = System.currentTimeMillis();
+            Log.d("===寮�濮嬫椂闂�===", String.valueOf(startTime));
             String type = getKeyValue("type", data);//灏忕被
             String logTag = getKeyValue("logTag", data);//鏍囪uni鎸囦护
             String mode_type = "澶х被-" + topic + "---" + "灏忕被-" + type;//鐢ㄦ潵鎵撳嵃鐨�
@@ -244,16 +248,15 @@
                         }
                     }
                     break;
-                    //鐢电珯鐨勪氦浠樹簩缁寸爜(瀹夎鍟�)
-                    case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERYURLQRCODE: {
-                        uniGetDeliveryUrlQrcode(type, data, callback);
-                    }
-                    break;
+//                    //鐢电珯鐨勪氦浠樹簩缁寸爜(瀹夎鍟�)
+//                    case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERYURLQRCODE: {
+//                        uniGetDeliveryUrlQrcode(type, data, callback);
+//                    }
+//                    break;
                     //鐢电珯鐨勪氦浠楿RL(瀹夎鍟�)
-                    case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERYURL: {
+                    case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERYURLQRCODE: {
                         uniGetDeliveryUrl(type, data, callback);
                     }
-
                     break;
                     //鐢电珯鎵嬪姩浜や粯(瀹夎鍟�)
                     case HDLUniMP.UNI_EVENT_REPLY_HOME_DELIVERTOACCOUNT: {
@@ -426,12 +429,18 @@
                     break;
                     //閫嗗彉鍣ㄤ互澶綉閰嶇疆
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ETHERNET_SET: {
-                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_EDIT, callback);
+                        if (callback != null) {
+                            uniSuccessCallback(type, "", callback);
+                        }
+                        //uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_EDIT, callback);
                     }
                     break;
                     //閫嗗彉鍣ㄤ互澶綉鑾峰彇
                     case HDLUniMP.UNI_EVENT_REPLY_DEVICE_ETHERNET_GET: {
-                        uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_GET, callback);
+                        if (callback != null) {
+                            uniSuccessCallback(type, "", callback);
+                        }
+                        //uniGetAndSetNetwork(mode_type, data, TopicApi.DELETING_GATEWAY_ETHERNET_GET, callback);
                     }
                     break;
 
@@ -765,6 +774,8 @@
                                 } catch (Exception e) {
                                     uniSuccessCallback(type, json, callback);
                                 }
+                                long endTime = System.currentTimeMillis() - startTime;
+                                Log.d("====鑰楁椂鏃堕棿====", String.valueOf(endTime));
                             }
                         }
                     }
@@ -812,7 +823,7 @@
     public void openUniMP(String path, JSONObject jsonObject) {
         JSONObject json = this.createdJSONObject(jsonObject, true);
         HDLUniMPSDKManager.getInstance().openUniMP(HDLUniMP.UNI_APP_ID, path, json, HdlUniLogic.this);
-        HdlLogLogic.print("uni---缁勮uni鍙戦�佹暟鎹牸寮�---" + json, false);
+//        HdlLogLogic.print("uni---缁勮uni鍙戦�佹暟鎹牸寮�---" + json, false);
     }
 
     /**
@@ -841,7 +852,7 @@
     //region ******uni鎺ュ彛鏂规硶******
 
     /**
-     * link杩涜瀵嗙爜楠岃瘉
+     * link杩涜鏈湴瀵嗙爜鐧诲綍楠岃瘉
      */
     private void uniCheckPasswordVerification(String type, Object data, DCUniMPJSCallback callback) {
         String password = getKeyValue("password", getKeyValue("data", data));
@@ -996,7 +1007,13 @@
         HdlResidenceLogic.getInstance().getDeliveryUrl(homeId, new CloudCallBeak<String>() {
             @Override
             public void onSuccess(String obj) {
-                uniSuccessCallback(type, obj, callback);
+                try {
+                    Gson g = new Gson();
+                    QrcodeUrlBean qrcodeUrlBean = g.fromJson(obj, QrcodeUrlBean.class);
+                    uniSuccessCallback(type, qrcodeUrlBean.getDeliveryUrl(), callback);
+                } catch (Exception ignored) {
+                    uniSuccessCallback(type, obj, callback);
+                }
             }
 
             @Override
@@ -1307,14 +1324,14 @@
             //ACCESS_COARSE_LOCATION	鍏佽浣跨敤WIFI鐑偣鎴栧熀绔欐潵鑾峰彇绮楃暐鐨勫畾浣�
             if (ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(HDLApp.getInstance(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
                 geolocation.setResult(-2);
-                geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_no_location_information_permission));
+                geolocation.setDes(HDLApp.getInstance().getAppLocaleContext().getString(R.string.exception_no_location_information_permission));
                 uniSuccessCallback(type, geolocation, callback);
                 return;
             }
             // 鍒ゆ柇璁惧鏄惁鏀寔瀹氫綅鍔熻兘
             if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                 geolocation.setResult(-1);
-                geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_the_location_function_is_not_enabled));
+                geolocation.setDes(HDLApp.getInstance().getAppLocaleContext().getString(R.string.exception_the_location_function_is_not_enabled));
                 //todo 鎻愮ず鐢ㄦ埛鎵撳紑瀹氫綅鍔熻兘鎴栬�呭紩瀵肩敤鎴峰幓绯荤粺璁剧疆椤甸潰鎵撳紑瀹氫綅鍔熻兘
                 uniSuccessCallback(type, geolocation, callback);
                 return;
@@ -1322,12 +1339,12 @@
             Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
             if (location == null) {
                 geolocation.setResult(-3);
-                geolocation.setDes(HDLApp.getInstance().getString(R.string.exception_unable_location_move10_meters_later));
+                geolocation.setDes(HDLApp.getInstance().getAppLocaleContext().getString(R.string.exception_unable_location_move10_meters_later));
                 uniSuccessCallback(type, geolocation, callback);
                 return;
             }
             geolocation.setResult(0);
-            geolocation.setDes(HDLApp.getInstance().getString(R.string.succeed));
+            geolocation.setDes(HDLApp.getInstance().getAppLocaleContext().getString(R.string.succeed));
             BigDecimal latitude = BigDecimal.valueOf(location.getLatitude());//缁忓害
             BigDecimal longitude = BigDecimal.valueOf(location.getLongitude());//绾害
             double lat = latitude.setScale(6, RoundingMode.HALF_DOWN).doubleValue();
@@ -1465,9 +1482,9 @@
                         }
 
                         if (isBoolean) {
-                            uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_firmware_upgrade_memory_succeeded), callback);
+                            uniCallbackData(type, null, 0, HDLApp.getInstance().getAppLocaleContext().getString(R.string.writing_firmware_upgrade_memory_succeeded), callback);
                         } else {
-                            uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_firmware_upgrade_file_failed), callback);
+                            uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.download_firmware_upgrade_file_failed), callback);
                         }
                     }
                 });
@@ -1512,7 +1529,7 @@
                             String firmwarePathFileName = HdlFileLogic.getInstance().getFirmwarePathFileName(imageId, version);
                             byte[] data = HdlFileLogic.getInstance().readFileByte(firmwarePathFileName);
                             if (data == null || data.length == 0) {
-                                uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_firmware_upgrade_file), callback);
+                                uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.found_locally_firmware_upgrade_file), callback);
                                 return;
                             }
                             String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧鍥轰欢闇�瑕�
@@ -1527,14 +1544,14 @@
 
                                 @Override
                                 public void onError(HDLLinkException e) {
-                                    uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_firmware_upgrade_failed), callback);
+                                    uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.notify_gateway_firmware_upgrade_failed), callback);
                                 }
                             });
                         }
 
                         @Override
                         public void onServiceDisconnected(ComponentName name) {
-                            uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback);
+                            uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.local_service_fails), callback);
                         }
                     });
                 } else {
@@ -1545,11 +1562,11 @@
                         public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                             //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
                             if (cloudInverterDeviceBean == null) {
-                                uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+                                uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
                                 return;
                             }
                             if (cloudInverterDeviceBean.getDeviceStatus() != 3) {
-                                uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+                                uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
                                 return;
                             }
                             //4:杩愯
@@ -1584,11 +1601,11 @@
                     public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                         //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
                         if (cloudInverterDeviceBean == null) {
-                            uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+                            uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
                             return;
                         }
                         if (cloudInverterDeviceBean.getDeviceStatus() != 3) {
-                            uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+                            uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
                             return;
                         }
                         //4:杩愯
@@ -1719,9 +1736,9 @@
                             HdlFileLogic.getInstance().deleteFile(drivePathFileName);//涓嬭浇澶辫触锛屽垹闄や笉瀹屾暣椹卞姩鏂囦欢;
                         }
                         if (isBoolean) {
-                            uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.writing_drive_memory_succeeded), callback);
+                            uniCallbackData(type, null, 0, HDLApp.getInstance().getAppLocaleContext().getString(R.string.writing_drive_memory_succeeded), callback);
                         } else {
-                            uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.download_drive_file_failed), callback);
+                            uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.download_drive_file_failed), callback);
                         }
                     }
                 });
@@ -1765,7 +1782,7 @@
                             String drivePathFileName = HdlFileLogic.getInstance().getDrivePathFileName(driverCode, version);
                             byte[] data = HdlFileLogic.getInstance().readFileByte(drivePathFileName);
                             if (data == null || data.length == 0) {
-                                uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.found_locally_drive_file), callback);
+                                uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.found_locally_drive_file), callback);
                                 return;
                             }
                             String md5 = HDLMD5Utils.encodeMD5(data);//缃戝叧椹卞姩闇�瑕�
@@ -1780,14 +1797,14 @@
 
                                 @Override
                                 public void onError(HDLLinkException e) {
-                                    uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.notify_gateway_drive_failed), callback);
+                                    uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.notify_gateway_drive_failed), callback);
                                 }
                             });
                         }
 
                         @Override
                         public void onServiceDisconnected(ComponentName name) {
-                            uniCallbackData(type, null, -2, HDLApp.getInstance().getString(R.string.local_service_fails), callback);
+                            uniCallbackData(type, null, -2, HDLApp.getInstance().getAppLocaleContext().getString(R.string.local_service_fails), callback);
                         }
                     });
                 } else {
@@ -1798,11 +1815,11 @@
                         public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                             //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
                             if (cloudInverterDeviceBean == null) {
-                                uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+                                uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
                                 return;
                             }
                             if (cloudInverterDeviceBean.getDeviceStatus() != 3) {
-                                uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+                                uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
                                 return;
                             }
                             //4:杩愯
@@ -1837,11 +1854,11 @@
                     public void onSuccess(CloudInverterDeviceBean cloudInverterDeviceBean) {
                         //1锛氳繛鎺ヤ腑,2锛氭晠闅�,3锛氳繍琛�,4锛氱绾�,6:閫嗗彉鍣ㄨ繛涓嶄笂浜�(鑷畾涔�)
                         if (cloudInverterDeviceBean == null) {
-                            uniCallbackData(type, null, 6, HDLApp.getInstance().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
+                            uniCallbackData(type, null, 6, HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_binding_cloud_upgrade_fails), callback);
                             return;
                         }
                         if (cloudInverterDeviceBean.getDeviceStatus() != 3) {
-                            uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getString(R.string.ota_not_cloud_upgrade_fails), callback);
+                            uniCallbackData(type, null, cloudInverterDeviceBean.getDeviceStatus(), HDLApp.getInstance().getAppLocaleContext().getString(R.string.ota_not_cloud_upgrade_fails), callback);
                             return;
                         }
                         //4:杩愯
@@ -1874,7 +1891,7 @@
      */
     private void uniCancelDownloadingUpgradeFile(String type, Object data, DCUniMPJSCallback callback) {
         HdlOtaLogic.getInstance().stopDownloadUpgradeFile();
-        uniCallbackData(type, null, 0, HDLApp.getInstance().getString(R.string.cancel_download_successfully), callback);
+        uniCallbackData(type, null, 0, HDLApp.getInstance().getAppLocaleContext().getString(R.string.cancel_download_successfully), callback);
     }
 
     /**
@@ -1925,13 +1942,13 @@
     public String getDeviceStatusString(int deviceStatus) {
         switch (deviceStatus) {
             case 1: {
-                return HDLApp.getInstance().getString(R.string.my_power_station_connecting);
+                return HDLApp.getInstance().getAppLocaleContext().getString(R.string.my_power_station_connecting);
             }
             case 2: {
-                return HDLApp.getInstance().getString(R.string.my_power_station_malfunction);
+                return HDLApp.getInstance().getAppLocaleContext().getString(R.string.my_power_station_malfunction);
             }
             case 4: {
-                return HDLApp.getInstance().getString(R.string.my_power_station_off_line);
+                return HDLApp.getInstance().getAppLocaleContext().getString(R.string.my_power_station_off_line);
             }
             default:
                 return "";
@@ -2161,7 +2178,7 @@
                     public void onSuccess(Boolean obj) {
                         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);
+                            uniCallbackData(type, null, -100, HDLApp.getInstance().getAppLocaleContext().getString(R.string.The_gateway_cannot_be_found_locally), callback);
 
                             return;
                         }
@@ -2208,7 +2225,7 @@
             }.getType();
             List<GatewayBean> list = gson.fromJson(devices, typeOfT);
             if (list == null || list.size() == 0) {
-                uniCallbackData(type, null, -100, HDLApp.getInstance().getString(R.string.The_gateway_cannot_be_found_locally), callback);
+                uniCallbackData(type, null, -100, HDLApp.getInstance().getAppLocaleContext().getString(R.string.The_gateway_cannot_be_found_locally), callback);
                 return;
             }
             //璁板綍鏉℃暟
@@ -2359,8 +2376,9 @@
         HdlDeviceLogic.getInstance().getCurrentHomeLocalAndCloudGatewayList(homeId, new CloudCallBeak<List<GatewayBean>>() {
             @Override
             public void onSuccess(List<GatewayBean> list) {
+                List<GatewayBean> newList = sortLogic(list);
                 if (callback != null) {
-                    uniSuccessCallback(type, list, callback);
+                    uniSuccessCallback(type, newList, callback);
                 }
                 //EventBus浜嬩欢鍒嗗彂,杩涘叆浣忓畢寮�濮嬭闃呬富棰�
                 BaseEventBus baseEventBus = new BaseEventBus();
@@ -2369,7 +2387,7 @@
                 baseEventBus.setData(homeId);
                 EventBus.getDefault().post(baseEventBus);
                 //杩涙潵浣忓畢璇︽儏閮借涓婁紶涓�娆id鍒楄〃鍒颁簯绔�;
-                HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, list, false, null);
+                HdlDeviceLogic.getInstance().uploadOidDataToCloud(homeId, newList, false, null);
             }
 
             @Override
@@ -2380,6 +2398,31 @@
             }
         });
 
+    }
+
+    /**
+     * 杩涜鎺掑簭锛堥�嗗彉鍣�-璐熻浇涓績锛�
+     *
+     * @param list 婧愭暟鎹�
+     * @return 杩斿洖鍒楄〃
+     */
+    private List<GatewayBean> sortLogic(List<GatewayBean> list) {
+        if (list == null || list.size() == 0) {
+            return new ArrayList<>();
+        }
+        List<GatewayBean> newList = new ArrayList<>();
+        List<GatewayBean> inverterList = new ArrayList<>();
+        List<GatewayBean> lcList = new ArrayList<>();
+        for (int i = 0; i < list.size(); i++) {
+            if (list.get(i).getSpk().equals(HdlDeviceLogic.getInstance().INVERTER_DEVICE_SPK)) {
+                inverterList.add(list.get(i));
+            } else {
+                lcList.add(list.get(i));
+            }
+        }
+        newList.addAll(inverterList);
+        newList.addAll(lcList);
+        return newList;
     }
 
     /**
@@ -2754,12 +2797,14 @@
 
         //HdlLogLogic.print("uni---鍙戦��---ModBus---" + Arrays.toString(modBusBean.getData()), true);
         //鍙戦�乵odbus鍗忚
-        HDLModBusConnect.getInstance().Send(modBusBean.getMac(), modBusBean.getData(), new ModbusCallBack() {
+        long startTime = System.currentTimeMillis();
+        HDLModBusConnect.getInstance().asyncSend(modBusBean.getMac(), modBusBean.getData(), new ModbusCallBack() {
             @Override
             public void onSuccess(int[] data) {
                 uniSuccessCallback(type, data, callback);
 //                HdlLogLogic.print("uni---鎺ユ敹---ModBus---" + Arrays.toString(data), true);
-
+                long endTime = System.currentTimeMillis() - startTime;
+                Log.d("====Mobus鑰楁椂鏃堕棿====", String.valueOf(endTime));
             }
 
             @Override

--
Gitblit v1.8.0