From 8f809fdea701c846c6860a7f8ed1db591321c003 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Fri, 7 Mar 2025 14:19:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E6=89=A3=E5=87=8F=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E5=8C=85=E8=A3=85=E5=8D=95=E4=BD=8D=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/SupermarketSpuUpdateStockReqDTO.java | 2 +- .../dto/inventoryrecords/UpdateStockDTO.java | 2 +- .../SmErpInventoryRecordsItemEntity.java | 2 +- .../service/impl/SmErpSpuServiceImpl.java | 35 +++++++++++-------- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java index 50359909d..17b864c1d 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/SupermarketSpuUpdateStockReqDTO.java @@ -45,7 +45,7 @@ public class SupermarketSpuUpdateStockReqDTO { * 负数:扣减库存 */ @NotNull(message = "库存变化数量不能为空") - private Integer incrCount; + private Double incrCount; } diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/inventoryrecords/UpdateStockDTO.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/inventoryrecords/UpdateStockDTO.java index bb16e1095..d27d92548 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/inventoryrecords/UpdateStockDTO.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/dto/inventoryrecords/UpdateStockDTO.java @@ -31,7 +31,7 @@ public class UpdateStockDTO { * 负数:扣减库存 */ @NotNull(message = "库存变化数量不能为空") - private Integer incrCount; + private Double incrCount; } diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsItemEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsItemEntity.java index fe2057254..627d47210 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsItemEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpInventoryRecordsItemEntity.java @@ -57,7 +57,7 @@ public class SmErpInventoryRecordsItemEntity extends Model updateStockDTOS = new ArrayList(); + //出库主表数据 + SmErpInventoryRecordsEntity smErpInventoryRecordsEntity = new SmErpInventoryRecordsEntity(); + String s = sequence.nextNo(); + String result = InventoryTypeEnum.LSCK.getValue() + "-" + s; + smErpInventoryRecordsEntity.setInventoryCode(result); + smErpInventoryRecordsEntity.setInventoryDate(LocalDate.now()); + smErpInventoryRecordsEntity.setInventoryType(InventoryTypeEnum.LSCK.getType()); + smErpInventoryRecordsEntity.setOrderType(OrderTypeEnum.CK.getType()); + smErpInventoryRecordsEntity.setDeviceType(updateStockReqDTO.getDeviceType()); + //生成出入库记录 + smErpInventoryRecordsMapper.insert(smErpInventoryRecordsEntity); + List smErpInventoryRecordsItemEntityList = new ArrayList<>(); + for (SupermarketSpuUpdateStockReqDTO.Item v : updateStockReqDTO.getItems()) { SmErpUnitEntity smErpUnitEntity = smErpUnitService.getById(v.getId()); + //计算包装单位实际需要扣减的库存 + Double incrCount = (smErpUnitEntity.getPackageNum()) * v.getIncrCount(); // 查询当前库存 Long spuId = smErpUnitEntity.getSpuId(); SmErpSpuEntity spu = baseMapper.selectById(spuId); @@ -251,36 +266,28 @@ public class SmErpSpuServiceImpl extends ServiceImpl smErpStockEntity.getCurrentStock()) { + if (incrCount < 0 && Math.abs(incrCount) > smErpStockEntity.getCurrentStock()) { return R.failed(spu.getProductName() + "库存不足,无法完成操作"); } - UpdateStockDTO updateStockDTO = new UpdateStockDTO(spuId, v.getIncrCount()); + UpdateStockDTO updateStockDTO = new UpdateStockDTO(spuId, incrCount); updateStockDTOS.add(updateStockDTO); smErpStockService.updateStock(updateStockDTOS); - //todo 生成出入库记录 - SmErpInventoryRecordsEntity smErpInventoryRecordsEntity = new SmErpInventoryRecordsEntity(); - String s = sequence.nextNo(); - String result = InventoryTypeEnum.LSCK.getValue() + "-" + s; - smErpInventoryRecordsEntity.setInventoryCode(result); - smErpInventoryRecordsEntity.setInventoryDate(LocalDate.now()); - smErpInventoryRecordsEntity.setInventoryType(InventoryTypeEnum.LSCK.getType()); - smErpInventoryRecordsEntity.setOrderType(OrderTypeEnum.CK.getType()); - smErpInventoryRecordsEntity.setDeviceType(updateStockReqDTO.getDeviceType()); - smErpInventoryRecordsMapper.insert(smErpInventoryRecordsEntity); + //生成出入库记录 SmErpInventoryRecordsItemEntity smErpInventoryRecordsItemEntity = new SmErpInventoryRecordsItemEntity(); smErpInventoryRecordsItemEntity.setInventoryId(smErpInventoryRecordsEntity.getId()); smErpInventoryRecordsItemEntity.setErpSpuId(spuId); - smErpInventoryRecordsItemEntity.setQuantity(v.getIncrCount()); + smErpInventoryRecordsItemEntity.setQuantity(incrCount); smErpInventoryRecordsItemEntity.setUnitId(v.getId()); smErpInventoryRecordsItemEntity.setOrderType(OrderTypeEnum.CK.getType()); //todo 添加收款金额字段和会员卡号,用于记录零售业务 smErpInventoryRecordsItemEntity.setUnitPrice (smErpUnitEntity.getPromotionPrice()==null || smErpUnitEntity.getPromotionPrice()==0 ?smErpUnitEntity.getRetailPrice():smErpUnitEntity.getPromotionPrice()); - smErpInventoryRecordsItemMapper.insert(smErpInventoryRecordsItemEntity); + smErpInventoryRecordsItemEntityList.add(smErpInventoryRecordsItemEntity); } + smErpInventoryRecordsItemMapper.insert(smErpInventoryRecordsItemEntityList); return R.ok(); }