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

38 lines
1.1 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;
import java.util.List;
import java.util.Map;
public class DataHandleUtil {
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();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));
}
}