From 530885dff056bb75bea793a84db6ae486124a24a Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 09 Jan 2021 14:25:07 +0800 Subject: [PATCH] modify --- zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java | 7 + zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html | 83 +++++++++++++++++++- zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java | 95 +++++++++++------------ 3 files changed, 130 insertions(+), 55 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java index 8f749b4..75a6e73 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/action/MoneyCardUseController.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -184,6 +185,10 @@ public String toBj(Long id) { // 根据id查到对应的订单信息 SysOrder order = orderService.findById(id); + SysOrderItem item = new SysOrderItem(); + item.setOrderId(order.getId()); + List<SysOrderItem> items = orderItemService.findByModel(item); + order.setItems(items); WebUtil.getRequest().setAttribute("order", order); return "admin/hive/beautySalon/bj-form"; @@ -214,7 +219,7 @@ */ @RequestMapping(value = "/bj") public @ResponseBody - AjaxResult bj(SysOrder order) throws GlobleException { + AjaxResult bj(@RequestBody SysOrder order) throws GlobleException { orderService.updateAfterMoney(order); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "补交成功"); 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 e76196b..42ea6ff 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 @@ -464,6 +464,8 @@ private void changeOrderStatu(SysOrder sourceOrder) { int i = 1; String orderStatus = Dictionary.ORDER_STATU_YFK; + double cashPayTotal = 0D; + double cardPayTotal = 0D; for (SysOrderFlow flow : sourceOrder.getFlows()) { flow.setFlowNo(codeService.getFlowCode() + "-" + i); Long goodsId = sourceOrder.getItems().get(0).getGoodsId(); @@ -478,6 +480,7 @@ if (flow.getCardId() != null) { MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); cardPaySk(moneyCardUse, sourceOrder, flow); + cardPayTotal += flow.getAmount().doubleValue(); } } @@ -485,12 +488,18 @@ orderStatus = Dictionary.ORDER_STATU_QK; sourceOrder.setArrears(flow.getAmount().doubleValue()); } + + if (!SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod()) && !SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { + cashPayTotal += flow.getAmount().doubleValue(); + } sysOrderFlowDao.insert(flow); i++; } // 更新收款状态 sourceOrder.setStatu(orderStatus); + sourceOrder.setCardPay(cardPayTotal); + sourceOrder.setCashPay(cashPayTotal); sysOrderDao.update(sourceOrder); } @@ -720,66 +729,54 @@ @Transactional(rollbackFor = Exception.class) @Override public void updateAfterMoney(SysOrder pageOrder) { - SysOrder sourceOrder = sysOrderDao.selectById(pageOrder.getId()); + + int i = 1; + double refundTotal = 0D; + double cardPayTotal = 0D; + double cashPayTotal = 0D; + for (SysOrderFlow flow : pageOrder.getFlows()) { + flow.setFlowNo(codeService.getFlowCode() + "-" + i); + Long goodsId = pageOrder.getItems().get(0).getGoodsId(); + ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId); + flow.setFlowContent(goods.getName() + "等" + pageOrder.getItems().size() + "件产品"); + + flow.setOrderId(pageOrder.getId()); + flow.setVipId(pageOrder.getVipId()); + flow.setFlowType(SysOrderFlow.FLOW_TYPE_REPAY); + // 若使用储值卡付款 + if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) { + if (flow.getCardId() != null) { + cardPayTotal += flow.getAmount().doubleValue(); + MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId()); + cardPaySk(moneyCardUse, pageOrder, flow); + } + } else { + cashPayTotal += flow.getAmount().doubleValue(); + } + + refundTotal += flow.getAmount().doubleValue(); + sysOrderFlowDao.insert(flow); + i++; + } boolean haQk=false; - double cardPayTotal=0D; - double carshPayTotal=0D; - - - for(SysOrderItem pageItem:pageOrder.getItems()){ - SysOrderItem sourceItem=orderItemDao.selectById(pageItem.getId()); - - //结清 - if(sourceItem.getArrears() == pageItem.getPayMoney()){ - - sourceItem.setStatus(Dictionary.ORDER_STATU_YFK); - }else if(sourceItem.getArrears() > pageItem.getPayMoney()) { - //未结清 - sourceItem.setStatus(Dictionary.ORDER_STATU_QK); - haQk=true; - }else if(sourceItem.getArrears() < pageItem.getPayMoney()) { - - throw new GlobleException("支付金额不能大于欠款金额"); - - } - - //更新卡支付 - if (!pageItem.getPayMethod().equals(Dictionary.PAY_TYPE_MOENY)) { - // 查询要支付的充值卡 - MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(Long.parseLong(pageItem.getPayMethod())); - // 扣除付款卡金额并添加流水 TODO 补交卡支付 -// cardPaySk(moneyCardUse, sourceOrder, pageItem); - sourceItem.setCardPay((sourceItem.getCardPay()==null?0:sourceItem.getCardPay())+pageItem.getPayMoney()); - cardPayTotal+=pageItem.getPayMoney(); - }else{ - carshPayTotal+=pageItem.getPayMoney(); - sourceItem.setCashPay((sourceItem.getCashPay()==null?0:sourceItem.getCashPay())+pageItem.getPayMoney()); - } - - //更新订单明细状态 - sourceItem.setArrears(sourceItem.getArrears()-pageItem.getPayMoney()); - - orderItemDao.update(sourceItem); - + if (refundTotal == pageOrder.getArrears()) { + haQk = true; } + //更新收款状态 if(haQk){ - sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); - }else{ sourceOrder.setStatu(Dictionary.ORDER_STATU_YFK); + }else{ + sourceOrder.setStatu(Dictionary.ORDER_STATU_QK); } - sourceOrder.setArrears(sourceOrder.getArrears()-carshPayTotal-cardPayTotal); - sourceOrder.setCardPay(sourceOrder.getCardPay()+cardPayTotal); - sourceOrder.setCashPay(sourceOrder.getCashPay()+carshPayTotal); + sourceOrder.setArrears(sourceOrder.getArrears() - refundTotal); + sourceOrder.setCardPay(sourceOrder.getCardPay() + cardPayTotal); + sourceOrder.setCashPay(sourceOrder.getCashPay() + cashPayTotal); sysOrderDao.update(sourceOrder); - - // 设置业绩 - achieveNewService.addAchaeveByOrder(pageOrder); - } diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html index 07843ca..29a923c 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/bj-form.html @@ -58,7 +58,7 @@ </style> </head> <div class="panel-body" id="app"> - <el-dialog title="还款" :visible.sync="dialogSettleVisible" show-close> + <el-dialog title="还款" :visible.sync="dialogSettleVisible" :show-close="false" :close-on-click-modal="false" :close-on-press-escape="false"> <el-row type="flex" align="middle" style="padding: 0 0 10px 0;"> <el-col :span="5" style="text-align: center;">还款金额</el-col> <el-col :span="10" style="text-align: center; line-height: 50px;"><span style="color: red; font-size: 20px;">¥ {{order.arrears}}</span></el-col> @@ -110,7 +110,7 @@ </el-row> <el-row style="text-align: center; margin: 10px 0 0 0"> - <el-button type="primary" @click="">确认收款</el-button> + <el-button type="primary" @click="submitBj">确认收款</el-button> </el-row> </el-dialog> </div> @@ -164,15 +164,85 @@ }, treeSelect : [], payMoneys : [], - printPaper : true, + printPaper : false, }, created : function() { this.order = /*[[${order}]]*/ this.getVipMoneyCards(); - - console.log(this.order) }, methods : { + submitBj() { + let _this = this; + if (_this.payMoneys.length > 0) { + let flows = [] + var total = 0; + _this.payMoneys.forEach(item => { + let flow = {}; + flow.payMethod = item.type; + if (!item.money) { + this.$message.warning("请输入" + item.type + "的付款金额"); + return false; + } + flow.amount = item.money; + if (item.type == '储值卡'){ + flow.isGift = item.isGift; + flow.cardId = item.id; + } + total += item.money; + flows.push(flow) + }) + if (total > _this.order.arrears) { + this.$message.warning("输入付款总金额大于应还金额"); + return false; + } + _this.order.flows = flows; + } else { + this.$message.warning("请选择支付方式"); + return false; + } + + let url = basePath + "/admin/moneyCardUse/bj"; + + AjaxProxy.requst({ + app: _this, + data: _this.order, + url: url, + callback: function (data) { + if (_this.printPaper) { + _this.print(); + } + + if(parent.myGrid) { + parent.myGrid.serchData(); + } + + if (parent.app) { + parent.app.orderQuery(); + } + + _this.closeFrame(); + } + }); + }, + print() { + let _this = this; + if (_this.order.id) { + layer.open({ + type: 2, + title: "打印订单", + area: ['250px', '550px'], + maxmin: true, + content: [basePath + '/admin/redirect/hive/beautySalon/print-order?id=' + this.order.id], + cancel: function (index, layero) { + _this.closeFram(); + } + }); + } else { + this.$message.warning("请先挂单在打印"); + } + + + }, getVipMoneyCards() { let _this = this; if (_this.order.vipId) { @@ -278,6 +348,9 @@ _this.payMoneys.splice(index, 1); } }, + closeFrame() { + parent.layer.close(parent.layer.getFrameIndex(window.name)); + }, } }); //]]> -- Gitblit v1.9.1