gongzuming
2024-09-19 a768dc3daa04d35fedfbe75c0a59b9b2545b85c4
src/main/java/com/mzl/flower/service/payment/OrderItemSettlementService.java
@@ -110,9 +110,9 @@
            int replaceNum = 0;//补货数量
            BigDecimal replaceFee = new BigDecimal(0);//补货扣款
            int lackNum = 0;//缺货数量
            BigDecimal lackFeeSupplier = new BigDecimal(0);//缺货扣款
            BigDecimal lackFeePartner = new BigDecimal(0);//缺货扣款
            BigDecimal lackFeePlatform = new BigDecimal(0);//缺货扣款
            BigDecimal lackFeeSupplier = new BigDecimal(0);//供应商缺货扣款
            BigDecimal lackFeePartner = new BigDecimal(0);//合伙人缺货扣款
            BigDecimal lackFeePlatform = new BigDecimal(0);//平台缺货扣款
            if (orderItemCheckList != null && orderItemCheckList.size() > 0) {
                for (OrderItemCheck c : orderItemCheckList) {
                    Integer num = c.getNum();
@@ -120,16 +120,21 @@
                    String type = c.getType();
                    if (Constants.CHECK_TYPE.reduce.name().equals(type)) {
                        checkNum = num == null ? 0 : num;
                        checkFee = amount == null ? new BigDecimal(0) : amount;
                        checkFee = getAmount(amount);
                    } else if (Constants.CHECK_TYPE.lack.name().equals(type)) {
                        lackNum = num == null ? 0 : num;
                        lackFeeSupplier = oi.getSupplierPrice().multiply(new BigDecimal(lackNum));
                        lackFeePartner = oi.getMarkupPartner().multiply(new BigDecimal(lackNum));
                        lackFeePlatform = oi.getMarkupOne().multiply(new BigDecimal(lackNum));
                        lackFeePlatform = lackFeePlatform.add(oi.getMarkupTwo().multiply(new BigDecimal(lackNum)));
                        BigDecimal markupPartner = getAmount(oi.getMarkupPartner());
                        lackFeePartner = markupPartner.multiply(new BigDecimal(lackNum));
                        BigDecimal markupOne = getAmount(oi.getMarkupOne());
                        BigDecimal markupTwo = getAmount(oi.getMarkupTwo());
                        BigDecimal ppPrice = markupOne.add(markupTwo).subtract(getAmount(oi.getCouponAmount()));//1次加价+2次加价-优惠券金额
                        lackFeePlatform = lackFeePlatform.add(ppPrice.multiply(new BigDecimal(lackNum)));
                    } else if (Constants.CHECK_TYPE.replace.name().equals(type)) {
                        replaceNum = num == null ? 0 : num;
                        replaceFee = amount == null ? new BigDecimal(0) : amount;
                        replaceFee = getAmount(amount);
                    }
                }
            }
@@ -146,9 +151,9 @@
            if (serviceFeeRate == null) {
                ois.setServiceFeeRate(getFeeRate(oi));
            }
            ois.setServiceFee(getServiceFee(oi, replaceNum, lackNum, ois.getServiceFeeRate()));
            ois.setServiceFee(getServiceFee(oi, replaceNum, lackNum, ois.getServiceFeeRate()));//服务费
            ois.setStationFee(getStationFee(oi, replaceNum, lackNum));
            ois.setStationFee(getStationFee(oi, replaceNum, lackNum));//集货站运费
        }
        //售后计算
@@ -218,7 +223,7 @@
    private void setPartnerIncome(OrderItem oi, OrderItemSettlement ois){
        //合伙人结算:合伙人加价-理赔-缺货扣款 = 结算金额
        BigDecimal markupPartner = oi.getMarkupPartner() == null ? new BigDecimal(0) : oi.getMarkupPartner();
        BigDecimal markupPartner = getAmount(oi.getMarkupPartner());
        BigDecimal totalAmount = markupPartner.multiply(new BigDecimal(oi.getNum()));
        BigDecimal settlementAmount = totalAmount.subtract(ois.getSalesFeePartner()).subtract(ois.getLackFeePartner());//结算金额
        if(settlementAmount.doubleValue() < 0){