使用bigdecimal的api代替自己写的逻辑判断

release
yishiqihuasheng 2 years ago
parent 730b4c2c23
commit f04ea18c83
  1. 24
      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.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@ -842,11 +843,11 @@ public class SDNYMainProcessController extends AbstractController {
sapInvoiceDetail.setZSM(getZSM(tax.toString())); sapInvoiceDetail.setZSM(getZSM(tax.toString()));
BigDecimal tax1 = tax.multiply(new BigDecimal("100")); BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
sapInvoiceDetail.setZTAX(tax1.toString()); sapInvoiceDetail.setZTAX(tax1.toString());
if (tax1.toPlainString().indexOf(".")>=3) { if (tax1.compareTo(new BigDecimal("100")) == 1) {
sapInvoiceDetail.setZTAX(snInvoiceDetail.getTaxRate()); sapInvoiceDetail.setZTAX(snInvoiceDetail.getTaxRate());
}else if (tax1.toPlainString().length()-tax1.toPlainString().indexOf(".")>3){ }else if (tax1.scale() > 2){
String substring = tax1.toPlainString().substring(0, tax1.toPlainString().indexOf(".") + 3); BigDecimal substring = tax1.setScale(2, RoundingMode.FLOOR);
sapInvoiceDetail.setZTAX(substring); sapInvoiceDetail.setZTAX(substring.toPlainString());
} }
} }
@ -909,7 +910,7 @@ public class SDNYMainProcessController extends AbstractController {
if (taxRate != null && !taxRate.contains("%")) { if (taxRate != null && !taxRate.contains("%")) {
BigDecimal bigDecimal = new BigDecimal(taxRate); BigDecimal bigDecimal = new BigDecimal(taxRate);
BigDecimal multiply = bigDecimal.multiply(new BigDecimal("100")); BigDecimal multiply = bigDecimal.multiply(new BigDecimal("100"));
info.setZTAX(multiply.toString()); info.setZTAX(multiply.toPlainString());
info.setZSM(getZSM(taxRate)); info.setZSM(getZSM(taxRate));
} }
if (taxRate != null && taxRate.contains("%")) { if (taxRate != null && taxRate.contains("%")) {
@ -922,13 +923,12 @@ public class SDNYMainProcessController extends AbstractController {
info.setZSM(getZSM(divide.toString())); info.setZSM(getZSM(divide.toString()));
} }
if (taxRate != null && taxRate.contains(".") && !taxRate.contains("%")) { if (taxRate != null && taxRate.contains(".") && !taxRate.contains("%")) {
if (taxRate.length() > 4) {
taxRate = taxRate.substring(0, 4); BigDecimal tax = new BigDecimal(taxRate);
BigDecimal tax = new BigDecimal(taxRate); info.setZSM(getZSM(tax.toPlainString()));
info.setZSM(getZSM(tax.toString())); BigDecimal tax1 = tax.multiply(new BigDecimal("100"));
BigDecimal tax1 = tax.multiply(new BigDecimal("100")); info.setZTAX(tax1.setScale(2,RoundingMode.FLOOR).toPlainString());
info.setZTAX(tax1.toString());
}
} }
if (taxRate != null && "0".equals(taxRate)) { if (taxRate != null && "0".equals(taxRate)) {
info.setZTAX("0.00"); info.setZTAX("0.00");

Loading…
Cancel
Save