未记录商品销售的bug

This commit is contained in:
wangw 2024-10-12 14:16:24 +08:00
parent a0b1c60896
commit 70abb276bc
4 changed files with 52 additions and 54 deletions

View File

@ -23,7 +23,6 @@ public class TbProductStockListDto {
private BigDecimal saleNumber;
private BigDecimal lossNumber;
private BigDecimal refundNumber;
private BigDecimal stockInNumber;
private BigDecimal stockOutNumber;

View File

@ -33,31 +33,28 @@ 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\n" +
"info.shop_id AS shop_id,\n" +
"info.product_id AS pro_id,\n" +
"info.product_name AS pro_name,\n" +
"info.product_sku_id AS sku_id,\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 ) - SUM( CASE WHEN orders.order_type = 'return' THEN info.num ELSE 0 END ) AS stock_count,\n" +
"CASE\n" +
"\n" +
"WHEN pro.is_distribute = 0 THEN\n" +
"sku.stock_number ELSE pro.stock_number \n" +
"END AS stock_number, ifnull(sku.spec_snap, '') spec_snap\n" +
"FROM\n" +
"tb_order_detail info\n" +
"LEFT JOIN tb_order_info orders ON orders.id = info.order_id\n" +
"LEFT JOIN tb_product pro ON info.product_id = pro.id\n" +
"LEFT JOIN tb_product_sku sku ON info.product_sku_id = sku.id\n" +
"LEFT JOIN 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" +
"info.product_sku_id;",nativeQuery = true)
@Query(value = "SELECT " +
"info.shop_id AS shop_id," +
"info.product_id AS pro_id," +
"info.product_name AS pro_name," +
"info.product_sku_id AS sku_id," +
"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," +
" pro.stock_number AS stock_number, " +
" ifnull(sku.spec_snap, '') spec_snap " +
" FROM " +
" tb_order_detail info" +
" LEFT JOIN tb_order_info orders ON orders.id = info.order_id" +
" LEFT JOIN tb_product pro ON info.product_id = pro.id" +
" LEFT JOIN tb_product_sku sku ON info.product_sku_id = sku.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," +
" info.product_sku_id;",nativeQuery = true)
List<StockCountDTO> countStockById(Integer orderId);
}

View File

@ -14,7 +14,7 @@ public interface ProductStockCountRepository extends JpaRepository<TbProductStoc
@Query(value = "SELECT" +
" d.product_id as id," +
" pro.product_name AS name," +
" pro.name AS name," +
// " d.spec_snap AS spec_snap," +
" pro.stock_number AS stock_number," +
" SUM( CASE WHEN d.sub_type = - 1 THEN ABS(d.stock_number) ELSE 0 END ) AS sub_count_number," +
@ -22,6 +22,8 @@ public interface ProductStockCountRepository extends JpaRepository<TbProductStoc
" SUM( CASE WHEN d.type IN ( '供应商出库', '盘点出库', '其他出库' ) THEN ABS(d.stock_number) ELSE 0 END ) AS sub_number," +
" SUM( CASE WHEN d.type = '售出记录' THEN ABS(d.stock_number) ELSE 0 END ) AS sale_number," +
" SUM( CASE WHEN d.type = '报损' THEN ABS(d.stock_number) ELSE 0 END ) AS loss_number," +
" null AS stock_in_number," +
" null AS stock_out_number," +
" SUM( CASE WHEN d.type = '退单' THEN ABS(d.stock_number) ELSE 0 END ) AS refund_number " +
"FROM" +
" tb_product_stock_detail d " +

View File

@ -245,32 +245,32 @@ public class TbProductStockDetailServiceImpl implements TbProductStockDetailServ
public void addSaleRecord(Integer orderId) {
List<StockCountDTO> stockCountDTOS = stockCountRepository.countStockById(orderId);
log.info("查询到订单id: {}的所有库存数据: {}", orderId, stockCountDTOS);
stockCountDTOS.forEach(s -> {
//客座费不统计
if (s.getProId() > 0) {
if (s.getStockCount() > 0) {
TbProductStockDetail productStockDetail = new TbProductStockDetail();
productStockDetail.setCreatedAt(System.currentTimeMillis());
productStockDetail.setUpdatedAt(System.currentTimeMillis());
productStockDetail.setShopId(s.getShopId());
productStockDetail.setProductId(s.getProId().toString());
productStockDetail.setProductName(s.getProName());
productStockDetail.setOrderId(orderId.toString());
// productStockDetail.setSkuId(s.getSkuId().toString());
productStockDetail.setIsStock(s.getIsStock());//是否开启库存
productStockDetail.setLeftNumber(s.getStockNumber() + s.getStockCount());//原库存
productStockDetail.setSpecSnap(s.getSpecSnap());
productStockDetail.setUnitName(s.getUnitName());
productStockDetail.setStockNumber(-Double.valueOf(s.getStockCount()));
productStockDetail.setSourcePath("NORMAL");
productStockDetail.setType("售出记录");
productStockDetail.setRemark("售出记录:" + orderId);
productStockDetail.setSubType(-1);
tbProductStockDetailRepository.save(productStockDetail);
}
skutMapper.incrRealSalesNumber(s.getSkuId().intValue(), s.getStockCount());
}
});
// stockCountDTOS.forEach(s -> {
// //客座费不统计
// if (s.getProId() > 0) {
// if (s.getStockCount() > 0) {
// TbProductStockDetail productStockDetail = new TbProductStockDetail();
// productStockDetail.setCreatedAt(System.currentTimeMillis());
// productStockDetail.setUpdatedAt(System.currentTimeMillis());
// productStockDetail.setShopId(s.getShopId());
// productStockDetail.setProductId(s.getProId().toString());
// productStockDetail.setProductName(s.getProName());
// productStockDetail.setOrderId(orderId.toString());
//// productStockDetail.setSkuId(s.getSkuId().toString());
// productStockDetail.setIsStock(s.getIsStock());//是否开启库存
// productStockDetail.setLeftNumber(s.getStockNumber() + s.getStockCount());//原库存
// productStockDetail.setSpecSnap(s.getSpecSnap());
// productStockDetail.setUnitName(s.getUnitName());
// productStockDetail.setStockNumber(-Double.valueOf(s.getStockCount()));
// productStockDetail.setSourcePath("NORMAL");
// productStockDetail.setType("售出记录");
// productStockDetail.setRemark("售出记录:" + orderId);
// productStockDetail.setSubType(-1);
// tbProductStockDetailRepository.save(productStockDetail);
// }
// skutMapper.incrRealSalesNumber(s.getSkuId().intValue(), s.getStockCount());
// }
// });
}
}