package org.openlmis.stockmanagement.repository; import lombok.NoArgsConstructor; import org.openlmis.stockmanagement.domain.Lot; import org.openlmis.stockmanagement.domain.LotOnHand; import org.openlmis.stockmanagement.repository.mapper.LotMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Objects; @Component @NoArgsConstructor public class LotRepository { @Autowired LotMapper mapper; LotRepository(LotMapper mapper) { this.mapper = Objects.requireNonNull(mapper); } public LotOnHand getLotOnHandByStockCardAndLot(Long stockCardId, Long lotId) { return mapper.getLotOnHandByStockCardAndLot(stockCardId, lotId); } public LotOnHand getLotOnHandByStockCardAndLotObject(Long stockCardId, Lot lot) { return mapper.getLotOnHandByStockCardAndLotObject(stockCardId, lot); } public Lot getOrCreateLot(Lot lot) { Lot l = mapper.getByObject(lot); if (null == l) { mapper.insert(lot); l = lot; } return l; } public void saveLotOnHand(LotOnHand lotOnHand) { if (null == lotOnHand.getId()) { mapper.insertLotOnHand(lotOnHand); } else { mapper.updateLotOnHand(lotOnHand); } } }