Helius
2021-01-12 c9b157e19d101fd2d9a79c3db673f0c2cacd481c
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -159,8 +159,22 @@
        // 计算订单折扣金额,收款情况下 计算订单总额
        double zkTotal = 0.0;
        // 判断是否为退款
        String orderStatus = Dictionary.ORDER_STATU_DFK;
        if (Dictionary.ORDER_STATU_TK.equals(sysOrder.getStatu())) {
            orderStatus = Dictionary.ORDER_STATU_TK;
        }
        // 页面的pageOrder 参数只包含支付金额信息,不带有购买商品
        for (SysOrderItem item : sysOrder.getItems()) {
            // 若为退款,则先更新原有数量
            if (orderStatus.equals(Dictionary.ORDER_STATU_TK)) {
                SysOrderItem sysOrderItem = new SysOrderItem();
                sysOrderItem.setId(item.getId());
                sysOrderItem.setCount(item.getPreCount() - item.getCount());
                orderItemDao.update(sysOrderItem);
            }
            item.setId(null);
            ShoppingGoods shoppingGoods = shoppingGoodsDao.selectById(item.getGoodsId());
            item.setType(shoppingGoods.getGoodType());
@@ -171,12 +185,12 @@
            // 订单欠款减去支付金额 设置实际欠款
            Double itemZkTotal = MoneyUtil.mul(item.getZkPrice(), Double.valueOf(item.getCount()));
            zkTotal=MoneyUtil.add(zkTotal, itemZkTotal);
            item.setStatus(Dictionary.ORDER_STATU_DFK);
            item.setStatus(orderStatus);
        }
        SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
        sysOrder.setZkTotal(zkTotal);
        sysOrder.setStatu(Dictionary.ORDER_STATU_DFK);
        sysOrder.setStatu(orderStatus);
        sysOrder.setStaffId(user.getSuId());
        sysOrder.setCompanyId(user.getCompanyId());
@@ -494,6 +508,10 @@
            }
            sysOrderFlowDao.insert(flow);
            i++;
        }
        if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) {
            orderStatus = Dictionary.ORDER_STATU_TK;
        }
        // 更新收款状态
@@ -1205,4 +1223,23 @@
    public List<RankingVo> findStaffSaleAchieveRanking(SysOrder sysOrder) {
        return sysOrderDao.selectStaffSaleAchieveRanking(sysOrder);
    }
    @Override
    public void refundOrderMoney(SysOrder pageOrder) {
        changeOrderStatu(pageOrder);
        // 设置会员充值卡使用情况
        addMoneyCardUse(pageOrder);
        // 新增出库单
        addOutStore(pageOrder);
        // 改变客户项目套餐使用情况
        addTaocanProj(pageOrder);
        // 设置业绩
        achieveNewService.addAchaeveByOrder(pageOrder);
        setShopSelCount(pageOrder);
    }
}