From 38072cc8650d65b1f229bb0160909421fbbfde07 Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sun, 07 Mar 2021 20:40:20 +0800 Subject: [PATCH] 修改数据库 --- zq-erp/src/main/resources/config/db/increment/美度业绩升级.sql | 3 zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java | 26 ------ zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html | 8 -- zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html | 3 zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java | 20 +++- zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java | 2 zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 128 +++++++++++++++++++------------- zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml | 10 ++ zq-erp/src/main/resources/readme-jyy | 1 9 files changed, 107 insertions(+), 94 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java index bd6e51b..4371690 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/OrderController.java @@ -42,7 +42,6 @@ import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; -import java.util.Date; import java.util.List; /** @@ -154,7 +153,6 @@ */ @RequestMapping(value = "/refundOrder") @ResponseBody - @Transactional(rollbackFor = Exception.class) public AjaxResult refundOrder(@RequestBody SysOrder sysOrder) { //储值卡订单不能通过退款渠道退款 if(CollectionUtils.isNotEmpty(sysOrder.getItems())){ @@ -165,30 +163,6 @@ } } } - SysUsers user = getMe(); - sysOrder.setStaffId(user.getSuId()); - sysOrder.setCompanyId(user.getCompanyId()); - sysOrder.setShopId(user.getShopId()); - sysOrder.setStatu(Dictionary.ORDER_STATU_TK); - sysOrder.setOrderTime(new Date()); - sysOrder.setOrderNo(codeService.getRefundOrderNo()); - //新增订单 - sysOrderDao.insert(sysOrder); - //插入明细 - for (SysOrderItem item : sysOrder.getItems()) { - SysOrderItem oldItem=orderItemDao.selectById(item.getId()); - item.setType(oldItem.getType()); - // 取负数 - item.setStatus(Dictionary.ORDER_STATU_TK); - item.setCount(-item.getCount()); - item.setOrderId(sysOrder.getId()); - item.setId(null); - orderItemDao.insert(item); - } - - - - orderService.refundOrderMoney(sysOrder); //处理用户购买的产品 return AjaxResult.buildSuccessInstance(Arrays.asList(sysOrder), "订单退款成功"); diff --git a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java index 7456a8e..acd3b19 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/bean/SysOrderItem.java @@ -33,6 +33,11 @@ private Integer count; + /** + * 退款数量 + */ + private Integer refundCount; + /** * 是否为赠送和 是否 @@ -87,10 +92,6 @@ * 欠款金额 */ private Double arrears; - - - - /** @@ -109,8 +110,7 @@ */ private Long cardId; - - + /** * 是否为综合卡创建的订单明细 * 1是 @@ -160,6 +160,14 @@ return preCount; } + public Integer getRefundCount() { + return refundCount; + } + + public void setRefundCount(Integer refundCount) { + this.refundCount = refundCount; + } + public void setPreCount(int preCount) { this.preCount = preCount; } diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java index c5101d6..2c4978c 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/AchieveNewServiceImpl.java @@ -237,7 +237,7 @@ if (Dictionary.ORDER_STATU_TK.equals(pageOrder.getStatu())) { achieveNew.setId(null); achieveNew.setProjPercentage(0 - achieveNew.getProjPercentage()); - achieveNew.setT1((0 - Double.parseDouble(achieveNew.getT1())) + ""); + achieveNew.setGoodsCash(0 - achieveNew.getGoodsCash()); } achieveNew.setVipId(pageOrder.getVipId()); 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 d2eb610..2068607 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 @@ -487,6 +487,10 @@ if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) { throw new GlobleException("该订单已经收过款,请刷新页面再试!"); } + // 更新收款时间 + pageOrder.setPayTime(new Date()); + pageOrder.setStatu(Dictionary.ORDER_STATU_YFK); + sysOrderDao.update(pageOrder); // 获取用户信息 SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId()); @@ -496,8 +500,8 @@ sysVipInfoDao.update(vipInfo); } - //设置订单的成交状态 - changeOrderStatu(pageOrder); + //添加支付流水 + addOrderFlow(pageOrder); // 设置会员充值卡使用情况 addMoneyCardUse(pageOrder); @@ -516,78 +520,56 @@ } /** - * 收款改变订单状态,划扣金额 + * 创建支付流水 * * @author:姜友瑶 */ - private void changeOrderStatu(SysOrder sourceOrder) { + private void addOrderFlow(SysOrder sourceOrder) { - String orderStatus = Dictionary.ORDER_STATU_YFK; - String flowType = SysOrderFlow.FLOW_TYPE_BUY; - double cashPayTotal = 0D; - double cardPayTotal = 0D; //处理支付流水 int flowCount = 1; for (SysOrderFlow flow : sourceOrder.getFlows()) { - //支付内容摘要设置 Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品"); - // 若是退款,则取负数 if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { - flowType = SysOrderFlow.FLOW_TYPE_REFUND; + flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND); flow.setAmount(flow.getAmount().negate()); flow.setOrderId(sourceOrder.getOldOrderId()); } else { + flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY); flow.setOrderId(sourceOrder.getId()); } //欠款处理 if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) { - orderStatus = Dictionary.ORDER_STATU_QK; sourceOrder.setArrears(flow.getAmount().doubleValue()); + sysOrderDao.update(sourceOrder); } //统计储值卡支付 if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { if (flow.getCardId() != null) { MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); - cardPayTotal += flow.getAmount().doubleValue(); - //修改储值卡余额 cardPaySk(moneyCardUse, sourceOrder, flow); }else{ throw new GlobleException("无效的储值卡支付方式"); } } - //统计现金支付 - if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod()) - && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { - cashPayTotal += flow.getAmount().doubleValue(); - } flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount); flow.setVipId(sourceOrder.getVipId()); - flow.setFlowType(flowType); flow.setShopId(sourceOrder.getShopId()); flow.setCompanyId(sourceOrder.getCompanyId()); sysOrderFlowDao.insert(flow); flowCount++; } - //修改订单信息 - if (Dictionary.ORDER_STATU_TK.equals(sourceOrder.getStatu())) { - orderStatus = Dictionary.ORDER_STATU_TK; - } - // 更新收款状态 - sourceOrder.setPayTime(new Date()); - sourceOrder.setStatu(orderStatus); - sourceOrder.setCardPay(cardPayTotal); - sourceOrder.setCashPay(cashPayTotal); - sysOrderDao.update(sourceOrder); + } @@ -1230,7 +1212,7 @@ moneyCardUseFlowDao.insert(moneyCardUseFlow); order.setFlows(czVo.getFlows()); - changeOrderStatu(order); + addOrderFlow(order); // 添加员工业绩 achieveNewService.addAchaeveByOrder(order); return order; @@ -1280,37 +1262,85 @@ @Transactional(rollbackFor = Exception.class) @Override - public void refundOrderMoney(SysOrder pageOrder) { + public void refundOrderMoney(SysOrder sysOrder) { SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); - // 修改订单状态 - changeOrderStatu(pageOrder); + //原订单设置为退款状态 + SysOrder sourceOrder=new SysOrder(); + sourceOrder.setId(sysOrder.getOldOrderId()); + sourceOrder.setStatu(Dictionary.ORDER_STATU_TK); + sysOrderDao.update(sourceOrder); - List<SysOrderItem> returnItems = new ArrayList<>(); - for (SysOrderItem item : pageOrder.getItems()) { + sysOrder.setId(null); + sysOrder.setStaffId(user.getSuId()); + sysOrder.setCompanyId(user.getCompanyId()); + sysOrder.setShopId(user.getShopId()); + sysOrder.setOrderType(SysOrder.ORDER_TYPE_REFUND); + sysOrder.setOrderTime(new Date()); + sysOrder.setOrderNo(codeService.getRefundOrderNo()); + sysOrder.setZkTotal(-sysOrder.getZkTotal()); + //新增订单 + sysOrderDao.insert(sysOrder); + //插入明细 + for (SysOrderItem item : sysOrder.getItems()) { + + //更新原订单明细的可退数量 + SysOrderItem oldItem=new SysOrderItem(); + oldItem.setId(item.getId()); + oldItem.setRefundCount(item.getCount()); + orderItemDao.update(oldItem); + + //插入新的订单明细 + item.setId(null); + item.setCount(-item.getCount()); + item.setOrderId(sysOrder.getId()); + orderItemDao.insert(item); + } + + + // 添加订单收款流水 + addOrderFlow(sysOrder); + //退款退套餐退项目 + refundProjUse(sysOrder); + + // 设置业绩 + achieveNewService.addAchaeveByOrder(sysOrder); + + } + + /** + * 退款退项目,套餐,卡项 + * @param sysOrder + */ + private void refundProjUse(SysOrder sysOrder) { + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + + //记录需要退库存的产品 + List<SysOrderItem> returnGoodsList = new ArrayList<>(); + + for (SysOrderItem item : sysOrder.getItems()) { SysProjUse queryProjUse = new SysProjUse(); - queryProjUse.setIsOver(Dictionary.FLAG_NO_N); - queryProjUse.setStatus(Dictionary.TAOCAN_STATUS_YX); queryProjUse.setOrderItemId(item.getOldItemId()); // 修改项目信息 if (Dictionary.SHOPPING_GOODS_TYPE_XM.equals(item.getType()) || Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { if (Dictionary.SHOPPING_GOODS_TYPE_JJCP.equals(item.getType())) { if (Dictionary.FLAG_YES_Y.equals(item.getIsReturnStore())) { - returnItems.add(item); + returnGoodsList.add(item); } } else { SysProjUse sysProjUse = sysProjUseDao.selectByModel(queryProjUse).get(0); int sub = sysProjUse.getSurplusCount() - item.getCount(); - sysProjUse.setSurplusCount(sub); - if (sub <= 0) { + if (sub < 0) { + throw new GlobleException("项目余次不足"); + }else if(sub==0){ sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); } + sysProjUse.setSurplusCount(sub); sysProjUseDao.update(sysProjUse); - SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); sysProjUseFlow.setOptionType("退款修改"); sysProjUseFlow.setId(null); @@ -1323,15 +1353,13 @@ if (Dictionary.SHOPPING_GOODS_TYPE_TC.equals(item.getType())) { queryProjUse.setTaocanId(-1L); List<SysProjUse> sysProjUses = sysProjUseDao.selectByModel(queryProjUse); - if (item.getCount() > sysProjUses.size()) { - throw new GlobleException("数据异常"); - } + for (int i = 0; i < item.getCount(); i++) { + SysProjUse sysProjUse = sysProjUses.get(i); sysProjUse.setIsOver(Dictionary.FLAG_YES_Y); sysProjUse.setStatus(Dictionary.TAOCAN_STATUS_WX); - sysProjUseDao.update(sysProjUse); SysProjUseFlow sysProjUseFlow = SysProjUseMapper.INSTANCE.projUseToFlow(sysProjUse); sysProjUseFlow.setOptionType("退款修改"); @@ -1369,13 +1397,9 @@ } // 家居产品退库存 - if (CollectionUtils.isNotEmpty(returnItems)) { - refundInstore(returnItems); + if (CollectionUtils.isNotEmpty(returnGoodsList)) { + refundInstore(returnGoodsList); } - - // 设置业绩 - achieveNewService.addAchaeveByOrder(pageOrder); - } /** diff --git "a/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql" "b/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql" index 00c8515..61dc7cb 100644 --- "a/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql" +++ "b/zq-erp/src/main/resources/config/db/increment/\347\276\216\345\272\246\344\270\232\347\273\251\345\215\207\347\272\247.sql" @@ -10,4 +10,5 @@ ALTER TABLE `achieve_new` CHANGE COLUMN `t3` `achieveType` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `t2`; - +ALTER TABLE `sys_order_item` +ADD COLUMN `refundCount` int(11) NULL COMMENT '退款数量' AFTER `pay_method_detail`; diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml index 6be411c..846e27b 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/SysOrderItemDao.xml @@ -10,6 +10,7 @@ <!-- <result property="projId" column="PROJ_ID" /> <result property="skuId" column="SKU_ID" /> --> <result property="count" column="COUNT"/> + <result property="refundCount" column="refundCount"/> <!-- <result property="taocanId" column="TAOCAN_ID" /> --> <result property="isFree" column="IS_FREE"/> <result property="type" column="TYPE"/> @@ -49,6 +50,7 @@ a.TOTAL, a.SKU_ID, b.COUNT, + b.refundCount, b.ID, b.IS_FREE, b.ORDER_ID, @@ -89,6 +91,7 @@ ID, ORDER_ID, COUNT, + refundCount, TYPE, IS_FREE, PRICE, @@ -106,6 +109,7 @@ #{id}, #{orderId}, #{count}, + #{refundCount}, #{type}, #{isFree}, #{price}, @@ -131,6 +135,9 @@ </if> <if test="count != null and count !='' or count == 0 "> COUNT = #{count}, + </if> + <if test="refundCount != null and refundCount !='' or refundCount == 0 "> + refundCount = #{refundCount}, </if> <if test="isFree != null and isFree !='' "> IS_FREE = #{isFree}, @@ -232,6 +239,7 @@ i.ID, i.ORDER_ID, i.COUNT, + i.refundCount, i.TYPE, i.IS_FREE, i.PRICE, @@ -289,6 +297,7 @@ ID, ORDER_ID, COUNT, + refundCount, TYPE, IS_FREE, PRICE, @@ -341,6 +350,7 @@ c.name as goodsName, g.name as cateName, a.COUNT, + a.refundCount, a.ZK_PRICE, a.IS_FREE, a.pay_method, diff --git a/zq-erp/src/main/resources/readme-jyy b/zq-erp/src/main/resources/readme-jyy index 87f39e4..a6787a0 100644 --- a/zq-erp/src/main/resources/readme-jyy +++ b/zq-erp/src/main/resources/readme-jyy @@ -8,3 +8,4 @@ 重构订单,收款,退款等方法不要共用逻辑 把所有历史订单的订单类型区分销售订单和退款订单 + diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html index 0537c0f..be9c9d9 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/orderXq-form.html @@ -668,6 +668,9 @@ } _this.data.items = dataItems; + _this.data.zkTotal = _this.refundMoney; + + AjaxProxy.requst({ app: _this, data: _this.data, diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html index 5311542..1b6294f 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html @@ -534,14 +534,6 @@ label="下单顾问"> </el-table-column> <el-table-column - prop="cashPay" - label="现金支付金额"> - </el-table-column> - <el-table-column - prop="cardPay" - label="卡支付金额"> - </el-table-column> - <el-table-column prop="arrears" label="欠款金额"> </el-table-column> -- Gitblit v1.9.1