diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java index c3b407af4..a3bf8439f 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/dto/LJGoodsDto.java @@ -12,5 +12,8 @@ public class LJGoodsDto extends LJGoods { // 变动原因 private String document; + private String oddNumber; + + } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java index 562f31aac..59fe44af6 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/convenienceSore/service/impl/LJGoodsServiceImpl.java @@ -257,6 +257,7 @@ public class LJGoodsServiceImpl extends ServiceImpl impl stockTrack.setStoreId(goods.getStoreId()); stockTrack.setDocument(goods.getDocument()); stockTrack.setChangeNumber(goods.getNumberOfChanges()); + stockTrack.setOddNumber(goods.getOddNumber()); int i = trackService.insertStockTrack(stockTrack); return i>0; } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java index 130a6341f..abe68fe90 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/AllOrderInfoController.java @@ -71,4 +71,9 @@ public class AllOrderInfoController extends BaseController { public ResponseObject refund(@RequestBody Map map){ return getSuccessResult(allOrderInfoService.refund(map)); } + + @GetMapping("/getOrderInfo") + public ResponseObject getOrderInfo(String orderNo, String type) { + return getSuccessResult(allOrderInfoService.getOrderInfo(orderNo,type)); + } } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java index bfb51dade..2968f2251 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/AllOrderInfoService.java @@ -60,4 +60,7 @@ public interface AllOrderInfoService { public int getOrderNum(Integer StoreId); + Integer getOrderInfo(String orderNo, String type); + + } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java index 4cb1657bf..f9c390c69 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/AllOrderInfoServiceImpl.java @@ -24,7 +24,9 @@ import com.fuint.business.order.mapper.AllOrderInfoMapper; import com.fuint.business.order.service.*; import com.fuint.business.order.vo.AllOrderInfoVo; import com.fuint.business.order.vo.OrderGoodsVo; +import com.fuint.business.petrolStationManagement.entity.OilGun; import com.fuint.business.petrolStationManagement.entity.OilTracking; +import com.fuint.business.petrolStationManagement.service.OilGunService; import com.fuint.business.petrolStationManagement.service.OilTankService; import com.fuint.business.petrolStationManagement.service.OilTrackingService; import com.fuint.repository.mapper.MtOpenGiftMapper; @@ -32,6 +34,7 @@ import com.fuint.repository.model.MtOrderGoods; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -133,28 +136,29 @@ public class AllOrderInfoServiceImpl extends ServiceImpl map) { - Map refund = null; + Map refund = new HashMap<>(); try { AllOrderInfo allOrderInfo = selectAllOrderInfoByOrderNo(map.get("orderNo")); if (ObjectUtil.isEmpty(map.get("type"))) { throw new RuntimeException("该订单不支持退款,无退款类别!"); - }else if ("oilOrder".equals(map.get("type")) || "goodsOrder".equals(map.get("type"))) { + }else if ("canRefund".equals(map.get("type"))) { // 根据订单号查询订单 if ("APPLET_CODE".equals(allOrderInfo.getPayType())) { // 储值卡不支持退款 throw new RuntimeException("该订单不支持退款!"); } - // 判断是否有退款金额 - if (ObjectUtil.isNotEmpty(allOrderInfo.getPayMoney()) && ObjectUtil.isNotEmpty(map.get("refundAmt"))) { + // 判断是否有退款金额 && ObjectUtil.isNotEmpty(map.get("refundAmt") // 目前全退 + if (ObjectUtil.isNotEmpty(allOrderInfo.getPayMoney())) { // 总金额(金钱的传值需要×100) BigDecimal payMoneyBig = new BigDecimal(allOrderInfo.getPayMoney().toString()); BigDecimal payMoneyBefBig = payMoneyBig.multiply(new BigDecimal("100")); // 退款金额(暂不支持部分退款) // BigDecimal refundAmtBig = new BigDecimal(map.get("refundAmt")); // BigDecimal refundAmtBefBig = refundAmtBig.multiply(new BigDecimal("100")); - map.put("totalAmt",payMoneyBefBig.toString()); - map.put("refundAmt",payMoneyBefBig.toString()); + map.put("totalAmt",payMoneyBefBig.stripTrailingZeros().toString()); + map.put("refundAmt",payMoneyBefBig.stripTrailingZeros().toString()); map.put("orderNo",allOrderInfo.getOrderNo()); map.put("payType",allOrderInfo.getPayType()); @@ -169,15 +173,20 @@ public class AllOrderInfoServiceImpl extends ServiceImpl oilOrders = oilOrderService.selectOilOrder(oilOrder.getOrderNo()); // 获取油罐数据 for (OilOrder order : oilOrders) { + OilGun oilGun = oilGunService.queryById(Integer.valueOf(order.getOilGunNum())); // 处理库存 - oilTankService.addStoredQuantity(order.getTankId(),order.getOilNum()); + oilTankService.addStoredQuantity(oilGun.getTankId(),order.getOilNum()); // 处理库存跟踪 OilTracking oilTracking = new OilTracking(); oilTracking.setDocument("油品退款"); - oilTracking.setQuantityChange(-order.getOilNum()); + oilTracking.setQuantityChange(order.getOilNum()); oilTracking.setStoreId(order.getStoreId()); - oilTracking.setTankId(order.getTankId()); + oilTracking.setTankId(oilGun.getTankId()); + oilTracking.setOrderNumber(refundOrderNo); OilTracking insert = oilTrackingService.insert(oilTracking); } -/** - * todo - * 油品总价计算 - */ + } // 处理商品 - private void disposeGoods(LJOrder ljOrder) { + private void disposeGoods(LJOrder ljOrder,String refundOrderNo) { // 处理订单状态 ljOrder.setStatus("refund"); ljOrderService.updateById(ljOrder); @@ -261,11 +270,33 @@ public class AllOrderInfoServiceImpl extends ServiceImpl - discounted_price = #{discountedPrice} + discounted_price = #{discountedPrice}, update_time = NOW() where id = #{tankId} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java index 4e421f948..dd7542e34 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/petrolStationManagement/service/impl/OilTankServiceImpl.java @@ -196,7 +196,7 @@ public class OilTankServiceImpl implements OilTankService { // 单价*油量 BigDecimal disPrice = new BigDecimal(oilTank.getDiscountedPrice().toString()); BigDecimal multiply = disPrice.multiply(new BigDecimal(changeNum)); - return this.oilTankDao.addStoredQuantityByLock(tankId, changeNum, multiply.doubleValue(),null) >0 ; + return this.oilTankDao.addStoredQuantityByLock(tankId, changeNum, Double.valueOf(multiply.toString()),null) >0 ; } /** diff --git a/fuintCashierWeb/src/api/cashier/refund.js b/fuintCashierWeb/src/api/cashier/refund.js index 09a070a28..5609d3c54 100644 --- a/fuintCashierWeb/src/api/cashier/refund.js +++ b/fuintCashierWeb/src/api/cashier/refund.js @@ -8,3 +8,10 @@ export function refundApi(data) { data: data }) } +export function getOrderInfoApi(data) { + return request({ + url: '/business/allOrderInfo/getOrderInfo', + method: 'get', + params: data + }) +} diff --git a/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue b/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue index 7a2cd9ade..5a4dbc67b 100644 --- a/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue +++ b/fuintCashierWeb/src/views/cashier/orderComponents/order_Cashier.vue @@ -110,8 +110,9 @@ @@ -129,6 +130,7 @@ @click="patchwork(scope.row)" type="primary" plain round>补打 退款 @@ -356,23 +358,48 @@ import {refundApi} from "@/api/cashier/refund"; }, // 退款 handleRefund(id){ - this.dialogRefund = true; - cashierOrder(id).then( response => { - this.cashierOrder = response.data - }) + //退款确定 + this.$confirm('是否将该收银台下的订单全部退款, 是否继续?', '提示', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + }).then(() => { + this.dialogRefund = true; + cashierOrder(id).then( response => { + this.cashierOrder = response.data + if (response.data.status === "refund") { + this.$message({ + type: 'info', + message: '该订单已经退款' + }); + this.dialogRefund = false; + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '已取消删除' + }); + }); }, refundConfirmed() { this.dialogRefund = false; - // 退款确定 - // cashierOrder console.log("cashierOrder",this.cashierOrder) let map={ orderNo: this.cashierOrder.orderNo, storeId: this.cashierOrder.storeId, - type: "cashierOrder" + refundRemark:this.radio1 +"-"+ this.refundRemark, + type: "canRefund" } refundApi(map).then(res=>{ + this.$message({ + type: 'info', + message: '退款成功' + }); + this.getList(); + this.getOrderStatistics(); + this.getStaffList(); }) }, diff --git a/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue b/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue index 5eb7d488a..d5bab2916 100644 --- a/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue +++ b/fuintCashierWeb/src/views/cashier/orderComponents/order_Goods.vue @@ -140,6 +140,7 @@ @@ -154,17 +155,14 @@ {{ parseTime(scope.row.payTime) }} - - - - - - - - - - - + + + @@ -225,10 +223,12 @@