Class PackagingUnitMoverImpl

java.lang.Object
org.openwms.wms.inventory.impl.PackagingUnitMoverImpl
All Implemented Interfaces:
PackagingUnitMover

@Validated @TxService class PackagingUnitMoverImpl extends Object implements PackagingUnitMover
A PackagingUnitMoverImpl is a Spring managed transactional bean that is responsible for moving PackagingUnits.
Author:
Heiko Scherrer
  • Field Details

    • LOGGER

      private static final org.slf4j.Logger LOGGER
    • eventPublisher

      private final org.springframework.context.ApplicationEventPublisher eventPublisher
    • translator

      private final org.ameba.i18n.Translator translator
    • repository

      private final PackagingUnitRepository repository
    • packagingUnitCreator

      private final PackagingUnitCreator packagingUnitCreator
    • packagingUnitFinder

      private final PackagingUnitFinder packagingUnitFinder
    • productService

      private final ProductService productService
    • locationService

      private final LocationService locationService
    • loadUnitService

      private final LoadUnitService loadUnitService
  • Constructor Details

  • Method Details

    • moveAll

      @Measured public void moveAll(@NotEmpty @NotEmpty String sourceTransportUnitBK, @NotEmpty @NotEmpty String sourceLoadUnitPosition, @NotEmpty @NotEmpty String targetTransportUnitBK, @NotEmpty @NotEmpty String targetLoadUnitPosition, @NotNull @NotNull ProductVO product)
      Move all PackagingUnits of a given Product from a LoadUnit to another.
      Specified by:
      moveAll in interface PackagingUnitMover
      Parameters:
      sourceTransportUnitBK - The source TransportUnit where to take the PackagingUnits from
      sourceLoadUnitPosition - The source LoadUnit where to take the PackagingUnits from
      targetTransportUnitBK - The target TransportUnit where to move the PackagingUnits to
      targetLoadUnitPosition - The target LoadUnit where to move the PackagingUnits to
      product - The Product to move
    • moveAllToLocation

      @Measured public void moveAllToLocation(@NotEmpty @NotEmpty String sourceTransportUnitBK, @NotEmpty @NotEmpty String sourceLoadUnitPosition, @NotNull @NotNull LocationVO targetLocation, @NotNull @NotNull ProductVO product)
      Move all PackagingUnits of the given Product from a LoadUnit to another.
      Specified by:
      moveAllToLocation in interface PackagingUnitMover
      Parameters:
      sourceTransportUnitBK - The source TransportUnit where to take the PackagingUnits from
      sourceLoadUnitPosition - The source LoadUnit where to take the PackagingUnits from
      targetLocation - The target Location where to move the PackagingUnits to
      product - The Product to move
    • moveQuantity

      @Measured public void moveQuantity(@NotEmpty @NotEmpty String sourceTransportUnitBK, @NotEmpty @NotEmpty String sourceLoadUnitPosition, @NotEmpty @NotEmpty String targetTransportUnitBK, @NotEmpty @NotEmpty String targetLoadUnitPosition, @NotNull @NotNull org.openwms.core.units.api.Measurable quantity, @NotNull @NotNull ProductVO product)
      Move PackagingUnits of the given Product and of a quantity from a LoadUnit to another.
      Specified by:
      moveQuantity in interface PackagingUnitMover
      Parameters:
      sourceTransportUnitBK - The source TransportUnit where to take the PackagingUnits from
      sourceLoadUnitPosition - The source LoadUnit where to take the PackagingUnits from
      targetTransportUnitBK - The target TransportUnit where to move the PackagingUnits to
      targetLoadUnitPosition - The target LoadUnit where to move the PackagingUnits to
      quantity - The demanded quantity to move
      product - The Product to move
    • moveQuantityToLocation

      @Measured public void moveQuantityToLocation(@NotEmpty @NotEmpty String sourceTransportUnitBK, @NotEmpty @NotEmpty String sourceLoadUnitPosition, @NotNull @NotNull LocationVO targetLocation, @NotNull @NotNull org.openwms.core.units.api.Measurable quantity, @NotNull @NotNull ProductVO product)
      Move PackagingUnits of a given Product and of a quantity from a LoadUnit to another.
      Specified by:
      moveQuantityToLocation in interface PackagingUnitMover
      Parameters:
      sourceTransportUnitBK - The source TransportUnit where to take the PackagingUnits from
      sourceLoadUnitPosition - The source LoadUnit where to take the PackagingUnits from
      targetLocation - The target Location where to move the PackagingUnits to
      quantity - The demanded quantity to move
      product - The Product to move
    • resolve

      private Location resolve(LocationVO location)
    • move

      private void move(List<PackagingUnit> pus, String sku, Consumer<PackagingUnit> consumer)
    • move

      private void move(List<PackagingUnit> pus, String sku, org.openwms.core.units.api.Measurable quantity, Consumer<PackagingUnit> onMovePU, Consumer<PackagingUnit> onSplitPU)
    • moveBetweenLocations

      @Measured public void moveBetweenLocations(@NotNull @NotNull MovePURequestVO request)
      Move one or more PackagingUnits between Locations. If a quantity is given, the amount of PackagingUnits that are going to be moved is calculated. If no quantity is present in the request, all PackagingUnits are moved from the source Location to the target Location.
      Specified by:
      moveBetweenLocations in interface PackagingUnitMover
      Parameters:
      request - All the details for the move
    • getLoadUnit

      private LoadUnit getLoadUnit(String transportUnitBK, String loadUnitPosition)
    • moveToLoadUnit

      @Measured public void moveToLoadUnit(@NotNull @NotNull MovePURequestVO request)
      Move one or more PackagingUnits from a Location to a LoadUnit. If a quantity is given, the amount of PackagingUnits that are going to be moved is calculated. If no quantity is present in the request, all PackagingUnits are moved from the source Location to the target LoadUnit.
      Specified by:
      moveToLoadUnit in interface PackagingUnitMover
      Parameters:
      request - All the details for the move