增加公共方法

This commit is contained in:
2025-04-10 09:12:32 +08:00
parent ab04775db1
commit 9860f1c54f
2 changed files with 72 additions and 0 deletions

View File

@@ -24,6 +24,7 @@
<bcprov-jdk15on.version>1.68</bcprov-jdk15on.version>
<jackson.version>2.13.4.1</jackson.version>
<jackson.jsr310.version>2.17.0</jackson.jsr310.version>
<jsr-version>3.0.2</jsr-version>
<slf4j.version>1.7.32</slf4j.version>
<logback.version>1.2.12</logback.version>
<easypoi.version>4.4.0</easypoi.version>
@@ -97,6 +98,13 @@
<version>${jackson.jsr310.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>${jsr-version}</version>
</dependency>
<!--springboot相关-->
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@@ -0,0 +1,64 @@
package com.njcn.common.utils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
* @author hongawen
* @version 1.0
* @data 2025/3/28 11:23
*/
public class PubUtils {
/**
* 根据参数返回double的四舍五入值
*
* @param i 保留的位数
* @param value double原值
*/
public static double doubleRound(int i, double value) {
BigDecimal bp = new BigDecimal(value);
return bp.setScale(i, RoundingMode.HALF_UP).doubleValue();
}
/**
* 根据参数返回double的四舍五入值
*
* @param i 保留的位数
* @param value double原值
*/
public static String doubleRoundStr(int i, double value) {
BigDecimal bp = new BigDecimal(value);
return bp.setScale(i, RoundingMode.HALF_UP).toPlainString();
}
public static void sortByDoubleValue(List<Map<String, String>> list, String sortKey) {
if (list == null || list.isEmpty()) {
return;
}
list.sort((map1, map2) -> {
Double value1 = parseDoubleSafely(map1.get(sortKey));
Double value2 = parseDoubleSafely(map2.get(sortKey));
return Double.compare(value1, value2);
});
}
private static double parseDoubleSafely(String value) {
return Optional.ofNullable(value)
.map(v -> {
try {
return Double.parseDouble(v);
} catch (NumberFormatException e) {
// 无效值排在最前
return Double.MIN_VALUE;
}
})
// null值排在最前
.orElse(Double.MIN_VALUE);
}
}