From f04ea18c8385f962f814286f02e277b417e5ace1 Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Mon, 3 Jul 2023 16:12:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8bigdecimal=E7=9A=84api?= =?UTF-8?q?=E4=BB=A3=E6=9B=BF=E8=87=AA=E5=B7=B1=E5=86=99=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SDNYMainProcessController.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java index de8d48e4..8c8dd448 100644 --- a/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java +++ b/dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java @@ -33,6 +33,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -842,11 +843,11 @@ public class SDNYMainProcessController extends AbstractController { sapInvoiceDetail.setZSM(getZSM(tax.toString())); BigDecimal tax1 = tax.multiply(new BigDecimal("100")); sapInvoiceDetail.setZTAX(tax1.toString()); - if (tax1.toPlainString().indexOf(".")>=3) { + if (tax1.compareTo(new BigDecimal("100")) == 1) { sapInvoiceDetail.setZTAX(snInvoiceDetail.getTaxRate()); - }else if (tax1.toPlainString().length()-tax1.toPlainString().indexOf(".")>3){ - String substring = tax1.toPlainString().substring(0, tax1.toPlainString().indexOf(".") + 3); - sapInvoiceDetail.setZTAX(substring); + }else if (tax1.scale() > 2){ + BigDecimal substring = tax1.setScale(2, RoundingMode.FLOOR); + sapInvoiceDetail.setZTAX(substring.toPlainString()); } } @@ -909,7 +910,7 @@ public class SDNYMainProcessController extends AbstractController { if (taxRate != null && !taxRate.contains("%")) { BigDecimal bigDecimal = new BigDecimal(taxRate); BigDecimal multiply = bigDecimal.multiply(new BigDecimal("100")); - info.setZTAX(multiply.toString()); + info.setZTAX(multiply.toPlainString()); info.setZSM(getZSM(taxRate)); } if (taxRate != null && taxRate.contains("%")) { @@ -922,13 +923,12 @@ public class SDNYMainProcessController extends AbstractController { info.setZSM(getZSM(divide.toString())); } if (taxRate != null && taxRate.contains(".") && !taxRate.contains("%")) { - if (taxRate.length() > 4) { - taxRate = taxRate.substring(0, 4); - BigDecimal tax = new BigDecimal(taxRate); - info.setZSM(getZSM(tax.toString())); - BigDecimal tax1 = tax.multiply(new BigDecimal("100")); - info.setZTAX(tax1.toString()); - } + + BigDecimal tax = new BigDecimal(taxRate); + info.setZSM(getZSM(tax.toPlainString())); + BigDecimal tax1 = tax.multiply(new BigDecimal("100")); + info.setZTAX(tax1.setScale(2,RoundingMode.FLOOR).toPlainString()); + } if (taxRate != null && "0".equals(taxRate)) { info.setZTAX("0.00");