From 59340c0b9107c813d6b3a5c953d693212485ad11 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 20 八月 2025 13:31:22 +0800
Subject: [PATCH] 2025年08月20日13:31:14
---
app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java | 268 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 220 insertions(+), 48 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 5be54bf..a935e16 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlCommonLogic.java
@@ -2,35 +2,31 @@
import android.content.Context;
import android.graphics.Bitmap;
-import android.os.SystemClock;
+import android.text.SpannableStringBuilder;
+import android.text.TextPaint;
import android.text.TextUtils;
+import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
-import com.google.gson.JsonObject;
+import androidx.annotation.NonNull;
+
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
-import com.hdl.linkpm.sdk.user.HDLLinkPMUser;
-import com.hdl.photovoltaic.config.ConstantManage;
-import com.hdl.photovoltaic.config.UserConfigManage;
-import com.hdl.photovoltaic.enums.HomepageTitleTabSwitch;
+import com.hdl.photovoltaic.HDLApp;
+import com.hdl.photovoltaic.R;
import com.hdl.photovoltaic.enums.LowerTagType;
import com.hdl.photovoltaic.enums.UnitType;
import com.hdl.photovoltaic.utils.GlideUtils;
import com.hdl.sdk.link.core.bean.eventbus.BaseEventBus;
import org.greenrobot.eventbus.EventBus;
-import org.json.JSONObject;
-import java.io.InputStream;
-import java.io.OutputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
-import java.net.InetSocketAddress;
-import java.net.Socket;
import java.util.Hashtable;
/**
@@ -41,6 +37,9 @@
private static volatile HdlCommonLogic sHdlCommonLogic;
+ /**
+ * 妯″潡绫诲瀷锛堥椤碉紝鐢电珯锛屾秷鎭紝鎴戠殑锛�
+ */
public static LowerTagType lowerTagType = LowerTagType.home;
@@ -61,51 +60,48 @@
return sHdlCommonLogic;
}
- public static String getConvertDoubleUnit(String value) {
+
+ /**
+ * @param value 鍊�
+ * @param unitType 闇�瑕佽浆鐨勫崟浣嶏紙kW锛宬Wh锛�
+ * @return 瀛楃涓插�艰繑鍥�
+ */
+ public static String convertDoubleValue(String value, String unitType) {
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 甯﹀崟浣嶅�艰繑鍥�
- */
- public static String getConvertDoubleUnit(String value, String unit) {
- if (TextUtils.isEmpty(value)) {
- return UnitType.noValue + unit;
- }
- BigDecimal formattedValue = getBigDecimal(value);
- return formattedValue.toString() + unit;
-
+ return divideByOneThousandAndFormat(value,unitType).toString();
}
/**
- * @param value 鍊�
- * @param unit 渚嬪:UnitType.kWh
- * @return 甯﹀崟浣嶅�艰繑鍥�
+ * @param value 鍊�
+ * @param diploidValue 鍊嶆暟
+ * @return 瀛楃涓�
*/
- public static String getConvertDoubleUnit(int value, String unit) {
- if (value == 0) {
- return UnitType.noValue + unit;
+ 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";
}
- BigDecimal formattedValue = getBigDecimal(value + "");
- return formattedValue.toString() + unit;
}
+ /**
+ * @param value 鍊�
+ * @param diploidValue 鍊嶆暟
+ * @return 瀛楃涓�
+ */
+ 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);
+ }
+ }
public static String convertString(Object value) {
return String.valueOf(value);
@@ -118,6 +114,137 @@
}
double doubleValue = Double.parseDouble(value);
return BigDecimal.valueOf(doubleValue).setScale(2, RoundingMode.HALF_UP);
+ }
+
+
+ /**
+ * 闄や互涓�鍗冨拰鏍煎紡
+ *
+ * @param value 鍊�
+ * @return BigDecimal
+ */
+ public static BigDecimal divideByOneThousandAndFormat(String value, String unitType) {
+ try {
+ double doubleValue = Double.parseDouble(value);
+ long mDoubleValue = doubleValue(value,unitType);
+ if (mDoubleValue == 0) {
+ return getBigDecimal(value);
+ } else {
+ BigDecimal bigDecimal = new BigDecimal(doubleValue);
+ return bigDecimal.divide(new BigDecimal(mDoubleValue), 2, RoundingMode.HALF_EVEN);
+ }
+ } catch (Exception e) {
+ BigDecimal bigDecimal = new BigDecimal(0);
+ return bigDecimal.divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN);
+ }
+ }
+
+ /**
+ * 鑾峰彇鍊嶆暟
+ *
+ * @param value 鍊�
+ */
+ public static long doubleValue(String value, String unitType) {
+ try {
+ double doubleValue = Double.parseDouble(value);
+ 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 {
+ 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;
+ }
+
+ }
+
+
+
+ /**
+ * 杞崲鐢甸噺(kWh)鍗曚綅
+ *
+ * @param value 鍊�
+ */
+ public static String convertKWHUnit(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 convertKWUnit(String value) {
+ 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 * 1000&&doubleValue < 1000 * 1000 * 1000*1000L) {
+ return UnitType.gW;
+ } else if (doubleValue >= 1000 * 1000 * 1000*1000L) {
+ return UnitType.tW;
+ } else {
+ return UnitType.kW;
+ }
+ } catch (Exception e) {
+ return UnitType.kW;
+ }
+
+ }
+
+ /**
+ * 杞崲(kWp)鍗曚綅
+ *
+ * @param value 鍊�
+ */
+ public static String convertKWPUnit(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;
+ }
+
}
@@ -183,6 +310,7 @@
}
}
+
/**
* 娌℃湁鏁版嵁鐣岄潰鐨勬牱寮�
*
@@ -199,6 +327,46 @@
GlideUtils.getDrawableGifAnimation(mContext, imageView);
textView.setText(str);
+ }
+ }
+
+
+ /**
+ * 璁剧疆瀛椾綋鐨勫瘜鏂囨湰宸茬粡涓嬪垝绾�
+ *
+ * @param view 褰撳墠缁勪欢
+ * @param str 鍐呭瀛楃涓�
+ * @param isUnderline 鏄惁鏄剧ず涓嬪垝绾匡紙true=鏄剧ず锛�
+ * @param spanCallBack 鐐瑰嚮鏂囨湰鍚庡洖璋冧簨浠�,涓嶉渶瑕佸洖璋冧簨浠跺~null
+ */
+ public void setSpan(TextView view, String str, boolean isUnderline, SpanCallBack spanCallBack) {
+
+ if (view == null || TextUtils.isEmpty(str)) {
+ return;
+ }
+ try {
+ SpannableStringBuilder registerTvStrSpannable = new SpannableStringBuilder(str);
+ registerTvStrSpannable.setSpan(new ClickableSpan() {
+ @Override
+ public void onClick(@NonNull View widget) {
+ if (spanCallBack != null) {
+ spanCallBack.onClick();
+ }
+ }
+
+ @Override
+ public void updateDrawState(@NonNull TextPaint ds) {
+ super.updateDrawState(ds);
+ //璁剧疆瀛椾綋棰滆壊
+ ds.setColor(HDLApp.getInstance().getResources().getColor(R.color.text_FFACACAC, null));
+ // 鍘绘帀涓嬪垝绾�
+ ds.setUnderlineText(isUnderline);
+ }
+
+
+ }, 0, str.length(), 0);
+ view.setText(registerTvStrSpannable);
+ } catch (Exception ignored) {
}
}
@@ -244,7 +412,7 @@
BaseEventBus baseEventBus = new BaseEventBus();
baseEventBus.setTopic(topic);
baseEventBus.setType(type);
- EventBus.getDefault().postSticky(baseEventBus);
+ EventBus.getDefault().post(baseEventBus);
}
/**
@@ -258,7 +426,11 @@
baseEventBus.setTopic(topic);
baseEventBus.setType(type);
baseEventBus.setData(o);
- EventBus.getDefault().postSticky(baseEventBus);
+ EventBus.getDefault().post(baseEventBus);
+ }
+
+ public interface SpanCallBack {
+ void onClick();
}
}
--
Gitblit v1.8.0