Vendor dashboard and Intents added

This commit is contained in:
Sidharth Prabhu
2026-04-16 09:41:23 +05:30
parent 3d6a57593d
commit d4cef8d241
7 changed files with 830 additions and 36 deletions

View File

@@ -71,4 +71,9 @@ public class PurchaseController {
public Map<String, Object> getSummary() {
return purchaseService.getPurchaseSummary();
}
@GetMapping("/intent/summary")
public Map<String, Object> getIntentSummary() {
return purchaseService.getIntentSummary();
}
}

View File

@@ -22,4 +22,11 @@ public interface PurchaseOrderRepository extends JpaRepository<PurchaseOrder, Lo
@org.springframework.data.jpa.repository.Query("SELECT p.date, SUM(p.amount) FROM PurchaseOrder p GROUP BY p.date ORDER BY p.date ASC")
List<Object[]> getPurchaseTrend();
long countByStatus(String status);
@org.springframework.data.jpa.repository.Query("SELECT SUM(i.quantity) FROM PurchaseOrder p JOIN p.items i WHERE p.status = 'OPEN'")
Long countOpenItems();
List<PurchaseOrder> findTop5ByOrderByDateDesc();
}

View File

@@ -120,4 +120,20 @@ public class PurchaseService {
return summary;
}
public Map<String, Object> getIntentSummary() {
Map<String, Object> summary = new HashMap<>();
summary.put("openCount", purchaseOrderRepository.countByStatus("OPEN"));
summary.put("openItems", purchaseOrderRepository.countOpenItems());
summary.put("payableAmount", purchaseOrderRepository.getTotalBalanceAmount());
summary.put("unbilledCount", purchaseOrderRepository.countByStatus("RECEIVED")); // Assuming RECEIVED but not yet BILLED
List<PurchaseOrder> recent = purchaseOrderRepository.findTop5ByOrderByDateDesc();
summary.put("recentOrders", recent);
List<Object[]> trendData = purchaseOrderRepository.getPurchaseTrend();
summary.put("trend", trendData);
return summary;
}
}