From 0118ba9749c850ba32b789011883c353a735f1fb Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期二, 22 四月 2025 19:25:33 +0800
Subject: [PATCH] 2025年04月22日19:25:13 优化功率单位转化
---
app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java | 22 ++++---
app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java | 9 +-
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 79 ++++++++++++--------------
app/src/main/java/com/hdl/photovoltaic/ui/adapter/HouseInfoAdapter.java | 19 +++--
app/src/main/res/layout/item_plant_details.xml | 2
5 files changed, 65 insertions(+), 66 deletions(-)
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
index 4720942..a935e16 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -62,14 +62,15 @@
/**
- * @param value 鍊�
+ * @param value 鍊�
+ * @param unitType 闇�瑕佽浆鐨勫崟浣嶏紙kW锛宬Wh锛�
* @return 瀛楃涓插�艰繑鍥�
*/
- public static String convertDoubleValue(String value) {
+ public static String convertDoubleValue(String value, String unitType) {
if (TextUtils.isEmpty(value)) {
return UnitType.noValue;
}
- return divideByOneThousandAndFormat(value).toString();
+ return divideByOneThousandAndFormat(value,unitType).toString();
}
/**
@@ -122,10 +123,10 @@
* @param value 鍊�
* @return BigDecimal
*/
- public static BigDecimal divideByOneThousandAndFormat(String value) {
+ public static BigDecimal divideByOneThousandAndFormat(String value, String unitType) {
try {
double doubleValue = Double.parseDouble(value);
- int mDoubleValue = doubleValue(value);
+ long mDoubleValue = doubleValue(value,unitType);
if (mDoubleValue == 0) {
return getBigDecimal(value);
} else {
@@ -143,17 +144,29 @@
*
* @param value 鍊�
*/
- public static int doubleValue(String value) {
+ public static long doubleValue(String value, String unitType) {
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;
+ if (unitType.equals(UnitType.kW)) {
+ 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 1000L * 1000 * 1000 ;
+ } else {
+ return 1000;
+ }
} else {
- return 0;
+ 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;
@@ -161,29 +174,7 @@
}
- /**
- * 杞崲鍗曚綅
- *
- * @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;
- }
- }
/**
* 杞崲鐢甸噺(kWh)鍗曚綅
@@ -193,11 +184,11 @@
public static String convertKWHUnit(String value) {
try {
double doubleValue = Double.parseDouble(value);
- if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
+ if (doubleValue >= 1000 && doubleValue < 1000 * 1000) {
return UnitType.mWh;
- } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
+ } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
return UnitType.gWh;
- } else if (doubleValue > 1000 * 1000 * 1000) {
+ } else if (doubleValue >= 1000 * 1000 * 1000) {
return UnitType.tWh;
} else {
return UnitType.kWh;
@@ -217,10 +208,12 @@
try {
double doubleValue = Double.parseDouble(value);
if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
+ return UnitType.kW;
+ } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
return UnitType.mW;
- } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
+ } else if (doubleValue >= 1000 * 1000 * 1000&&doubleValue < 1000 * 1000 * 1000*1000L) {
return UnitType.gW;
- } else if (doubleValue > 1000 * 1000 * 1000) {
+ } else if (doubleValue >= 1000 * 1000 * 1000*1000L) {
return UnitType.tW;
} else {
return UnitType.kW;
@@ -239,11 +232,11 @@
public static String convertKWPUnit(String value) {
try {
double doubleValue = Double.parseDouble(value);
- if (doubleValue > 1000 && doubleValue < 1000 * 1000) {
+ if (doubleValue >= 1000 && doubleValue < 1000 * 1000) {
return UnitType.MWp;
- } else if (doubleValue > 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
+ } else if (doubleValue >= 1000 * 1000 && doubleValue < 1000 * 1000 * 1000) {
return UnitType.GWp;
- } else if (doubleValue > 1000 * 1000 * 1000) {
+ } else if (doubleValue >= 1000 * 1000 * 1000) {
return UnitType.TWp;
} else {
return UnitType.kWp;
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java
index 611574c..4b36cf4 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/adapter/DeviceInfoAdapter.java
@@ -44,13 +44,14 @@
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
CloudInverterDeviceBean deviceBean = this.mList.get(position);
+
holder.homeNameTv.setText(deviceBean.getHomeNameAndDeviceName());
holder.device_details_sn_tv.setText(deviceBean.getOsn());
holder.device_label_run_state_value_tv.setText(deviceBean.getSystemStatusDesc());
- holder.device_label_power_value_tv.setText(HdlCommonLogic.convertDoubleValue(deviceBean.getOutputActivePower(), 1000));
- holder.device_label_power_unit.setText(HdlCommonLogic.convertUnit(deviceBean.getOutputActivePower(), UnitType.kW));
- holder.device_label_day_value_tv.setText(HdlCommonLogic.convertDoubleValue(deviceBean.getTotalElectricityPvToday()));
- holder.device_label_day_unit.setText(HdlCommonLogic.convertUnit(deviceBean.getOutputActivePower(), UnitType.kWh));
+ holder.device_label_power_value_tv.setText(HdlCommonLogic.convertDoubleValue(deviceBean.getOutputActivePower(), UnitType.kW));
+ holder.device_label_power_unit.setText(HdlCommonLogic.convertKWUnit(deviceBean.getOutputActivePower()));
+ holder.device_label_day_value_tv.setText(HdlCommonLogic.convertDoubleValue(deviceBean.getTotalElectricityPvToday(), UnitType.kWh));
+ holder.device_label_day_unit.setText(HdlCommonLogic.convertKWHUnit(deviceBean.getTotalElectricityPvToday()));
holder.device_label_location_tv.setText(deviceBean.getHomeAddress());
setTextViewStyle(holder.device_label_state_tv, deviceBean.getDeviceStatus());
holder.itemView.setTag(position);
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 a445f25..d2d9071 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
@@ -61,17 +61,18 @@
HouseIdBean houseIdBean = this.mList.get(position);
holder.homeNameTv.setText(houseIdBean.getHomeName().trim());
//瑁呮満瀹归噺
- String capacity = HdlCommonLogic.getBigDecimal(houseIdBean.getInstalledCapacity()).toString();
- holder.capacityTv.setText(capacity);
+ holder.capacityTv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getInstalledCapacity(), UnitType.kWp));
+ holder.capacity_kwp_unit.setText(HdlCommonLogic.convertKWPUnit(houseIdBean.getInstalledCapacity()));
+
//鍙戠數鍔熺巼
- holder.power_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getPower()));
- holder.power_kw_unit.setText(HdlCommonLogic.convertUnit(houseIdBean.getPower(), UnitType.kW));
+ holder.power_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getPower(), UnitType.kW));
+ holder.power_kw_unit.setText(HdlCommonLogic.convertKWUnit(houseIdBean.getPower()));
//褰撴棩鍙戠數閲�
- holder.day_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getTodayElectricity()));
- holder.day_kwh_unit.setText(HdlCommonLogic.convertUnit(houseIdBean.getTodayElectricity(), UnitType.kWh));
+ holder.day_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getTodayElectricity(), UnitType.kWh));
+ holder.day_kwh_unit.setText(HdlCommonLogic.convertKWHUnit(houseIdBean.getTodayElectricity()));
//鐢垫睜瀹归噺
- holder.month_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getBatteryCapacity()));
- holder.month_kwh_unit.setText(HdlCommonLogic.convertUnit(houseIdBean.getBatteryCapacity(), UnitType.kWh));
+ holder.month_value_tv.setText(HdlCommonLogic.convertDoubleValue(houseIdBean.getBatteryCapacity(), UnitType.kWh));
+ holder.month_kwh_unit.setText(HdlCommonLogic.convertKWHUnit(houseIdBean.getBatteryCapacity()));
holder.plant_details_location_tv.setText(houseIdBean.getHomeAddress());
holder.item_parent_rl.setTag(position);
@@ -219,6 +220,7 @@
public ImageView homeIconIv;//浣忓畢鍥剧墖
public TextView homeNameTv;//浣忓畢鍚嶇О
public TextView capacityTv;//瑁呮満瀹归噺
+ public TextView capacity_kwp_unit;//瑁呮満瀹归噺鍗曚綅
public TextView power_value_tv;//鍙戠數鍔熺巼
public TextView power_kw_unit;//鍙戠數鍔熺巼鍗曚綅
public TextView day_value_tv;//褰撴棩鍙戠數閲�
@@ -237,6 +239,7 @@
homeIconIv = itemView.findViewById(R.id.device_details_image_iv);
homeNameTv = itemView.findViewById(R.id.device_details_name_tv);
capacityTv = itemView.findViewById(R.id.device_details_value_tv);
+ capacity_kwp_unit = itemView.findViewById(R.id.capacity_kwp_unit);
power_value_tv = itemView.findViewById(R.id.power_value_tv);
power_kw_unit = itemView.findViewById(R.id.power_kw_unit);
day_value_tv = itemView.findViewById(R.id.day_value_tv);
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
index d576529..17e4a36 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/home/HomePageFragment.java
@@ -535,11 +535,13 @@
if (dataOverBean == null) {
return;
}
- String capacityValue = HdlCommonLogic.divideByOneThousandAndFormat(dataOverBean.getInstalledCapacity()).toString();
+
+ String capacityValue = HdlCommonLogic.convertDoubleValue(dataOverBean.getInstalledCapacity(), UnitType.kWp);
viewBinding.infoRl1Text1Tv.setText(capacityValue);
viewBinding.kwpUnit.setText(HdlCommonLogic.convertKWPUnit(dataOverBean.getInstalledCapacity()));
- viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getPower()));
+ viewBinding.infoRl1Text3Tv.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getPower(), UnitType.kW));
+ viewBinding.kwUnit.setText(HdlCommonLogic.convertKWUnit(dataOverBean.getPower()));
// String str = dataOverBean.getPowerRatio() + "%";
// int startIndex = str.lastIndexOf("%");
// int endIndex = str.lastIndexOf("%") + 1;
@@ -567,14 +569,14 @@
} catch (Exception ignored) {
}
- viewBinding.day.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getTodayElectricity()));
- viewBinding.dayUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getTodayElectricity(), UnitType.kWh));
- viewBinding.month.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getMonthElectricity()));
- viewBinding.monthUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getMonthElectricity(), UnitType.kWh));
- viewBinding.year.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getYearElectricity()));
- viewBinding.yearUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getYearElectricity(), UnitType.kWh));
- viewBinding.Total.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getTotalElectricity()));
- viewBinding.TotalUnit.setText(HdlCommonLogic.convertUnit(dataOverBean.getTotalElectricity(), UnitType.kWh));
+ viewBinding.day.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getTodayElectricity(), UnitType.kWh));
+ viewBinding.dayUnit.setText(HdlCommonLogic.convertKWHUnit(dataOverBean.getTodayElectricity()));
+ viewBinding.month.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getMonthElectricity(), UnitType.kWh));
+ viewBinding.monthUnit.setText(HdlCommonLogic.convertKWHUnit(dataOverBean.getMonthElectricity()));
+ viewBinding.year.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getYearElectricity(), UnitType.kWh));
+ viewBinding.yearUnit.setText(HdlCommonLogic.convertKWHUnit(dataOverBean.getYearElectricity()));
+ viewBinding.Total.setText(HdlCommonLogic.convertDoubleValue(dataOverBean.getTotalElectricity(), UnitType.kWh));
+ viewBinding.TotalUnit.setText(HdlCommonLogic.convertKWHUnit(dataOverBean.getTotalElectricity()));
}
});
diff --git a/app/src/main/res/layout/item_plant_details.xml b/app/src/main/res/layout/item_plant_details.xml
index 2c0de7f..e20fc6c 100644
--- a/app/src/main/res/layout/item_plant_details.xml
+++ b/app/src/main/res/layout/item_plant_details.xml
@@ -86,7 +86,7 @@
android:textSize="@dimen/text_14" />
<TextView
- android:id="@+id/kwp_unit"
+ android:id="@+id/capacity_kwp_unit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/device_details_value_tv"
--
Gitblit v1.8.0