增加公共方法
This commit is contained in:
@@ -24,6 +24,7 @@
|
|||||||
<bcprov-jdk15on.version>1.68</bcprov-jdk15on.version>
|
<bcprov-jdk15on.version>1.68</bcprov-jdk15on.version>
|
||||||
<jackson.version>2.13.4.1</jackson.version>
|
<jackson.version>2.13.4.1</jackson.version>
|
||||||
<jackson.jsr310.version>2.17.0</jackson.jsr310.version>
|
<jackson.jsr310.version>2.17.0</jackson.jsr310.version>
|
||||||
|
<jsr-version>3.0.2</jsr-version>
|
||||||
<slf4j.version>1.7.32</slf4j.version>
|
<slf4j.version>1.7.32</slf4j.version>
|
||||||
<logback.version>1.2.12</logback.version>
|
<logback.version>1.2.12</logback.version>
|
||||||
<easypoi.version>4.4.0</easypoi.version>
|
<easypoi.version>4.4.0</easypoi.version>
|
||||||
@@ -97,6 +98,13 @@
|
|||||||
<version>${jackson.jsr310.version}</version>
|
<version>${jackson.jsr310.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.code.findbugs</groupId>
|
||||||
|
<artifactId>jsr305</artifactId>
|
||||||
|
<version>${jsr-version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<!--springboot相关-->
|
<!--springboot相关-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
|||||||
@@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user