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, "补交成功"); 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); if (refundTotal == pageOrder.getArrears()) { 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(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.setArrears(sourceOrder.getArrears() - refundTotal); sourceOrder.setCardPay(sourceOrder.getCardPay()+cardPayTotal); sourceOrder.setCashPay(sourceOrder.getCashPay()+carshPayTotal); sourceOrder.setCashPay(sourceOrder.getCashPay() + cashPayTotal); sysOrderDao.update(sourceOrder); // 设置业绩 achieveNewService.addAchaeveByOrder(pageOrder); } 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)); }, } }); //]]>