66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
|
|
import pandas as pd
|
|
import os
|
|
import sys
|
|
|
|
# Add project root to path
|
|
sys.path.append(os.getcwd())
|
|
|
|
from lawrisk.services import licensing_repo as lic_repo
|
|
from lawrisk.utils.env_loader import load_env
|
|
|
|
def generate_report():
|
|
load_env()
|
|
file_path = "审批服务部门.xlsx"
|
|
output_path = "审批服务部门_核对结果.xlsx"
|
|
|
|
if not os.path.exists(file_path):
|
|
print(f"File not found: {file_path}")
|
|
return
|
|
|
|
print("Loading Excel...")
|
|
df = pd.read_excel(file_path)
|
|
|
|
# Normalize headers to find the correct column
|
|
col_map = {c: c.strip() for c in df.columns}
|
|
df.rename(columns=col_map, inplace=True)
|
|
|
|
permit_col = None
|
|
for c in df.columns:
|
|
if "事项名称" in c:
|
|
permit_col = c
|
|
break
|
|
|
|
if not permit_col:
|
|
print("Could not find '事项名称' column.")
|
|
return
|
|
|
|
print(f"Using '{permit_col}' as permit name column.")
|
|
|
|
print("Fetching system permits...")
|
|
with lic_repo._lic_pg_conn() as conn:
|
|
cur = conn.cursor()
|
|
cur.execute("SELECT name FROM permits")
|
|
db_permits = set(row[0] for row in cur.fetchall())
|
|
|
|
print(f"Found {len(db_permits)} permits in database.")
|
|
|
|
# Check matches
|
|
results = []
|
|
|
|
for idx, row in df.iterrows():
|
|
p_name = str(row[permit_col]).strip()
|
|
if p_name in db_permits:
|
|
results.append("已匹配") # Matched
|
|
else:
|
|
results.append("未匹配") # Not Matched
|
|
|
|
df["匹配状态"] = results
|
|
|
|
print(f"Saving report to {output_path}...")
|
|
df.to_excel(output_path, index=False)
|
|
print("Done.")
|
|
|
|
if __name__ == "__main__":
|
|
generate_report()
|