修改销量和台桌导出 -- 合并
This commit is contained in:
@@ -38,20 +38,6 @@ public interface TbOrderDetailRepository extends JpaRepository<TbOrderDetail, In
|
|||||||
|
|
||||||
@Query("SELECT cart FROM TbOrderDetail cart WHERE cart.orderId in :ids")
|
@Query("SELECT cart FROM TbOrderDetail cart WHERE cart.orderId in :ids")
|
||||||
List<TbOrderDetail> searchDetailByOrderIds(@Param("ids")List<Integer> ids);
|
List<TbOrderDetail> searchDetailByOrderIds(@Param("ids")List<Integer> ids);
|
||||||
@Query(value = "SELECT " +
|
|
||||||
"new cn.ysk.cashier.vo.TbOrderSaleVO(oi.orderNo, od.num, od.price, od.status, 0)\n" +
|
|
||||||
"FROM\n" +
|
|
||||||
"TbOrderInfo oi\n" +
|
|
||||||
"LEFT JOIN TbOrderDetail od ON oi.id = od.orderId \n" +
|
|
||||||
"WHERE\n" +
|
|
||||||
"od.shopId = :shopId \n" +
|
|
||||||
"AND ( od.status = 'closed' OR od.status = 'refund' ) \n" +
|
|
||||||
"AND od.createTime > :startTime \n" +
|
|
||||||
"AND od.createTime < :endTime \n" +
|
|
||||||
"AND (:productId is null or od.productId = :productId)\n" +
|
|
||||||
"AND (:productId is null or od.productSkuId = :productSkuId)")
|
|
||||||
List<TbOrderSaleVO> querySaleOrderInfo(@Param("startTime") Timestamp startTime, @Param("endTime") Timestamp endTime, @Param("productId") Integer productId, @Param("productSkuId") Integer productSkuId, @Param("shopId") Integer shopId);
|
|
||||||
|
|
||||||
|
|
||||||
@Query("SELECT new cn.ysk.cashier.vo.TbOrderSalesCountByDayVo(" +
|
@Query("SELECT new cn.ysk.cashier.vo.TbOrderSalesCountByDayVo(" +
|
||||||
"info.productName, info.productSkuName, cate.name, unit.name,info.price," +
|
"info.productName, info.productSkuName, cate.name, unit.name,info.price," +
|
||||||
|
|||||||
@@ -1,20 +1,15 @@
|
|||||||
package cn.ysk.cashier.service.impl;
|
package cn.ysk.cashier.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import cn.ysk.cashier.dto.ShopSummaryDto;
|
import cn.ysk.cashier.dto.ShopSummaryDto;
|
||||||
import cn.ysk.cashier.dto.shop.ShopTableSeleInfoDto;
|
import cn.ysk.cashier.dto.shop.ShopTableSeleInfoDto;
|
||||||
import cn.ysk.cashier.enums.PayTypeEnum;
|
import cn.ysk.cashier.enums.PayTypeEnum;
|
||||||
import cn.ysk.cashier.exception.BadRequestException;
|
import cn.ysk.cashier.exception.BadRequestException;
|
||||||
import cn.ysk.cashier.mybatis.mapper.TbOrderInfoMapper;
|
|
||||||
import cn.ysk.cashier.mybatis.service.TbShopUserFlowService;
|
import cn.ysk.cashier.mybatis.service.TbShopUserFlowService;
|
||||||
import cn.ysk.cashier.pojo.shop.TbShopTable;
|
|
||||||
import cn.ysk.cashier.repository.ShopUserDutyDetailRepository;
|
import cn.ysk.cashier.repository.ShopUserDutyDetailRepository;
|
||||||
import cn.ysk.cashier.repository.ShopUserDutyRepository;
|
import cn.ysk.cashier.repository.ShopUserDutyRepository;
|
||||||
import cn.ysk.cashier.repository.TbTokenRepository;
|
import cn.ysk.cashier.repository.TbTokenRepository;
|
||||||
import cn.ysk.cashier.repository.order.TbOrderDetailRepository;
|
import cn.ysk.cashier.repository.order.TbOrderDetailRepository;
|
||||||
import cn.ysk.cashier.repository.order.TbOrderInfoRepository;
|
import cn.ysk.cashier.repository.order.TbOrderInfoRepository;
|
||||||
import cn.ysk.cashier.repository.shop.TbShopAreaRepository;
|
|
||||||
import cn.ysk.cashier.repository.shop.TbShopTableRepository;
|
|
||||||
import cn.ysk.cashier.repository.shop.TbShopUserRepository;
|
import cn.ysk.cashier.repository.shop.TbShopUserRepository;
|
||||||
import cn.ysk.cashier.service.SummaryService;
|
import cn.ysk.cashier.service.SummaryService;
|
||||||
import cn.ysk.cashier.utils.DateUtil;
|
import cn.ysk.cashier.utils.DateUtil;
|
||||||
@@ -36,13 +31,11 @@ import java.io.IOException;
|
|||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.sql.Timestamp;
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
import java.util.concurrent.CopyOnWriteArraySet;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@@ -66,15 +59,8 @@ public class SummaryServiceImpl implements SummaryService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TbShopUserFlowService tbShopUserFlowService;
|
private TbShopUserFlowService tbShopUserFlowService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private TbShopTableRepository shopTableRepository;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
TbShopAreaRepository tbShopAreaRepository;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TbOrderDetailRepository tbOrderDetailRepository;
|
private TbOrderDetailRepository tbOrderDetailRepository;
|
||||||
private final TbOrderInfoMapper orderInfoMapper;
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -559,7 +545,7 @@ public class SummaryServiceImpl implements SummaryService {
|
|||||||
Map<String, List<TbOrderSalesCountByTable>> countByTableMap = countByTables.stream()
|
Map<String, List<TbOrderSalesCountByTable>> countByTableMap = countByTables.stream()
|
||||||
.collect(Collectors.groupingBy(TbOrderSalesCountByTable::getTableId));
|
.collect(Collectors.groupingBy(TbOrderSalesCountByTable::getTableId));
|
||||||
|
|
||||||
List<Map<String, Object>> list = new ArrayList<>();
|
ConcurrentLinkedQueue<Map<String, Object>> list = new ConcurrentLinkedQueue<>();
|
||||||
|
|
||||||
ArrayList<Integer> mergeRowIndex = new ArrayList<>();
|
ArrayList<Integer> mergeRowIndex = new ArrayList<>();
|
||||||
for (ShopTableSaleInfoVo all : infoVos) {
|
for (ShopTableSaleInfoVo all : infoVos) {
|
||||||
@@ -580,27 +566,9 @@ public class SummaryServiceImpl implements SummaryService {
|
|||||||
map.put("商品规格", table.getProductSkuName());
|
map.put("商品规格", table.getProductSkuName());
|
||||||
map.put("销量", table.getSalesNum());
|
map.put("销量", table.getSalesNum());
|
||||||
map.put("销售额", table.getSalesAmount());
|
map.put("销售额", table.getSalesAmount());
|
||||||
// map.put("订单数量", all.getOrderCount());
|
|
||||||
// map.put("销售额", all.getOrderAmount());
|
|
||||||
// map.put("商品名称", table.getProductName());
|
|
||||||
// map.put("销售数量", table.getSalesNum());
|
|
||||||
list.add(map);
|
list.add(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Map<String, Object> map = new LinkedHashMap<>();
|
|
||||||
//
|
|
||||||
// map.put("开始时间", shopTableSeleInfoDto.getStartTime());
|
|
||||||
// map.put("结束时间", shopTableSeleInfoDto.getEndTime());
|
|
||||||
// map.put("区域名称", all.getAreaName());
|
|
||||||
// map.put("桌台名称", all.getTableName());
|
|
||||||
// map.put("订单数量", all.getOrderCount());
|
|
||||||
// map.put("销售额", all.getOrderAmount());
|
|
||||||
//
|
|
||||||
// list.add(map);
|
|
||||||
|
|
||||||
|
|
||||||
if (!tables.isEmpty()) {
|
if (!tables.isEmpty()) {
|
||||||
if (mergeRowIndex.isEmpty()) {
|
if (mergeRowIndex.isEmpty()) {
|
||||||
mergeRowIndex.add(tables.size());
|
mergeRowIndex.add(tables.size());
|
||||||
@@ -609,7 +577,6 @@ public class SummaryServiceImpl implements SummaryService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// FileUtil.downloadExcel(list, response);
|
|
||||||
FileUtil.downloadExcelAndMerge(list, 4, response, mergeRowIndex);
|
FileUtil.downloadExcelAndMerge(list, 4, response, mergeRowIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user