48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
|
|
from lawrisk.utils.env_loader import load_env
|
||
|
|
load_env()
|
||
|
|
|
||
|
|
import os
|
||
|
|
import pg8000.dbapi as pg
|
||
|
|
|
||
|
|
def get_conn():
|
||
|
|
host = os.getenv("LIC_PG_HOST", "172.24.240.1")
|
||
|
|
port = int(os.getenv("LIC_PG_PORT", os.getenv("PG_PORT", "5432")))
|
||
|
|
user = os.getenv("LIC_PG_USER", os.getenv("PG_USER", "postgres"))
|
||
|
|
password = os.getenv("LIC_PG_PASSWORD", "")
|
||
|
|
database = os.getenv("LIC_PG_DATABASE", "licensing_risks")
|
||
|
|
return pg.connect(host=host, port=port, user=user, password=password, database=database)
|
||
|
|
|
||
|
|
def list_risks_for_one_permit():
|
||
|
|
conn = get_conn()
|
||
|
|
cur = conn.cursor()
|
||
|
|
|
||
|
|
# Let's pick a permit that HAS risks
|
||
|
|
cur.execute("""
|
||
|
|
SELECT p.name, p.id, COUNT(rpr.risk_id)
|
||
|
|
FROM permits p
|
||
|
|
JOIN region_permit_risks rpr ON rpr.permit_id = p.id
|
||
|
|
GROUP BY p.name, p.id
|
||
|
|
ORDER BY COUNT(rpr.risk_id) DESC
|
||
|
|
LIMIT 5
|
||
|
|
""")
|
||
|
|
top_permits = cur.fetchall()
|
||
|
|
|
||
|
|
for p_name, p_id, count in top_permits:
|
||
|
|
print(f"\n=== Permit: {p_name} ({p_id}) | Total Risks: {count} ===")
|
||
|
|
cur.execute("""
|
||
|
|
SELECT rpr.serial_number, rk.risk_content, rk.id
|
||
|
|
FROM region_permit_risks rpr
|
||
|
|
JOIN risks rk ON rk.id = rpr.risk_id
|
||
|
|
WHERE rpr.permit_id = %s
|
||
|
|
ORDER BY rpr.serial_number, rk.risk_content
|
||
|
|
""", (p_id,))
|
||
|
|
risks = cur.fetchall()
|
||
|
|
for r in risks:
|
||
|
|
sn, content, rid = r
|
||
|
|
print(f" [{sn}] {rid} | {repr(content[:100])}")
|
||
|
|
|
||
|
|
conn.close()
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
list_risks_for_one_permit()
|