Skip to content

Commit

Permalink
GreenCityUBS bug in saving events (#975)
Browse files Browse the repository at this point in the history
* change method collectEventAboutSetOrderDetails
add getAmount in UpdateOrderDetailRepository

* add Test to cover new line

* changes according to comments

* changes name of Interface UpdateOderDetailRepository on OderDetailRepository
change name of variables updateOrderRepository on orderDetailRepository
  • Loading branch information
LiliaMokhnatska authored Jan 31, 2023
1 parent 9494225 commit e934675
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.springframework.stereotype.Repository;

@Repository
public interface UpdateOrderDetailRepository extends JpaRepository<Order, Integer> {
public interface OrderDetailRepository extends JpaRepository<Order, Integer> {
/**
* Method for update Exported value.
*
Expand All @@ -20,6 +20,17 @@ public interface UpdateOrderDetailRepository extends JpaRepository<Order, Intege
+ "WHERE ORDER_ID = :orderId AND BAG_ID = :bagId", nativeQuery = true)
void updateExporter(Integer valueExported, Long orderId, Long bagId);

/**
* Method for get Amount value.
*
* @param orderId order id {@link Long}
* @param bagId bag id {@link Long}
* @author Lilia Mokhnatska
*/
@Query(value = "SELECT obm.amount FROM order_bag_mapping as obm "
+ "WHERE obm.order_id = :orderId AND obm.bag_id = :bagId", nativeQuery = true)
Long getAmount(Long orderId, Long bagId);

/**
* Method for update Amount value.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public class UBSManagementServiceImpl implements UBSManagementService {
private final UserRepository userRepository;
private final ObjectMapper objectMapper;
private final BagRepository bagRepository;
private final UpdateOrderDetailRepository updateOrderRepository;
private final OrderDetailRepository orderDetailRepository;
private final PaymentRepository paymentRepository;
private final EmployeeRepository employeeRepository;
private final ReceivingStationRepository receivingStationRepository;
Expand Down Expand Up @@ -563,11 +563,11 @@ public void setOrderDetail(Long orderId,
if (nonNull(confirmed)) {
for (Map.Entry<Integer, Integer> entry : confirmed.entrySet()) {
if (Boolean.TRUE
.equals(updateOrderRepository.ifRecordExist(orderId, entry.getKey().longValue()) <= 0)) {
updateOrderRepository.insertNewRecord(orderId, entry.getKey().longValue());
updateOrderRepository.updateAmount(0, orderId, entry.getKey().longValue());
.equals(orderDetailRepository.ifRecordExist(orderId, entry.getKey().longValue()) <= 0)) {
orderDetailRepository.insertNewRecord(orderId, entry.getKey().longValue());
orderDetailRepository.updateAmount(0, orderId, entry.getKey().longValue());
}
updateOrderRepository
orderDetailRepository
.updateConfirm(entry.getValue(), orderId,
entry.getKey().longValue());
}
Expand All @@ -576,11 +576,11 @@ public void setOrderDetail(Long orderId,
if (nonNull(exported)) {
for (Map.Entry<Integer, Integer> entry : exported.entrySet()) {
if (Boolean.TRUE
.equals(updateOrderRepository.ifRecordExist(orderId, entry.getKey().longValue()) <= 0)) {
updateOrderRepository.insertNewRecord(orderId, entry.getKey().longValue());
updateOrderRepository.updateAmount(0, orderId, entry.getKey().longValue());
.equals(orderDetailRepository.ifRecordExist(orderId, entry.getKey().longValue()) <= 0)) {
orderDetailRepository.insertNewRecord(orderId, entry.getKey().longValue());
orderDetailRepository.updateAmount(0, orderId, entry.getKey().longValue());
}
updateOrderRepository
orderDetailRepository
.updateExporter(entry.getValue(), orderId,
entry.getKey().longValue());
}
Expand Down Expand Up @@ -658,20 +658,22 @@ private void collectEventAboutConfirmWaste(Map<Integer, Integer> confirmed, Orde
for (Map.Entry<Integer, Integer> entry : confirmed.entrySet()) {
Integer capacity = bagRepository.findCapacityById(entry.getKey());
Optional<Bag> bagOptional = bagRepository.findById(entry.getKey());

if (bagOptional.isPresent() && checkOrderStatusAboutConfirmWaste(order)) {
Optional<Long> confirmWasteWas = Optional.empty();
Optional<Long> initialAmount = Optional.empty();
Bag bag = bagOptional.get();
if (Boolean.TRUE.equals(updateOrderRepository.ifRecordExist(orderId, entry.getKey().longValue()) > 0)) {
if (Boolean.TRUE.equals(orderDetailRepository.ifRecordExist(orderId, entry.getKey().longValue()) > 0)) {
confirmWasteWas =
Optional.ofNullable(updateOrderRepository.getConfirmWaste(orderId, entry.getKey().longValue()));
Optional.ofNullable(orderDetailRepository.getConfirmWaste(orderId, entry.getKey().longValue()));
initialAmount =
Optional.ofNullable(orderDetailRepository.getAmount(orderId, entry.getKey().longValue()));
}
if (entry.getValue().longValue() != confirmWasteWas.orElse(0L)) {
if (countOfChanges == 0) {
values.append(OrderHistory.CHANGE_ORDER_DETAILS + " ");
}
values.append(bag.getName()).append(" ").append(capacity).append(" л: ")
.append(confirmWasteWas.orElse(0L))
.append(confirmWasteWas.orElse(initialAmount.orElse(0L)))
.append(" шт на ").append(entry.getValue()).append(" шт.");
}
}
Expand All @@ -686,10 +688,10 @@ private void collectEventAboutExportedWaste(Map<Integer, Integer> exported, Orde
if (bagOptional.isPresent() && checkOrderStatusAboutExportedWaste(order)) {
Optional<Long> exporterWasteWas = Optional.empty();
Bag bag = bagOptional.get();
if (Boolean.TRUE.equals(updateOrderRepository.ifRecordExist(orderId, entry.getKey().longValue()) > 0)) {
if (Boolean.TRUE.equals(orderDetailRepository.ifRecordExist(orderId, entry.getKey().longValue()) > 0)) {
exporterWasteWas =
Optional
.ofNullable(updateOrderRepository.getExporterWaste(orderId, entry.getKey().longValue()));
.ofNullable(orderDetailRepository.getExporterWaste(orderId, entry.getKey().longValue()));
}
if (entry.getValue().longValue() != exporterWasteWas.orElse(0L)) {
if (countOfChanges == 0) {
Expand Down
Loading

0 comments on commit e934675

Please sign in to comment.