From bfdb3faf4f27df01718f58ac8c4ec0bcc092e7b6 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期六, 30 十一月 2024 18:50:47 +0800 Subject: [PATCH] 生成数据明细导出修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java | 78 +++++++++++++++++++++++++++++++++++--- 1 files changed, 71 insertions(+), 7 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java index fd98610..711c10d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TOrderMealController.java @@ -9,15 +9,12 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.WebUtils; import com.ruoyi.framework.web.service.TokenService; -import com.ruoyi.system.domain.TOrderMeal; -import com.ruoyi.system.domain.TOrderMealGoods; -import com.ruoyi.system.dto.AddDishDTO; +import com.ruoyi.system.domain.*; import com.ruoyi.system.dto.CheckoutDTO; import com.ruoyi.system.dto.TOrderMealDTO; import com.ruoyi.system.export.TOrderMealExportExcel; import com.ruoyi.system.query.TOrderMealQuery; -import com.ruoyi.system.service.TOrderMealGoodsService; -import com.ruoyi.system.service.TOrderMealService; +import com.ruoyi.system.service.*; import com.ruoyi.system.vo.AmountSumVO; import com.ruoyi.system.vo.TOrderMealVO; import io.swagger.annotations.Api; @@ -25,15 +22,18 @@ import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.math.BigDecimal; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -51,12 +51,18 @@ private final TOrderMealService orderMealService; private final TOrderMealGoodsService orderMealGoodsService; + private final TGoodsTypeService goodsTypeService; + private final TGoodsService goodsService; + private final TBoardService boardService; private final TokenService tokenService; @Autowired - public TOrderMealController(TOrderMealService orderMealService, TOrderMealGoodsService orderMealGoodsService, TokenService tokenService) { + public TOrderMealController(TOrderMealService orderMealService, TOrderMealGoodsService orderMealGoodsService, TGoodsTypeService goodsTypeService, TGoodsService goodsService, TBoardService boardService, TokenService tokenService) { this.orderMealService = orderMealService; this.orderMealGoodsService = orderMealGoodsService; + this.goodsTypeService = goodsTypeService; + this.goodsService = goodsService; + this.boardService = boardService; this.tokenService = tokenService; } @@ -77,7 +83,11 @@ @PostMapping(value = "/amountSum") public AjaxResult<AmountSumVO> amountSum(@RequestBody TOrderMealQuery query) { query.setShopId(tokenService.getLoginUser().getObjectId()); - return AjaxResult.success(orderMealService.amountSum(query)); + AmountSumVO amountSumVO = orderMealService.amountSum(query); + if(amountSumVO.getObligation().compareTo(BigDecimal.ZERO) < 0){ + amountSumVO.setObligation(BigDecimal.ZERO); + } + return AjaxResult.success(amountSumVO); } @ApiOperation( value = "查询餐饮详情") @@ -88,8 +98,60 @@ BeanUtils.copyProperties(orderMeal, orderMealVO); List<TOrderMealGoods> list = orderMealGoodsService.list(Wrappers.lambdaQuery(TOrderMealGoods.class) .eq(TOrderMealGoods::getOrderId, orderMeal.getId())); + if(!CollectionUtils.isEmpty(list)){ + Map<String, List<TOrderMealGoods>> map = list.stream().collect(Collectors.groupingBy(TOrderMealGoods::getTypeName)); + List<String> goodsList = new ArrayList<>(); + map.forEach((k,v)->{ + goodsList.add(k+":"+v.stream().map(item->item.getGoodsName()+" "+(item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount())))).collect(Collectors.joining(","))); + }); + orderMealVO.setGoodsList(goodsList); + } orderMealVO.setOrderMealGoods(list); + // 查询用餐人数 + TBoard board = boardService.getById(orderMeal.getBoardId()); + orderMealVO.setMaxPerson(board.getMaxPerson()); + orderMealVO.setMinPerson(board.getMinPerson()); + orderMealVO.setBoardName(board.getBoardName()); return AjaxResult.success(orderMealVO); + } + + @ApiOperation( value = "修改") + @PostMapping(value = "/update") + public AjaxResult<String> update(@RequestBody TOrderMealDTO dto) { + // 删除所有菜品 + orderMealService.updateById(dto); + if(!CollectionUtils.isEmpty(dto.getMealOrderGoods())){ + orderMealGoodsService.remove(Wrappers.lambdaQuery(TOrderMealGoods.class) + .eq(TOrderMealGoods::getOrderId, dto.getId())); + for (TOrderMealGoods mealOrderGood : dto.getMealOrderGoods()) { + // 设置商品类型和类型id + TGoodsType goodsType = goodsTypeService.getById(mealOrderGood.getTypeId()); + mealOrderGood.setId(null); + mealOrderGood.setOrderId(dto.getId()); + mealOrderGood.setTypeId(goodsType.getId()); + mealOrderGood.setTypeName(goodsType.getTypeName()); + } + orderMealGoodsService.saveBatch(dto.getMealOrderGoods()); + } + return AjaxResult.success(); + } + @ApiOperation( value = "列表详情结账") + @PostMapping(value = "/detailUpdate") + public AjaxResult<String> detailUpdate(@RequestBody TOrderMealDTO dto) { + orderMealService.updateById(dto); + // 查询餐桌 + List<TOrderMealGoods> mealOrderGoods = dto.getMealOrderGoods(); + if (!CollectionUtils.isEmpty(mealOrderGoods)) { + // 删除所有菜品 + orderMealGoodsService.remove(Wrappers.lambdaQuery(TOrderMealGoods.class) + .eq(TOrderMealGoods::getOrderId, dto.getId())); + for (TOrderMealGoods mealOrderGood : mealOrderGoods) { + // 设置商品类型和类型id + mealOrderGood.setId(null); + } + orderMealGoodsService.saveBatch(mealOrderGoods); + } + return AjaxResult.success(); } @ApiOperation( value = "删除餐饮订单") @@ -142,6 +204,7 @@ @PostMapping("/exportOrderMeal") public void exportOrderMeal(@RequestBody TOrderMealQuery query) { + query.setShopId(tokenService.getLoginUser().getObjectId()); List<TOrderMealVO> list = orderMealService.exportOrderMeal(query); List<TOrderMealExportExcel> orderMeals = new ArrayList<>(); for (TOrderMealVO orderMealVO : list) { @@ -149,6 +212,7 @@ BeanUtils.copyProperties(orderMealVO, tOrderMealExportExcel); tOrderMealExportExcel.setCreateStrTime(DateUtils.localDateTimeToString(orderMealVO.getCreateTime())); tOrderMealExportExcel.setGoodsList(orderMealVO.getGoodsList().stream().collect(Collectors.joining("\n"))); + orderMeals.add(tOrderMealExportExcel); } Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TOrderMealExportExcel.class, orderMeals); HttpServletResponse response = WebUtils.response(); -- Gitblit v1.7.1