修复更新库存*内装数
This commit is contained in:
1 parent
7c7c55d90e
commit
f105a19caf
1 file changed
+25
-5
+25
-5
@@ -107,6 +107,10 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
|
||||
List<SmErpInventoryRecordsItemEntity> cgPlanItemEntities = BeanUtils.toBean(items, SmErpInventoryRecordsItemEntity.class);
|
||||
List<UpdateStockDTO> updateStockDTOS = new ArrayList<>();
|
||||
Set<Long> units = cgPlanItemEntities.stream().map(s -> s.getUnitId()).collect(Collectors.toSet());
|
||||
List<SmErpUnitEntity> smErpUnitEntities = smErpUnitMapper.selectList(new LambdaQueryWrapper<SmErpUnitEntity>().in(SmErpUnitEntity::getId, units));
|
||||
Map<Long, SmErpUnitEntity> 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<SmErpInventory
|
||||
Double quantity = cgPlanItemEntity.getQuantity();
|
||||
String orderType = smErpCgDdEntity.getOrderType();
|
||||
cgPlanItemEntity.setOrderType(orderType);
|
||||
Integer packageNum = unitMap.get(cgPlanItemEntity.getUnitId()).getPackageNum();
|
||||
if (orderType.equals(OrderTypeEnum.RK.getType())){
|
||||
updateStockDTO.setIncrCount(quantity);
|
||||
updateStockDTO.setIncrCount(packageNum*quantity);
|
||||
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
|
||||
updateStockDTO.setIncrCount(-quantity);
|
||||
updateStockDTO.setIncrCount(-packageNum*quantity);
|
||||
}else if (orderType.equals(OrderTypeEnum.No.getType())){
|
||||
//无需更新库存
|
||||
}else {
|
||||
@@ -460,6 +465,9 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
List<InventoryRecordEditItemDTO> items = inventoryRecordEditDTO.getItems();
|
||||
List<UpdateStockDTO> updateStockDTOS = new ArrayList<>();
|
||||
List<SmErpInventoryRecordsItemEntity> smErpInventoryRecordsItemEntityList = new ArrayList<>();
|
||||
Set<Long> units = items.stream().map(s -> s.getUnitId()).collect(Collectors.toSet());
|
||||
List<SmErpUnitEntity> smErpUnitEntities = smErpUnitMapper.selectList(new LambdaQueryWrapper<SmErpUnitEntity>().in(SmErpUnitEntity::getId, units));
|
||||
Map<Long, SmErpUnitEntity> 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<SmErpInventory
|
||||
Double quantity = item.getQuantity();
|
||||
String orderType = item.getOrderType();
|
||||
smErpInventoryRecordsItemEntity.setOrderType(orderType);
|
||||
Integer packageNum = unitMap.get(item.getUnitId()).getPackageNum();
|
||||
if (orderType.equals(OrderTypeEnum.RK.getType())){
|
||||
updateStockDTO.setIncrCount(quantity);
|
||||
updateStockDTO.setIncrCount(packageNum*quantity);
|
||||
}else if (orderType.equals(OrderTypeEnum.CK.getType())){
|
||||
updateStockDTO.setIncrCount(-quantity);
|
||||
updateStockDTO.setIncrCount(packageNum*-quantity);
|
||||
}else {
|
||||
throw new RuntimeException("订单类型错误");
|
||||
}
|
||||
@@ -499,11 +508,22 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
List<SmErpInventoryRecordsItemEntity> dataBaseSmErpInventoryRecordsItemEntityList = smErpInventoryRecordsItemMapper
|
||||
.selectList(new LambdaQueryWrapper<SmErpInventoryRecordsItemEntity>().eq(SmErpInventoryRecordsItemEntity::getInventoryId, inventoryRecordEditDTO.getId()));
|
||||
|
||||
|
||||
Set<Long> unitsRemoved = dataBaseSmErpInventoryRecordsItemEntityList.stream().map(s -> s.getUnitId()).collect(Collectors.toSet());
|
||||
List<SmErpUnitEntity> smErpUnitEntitiesRemoved = smErpUnitMapper.selectList(new LambdaQueryWrapper<SmErpUnitEntity>().in(SmErpUnitEntity::getId, unitsRemoved));
|
||||
Map<Long, SmErpUnitEntity> 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);
|
||||
});
|
||||
|
||||
|
||||
Reference in new issue
Block a user