gunshi-project-ss/src/main/java/com/gunshi/project/xyt/util/DataHandleUtil.java

83 lines
2.4 KiB
Java
Raw Normal View History

2024-07-08 17:41:17 +08:00
package com.gunshi.project.xyt.util;
import java.math.BigDecimal;
import java.math.RoundingMode;
2024-07-15 10:14:51 +08:00
import java.util.ArrayList;
import java.util.Collection;
2024-07-08 17:41:17 +08:00
import java.util.List;
import java.util.Map;
public class DataHandleUtil {
/**
* BigDecimal0
* @param bigDecimal
* @return
*/
public static long BigDecimalIntegerPart(BigDecimal bigDecimal) {
BigDecimal integerPart = bigDecimal.setScale(0, RoundingMode.UP);
return integerPart.longValue();
}
2024-07-08 17:41:17 +08:00
public static BigDecimal calcData(BigDecimal rz, Map<BigDecimal, BigDecimal> map,List<BigDecimal> list) {
//库容曲线中最近的一组水位
BigDecimal lowerRz = new BigDecimal(0);
BigDecimal upperRz = new BigDecimal(0);
//库容曲线中最近的一组水位对应的库容
BigDecimal lowerW = new BigDecimal(0);
BigDecimal upperW = new BigDecimal(0);
2024-08-15 17:18:21 +08:00
for(int i=0;i<list.size()-1;i++){
2024-07-08 17:41:17 +08:00
if (rz.compareTo(list.get(i)) >= 0 && rz.compareTo(list.get(i+1)) <= 0) {
lowerRz = list.get(i);
upperRz = list.get(i+1);
lowerW = map.get(lowerRz);
upperW = map.get(upperRz);
break;
}
}
BigDecimal diff = rz.subtract(lowerRz);
return lowerW.add(diff.multiply(upperW.subtract(lowerW)).divide(upperRz.subtract(lowerRz),2,RoundingMode.UP));
}
2024-07-15 10:14:51 +08:00
public static List<List> tableData( List<Map<String, Object>> list){
List<List> list2 = new ArrayList<>();
Collection values;
for (int i = 0; i < list.size(); i++) {
values = list.get(i).values();
List objects = new ArrayList<>();
for (Object value : values) {
objects.add(value == null ? "" : value.toString());
}
list2.add(objects);
}
return list2;
}
2024-09-24 13:33:32 +08:00
public static <T> List<T> paginate(List<T> list, int pageNumber, int pageSize) {
if (list == null || list.isEmpty()) {
return new ArrayList<T>();
}
int totalSize = list.size();
int fromIndex = (pageNumber - 1) * pageSize;
if (fromIndex >= totalSize || fromIndex < 0) {
return new ArrayList<T>();
}
int toIndex = fromIndex + pageSize;
if (toIndex > totalSize) {
toIndex = totalSize;
}
return list.subList(fromIndex, toIndex);
}
2024-07-08 17:41:17 +08:00
}