Explorar el Código

开票金额修改为实付金额,开票服务费优惠设置为折扣行

skyline hace 2 años
padre
commit
54a942bfec

+ 3 - 3
service/src/main/java/com/kym/service/miniapp/impl/InvoiceServiceImpl.java

@@ -84,10 +84,10 @@ public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> impl
                 .toList();
 
         // 校验开票金额大于0
-        var totalMoney = orders.stream().mapToInt(ChargeOrder::getTotalMoney).sum();
+        var totalPayAmount = orders.stream().mapToInt(ChargeOrder::getPayAmount).sum();
         var elecMoney = orders.stream().mapToInt(ChargeOrder::getElecMoney).sum();
         var serviceMoney = orders.stream().mapToInt(ChargeOrder::getServiceMoney).sum();
-        if (!(totalMoney > 0 && elecMoney > 0 && serviceMoney > 0)) {
+        if (!(totalPayAmount > 0 && elecMoney > 0 && serviceMoney > 0)) {
             throw new BusinessException("订单总金额或总电费或总服务费金额异常");
         }
         // 组装invoice
@@ -96,7 +96,7 @@ public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> impl
                 .setOpenid(StpUtil.getSession().getString("openid"))
                 .setApplyId(OrderUtils.getOrderNo())
                 .setOrderDetails(orderDetails) // 订单信息
-                .setInvoiceAmount(totalMoney)   // 总金额
+                .setInvoiceAmount(totalPayAmount)   // 总金额
                 .setElecMoney(elecMoney)    // 电费
                 .setElecMoney(serviceMoney)    // 服务费
                 .setTotalPower(orders.stream().mapToDouble(ChargeOrder::getTotalPower).sum())   // 总电量

+ 2 - 2
service/src/main/java/com/kym/service/wechat/impl/WxPayServiceImpl.java

@@ -802,11 +802,11 @@ public class WxPayServiceImpl implements WxPayService {
             itemList.add(serviceMoneyItem);
         }
 
-        // 服务费优惠 税务商品编码:3040100000000000000
+        // 服务费优惠 税务商品编码:3040100000000000000  注意:折扣行必须是被折扣行的下一行
         var serviceMoneyDiscount = -invoice.getOrderDetails().stream().mapToInt(InvoiceOrderDetail::getServiceMoneyDiscount).sum();
         // 必须为负数
         if (serviceMoneyDiscount < 0) {
-            var serviceMoneyDiscountItem = new FaPiao.FaPiaoInfomation.IssueItem().setTotal_amount(serviceMoneyDiscount).setTax_code("3040100000000000000");
+            var serviceMoneyDiscountItem = new FaPiao.FaPiaoInfomation.IssueItem().setTotal_amount(serviceMoneyDiscount).setTax_code("3040100000000000000").setDiscount(true);
             itemList.add(serviceMoneyDiscountItem);
         }