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 { public static BigDecimal calcData(BigDecimal rz, Map map,List 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= 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 tableData( 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; } }