Browse Source

changed logic for count in bulk booking concept and add status WAITING_FOR_NOC_APPROVAL for hall booking details

master
AJITHKUMAR12 8 months ago
parent
commit
9bebb37286
  1. 140
      src/main/java/com/gcc/commissionerreview/service/VphService.java

140
src/main/java/com/gcc/commissionerreview/service/VphService.java

@ -97,7 +97,7 @@ public class VphService {
FROM booking_details bd
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
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()
ORDER BY bd.booking_date
""";
@ -116,7 +116,7 @@ public class VphService {
FROM booking_details bd
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
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()
ORDER BY bd.booking_date
""";
@ -406,50 +406,146 @@ public class VphService {
FROM
(
-- Visitor counts from visitor_count_details
SELECT
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(
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
END
),0) AS NotVisitedCount
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'
AND DATE(rd.visit_date) BETWEEN ? AND ?
GROUP BY DATE(rd.visit_date)
) d
/* -----------------------------
Booking Summary Counts
------------------------------*/
LEFT JOIN
(
-- Accepted / Rejected from reg_details ONLY
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
ON d.bookingDate = r.bookingDate
ORDER BY d.bookingDate;
""";
return jdbcTemplate.queryForList(sql, resolveFromDate(fromDate),

Loading…
Cancel
Save