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