wjc
2025-03-04 e5ca9f9fb28d65a71dc14c19e87098c62141419e
2025年03月04日17:40:49
1个文件已添加
9个文件已修改
279 ■■■■ 已修改文件
app/build.gradle 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/enums/UnitType.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/other/HdlESLocalJsonLogic.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/bean/AuthorizationAccountBean.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationCancelDialog.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/res/values-en/strings.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/build.gradle
@@ -30,7 +30,7 @@
        minSdkVersion 23
        targetSdkVersion 34
        versionCode 4
        versionName "1.0.0"//版本规则1.3是产品功能迭代用的,最后一位0是我们修复bug用的
        versionName "1.0.1"//版本规则1.3是产品功能迭代用的,最后一位0是我们修复bug用的
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        manifestPlaceholders = mfph
@@ -90,7 +90,7 @@
     */
    android.applicationVariants.configureEach { variant ->
        variant.outputs.configureEach {
            outputFileName = "photovoltaic_v${versionName}_${generateTime()}_${getEnvironmentVersion(4)}.apk"
            outputFileName = "photovoltaic_v${versionName}_${generateTime()}_${getEnvironmentVersion(1)}.apk"
        }
    }
app/src/main/java/com/hdl/photovoltaic/enums/UnitType.java
@@ -42,6 +42,15 @@
     * 电量(1000GWh=1TWh)
     */
    String tWh = "TWh";
    String Wp = "Wp";
    String kWp = "kWp";
    String MWp = "MWp";
    String GWp = "GWp";
    String TWp = "TWp";
    String PWp = "PWp";
    String EWp = "EWp";
    String ZWp = "ZWp";
    String noValue = "0.00";
}
app/src/main/java/com/hdl/photovoltaic/other/HdlAccountLogic.java
@@ -5,6 +5,7 @@
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
import com.hdl.linkpm.sdk.core.exception.HDLException;
import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
import com.hdl.linkpm.sdk.user.bean.HDLLoginBean;
@@ -15,10 +16,13 @@
import com.hdl.photovoltaic.internet.HttpClient;
import com.hdl.photovoltaic.internet.api.HttpApi;
import com.hdl.photovoltaic.listener.CloudCallBeak;
import com.hdl.photovoltaic.ui.bean.AuthorizationAccountBean;
import com.hdl.photovoltaic.ui.bean.BUserInfo;
import com.hdl.photovoltaic.ui.bean.CUserInfo;
import java.io.File;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
@@ -111,7 +115,7 @@
    }
    /**
     * 修改密码(B端账号)
     * 检验账号权限(B端账号)
     *
     * @param cloudCallBeak -
     */
@@ -121,11 +125,22 @@
        json.addProperty("sysCode", "xenterra-app");
        HttpClient.getInstance().requestHttp(requestUrl, json.toString(), new CloudCallBeak<String>() {
            @Override
            public void onSuccess(String str) {
            public void onSuccess(String json) {
                if (cloudCallBeak != null) {
//                    boolean isBoolean =!TextUtils.isEmpty(str);
//                    cloudCallBeak.onSuccess(isBoolean);
                    cloudCallBeak.onSuccess(true);
                    if (TextUtils.isEmpty(json)) {
                        cloudCallBeak.onSuccess(false);
                    } else {
                        Gson gson = new Gson();
                        Type type = new TypeToken<List<AuthorizationAccountBean>>() {
                        }.getType();
                        List<AuthorizationAccountBean> authorizationAccounts = gson.fromJson(json, type);
                        if (authorizationAccounts != null && !authorizationAccounts.isEmpty()) {
                            cloudCallBeak.onSuccess(true);
                        } else {
                            cloudCallBeak.onSuccess(false);
                        }
                    }
                }
            }
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -85,6 +85,7 @@
        }
        return divideByOneThousandAndFormat(value).toString();
    }
    /**
     * @param value        值
     * @param diploidValue 倍数
@@ -111,7 +112,7 @@
            BigDecimal bigDecimal = new BigDecimal(doubleValue);
            return bigDecimal.divide(new BigDecimal(diploidValue), 2, RoundingMode.HALF_EVEN);
        } catch (Exception e) {
            return  new BigDecimal(0);
            return new BigDecimal(0);
        }
    }
@@ -127,7 +128,6 @@
        double doubleValue = Double.parseDouble(value);
        return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP);
    }
    /**
@@ -200,6 +200,76 @@
    }
    /**
     * 转换(kWh)单位
     *
     * @param value 值
     */
    public static String convertKWUnit(String value) {
        try {
            double doubleValue = Double.parseDouble(value);
            if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
                return UnitType.mWh;
            } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
                return UnitType.gWh;
            } else if (doubleValue > 1000 * 1000 * 1000) {
                return UnitType.tWh;
            } else {
                return UnitType.kWh;
            }
        } catch (Exception e) {
            return UnitType.kWh;
        }
    }
    /**
     * 转换(kW)单位
     *
     * @param value 值
     */
    public static String convertKWhUnit(String value) {
        try {
            double doubleValue = Double.parseDouble(value);
            if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
                return UnitType.mW;
            } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
                return UnitType.gW;
            } else if (doubleValue > 1000 * 1000 * 1000) {
                return UnitType.tW;
            } else {
                return UnitType.kW;
            }
        } catch (Exception e) {
            return UnitType.kW;
        }
    }
    /**
     * 转换(Wp)单位
     *
     * @param value 值
     */
    public static String convertWPUnit(String value) {
        try {
            double doubleValue = Double.parseDouble(value);
            if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
                return UnitType.MWp;
            } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
                return UnitType.GWp;
            } else if (doubleValue > 1000 * 1000 * 1000) {
                return UnitType.TWp;
            } else {
                return UnitType.kWp;
            }
        } catch (Exception e) {
            return UnitType.kWp;
        }
    }
    /**
     * 生成二维码
     *
     * @param content                字符串内容
app/src/main/java/com/hdl/photovoltaic/other/HdlESLocalJsonLogic.java
@@ -74,7 +74,6 @@
     * @return map
     */
    private String getVersion(String fileName) {
        Map<String, String> map = this.getFeliAndVersion();
        for (Map.Entry<String, String> entry : map.entrySet()) {
            if (entry.getKey().equals(fileName)) {
@@ -84,75 +83,37 @@
        return "";
    }
    /**
     * 获取json文件名,设备类型,设备型号
     *
     * @return map
     */
    private List<String> getFileNameAndDeviceTypeAndDeviceModeList() {
        //注意(逆变器:ME-GSE-S5K,负载中心:ME-GSE-SPG63A,bms:ME-GSE-BMS15K,电池包:ME-GSE-B5K)设备型号不一样
        //拼接规则:文件名_设备类型_设备信号
        List<String> stringList = new ArrayList<>();
        stringList.add(FileName.hdl_lc_ecu_info_item + concatenation_symbol + DeviceType.LC + concatenation_symbol + DeviceModel.LC);//获取负载控制中心
        stringList.add(FileName.hdl_lc_ecu_quick + concatenation_symbol + DeviceType.LC + concatenation_symbol + DeviceModel.LC);//创建电站-负载控制中心参数配置
        stringList.add(FileName.hdl_inv_ecu_quick + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV);//创建电站-逆变器参数配置
        stringList.add(FileName.hdl_inv_ecu + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV);//逆变器参数配置
        stringList.add(FileName.hdl_inv_ecu_info_pv + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV);// 逆变器详情-pv
        stringList.add(FileName.hdl_inv_ecu_info_output + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV);//逆变器详情-输出
        stringList.add(FileName.hdl_inv_ecu_info_item + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV);//逆变器详情-item项
        stringList.add(FileName.hdl_inv_ecu_info_signal + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV);//逆变器详情-信号点
        stringList.add(FileName.hdl_bms_ecu + concatenation_symbol + DeviceType.BMS + concatenation_symbol + DeviceModel.INV_BMS);//获取BMS信息
        stringList.add(FileName.hdl_battery_ecu + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.INV_BATTERY);//电池包信息
        stringList.add(FileName.hdl_battery_ecu_cell + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.INV_BATTERY);//电池包-电芯信息
        //离网逆变器
        stringList.add(FileName.hdl_inv_ecu_quick_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_master_ecu_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_slave_ecu_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_ecu_info_pv_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_ecu_info_input_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_ecu_info_output_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_ecu_info_item_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_inv_ecu_info_signal_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV);//离网逆变器快速配置
        stringList.add(FileName.hdl_bms_ecu_off + concatenation_symbol + DeviceType.BMS + concatenation_symbol + DeviceModel.OFF_INV_BMS);//离网逆变器快速配置
        stringList.add(FileName.hdl_bms_ecu_off + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.OFF_INV_BATTERY);//离网逆变器快速配置
        stringList.add(FileName.hdl_battery_ecu_cell_off + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.OFF_INV_BATTERY);//离网逆变器快速配置
        return stringList;
    }
    /**
     * 文件对应版本号
     *
     * @return map
     */
    private Map<String, String> getFeliAndVersion() {
        Map<String, String> map = new HashMap<>();
        //拼接规则:文件名_设备类型_设备信号
        map.put(FileName.hdl_lc_ecu_info_item + concatenation_symbol + DeviceType.LC + concatenation_symbol + DeviceModel.LC, Version.v_1_5_0);
        map.put(FileName.hdl_lc_ecu_quick + concatenation_symbol + DeviceType.LC + concatenation_symbol + DeviceModel.LC, Version.v_1_5_0);
        map.put(FileName.hdl_inv_ecu_quick + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_5_1);
        map.put(FileName.hdl_inv_ecu + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_5_1);//更新到v_1_5_2,目前硬件不支持
        map.put(FileName.hdl_inv_ecu_info_pv + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_4_2);
        map.put(FileName.hdl_inv_ecu_info_output + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_4_2);
        map.put(FileName.hdl_inv_ecu_info_item + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_5_1);//更新到v_1_5_2,目前硬件不支持¬
        map.put(FileName.hdl_inv_ecu_info_signal + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_4_1);
        map.put(FileName.hdl_bms_ecu + concatenation_symbol + DeviceType.BMS + concatenation_symbol + DeviceModel.INV_BMS, Version.v_1_4_2);
        map.put(FileName.hdl_battery_ecu + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.INV_BATTERY, Version.v_1_4_2);
        map.put(FileName.hdl_battery_ecu_cell + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.INV_BATTERY, Version.v_1_4_2);
        map.put(FileName.hdl_lc_ecu_info_item + concatenation_symbol + DeviceType.LC + concatenation_symbol + DeviceModel.LC, Version.v_1_5_0);//获取负载控制中心
        map.put(FileName.hdl_lc_ecu_quick + concatenation_symbol + DeviceType.LC + concatenation_symbol + DeviceModel.LC, Version.v_1_5_0);//创建电站-负载控制中心参数配置
        map.put(FileName.hdl_inv_ecu_quick + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_5_1);//创建电站-逆变器参数配置
        map.put(FileName.hdl_inv_ecu + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_5_1);//逆变器参数配置//更新到v_1_5_2,目前硬件不支持
        map.put(FileName.hdl_inv_ecu_info_pv + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_4_2);// 逆变器详情-pv
        map.put(FileName.hdl_inv_ecu_info_output + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_4_2);//逆变器详情-输出
        map.put(FileName.hdl_inv_ecu_info_item + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_5_1);//逆变器详情-item项//更新到v_1_5_2,目前硬件不支持¬
        map.put(FileName.hdl_inv_ecu_info_signal + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.INV, Version.v_1_4_1);//逆变器详情-信号点
        map.put(FileName.hdl_bms_ecu + concatenation_symbol + DeviceType.BMS + concatenation_symbol + DeviceModel.INV_BMS, Version.v_1_4_2);//获取BMS信息
        map.put(FileName.hdl_battery_ecu + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.INV_BATTERY, Version.v_1_4_2);//电池包信息
        map.put(FileName.hdl_battery_ecu_cell + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.INV_BATTERY, Version.v_1_4_2);//电池包-电芯信息
        //离网逆变器
        map.put(FileName.hdl_inv_ecu_quick_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_master_ecu_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_slave_ecu_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_ecu_info_pv_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_ecu_info_input_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_ecu_info_output_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_ecu_info_item_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_inv_ecu_info_signal_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);
        map.put(FileName.hdl_bms_ecu_off + concatenation_symbol + DeviceType.BMS + concatenation_symbol + DeviceModel.OFF_INV_BMS, Version.v_1_5_2);
        map.put(FileName.hdl_bms_ecu_off + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.OFF_INV_BATTERY, Version.v_1_5_2);
        map.put(FileName.hdl_battery_ecu_cell_off + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.OFF_INV_BATTERY, Version.v_1_5_2);
        map.put(FileName.hdl_inv_ecu_quick_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_master_ecu_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_slave_ecu_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_ecu_info_pv_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_ecu_info_input_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_ecu_info_output_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_ecu_info_item_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_inv_ecu_info_signal_off + concatenation_symbol + DeviceType.INV + concatenation_symbol + DeviceModel.OFF_INV, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_bms_ecu_off + concatenation_symbol + DeviceType.BMS + concatenation_symbol + DeviceModel.OFF_INV_BMS, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_bms_ecu_off + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.OFF_INV_BATTERY, Version.v_1_5_2);//离网逆变器快速配置
        map.put(FileName.hdl_battery_ecu_cell_off + concatenation_symbol + DeviceType.BATTERY + concatenation_symbol + DeviceModel.OFF_INV_BATTERY, Version.v_1_5_2);//离网逆变器快速配置
        return map;
    }
@@ -160,8 +121,11 @@
     * 向云端获取Json【所有】脚本
     */
    public void getAllHdlESLocalJson() {
        for (String str : this.getFileNameAndDeviceTypeAndDeviceModeList()) {
            String[] ary = str.split(concatenation_symbol);
        for (Map.Entry<String, String> str : this.getFeliAndVersion().entrySet()) {
            if (TextUtils.isEmpty(str.getKey())) {
                continue;
            }
            String[] ary = str.getKey().split(concatenation_symbol);
            String fileName = ary[0];
            String deviceType = ary[1];
            String deviceMode = ary[2];
app/src/main/java/com/hdl/photovoltaic/ui/LoginActivity.java
@@ -290,7 +290,7 @@
                boolean isSelected = UserConfigManage.getInstance().isAcceiptPolicy();
                if (!isSelected) {
                    //隐私协议提示
                    getDialog();
                    getAcceiptPolicyDialog();
                    return;
                }
                //登录
@@ -622,7 +622,7 @@
    /**
     * 弹窗
     */
    private void getDialog() {
    private void getAcceiptPolicyDialog() {
        ConfirmationCancelDialog confirmationCancelDialog = new ConfirmationCancelDialog(_mActivity);
        confirmationCancelDialog.show();
app/src/main/java/com/hdl/photovoltaic/ui/bean/AuthorizationAccountBean.java
New file
@@ -0,0 +1,64 @@
package com.hdl.photovoltaic.ui.bean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class AuthorizationAccountBean implements Serializable {
    private String menuId;
    private String menuName;
    private String menuType;
    private String menuCode;
    private String menuIcon;
    public int getMenuOrder() {
        return menuOrder;
    }
    public void setMenuOrder(int menuOrder) {
        this.menuOrder = menuOrder;
    }
    public String getMenuIcon() {
        return menuIcon;
    }
    public void setMenuIcon(String menuIcon) {
        this.menuIcon = menuIcon;
    }
    public String getMenuCode() {
        return menuCode;
    }
    public void setMenuCode(String menuCode) {
        this.menuCode = menuCode;
    }
    public String getMenuType() {
        return menuType;
    }
    public void setMenuType(String menuType) {
        this.menuType = menuType;
    }
    public String getMenuName() {
        return menuName;
    }
    public void setMenuName(String menuName) {
        this.menuName = menuName;
    }
    public String getMenuId() {
        return menuId;
    }
    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }
    private int menuOrder;
//    private List<String> children = new ArrayList<>();
}
app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -537,8 +537,9 @@
                        if (dataOverBean == null) {
                            return;
                        }
                        String capacityValue = HdlCommonLogic.getBigDecimal(dataOverBean.getInstalledCapacity()).toString();
                        String capacityValue = HdlCommonLogic.divideByOneThousandAndFormat(dataOverBean.getInstalledCapacity()).toString();
                        viewBinding.infoRl1Text1Tv.setText(capacityValue);
                        viewBinding.kwpUnit.setText(HdlCommonLogic.convertWPUnit(dataOverBean.getInstalledCapacity()));
                        viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getPower()));
//                        String str = dataOverBean.getPowerRatio() + "%";
app/src/main/java/com/hdl/photovoltaic/widget/ConfirmationCancelDialog.java
@@ -39,7 +39,7 @@
//        setCancelable(true);//系统后退可以取消
        //空白处不能取消动画
//        setCanceledOnTouchOutside(false);
        setCanceledOnTouchOutside(false);
        //初始化界面控件
        initView();
        //初始化界面数据
app/src/main/res/values-en/strings.xml
@@ -345,8 +345,8 @@
    <string name="account">Account</string>
    <string name="psw">Password</string>
    <string name="battery_capacity_indicator">Battery capacity indicator</string>
    <string name="rated_battery_capacity">Rated battery capacity</string>
    <string name="battery_capacity_indicator">Battery capacity</string>
    <string name="rated_battery_capacity">Battery capacity</string>
    <string name="be_debugging">Be debugging</string>
    <string name="debugging_completed">Debugging completed</string>
    <string name="delivered">Delivered</string>