set transaction

fix-segregation-finished-items
Usama Khan 2025-05-06 13:01:24 -07:00
parent cb01cddeff
commit 0353df0924
2 changed files with 13 additions and 28 deletions

View File

@ -604,7 +604,7 @@ public class InventoryService {
// get the stitching account id
long stitchedItemId = finishedItem.getStitchedItemId();
InventoryTransactionLeg lastOutTransaction = lastStitchedItemOutTransactionMap.getOrDefault(stitchedItemId, null);
createInventoryTransactionLeg(transaction, finishedItem, lastOutTransaction.getAccountId(), InventoryTransactionLeg.Type.IN.name(), InventoryArtifactType.FINISHED_ITEM.name());
createInventoryTransactionLeg(transaction, finishedItem, lastOutTransaction.getAccountId(), InventoryTransactionLeg.Type.IN.name(), InventoryArtifactType.STITCHING_OFFLINE.name());
finishedItem.setQaStatus("ALTER");
finishedItem.setIsSegregated(false);
}

View File

@ -213,31 +213,27 @@ public class ReportingService {
return new HashMap<>();
}else {
HashMap<String,Integer> gradingItems = new HashMap<>();
List<InventoryAccount> inventoryAccounts = inventoryAccountDAO.getPackagingAccounts();
List<FinishedItem> finishedItems = finishedItemDAO.findByJobCardId(Long.parseLong(jobCardID));
List<PackagingItems> packagingItems = packagingItemsDAO.findByJobCardId(Long.parseLong(jobCardID));
List<Long> finishItemsIds = finishedItems.stream()
.map(FinishedItem::getId).collect(Collectors.toList());
List<FinishedItem> bGradeFinishItemsIds= finishedItems.stream()
.filter(item -> "B GRADE".equals(item.getQaStatus())).collect(Collectors.toList());
List<Long> packagingItemsIds = packagingItems.stream()
.map(PackagingItems::getId).collect(Collectors.toList());
List<FinishedItem> cGradeFinishItemsIds= finishedItems.stream()
.filter(item -> "C GRADE".equals(item.getQaStatus())).collect(Collectors.toList());
if (finishItemsIds.isEmpty()){
List<FinishedItem> aGradeFinishItemsIds= finishedItems.stream()
.filter(item -> "APPROVED".equals(item.getQaStatus())).collect(Collectors.toList());
if (finishedItems.isEmpty()){
gradingItems.put("A GRADE",0);
gradingItems.put("B GRADE",0);
gradingItems.put("C GRADE",0);
return gradingItems;
}else {
for (InventoryAccount inventoryAccount : inventoryAccounts){
if (inventoryAccount.getIsPackaging()){
long totalGradingItems = inventoryTransactionLegDAO.CalculateTotalGradingItems(packagingItemsIds,(int) inventoryAccount.getId());
gradingItems.put(inventoryAccount.getTitle(), (int) totalGradingItems);
}else {
long totalGradingItems = inventoryTransactionLegDAO.CalculateTotalGradingItems(finishItemsIds,(int) inventoryAccount.getId());
gradingItems.put(inventoryAccount.getTitle(), (int) totalGradingItems);
}
}
gradingItems.put("B GRADE",bGradeFinishItemsIds.size());
gradingItems.put("C GRADE",cGradeFinishItemsIds.size());
gradingItems.put("A GRADE",aGradeFinishItemsIds.size());
return gradingItems;
}
}
@ -386,11 +382,6 @@ public class ReportingService {
}
List<InventoryAccount> inventoryAccounts = inventoryAccountDAO.findByParentEntityTypeAndParentId("PROCESS",6L);
List<JobCardItem> jobCardItems = jobCardItemDAO.findByCardId(Long.parseLong(jobCardID));
BigDecimal actualProduction = jobCardItems.stream()
.map(item -> Optional.ofNullable(item.getActualProduction()).orElse(BigDecimal.ZERO))
.reduce(BigDecimal.ZERO, BigDecimal::add);
LocalDateTime startDate = jobCardDAO.find(Long.parseLong(jobCardID)).getCreatedAt();
HashMap<String, List<?>> barChartData = new HashMap<>();
@ -437,15 +428,9 @@ public class ReportingService {
stitchingList.set(index, stitchingList.get(index) + leg.getQuantity().intValue());
}
else if ("FINISHED_ITEM".equals(leg.getParentDocumentType()) && (leg.getAccountId().equals(7) || leg.getAccountId().equals(12))) {
if (index == 0 || !dateIndexMap.containsKey(dateKey)) {
qualityList.set(index, 0);
}
qualityList.set(index, qualityList.get(index) + leg.getQuantity().intValue());
}
else if ("PACKAGING".equals(leg.getParentDocumentType()) && inventoryAccounts.stream().anyMatch(e -> e.getId() == leg.getAccountId().longValue())) {
if (index == 0 || !dateIndexMap.containsKey(dateKey)) {
finishItems.set(index, 0);
}
finishItems.set(index, finishItems.get(index) + leg.getQuantity().intValue());
}
}