package com.fizz.business.utils;

import cn.hutool.core.util.NumberUtil;

import java.math.BigDecimal;

import static com.fizz.business.constants.CommonConstants.RO;


/**
 * @author chenhao
 * @date 2023/05/15
 */
public class CalcUtil {

    /**
     * 计算带钢长度
     *
     * @param weight 重量[T]
     * @param thick  厚度[mm]
     * @param width  宽度[mm]
     * @return 长度[m]
     */
    public static double calcCoilLength(double weight, double thick, double width) {
        double v = weight / (thick * width * RO) * 1000 * 1000;
        return NumberUtil.round(v, 0).doubleValue();
    }

    /**
     * 计算带钢重量
     *
     * @param length 长度[m]
     * @param thick  厚度[mm]
     * @param width  宽度[mm]
     * @return 重量[T]
     */
    public static double calcCoilWeight(double length, BigDecimal thick, BigDecimal width) {
        double v = thick.doubleValue() * width.doubleValue() * length * RO / (1000 * 1000);
        return NumberUtil.round(v, 3).doubleValue();
    }

    /**
     * 计算钢卷外径
     *
     * @param weight 重量[T]
     * @param width  宽度[mm]
     * @param innerDiameter  内径[mm]
     * @return 外径[mm]
     */
    public static double calcOuterDiameter(double weight, double width, double innerDiameter) {
        double innerRadius = (innerDiameter / 1000) / 2;
        double v = 2 * Math.sqrt(((weight * 1000) / (width * RO) + Math.PI * Math.pow(innerRadius, 2)) / Math.PI) * 1000;
        return NumberUtil.round(v, 0).doubleValue();
    }
}
