1.sku售出记录不保存问题

2.库存条目数不一致
This commit is contained in:
SongZhang 2024-07-18 14:26:58 +08:00
parent a16b2925b2
commit 5943f1b72f
2 changed files with 34 additions and 17 deletions

View File

@ -33,20 +33,36 @@ public interface StockCountRepository extends JpaRepository<StockCountDTO, Integ
"info.product_id ",nativeQuery = true)
List<StockCountDTO> countStock( @Param("startTime") String startTime, @Param("endTime") String endTime);
@Query(value = "SELECT pro.shop_id as shop_id, pro.id as pro_id, info.product_name as pro_name, pro.is_stock," +
" info.product_sku_name as sku_name, unit.NAME as unit_name ," +
"SUM( CASE WHEN orders.order_type != 'return' THEN info.num ELSE 0 END )- SUM( CASE WHEN orders.order_type = 'return' THEN info.num ELSE 0 END ) as stock_count," +
"CASE WHEN pro.is_distribute = '0' THEN sku.stock_number ELSE pro.stock_number END AS stock_number " +
"FROM " +
"tb_order_info orders " +
"LEFT JOIN tb_order_detail info ON orders.id = info.order_id " +
"LEFT JOIN tb_product pro ON info.product_id = pro.id " +
"LEFT JOIN (SELECT product_id,sum(stock_number) as stock_number from tb_product_sku GROUP BY product_id) sku ON info.product_id = sku.product_id " +
"LEFT JOIN tb_shop_unit unit ON unit.id = pro.unit_id " +
"WHERE " +
"orders.id = :orderId " +
"AND ( info.STATUS = 'closed' OR info.STATUS = 'refund' ) " +
"GROUP BY " +
"info.product_id ",nativeQuery = true)
@Query(value = "SELECT \n" +
" pro.shop_id AS shop_id, \n" +
" pro.id AS pro_id, \n" +
" info.product_name AS pro_name, \n" +
" pro.is_stock, \n" +
" info.product_sku_name AS sku_name, \n" +
" unit.NAME AS unit_name, \n" +
" SUM(CASE WHEN orders.order_type != 'return' THEN info.num ELSE 0 END) \n" +
" - SUM(CASE WHEN orders.order_type = 'return' THEN info.num ELSE 0 END) AS stock_count, \n" +
" CASE WHEN pro.is_distribute = '0' THEN sku.stock_number ELSE pro.stock_number END AS stock_number \n" +
"FROM \n" +
" tb_order_info orders \n" +
"LEFT JOIN \n" +
" tb_order_detail info ON orders.id = info.order_id \n" +
"LEFT JOIN \n" +
" tb_product pro ON info.product_id = pro.id \n" +
"LEFT JOIN \n" +
" (SELECT product_id, SUM(stock_number) AS stock_number FROM tb_product_sku GROUP BY product_id) sku ON info.product_id = sku.product_id \n" +
"LEFT JOIN \n" +
" tb_shop_unit unit ON unit.id = pro.unit_id \n" +
"WHERE \n" +
" orders.id = :orderId \n" +
" AND (info.STATUS = 'closed' OR info.STATUS = 'refund') \n" +
"GROUP BY \n" +
" info.product_id, \n" +
" pro.shop_id, \n" +
" pro.id, \n" +
" info.product_name, \n" +
" pro.is_stock, \n" +
" info.product_sku_name, \n" +
" unit.NAME",nativeQuery = true)
List<StockCountDTO> countStockById(Integer orderId);
}

View File

@ -79,14 +79,15 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
ArrayList<Map<String, Object>> contents = new ArrayList<>();
for (TbProductStockDetailDto tbProductStockDetailDto : map.getContent()) {
Map<String, Object> map1 = BeanUtil.transBean2Map(tbProductStockDetailDto);
if (StrUtil.isNotBlank(tbProductStockDetailDto.getOrderId())) {
TbOrderInfo tbOrderInfo = tbOrderInfoRepository.findById(Integer.valueOf(tbProductStockDetailDto.getOrderId())).orElse(null);
Map<String, Object> map1 = BeanUtil.transBean2Map(tbProductStockDetailDto);
if (tbOrderInfo != null) {
map1.put("orderNo", tbOrderInfo.getOrderNo());
}
contents.add(map1);
}
contents.add(map1);
tbProductStockDetailDto.setTypes();
}
Map<String,Object> info = new LinkedHashMap<>(2);