| | |
| | | // 查询菜品分类 |
| | | List<TGoodsType> list1 = goodsTypeService.list(); |
| | | // 销售单号 |
| | | dto.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateOrderSn()); |
| | | dto.setOrderNum(OrderNumConstants.SALE + CodeGenerateUtils.generateVolumeSn()); |
| | | List<TOrderSaleGoods> orderSaleGoods = dto.getOrderSaleGoods(); |
| | | BigDecimal sum = orderSaleGoods.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get(); |
| | | dto.setOrderMoney(sum); |
| | | dto.setPayMoney(sum); |
| | | BigDecimal sum1 = orderSaleGoods.stream().map(TOrderSaleGoods::getThisSalePrice).reduce(BigDecimal::add).get(); |
| | | dto.setPayMoney(sum1); |
| | | this.save(dto); |
| | | // 添加商品 |
| | | orderSaleGoods.forEach(orderSaleGoods1 -> orderSaleGoods1.setOrderId(dto.getId())); |
| | | orderSaleGoods.forEach(orderSaleGoods1 -> { |
| | | orderSaleGoods1.setOrderId(dto.getId()); |
| | | orderSaleGoods1.setId(null); |
| | | }); |
| | | orderSaleGoodsService.saveBatch(orderSaleGoods); |
| | | } |
| | | |
| | |
| | | PageInfo<TOrderSaleVO> pageInfo = new PageInfo<>(query.getPageNum(),query.getPageSize()); |
| | | List<TOrderSaleVO> list = this.baseMapper.pageList(query,pageInfo); |
| | | List<Long> ids = list.stream().map(TOrderSaleVO::getId).collect(Collectors.toList()); |
| | | List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) |
| | | .in(TOrderSaleGoods::getOrderId, ids)); |
| | | list.forEach(e->{ |
| | | e.setGoodsAmount(list1.stream().filter(m->m.getOrderId().equals(e.getId())).map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get()); |
| | | e.setOrderSaleGoods(list1.stream().filter(m->m.getOrderId().equals(e.getId())).collect(Collectors.toList())); |
| | | }); |
| | | if(!CollectionUtils.isEmpty(ids)){ |
| | | List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) |
| | | .in(TOrderSaleGoods::getOrderId, ids)); |
| | | list.forEach(e->{ |
| | | List<TOrderSaleGoods> collect = list1.stream().filter(m -> m.getOrderId().equals(e.getId())).collect(Collectors.toList()); |
| | | if(!CollectionUtils.isEmpty(collect)){ |
| | | e.setGoodsAmount(collect.stream().map(TOrderSaleGoods::getGoodsSalePrice).reduce(BigDecimal::add).get()); |
| | | e.setOrderSaleGoods(collect); |
| | | } |
| | | }); |
| | | } |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | |
| | | public List<SalesRankingVO> salesRanking(TDataStatisticsQuery query) { |
| | | List<TOrderSale> list = this.list(Wrappers.lambdaQuery(TOrderSale.class) |
| | | .eq(TOrderSale::getShopId, query.getShopId()) |
| | | .between(TOrderSale::getCreateTime, query.getStartTime(), query.getEndTime())); |
| | | .between(TOrderSale::getOrderTime, query.getStartTime(), query.getEndTime())); |
| | | List<Long> ids = list.stream().map(TOrderSale::getId).collect(Collectors.toList()); |
| | | List<SalesRankingVO> salesRankingVOS = new ArrayList<>(); |
| | | if(!CollectionUtils.isEmpty(ids)){ |
| | | List<TOrderSaleGoods> list1 = orderSaleGoodsService.list(Wrappers.lambdaQuery(TOrderSaleGoods.class) |
| | | .in(TOrderSaleGoods::getOrderId, ids)); |
| | | Map<String, List<TOrderSaleGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getTypeName)); |
| | | Map<Long, List<TOrderSaleGoods>> listMap = list1.stream().collect(Collectors.groupingBy(TOrderSaleGoods::getTypeId)); |
| | | List<TGoodsType> list2 = goodsTypeService.list(); |
| | | listMap.forEach((k,v)->{ |
| | | SalesRankingVO salesRankingVO = new SalesRankingVO(); |
| | | salesRankingVO.setTypeName(k); |
| | | salesRankingVO.setTypeName(list2.stream().filter(e->e.getId().equals(k)).findFirst().get().getTypeName()); |
| | | salesRankingVO.setSalesVolume(v.stream().map(item->item.getGoodsSalePrice().multiply(new BigDecimal(item.getGoodsCount()))).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | salesRankingVOS.add(salesRankingVO); |
| | | }); |