库存排序 按照库存数量 顺序

导入库存
This commit is contained in:
wangw 2024-07-02 14:48:23 +08:00
parent f491a382cb
commit d59390831e
3 changed files with 9 additions and 10 deletions

View File

@ -72,7 +72,6 @@ public class StockController {
@Log("库存导入")
@PostMapping("/doImport/v2")
@ApiOperation("文件导入库存")
@AnonymousPostMapping
public ResponseEntity<Object> importExcelV2(@RequestParam String shopId,@RequestParam("file") MultipartFile file) {
String fileName = file.getOriginalFilename();
if (file.isEmpty()) {

View File

@ -55,10 +55,7 @@ public interface TbProductSkuRepository extends JpaRepository<TbProductSku, Inte
@Query("SELECT new cn.ysk.cashier.vo.StockV2Vo(" +
"sku.id,pro.id,pro.coverImg,pro.name,unit.name,pro.typeEnum,sku.specSnap,pro.isStock, " +
"CASE " +
" WHEN pro.isDistribute = 1 THEN IFNULL(pro.stockNumber, 0) " +
" ELSE SUM(sku.stockNumber) " +
" END " +
"CASE WHEN pro.isDistribute = 1 THEN IFNULL(pro.stockNumber, 0) ELSE SUM(sku.stockNumber) END as number" +
", pro.isDistribute, pro.isPauseSale, true, sku.warnLine, pro.lowPrice) " +
"from " +
"TbProduct pro " +
@ -70,8 +67,7 @@ public interface TbProductSkuRepository extends JpaRepository<TbProductSku, Inte
"AND (:proName IS NULL OR pro.name LIKE %:proName%) " +
"AND (:isStock IS NULL OR pro.isStock = :isStock) " +
"group by pro.id " +
"ORDER BY " +
"pro.name DESC,sku.stockNumber DESC")
"order by number asc ")
Page<StockV2Vo> searchProStockV2(@Param("shopId") String shopId, @Param("proName") String proName, @Param("isStock")Integer isStock, Pageable pageable);
@Query("SELECT new cn.ysk.cashier.vo.StockV2Vo(" +

View File

@ -12,6 +12,7 @@ import cn.ysk.cashier.repository.shop.TbShopInfoRepository;
import cn.ysk.cashier.service.TbProductStockOperateService;
import cn.ysk.cashier.service.product.StockService;
import cn.ysk.cashier.service.product.TbProductService;
import cn.ysk.cashier.utils.CacheKey;
import cn.ysk.cashier.utils.FileUtil;
import cn.ysk.cashier.utils.RedisUtils;
import cn.ysk.cashier.utils.StringUtils;
@ -260,16 +261,19 @@ public class StockServiceImpl implements StockService {
@Transactional
public void inHouseV2(String shopId, List<StockV2Vo> list) {
Map<Integer, Double> idStockMap = new HashMap<>();
Set<Integer> proIds=new HashSet<>();
Set<Integer> skuIds=new HashSet<>();
for (StockV2Vo stockVo : list) {
if (stockVo.getProId() == 0) {
tbProductSkuRepository.updateStockNumber2(stockVo.getSkuId(), shopId, Double.parseDouble(stockVo.getNumber().toString()));
skuIds.add(stockVo.getSkuId());
} else {
productService.updateStockNumber(stockVo.getProId(), Double.parseDouble(stockVo.getNumber().toString()));
proIds.add(stockVo.getProId());
}
idStockMap.put(stockVo.getSkuId(), Double.parseDouble(stockVo.getNumber().toString()));
}
redisUtils.redisUp(2, shopId, idStockMap);
redisUtils.delByIntKey(CacheKey.PRODUCT_SKU + shopId + ":product", proIds);
redisUtils.delByIntKey(CacheKey.PRODUCT_SKU + shopId + ":", skuIds);
}
@Transactional