From f105a19caf32b6ec53e3d984a04de4370d1888cc Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Tue, 12 Aug 2025 00:22:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=96=B0=E5=BA=93?= =?UTF-8?q?=E5=AD=98*=E5=86=85=E8=A3=85=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SmErpInventoryRecordsServiceImpl.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java index 5699750ab..1a0a2f1ac 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpInventoryRecordsServiceImpl.java @@ -107,6 +107,10 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class); List updateStockDTOS = new ArrayList<>(); + Set units = cgPlanItemEntities.stream().map(s -> s.getUnitId()).collect(Collectors.toSet()); + List smErpUnitEntities = smErpUnitMapper.selectList(new LambdaQueryWrapper().in(SmErpUnitEntity::getId, units)); + Map unitMap = smErpUnitEntities.stream().collect(Collectors.toMap(SmErpUnitEntity::getId, unit -> unit)); + for (SmErpInventoryRecordsItemEntity cgPlanItemEntity : cgPlanItemEntities) { cgPlanItemEntity.setInventoryId(smErpCgDdEntity.getId()); cgPlanItemEntity.setDeptId(deptId); @@ -115,10 +119,11 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl items = inventoryRecordEditDTO.getItems(); List updateStockDTOS = new ArrayList<>(); List smErpInventoryRecordsItemEntityList = new ArrayList<>(); + Set units = items.stream().map(s -> s.getUnitId()).collect(Collectors.toSet()); + List smErpUnitEntities = smErpUnitMapper.selectList(new LambdaQueryWrapper().in(SmErpUnitEntity::getId, units)); + Map unitMap = smErpUnitEntities.stream().collect(Collectors.toMap(SmErpUnitEntity::getId, unit -> unit)); for (InventoryRecordEditItemDTO item : items){ SmErpInventoryRecordsItemEntity smErpInventoryRecordsItemEntity = new SmErpInventoryRecordsItemEntity(); @@ -470,10 +478,11 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl dataBaseSmErpInventoryRecordsItemEntityList = smErpInventoryRecordsItemMapper .selectList(new LambdaQueryWrapper().eq(SmErpInventoryRecordsItemEntity::getInventoryId, inventoryRecordEditDTO.getId())); + + Set unitsRemoved = dataBaseSmErpInventoryRecordsItemEntityList.stream().map(s -> s.getUnitId()).collect(Collectors.toSet()); + List smErpUnitEntitiesRemoved = smErpUnitMapper.selectList(new LambdaQueryWrapper().in(SmErpUnitEntity::getId, unitsRemoved)); + Map unitMapRemoved = smErpUnitEntitiesRemoved.stream().collect(Collectors.toMap(SmErpUnitEntity::getId, unit -> unit)); + //这部分是数据库原本添加的库存数据,需要全部减掉,重新添加更新的库存数据进去 dataBaseSmErpInventoryRecordsItemEntityList.forEach(item -> { + Integer packageNum = unitMapRemoved.get(item.getUnitId()).getPackageNum(); UpdateStockDTO updateStockDTO = new UpdateStockDTO(); updateStockDTO.setId(item.getErpSpuId()); - updateStockDTO.setIncrCount(-item.getQuantity()); + if (item.getOrderType().equals(OrderTypeEnum.RK.getType())){ + updateStockDTO.setIncrCount(-packageNum *item.getQuantity()); + } + if (item.getOrderType().equals(OrderTypeEnum.CK.getType())){ + updateStockDTO.setIncrCount(packageNum *item.getQuantity()); + } updateStockDTOS.add(updateStockDTO); });