feat: enhance theme and permit listing with filtering and risk counts
- Filter out "不涉及" (not applicable) theme from list_all_themes() - Add risk_count column to list_unbound_permits() with aggregated risk counts - Improve unbound permits API to display risk count per permit-region combination Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
fe911592e0
commit
b0590fda30
|
|
@ -2648,6 +2648,10 @@ def list_all_themes(
|
||||||
for row in rows:
|
for row in rows:
|
||||||
record = {columns[idx]: row[idx] for idx in range(len(columns))}
|
record = {columns[idx]: row[idx] for idx in range(len(columns))}
|
||||||
items.append(_serialize_theme_row(record))
|
items.append(_serialize_theme_row(record))
|
||||||
|
|
||||||
|
# 过滤掉"不涉及"主题
|
||||||
|
items = [item for item in items if item.get("name") != "不涉及"]
|
||||||
|
|
||||||
return items
|
return items
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -2706,13 +2710,23 @@ def list_unbound_permits(
|
||||||
p.name AS permit_name,
|
p.name AS permit_name,
|
||||||
rpd.unit_name,
|
rpd.unit_name,
|
||||||
rpd.updated_at,
|
rpd.updated_at,
|
||||||
COALESCE(rpd.is_v2_visible, true) AS is_v2_visible
|
COALESCE(rpd.is_v2_visible, true) AS is_v2_visible,
|
||||||
|
COALESCE(risk_counts.risk_count, 0) AS risk_count
|
||||||
FROM region_permit_details rpd
|
FROM region_permit_details rpd
|
||||||
JOIN regions r ON r.id = rpd.region_id
|
JOIN regions r ON r.id = rpd.region_id
|
||||||
JOIN permits p ON p.id = rpd.permit_id
|
JOIN permits p ON p.id = rpd.permit_id
|
||||||
LEFT JOIN region_theme_permits rtp
|
LEFT JOIN region_theme_permits rtp
|
||||||
ON rtp.region_id = rpd.region_id
|
ON rtp.region_id = rpd.region_id
|
||||||
AND rtp.permit_id = rpd.permit_id
|
AND rtp.permit_id = rpd.permit_id
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT
|
||||||
|
permit_id,
|
||||||
|
region_id,
|
||||||
|
COUNT(risk_id) AS risk_count
|
||||||
|
FROM region_permit_risks
|
||||||
|
GROUP BY permit_id, region_id
|
||||||
|
) risk_counts ON risk_counts.permit_id = rpd.permit_id
|
||||||
|
AND risk_counts.region_id = rpd.region_id
|
||||||
{ps_join}
|
{ps_join}
|
||||||
WHERE {where_clause}
|
WHERE {where_clause}
|
||||||
ORDER BY r.name, p.name
|
ORDER BY r.name, p.name
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue