83 lines
2.4 KiB
Java
83 lines
2.4 KiB
Java
package com.gunshi.project.xyt.util;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
|
|
public class DataHandleUtil {
|
|
|
|
/**
|
|
* 判断BigDecimal的小数部分是否为0
|
|
* @param bigDecimal
|
|
* @return
|
|
*/
|
|
public static long BigDecimalIntegerPart(BigDecimal bigDecimal) {
|
|
BigDecimal integerPart = bigDecimal.setScale(0, RoundingMode.UP);
|
|
return integerPart.longValue();
|
|
}
|
|
|
|
|
|
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);
|
|
|
|
for(int i=0;i<list.size()-1;i++){
|
|
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));
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
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);
|
|
}
|
|
|
|
|
|
}
|