package com.ruoyi.web.base.util;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * @Project : huimv.shiwan
 * @Package : com.ruoyi.web.base.util
 * @Description : TODO
 * @Author : yuxuexuan
 * @Create : 2026-03-02 10:37
 **/
public  class  NumUtils {

    public static int substringToInt(String input) {
        // 空值检查
        if (input == null) {
            throw new IllegalArgumentException("输入字符串不能为null");
        }

        // 长度检查
        if (input.length() < 3) {
            throw new IllegalArgumentException("输入字符串长度必须至少为3位");
        }

        // 截取后三位
        String lastThree = input.substring(input.length() - 3);

        try {
            // 转换为整数
            return Integer.parseInt(lastThree)+1;
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("后三位'" + lastThree + "'不是有效的数字");
        }
    }

    public static String generateString(String prefix, Integer numberStr) {
        // 获取当前日期并格式化为yyyyMMdd
        LocalDate currentDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        String formattedDate = currentDate.format(formatter);

        String format = String.format("%03d", numberStr);
        // 拼接结果
        return prefix + formattedDate + format;
    }
    public static String generateString2(String prefix, Integer numberStr) {
        // 获取当前日期并格式化为yyyyMMdd
        LocalDate currentDate = LocalDate.now();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        String formattedDate = currentDate.format(formatter);

        String format = String.format("%06d", numberStr);
        // 拼接结果
        return prefix + formattedDate + format;
    }



    public static int substringToInt2(String input) {
        // 空值检查
        if (input == null) {
            throw new IllegalArgumentException("输入字符串不能为null");
        }

        // 长度检查
        if (input.length() < 3) {
            throw new IllegalArgumentException("输入字符串长度必须至少为3位");
        }

        // 截取后三位
        String lastThree = input.substring(input.length() - 3);

        try {
            // 转换为整数
            return Integer.parseInt(lastThree)+1;
        } catch (NumberFormatException e) {
            throw new IllegalArgumentException("后三位'" + lastThree + "'不是有效的数字");
        }
    }
    public static String addStringToDouble(String num1,String num2) {
        // 将字符串转换为 BigDecimal（避免浮点数精度问题）
        BigDecimal a = new BigDecimal(num1);
        BigDecimal b = new BigDecimal(num2);

        // 执行加法运算
        BigDecimal sum = a.add(b);

        // 设置保留两位小数，使用四舍五入模式
        BigDecimal roundedSum = sum.setScale(2, RoundingMode.HALF_UP);

        // 返回字符串形式（确保格式为两位小数，如 "5.00"）
        return roundedSum.toString();

    }

}
