From b6dd47b05107fc36d8ff4f7f29a4446521f95503 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期四, 02 一月 2025 18:44:28 +0800 Subject: [PATCH] 代码提交 --- ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java | 50 +++++++++++++++++++++++++++++++------------------- 1 files changed, 31 insertions(+), 19 deletions(-) diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java index 1669734..a54caba 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/tax/TaxtUtils.java @@ -5,17 +5,20 @@ import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; +import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Collection; import java.util.List; /** - * 鍔冲姟鎶ラ叕涓◣璁$畻瑙勫垯 (鍙兘涓嶇瓟鍏叡鐢ㄦ硶锛岀敤鍓嶅厛鐪嬬湅鏄惁閫傚悎) + * 鍔冲姟鎶ラ叕涓◣璁$畻瑙勫垯 (鍙兘涓嶉�傚悎鍏叡鐢ㄦ硶锛岀敤鍓嶅厛鐪嬬湅鏄惁閫傚悎) * * @author ls */ +@Slf4j public class TaxtUtils { /** * 鍒嗛殧绗� @@ -29,32 +32,35 @@ */ public static String getTaxation(BigDecimal money) { //褰揦<=800鏃讹紝涓◣T=0 - BigDecimal taxMoney = new BigDecimal(0.0); + BigDecimal taxMoney = BigDecimal.valueOf(0.0); //褰�800<X<=4000鏃讹紝涓◣T=(X-800)*20% if (money.doubleValue() > 800 && money.doubleValue() <= 4000) { BigDecimal subtract = money.subtract(new BigDecimal(800)); - taxMoney = subtract.multiply(new BigDecimal(0.2)); + taxMoney = subtract.multiply(BigDecimal.valueOf(0.2)); } - BigDecimal multiply = money.multiply(new BigDecimal(0.8)); + BigDecimal multiply = money.multiply(BigDecimal.valueOf(0.8)); // 褰揦>4000鏃� //(1)褰揦*(1-20%)<=20000鏃讹紝涓◣T=X*(1-20%)*20% if (money.doubleValue() > 4000 && multiply.doubleValue() <= 20000) { - taxMoney = multiply.multiply(new BigDecimal(0.2)); + taxMoney = multiply.multiply(BigDecimal.valueOf(0.2)); } //(2)褰�20000<X*(1-20%)<=50000鏃讹紝涓◣T=X*(1-20%)*30%-2000 if (multiply.doubleValue() > 20000 && multiply.doubleValue() <= 50000) { - taxMoney = multiply.multiply(new BigDecimal(0.3)).subtract(new BigDecimal(2000)); + taxMoney = multiply.multiply(BigDecimal.valueOf(0.3)).subtract(BigDecimal.valueOf(2000)); } //X*(1-20%)>50000鏃讹紝涓◣T=X*(1-20%)*40%-7000 if (multiply.doubleValue() > 50000) { - taxMoney = multiply.multiply(new BigDecimal(0.4)).subtract(new BigDecimal(7000)); + taxMoney = multiply.multiply(BigDecimal.valueOf(0.4)).subtract(BigDecimal.valueOf(7000)); } - DecimalFormat decimalFormat = new DecimalFormat("#.00"); + DecimalFormat decimalFormat = new DecimalFormat("#0.00"); + //杩涗竴娉� + decimalFormat.setRoundingMode(RoundingMode.CEILING); String format = decimalFormat.format(taxMoney); + log.info("绋庨噾涓猴細{}", format); return format; } @@ -66,39 +72,45 @@ */ public static String getTaxationBefore(BigDecimal money) { //褰揦<=800鏃讹紝涓◣T=0 - BigDecimal taxMoney = new BigDecimal(0.0); + BigDecimal taxMoney = BigDecimal.valueOf(0.00); + if (money.doubleValue() <= 800) { + taxMoney = money; + } //绗竴涓弬鏁版槸闄ゆ暟锛岀浜屼釜鍙傛暟浠h〃淇濈暀鍑犱綅灏忔暟锛岀涓変釜浠h〃鐨勬槸浣跨敤鐨勬ā寮� if (money.doubleValue() > 800 && money.doubleValue() <= 3360) { - taxMoney = money.subtract(new BigDecimal(160)).divide(new BigDecimal(0.8),2,BigDecimal.ROUND_UP); + taxMoney = money.subtract(new BigDecimal(160)).divide(new BigDecimal(0.8), 2, BigDecimal.ROUND_CEILING); } if (money.doubleValue() > 3360 && money.doubleValue() <= 21000) { - taxMoney = money.divide(new BigDecimal(0.84),2,BigDecimal.ROUND_DOWN); + taxMoney = money.divide(new BigDecimal(0.84), 2, BigDecimal.ROUND_CEILING); } - if (money.doubleValue() > 21000 && money.doubleValue() <= 40000) { + if (money.doubleValue() > 21000 && money.doubleValue() <= 49500) { money = money.subtract(new BigDecimal(2000)); - taxMoney = money.divide(new BigDecimal(0.76),2,BigDecimal.ROUND_DOWN); + taxMoney = money.divide(new BigDecimal(0.76), 2, BigDecimal.ROUND_CEILING); } - if (money.doubleValue() > 40000) { + if (money.doubleValue() > 49500) { money = money.subtract(new BigDecimal(7000)); - taxMoney = money.divide(new BigDecimal(0.68),2,BigDecimal.ROUND_DOWN); + taxMoney = money.divide(new BigDecimal(0.68), 2, BigDecimal.ROUND_CEILING); } - DecimalFormat decimalFormat = new DecimalFormat("#.00"); + DecimalFormat decimalFormat = new DecimalFormat("#0.00"); + //杩涗竴娉� + decimalFormat.setRoundingMode(RoundingMode.CEILING); String format = decimalFormat.format(taxMoney); + log.info("绋庡墠閲戦涓猴細{}", format); return format; } public static void main(String[] args) { - String taxation = getTaxation(new BigDecimal(21000)); - String taxationBefore = getTaxationBefore(new BigDecimal(52000)); + String taxation = getTaxation(BigDecimal.valueOf(43000)); + String taxationBefore = getTaxationBefore(BigDecimal.valueOf(205892.36)); - System.out.println(taxation + " " + taxationBefore); + System.out.println("taxation:" + taxation + "============taxationBefore: " + taxationBefore); } } -- Gitblit v1.9.3