package com.jjt.order.utils;

import com.jjt.common.utils.StringUtils;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * OrderExportUtils$
 *
 * @author wukai
 * @date 2025/2/12 02:27
 */
public class CalcUtil {
    /**
     * 根据规格计算平方米克重
     *
     * @param spec 规格
     * @return 平方米克重
     */
    public static BigDecimal calcGsm(String spec) {
        BigDecimal gsm = BigDecimal.ZERO;
        if (StringUtils.isNotEmpty(spec)) {
            String[] tmp = spec.split("\\*");
            if (tmp.length == 3) {
                //长
                float length = Float.parseFloat(tmp[0]);
                //宽
                float width = Float.parseFloat(tmp[1]);
                //重量，单位kg，需要转换成克
                int weight = (int) (Float.parseFloat(tmp[2]) * 1000);
                gsm = calcGsm(length, width, weight);
            }
        }
        return gsm;
    }

    public static BigDecimal calcGsm(float length, float width, int weight) {
        BigDecimal gsm = BigDecimal.ZERO;
        //面积
        BigDecimal area = BigDecimal.valueOf(length).multiply(BigDecimal.valueOf(width));
        if (area.compareTo(BigDecimal.ZERO) != 0) {
            //计算平方米克重 重量除以面积
            gsm = BigDecimal.valueOf(weight).divide(area, 2, RoundingMode.HALF_UP);
        }

        return gsm;
    }
}
