zhijiezhao 3 years ago
parent
commit
a1e11dac02
1 changed files with 26 additions and 24 deletions
  1. 26 24
      src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

+ 26 - 24
src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

@@ -1168,7 +1168,7 @@ public class PayOrderServiceImpl implements PayOrderService {
             Double paidAmount = payOrderMapper.getOrderProductPaidAmount(orderProduct.getOrderProductId());
             if (paidAmount != null && MathUtil.compare(paidAmount, 0) > 0) {
                 costPrice = MathUtil.sub(costPrice, paidAmount).doubleValue();
-                splitAmount = MathUtil.sub(splitAmount, paidAmount).doubleValue();
+                splitAmount = MathUtil.sub(splitAmount, costPrice).doubleValue();
             }
             if (paidAmount == null || MathUtil.compare(paidAmount, costPrice) < 0) {
                 // 待分账金额>=本次待分账金额
@@ -1180,32 +1180,34 @@ public class PayOrderServiceImpl implements PayOrderService {
                 }
             }
             String commercialCode = payOrderMapper.getShopCommercialCode(orderProduct.getShopId());
-            SplitAccountPo splitAccount = new SplitAccountPo();
-            splitAccount.setOrderId(order.getOrderId());
-            splitAccount.setOrderProductId(orderProduct.getOrderProductId());
-            splitAccount.setShopId(orderProduct.getShopId());
-            splitAccount.setSplitAccount(costPrice);
-            splitAccount.setProductType(1);
-            if (StringUtils.isNotBlank(commercialCode)) {
-                // 供应商拥有子商户号
-                splitAccount.setType(4);
-                splitAccount.setSubUserNo(commercialCode);
-            } else {
-                if (1 == orderProduct.getInvoiceType()) {
-                    // 开增值税发票,则分账到公账-专票
-                    splitAccount.setType(1);
-                    splitAccount.setSubUserNo(PayUtil.publicAccountNo);
-                } else if (2 == orderProduct.getInvoiceType()) {
-                    // 开普通发票,则分账到公账-普票
-                    splitAccount.setType(3);
-                    splitAccount.setSubUserNo(PayUtil.commonInvoiceNo);
+            if (costPrice > 0) {
+                SplitAccountPo splitAccount = new SplitAccountPo();
+                splitAccount.setOrderId(order.getOrderId());
+                splitAccount.setOrderProductId(orderProduct.getOrderProductId());
+                splitAccount.setShopId(orderProduct.getShopId());
+                splitAccount.setSplitAccount(costPrice);
+                splitAccount.setProductType(1);
+                if (StringUtils.isNotBlank(commercialCode)) {
+                    // 供应商拥有子商户号
+                    splitAccount.setType(4);
+                    splitAccount.setSubUserNo(commercialCode);
                 } else {
-                    // 不能开票,则分账到私账-无票
-                    splitAccount.setType(2);
-                    splitAccount.setSubUserNo(PayUtil.privateAccountNo);
+                    if (1 == orderProduct.getInvoiceType()) {
+                        // 开增值税发票,则分账到公账-专票
+                        splitAccount.setType(1);
+                        splitAccount.setSubUserNo(PayUtil.publicAccountNo);
+                    } else if (2 == orderProduct.getInvoiceType()) {
+                        // 开普通发票,则分账到公账-普票
+                        splitAccount.setType(3);
+                        splitAccount.setSubUserNo(PayUtil.commonInvoiceNo);
+                    } else {
+                        // 不能开票,则分账到私账-无票
+                        splitAccount.setType(2);
+                        splitAccount.setSubUserNo(PayUtil.privateAccountNo);
+                    }
                 }
+                list.add(splitAccount);
             }
-            list.add(splitAccount);
             if (MathUtil.compare(splitAmount, 0) == 0) {
                 break;
             }