From c9b157e19d101fd2d9a79c3db673f0c2cacd481c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 12 Jan 2021 18:10:50 +0800
Subject: [PATCH] modify

---
 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java |   41 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
index 42ea6ff..bef07ea 100644
--- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
+++ b/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);
+    }
 }

--
Gitblit v1.9.1