wjc
2025-01-07 90d5f028ccdaaaf64286f9d632cb335a4d0544b9
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -74,72 +74,46 @@
        return sHdlCommonLogic;
    }
    public static String getConvertDoubleUnit(String value) {
        if (TextUtils.isEmpty(value)) {
            return UnitType.noValue;
        }
        BigDecimal formattedValue = getBigDecimal(value);
        return formattedValue.toString();
    }
    public static String getConvertDoubleUnit(int value) {
        if (value == 0) {
            return UnitType.noValue;
        }
        BigDecimal formattedValue = getBigDecimal(value + "");
        return formattedValue.toString();
    }
    /**
     * @param value 值
     * @param unit  例如:UnitType.kWh
     * @return 带单位值返回
     * @return 字符串值返回
     */
    public static String getConvertDoubleUnit(String value, String unit) {
    public static String convertDoubleValue(String value) {
        if (TextUtils.isEmpty(value)) {
            return UnitType.noValue + unit;
            return UnitType.noValue;
        }
        if (unit.equals(UnitType.kW) || unit.equals(UnitType.kWh)) {
            return divideByOneThousandAndFormat(value).toString() + unit;
        }
        return getBigDecimal(value).toString() + unit;
        return divideByOneThousandAndFormat(value).toString();
    }
    /**
     * @param value        值
     * @param diploidValue 倍数
     * @return 字符串
     */
    public static String convertDoubleValue(String value, int diploidValue) {
        try {
            double doubleValue = Double.parseDouble(value);
            BigDecimal bigDecimal = new BigDecimal(doubleValue);
            return bigDecimal.divide(new BigDecimal(diploidValue), 2, RoundingMode.HALF_EVEN).toString();
        } catch (Exception e) {
            return "0.00";
        }
    }
    /**
     * @param value     值
     * @param unitValue 例如:UnitType.kWh
     * @param isUnit    true表示有单位返回
     * @return 带单位值返回
     * @param value        值
     * @param diploidValue 倍数
     * @return 字符串
     */
    public static String getConvertDoubleUnit(String value, String unitValue, boolean isUnit) {
        if (TextUtils.isEmpty(value)) {
            return UnitType.noValue + (isUnit ? unitValue : "");
    public static BigDecimal convertBigDecimal(String value, int diploidValue) {
        try {
            double doubleValue = Double.parseDouble(value);
            BigDecimal bigDecimal = new BigDecimal(doubleValue);
            return bigDecimal.divide(new BigDecimal(diploidValue), 2, RoundingMode.HALF_EVEN);
        } catch (Exception e) {
            return  new BigDecimal(0);
        }
        if (unitValue.equals(UnitType.kW)) {
            return divideByOneThousandAndFormat(value).toString() + (isUnit ? unitValue : "");
        }
        return getBigDecimal(value).toString() + (isUnit ? unitValue : "");
    }
    /**
     * @param value 值
     * @param unit  例如:UnitType.kWh
     * @return 带单位值返回
     */
    public static String getConvertDoubleUnit(int value, String unit) {
        if (value == 0) {
            return UnitType.noValue + unit;
        }
        BigDecimal formattedValue = getBigDecimal(value + "");
        return formattedValue.toString() + unit;
    }
    public static String convertString(Object value) {
        return String.valueOf(value);
@@ -154,6 +128,8 @@
        return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP);
    }
    /**
     * 除以一千和格式
     *
@@ -163,16 +139,13 @@
    public static BigDecimal divideByOneThousandAndFormat(String value) {
        try {
            double doubleValue = Double.parseDouble(value);
            int val = 1000;
            if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
                val = 1000;
            } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
                val = 1000 * 1000;
            } else if (doubleValue > 1000 * 1000 * 1000) {
                val = 1000 * 1000 * 1000;
            int mDoubleValue = doubleValue(value);
            if (mDoubleValue == 0) {
                return getBigDecimal(value);
            } else {
                BigDecimal bigDecimal = new BigDecimal(doubleValue);
                return bigDecimal.divide(new BigDecimal(mDoubleValue), 2, RoundingMode.HALF_EVEN);
            }
            BigDecimal bigDecimal = new BigDecimal(doubleValue);
            return bigDecimal.divide(new BigDecimal(val), 2, RoundingMode.HALF_EVEN);
        } catch (Exception e) {
            BigDecimal bigDecimal = new BigDecimal(0);
            return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN);
@@ -184,17 +157,46 @@
     *
     * @param value 值
     */
    public static int val(String value) {
        double doubleValue = Double.parseDouble(value);
        int val = 1000;
        if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
            val = 1000;
        } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
            val = 1000 * 1000;
        } else if (doubleValue > 1000 * 1000 * 1000) {
            val = 1000 * 1000 * 1000;
    public static int doubleValue(String value) {
        try {
            double doubleValue = Double.parseDouble(value);
            if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
                return 1000;
            } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
                return 1000 * 1000;
            } else if (doubleValue > 1000 * 1000 * 1000) {
                return 1000 * 1000 * 1000;
            } else {
                return 0;
            }
        } catch (Exception e) {
            return 0;
        }
        return val;
    }
    /**
     * 转换单位
     *
     * @param value    值
     * @param unitType 表示是单位(功率,电量)
     */
    public static String convertUnit(String value, String unitType) {
        try {
            double doubleValue = Double.parseDouble(value);
            if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
                return unitType.equals(UnitType.kW) ? UnitType.mW : UnitType.mWh;
            } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
                return unitType.equals(UnitType.kW) ? UnitType.gW : UnitType.gWh;
            } else if (doubleValue > 1000 * 1000 * 1000) {
                return unitType.equals(UnitType.kW) ? UnitType.tW : UnitType.tWh;
            } else {
                return unitType.equals(UnitType.kW) ? UnitType.kW : UnitType.kWh;
            }
        } catch (Exception e) {
            return unitType.equals(UnitType.kW) ? UnitType.kW : UnitType.kWh;
        }
    }
    /**