From 1c935a3e653e46eb69f69820969246558c2f4aaf Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Mon, 24 Feb 2025 18:57:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supermarket/entity/SmErpStockEntity.java | 2 +- .../supermarket/entity/SmErpUnitEntity.java | 4 ++ .../controller/SmErpSpuController.java | 9 ++++- .../service/impl/SmErpSpuServiceImpl.java | 39 +++++++++++++++---- .../service/impl/SmErpStockServiceImpl.java | 4 +- .../resources/mapper/SmErpStockMapper.xml | 9 ++--- .../main/resources/mapper/SmErpUnitMapper.xml | 1 + .../src/main/resources/mapper/SmSpuMapper.xml | 6 ++- 8 files changed, 53 insertions(+), 21 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpStockEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpStockEntity.java index 5528e6121..58c36c36a 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpStockEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpStockEntity.java @@ -45,7 +45,7 @@ public class SmErpStockEntity extends Model { * spuID */ @Schema(description="spuID") - private Long spuId; + private Long erpSpuId; /** * 创建者 diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpUnitEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpUnitEntity.java index 5d345750a..84d24c790 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpUnitEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpUnitEntity.java @@ -142,4 +142,8 @@ public class SmErpUnitEntity extends Model { */ @Schema(description="租户编号") private Long tenantId; + + + @Schema(description = "是否是基础库存,默认0否,1是") + private String isBase; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java index ae4f043c6..fb71b23f4 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpSpuController.java @@ -110,7 +110,7 @@ public class SmErpSpuController { SmErpSpuEntity smErpSpuEntity = smErpSpuService.getById(id); //库存 LambdaQueryWrapper smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); - smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, id); + smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, id); SmErpStockEntity smErpStockEntity = smErpStockService.list(smErpStockEntityLambdaQueryWrapper).get(0); smErpSpuEntity.setStock(smErpStockEntity.getBaseStock()); smErpStockEntity.setInventoryLowerLimit(smErpStockEntity.getInventoryLowerLimit()); @@ -247,6 +247,7 @@ public class SmErpSpuController { + //-------------------APP----------------- /** @@ -292,7 +293,11 @@ public class SmErpSpuController { if (spu == null) { R.failed("商品不存在"); } - if (spu.getStock() smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, spuId); + SmErpStockEntity smErpStockEntity = smErpStockService.getOne(smErpStockEntityLambdaQueryWrapper); + + if (smErpStockEntity.getCurrentStock() selectWStockWrapper = new LambdaQueryWrapper<>(); + selectWStockWrapper.eq(SmErpStockEntity::getErpSpuId, supermarketSpu.getId()); + SmErpStockEntity queryStock = smErpStockMapper.selectOne(selectWStockWrapper); + //得到单据进出的库存数量 + int inventoryStockNum = queryStock.getCurrentStock() - queryStock.getBaseStock(); + LambdaQueryWrapper smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); - smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId, supermarketSpu.getId()); + smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, supermarketSpu.getId()); SmErpStockEntity smErpStockEntity = new SmErpStockEntity(); smErpStockEntity.setBaseStock(stock); + //单据进出的+期初 + smErpStockEntity.setCurrentStock(stock+inventoryStockNum); smErpStockEntity.setInventoryLowerLimit(supermarketSpu.getInventoryLowerLimit()); smErpStockEntity.setInventoryUpperLimit(supermarketSpu.getInventoryUpperLimit()); smErpStockMapper.update(smErpStockEntity,smErpStockEntityLambdaQueryWrapper); @@ -195,12 +205,25 @@ public class SmErpSpuServiceImpl extends ServiceImpl smErpUnitEntityList = smErpUnitService.list(new LambdaQueryWrapper().eq(SmErpUnitEntity::getSpuId, id)); + + SmSpuEntity smSpuEntity = spuMapper.selectById(id); + if (smSpuEntity == null) { + return R.failed("商品不存在"); + } + + SmErpSpuEntity smErpSpuEntity = baseMapper.selectById(smSpuEntity.getErpSpuId()); + + List smErpUnitEntityList = smErpUnitService.list(new LambdaQueryWrapper().eq(SmErpUnitEntity::getSpuId, smErpSpuEntity.getId())); + + LambdaQueryWrapper smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId, smErpSpuEntity.getId()); + SmErpStockEntity smErpStockEntity = smErpStockMapper.selectOne(smErpStockEntityLambdaQueryWrapper); + List unitEntities = smErpUnitEntityList.stream().filter(supermarketUnitEntity -> supermarketUnitEntity.getStatus() == 0).collect(Collectors.toList()); SupermarketAppSpuDetailsVo supermarketAppSpuVo = BeanUtils.toBean(smErpSpuEntity, SupermarketAppSpuDetailsVo.class); List supermarketAppUnitVos = BeanUtils.toBean(unitEntities, SupermarketAppUnitVo.class); supermarketAppSpuVo.setSkuList(supermarketAppUnitVos); + supermarketAppSpuVo.setStock(smErpStockEntity.getCurrentStock()); return supermarketAppSpuVo; } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpStockServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpStockServiceImpl.java index 431dbc6ab..1ca8a0275 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpStockServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpStockServiceImpl.java @@ -43,11 +43,11 @@ public class SmErpStockServiceImpl extends ServiceImpl smErpStockEntityLambdaQueryWrapper = new LambdaQueryWrapper(); - smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getSpuId,item.getId()); + smErpStockEntityLambdaQueryWrapper.eq(SmErpStockEntity::getErpSpuId,item.getId()); SmErpStockEntity smErpStockEntity = baseMapper.selectOne(smErpStockEntityLambdaQueryWrapper); LambdaQueryWrapper updateStockWithLockWrapper = new LambdaQueryWrapper(); - updateStockWithLockWrapper.eq(SmErpStockEntity::getSpuId,item.getId()); + updateStockWithLockWrapper.eq(SmErpStockEntity::getErpSpuId,item.getId()); updateStockWithLockWrapper.eq(SmErpStockEntity::getVersion,smErpStockEntity.getVersion()); SmErpStockEntity updateSmErpStockEntity = new SmErpStockEntity(); updateSmErpStockEntity.setCurrentStock(smErpStockEntity.getCurrentStock()+item.getIncrCount()); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpStockMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpStockMapper.xml index bdb19e0b5..478c4c4f6 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpStockMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpStockMapper.xml @@ -7,7 +7,7 @@ - + @@ -21,9 +21,6 @@ - - - @@ -51,14 +48,14 @@ spu.category_id, spu.id, CASE - WHEN (stock.base_stock + stock.current_stock) > stock.inventory_upper_limit THEN '2' + WHEN (stock.current_stock) > stock.inventory_upper_limit THEN '2' ELSE '1' END AS warn_type FROM sm_erp_stock stock LEFT JOIN sm_erp_spu spu ON stock.spu_id = spu.id - (stock.base_stock + stock.current_stock) < stock.inventory_lower_limit or (stock.base_stock + stock.current_stock) > stock.inventory_upper_limit + (stock.current_stock) < stock.inventory_lower_limit or ( stock.current_stock) > stock.inventory_upper_limit AND spu.product_code = #{param.productCode} diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml index db473a0fb..6681b87e8 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmErpUnitMapper.xml @@ -21,6 +21,7 @@ + diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmSpuMapper.xml b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmSpuMapper.xml index 433cfe09a..25389f458 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmSpuMapper.xml +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/mapper/SmSpuMapper.xml @@ -34,13 +34,15 @@