| Line 37... |
Line 37... |
| 37 |
|
37 |
|
| 38 |
@Autowired
|
38 |
@Autowired
|
| 39 |
WalletService walletService;
|
39 |
WalletService walletService;
|
| 40 |
|
40 |
|
| 41 |
public void reverseRTO(List<String> invoiceNumbers) throws ProfitMandiBusinessException {
|
41 |
public void reverseRTO(List<String> invoiceNumbers) throws ProfitMandiBusinessException {
|
| - |
|
42 |
// Fetch with pessimistic lock to prevent concurrent modifications
|
| - |
|
43 |
List<Order> lockedOrders = orderRepository.selectByInvoiceNumbersForUpdate(invoiceNumbers);
|
| 42 |
Map<String, List<Order>> invoiceOrderMap = orderRepository.selectByInvoiceNumbers(invoiceNumbers).stream().collect(Collectors.groupingBy(x -> x.getInvoiceNumber()));
|
44 |
Map<String, List<Order>> invoiceOrderMap = lockedOrders.stream().collect(Collectors.groupingBy(x -> x.getInvoiceNumber()));
|
| 43 |
List<Integer> rtoOrderIds = invoiceOrderMap.values().stream().flatMap(x -> x.stream()).map(x -> x.getId()).collect(Collectors.toList());
|
45 |
List<Integer> rtoOrderIds = lockedOrders.stream().map(x -> x.getId()).collect(Collectors.toList());
|
| - |
|
46 |
|
| 44 |
Map<Integer, List<WarehouseScan>> orderIdWarehouseScanMap = warehouseScanRepository.selectAllByOrderIds(rtoOrderIds).stream().filter(x -> x.getType().equals(ScanType.SALE_RET)).collect(Collectors.groupingBy(x -> x.getOrderId()));
|
47 |
Map<Integer, List<WarehouseScan>> orderIdWarehouseScanMap = warehouseScanRepository.selectAllByOrderIds(rtoOrderIds).stream().filter(x -> x.getType().equals(ScanType.SALE_RET)).collect(Collectors.groupingBy(x -> x.getOrderId()));
|
| 45 |
|
48 |
|
| 46 |
for (Map.Entry<String, List<Order>> invoiceOrdersEntry : invoiceOrderMap.entrySet()) {
|
49 |
for (Map.Entry<String, List<Order>> invoiceOrdersEntry : invoiceOrderMap.entrySet()) {
|
| 47 |
String invoiceNumber = invoiceOrdersEntry.getKey();
|
50 |
String invoiceNumber = invoiceOrdersEntry.getKey();
|
| 48 |
List<Order> orders = invoiceOrdersEntry.getValue();
|
51 |
List<Order> orders = invoiceOrdersEntry.getValue();
|