|
|
@ -97,7 +97,7 @@ public class VphService { |
|
|
FROM booking_details bd |
|
|
FROM booking_details bd |
|
|
LEFT JOIN hall_details hd ON bd.hall_details_hall_id=hd.hall_id |
|
|
LEFT JOIN hall_details hd ON bd.hall_details_hall_id=hd.hall_id |
|
|
LEFT JOIN users us ON bd.users_user_id=us.user_id |
|
|
LEFT JOIN users us ON bd.users_user_id=us.user_id |
|
|
WHERE bd.booking_status IN ('WAITING_FOR_NOC','APPROVED') |
|
|
|
|
|
|
|
|
WHERE bd.booking_status IN ('WAITING_FOR_NOC','APPROVED','WAITING_FOR_NOC_APPROVAL') |
|
|
AND DATE(bd.booking_date) BETWEEN '2026-01-01' AND CURDATE() |
|
|
AND DATE(bd.booking_date) BETWEEN '2026-01-01' AND CURDATE() |
|
|
ORDER BY bd.booking_date |
|
|
ORDER BY bd.booking_date |
|
|
"""; |
|
|
"""; |
|
|
@ -116,7 +116,7 @@ public class VphService { |
|
|
FROM booking_details bd |
|
|
FROM booking_details bd |
|
|
LEFT JOIN hall_details hd ON bd.hall_details_hall_id=hd.hall_id |
|
|
LEFT JOIN hall_details hd ON bd.hall_details_hall_id=hd.hall_id |
|
|
LEFT JOIN users us ON bd.users_user_id=us.user_id |
|
|
LEFT JOIN users us ON bd.users_user_id=us.user_id |
|
|
WHERE bd.booking_status IN ('WAITING_FOR_NOC','APPROVED') |
|
|
|
|
|
|
|
|
WHERE bd.booking_status IN ('WAITING_FOR_NOC','APPROVED','WAITING_FOR_NOC_APPROVAL') |
|
|
AND DATE(bd.booking_date) BETWEEN '2026-01-01' AND CURDATE() |
|
|
AND DATE(bd.booking_date) BETWEEN '2026-01-01' AND CURDATE() |
|
|
ORDER BY bd.booking_date |
|
|
ORDER BY bd.booking_date |
|
|
"""; |
|
|
"""; |
|
|
@ -406,50 +406,146 @@ public class VphService { |
|
|
|
|
|
|
|
|
FROM |
|
|
FROM |
|
|
( |
|
|
( |
|
|
-- Visitor counts from visitor_count_details |
|
|
|
|
|
|
|
|
|
|
|
SELECT |
|
|
SELECT |
|
|
DATE(rd.visit_date) AS bookingDate, |
|
|
DATE(rd.visit_date) AS bookingDate, |
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN vac.user_type = 'Adult ' THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS Adult, |
|
|
|
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN vac.user_type = 'Children [ below 10 year]' THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS Children, |
|
|
|
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN vac.user_type = 'Senior Citizen [above 60+]' THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS SeniorCitizen, |
|
|
|
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN vac.user_type = 'Students' THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS Students, |
|
|
|
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN vac.user_type = 'Foreigner' THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS Foreigner, |
|
|
|
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN vac.user_type = 'Physically challeged' THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS PhysicallyChallenged, |
|
|
|
|
|
|
|
|
COALESCE(SUM(CASE WHEN vac.user_type='Adult ' THEN vcd.no_of_people END),0) AS Adult, |
|
|
|
|
|
COALESCE(SUM(CASE WHEN vac.user_type='Children [ below 10 year]' THEN vcd.no_of_people END),0) AS Children, |
|
|
|
|
|
COALESCE(SUM(CASE WHEN vac.user_type='Senior Citizen [above 60+]' THEN vcd.no_of_people END),0) AS SeniorCitizen, |
|
|
|
|
|
COALESCE(SUM(CASE WHEN vac.user_type='Students' THEN vcd.no_of_people END),0) AS Students, |
|
|
|
|
|
COALESCE(SUM(CASE WHEN vac.user_type='Foreigner' THEN vcd.no_of_people END),0) AS Foreigner, |
|
|
|
|
|
COALESCE(SUM(CASE WHEN vac.user_type='Physically challeged' THEN vcd.no_of_people END),0) AS PhysicallyChallenged, |
|
|
|
|
|
COALESCE(SUM(vcd.no_of_people),0) AS TotalCount, |
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
|
|
|
),0) AS TotalCount, |
|
|
|
|
|
|
|
|
COALESCE(SUM( |
|
|
COALESCE(SUM( |
|
|
CASE |
|
|
CASE |
|
|
WHEN rd.entry_status IS NULL THEN vcd.no_of_people |
|
|
|
|
|
|
|
|
WHEN rd.entry_status IS NULL THEN |
|
|
|
|
|
CASE |
|
|
|
|
|
WHEN rd.bulk_ref_id IS NULL |
|
|
|
|
|
THEN vcd.no_of_people |
|
|
|
|
|
ELSE bvcd.no_of_people |
|
|
|
|
|
END |
|
|
ELSE 0 |
|
|
ELSE 0 |
|
|
END |
|
|
END |
|
|
),0) AS NotVisitedCount |
|
|
),0) AS NotVisitedCount |
|
|
|
|
|
|
|
|
FROM reg_details rd |
|
|
FROM reg_details rd |
|
|
LEFT JOIN visitor_count_details vcd ON rd.ref_id = vcd.ref_id |
|
|
|
|
|
LEFT JOIN visit_amount_config vac ON vcd.user_type_id = vac.id |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LEFT JOIN visitor_count_details vcd |
|
|
|
|
|
ON rd.ref_id = vcd.ref_id |
|
|
|
|
|
|
|
|
|
|
|
/* Bulk Visitors */ |
|
|
|
|
|
LEFT JOIN bulk_visitor_count_details bvcd |
|
|
|
|
|
ON rd.bulk_ref_id = bvcd.ref_id |
|
|
|
|
|
|
|
|
|
|
|
/* Config Match for Both Normal + Bulk */ |
|
|
|
|
|
LEFT JOIN visit_amount_config vac |
|
|
|
|
|
ON ( |
|
|
|
|
|
(rd.bulk_ref_id IS NULL AND vcd.user_type_id = vac.id) |
|
|
|
|
|
OR (rd.bulk_ref_id IS NOT NULL AND bvcd.user_type_id = vac.id) |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
WHERE rd.booking_flag = 'B' |
|
|
WHERE rd.booking_flag = 'B' |
|
|
AND DATE(rd.visit_date) BETWEEN ? AND ? |
|
|
AND DATE(rd.visit_date) BETWEEN ? AND ? |
|
|
|
|
|
|
|
|
GROUP BY DATE(rd.visit_date) |
|
|
GROUP BY DATE(rd.visit_date) |
|
|
|
|
|
|
|
|
) d |
|
|
) d |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* ----------------------------- |
|
|
|
|
|
Booking Summary Counts |
|
|
|
|
|
------------------------------*/ |
|
|
LEFT JOIN |
|
|
LEFT JOIN |
|
|
( |
|
|
( |
|
|
-- Accepted / Rejected from reg_details ONLY |
|
|
|
|
|
SELECT |
|
|
SELECT |
|
|
DATE(visit_date) AS bookingDate, |
|
|
|
|
|
COUNT(DISTINCT ref_id) AS totalBookingCount, |
|
|
|
|
|
SUM(accepted_people) AS accepted_people, |
|
|
|
|
|
SUM(rejected_people) AS rejected_people |
|
|
|
|
|
FROM reg_details |
|
|
|
|
|
WHERE booking_flag = 'B' |
|
|
|
|
|
AND DATE(visit_date) BETWEEN ? AND ? |
|
|
|
|
|
GROUP BY DATE(visit_date) |
|
|
|
|
|
|
|
|
DATE(rd.visit_date) AS bookingDate, |
|
|
|
|
|
|
|
|
|
|
|
COUNT(DISTINCT rd.ref_id) AS totalBookingCount, |
|
|
|
|
|
|
|
|
|
|
|
SUM(rd.accepted_people) AS accepted_people, |
|
|
|
|
|
SUM(rd.rejected_people) AS rejected_people |
|
|
|
|
|
|
|
|
|
|
|
FROM reg_details rd |
|
|
|
|
|
|
|
|
|
|
|
WHERE rd.booking_flag = 'B' |
|
|
|
|
|
AND DATE(rd.visit_date) BETWEEN ? AND ? |
|
|
|
|
|
|
|
|
|
|
|
GROUP BY DATE(rd.visit_date) |
|
|
|
|
|
|
|
|
) r |
|
|
) r |
|
|
ON d.bookingDate = r.bookingDate |
|
|
ON d.bookingDate = r.bookingDate |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ORDER BY d.bookingDate; |
|
|
ORDER BY d.bookingDate; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"""; |
|
|
"""; |
|
|
|
|
|
|
|
|
return jdbcTemplate.queryForList(sql, resolveFromDate(fromDate), |
|
|
return jdbcTemplate.queryForList(sql, resolveFromDate(fromDate), |
|
|
|