From 6bb7742033eafdc838c1ae5c11f044ff2adc8553 Mon Sep 17 00:00:00 2001 From: xyiege Date: Sun, 27 Nov 2022 09:03:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/chjyj/szwh/utils/TaxUtils.java | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/main/java/cn/chjyj/szwh/utils/TaxUtils.java diff --git a/src/main/java/cn/chjyj/szwh/utils/TaxUtils.java b/src/main/java/cn/chjyj/szwh/utils/TaxUtils.java new file mode 100644 index 0000000..cab3cac --- /dev/null +++ b/src/main/java/cn/chjyj/szwh/utils/TaxUtils.java @@ -0,0 +1,90 @@ +package cn.chjyj.szwh.utils; + +import cn.chjyj.szwh.bean.OrderGoodsDetail; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 发票信息工具 + */ +public class TaxUtils { + /** + * 计算订单发税务 发票信息,万元票 + * @param orglist 商品详情list + * @return + */ + public static List TaxSpilt(List orglist){ + List taxlist = new ArrayList(); + //loop + for(OrderGoodsDetail odg:orglist){ + //服务费 + BigDecimal serviceCharge = odg.getServiceCharge(); + //万元票,单张顶格金额 + BigDecimal topFee = new BigDecimal("9999.00"); + //服务费小于等于0 + if(serviceCharge.compareTo(new BigDecimal("0"))!=1){ + continue; + } + /** + * 服务费超过9999,万元票需要多张 + * 计算方法:第一张发票金额为 9999,第二张发票金额显示剩余,若额度仍然超过 9999,继续出现第三张发票 + */ + // 付费超过 9999 + if(serviceCharge.compareTo(topFee) ==1){ + //统计需要的发票数量 + int tnum = countTaxPapers(serviceCharge.longValue(),1); + for(int i=0;i0){ + num = countTaxPapers(left,num); + return num+1; + } + return num; + } +}