chore: import existing codebase as baseline
Verify / verify (push) Failing after 1m20s

This commit is contained in:
Jayway Liu
2026-09-26 01:12:10 +08:00
commit 0ac0c4eb56
77 changed files with 14155 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
"""Initialize local development credentials once; never used in production."""
import os
import secrets
from pathlib import Path
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
import django
django.setup()
from django.conf import settings
from django.contrib.auth.models import User
from finance.models import Membership, Organization
if settings.PRODUCTION:
raise SystemExit("Use the bootstrap command for production")
if not User.objects.filter(username="admin").exists():
password = secrets.token_urlsafe(18)
org = Organization.objects.create(name="集团财务中心")
user = User.objects.create_user(username="admin", password=password)
Membership.objects.create(user=user, organization=org, role="admin")
path = Path("var/local-access.txt")
path.write_text(f"本地地址:http://127.0.0.1:8000\n用户名:admin\n密码:{password}\n", encoding="utf-8")
path.chmod(0o600)
print("Created admin; credentials in var/local-access.txt (mode 0600)")
else:
print("Administrator already exists; unchanged")
+49
View File
@@ -0,0 +1,49 @@
"""Read-only source reconciliation, without patient-level output."""
import json
import sys
from collections import Counter, defaultdict
from decimal import Decimal
from openpyxl import load_workbook
wb = load_workbook(sys.argv[1], read_only=True, data_only=True)
rates = {
str(row[3]): Decimal(str(row[4]))
for row in wb["产品毛利率"].iter_rows(min_row=6, values_only=True)
if row[3] and row[4] is not None
}
totals = defaultdict(lambda: {"rows": 0, "revenue": Decimal(0), "gross": Decimal(0), "customers": set()})
precision = Counter()
quality = Counter()
for row in wb["明细"].iter_rows(min_row=3, values_only=True):
period = f"{int(row[0])}-{int(str(row[1]).removesuffix('月')):02d}"
v = Decimal(str(row[13]))
t = totals[period]
t["rows"] += 1
t["revenue"] += v
t["gross"] += v * rates.get(row[14], Decimal(0))
t["customers"].add(row[3])
for i in [5, 11, 12, 13]:
if row[i] is not None:
n = Decimal(str(row[i]))
if n != n.quantize(Decimal("0.0001")):
precision[i] += 1
quality["negative_revenue"] += v < 0
quality["g_l_mismatch"] += row[6] != row[11]
quality["i_n_mismatch"] += row[8] != row[13]
quality["missing_margin"] += row[14] not in rates
print(
json.dumps(
{
"totals": {p: {**v, "customers": len(v["customers"])} for p, v in totals.items()},
"precision_exceeds_four": dict(precision),
"quality": dict(quality),
"rates": rates,
},
default=str,
ensure_ascii=False,
indent=2,
)
)
wb.close()
+53
View File
@@ -0,0 +1,53 @@
import json
import os
from decimal import Decimal
from time import perf_counter
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings")
import django
django.setup()
from django.contrib.auth.models import User
from django.db import connection
from finance.analysis import analyze, default_preferences
from finance.models import Dataset
if connection.vendor != "postgresql":
raise SystemExit("Reconciliation requires PostgreSQL exact NUMERIC aggregation")
ds = Dataset.objects.get(sha256="98ef41e898c24f0929a9da6ec185b7331f69f0478b52056cbc7834e1ef5877ec")
member = User.objects.get(username="admin").membership
start = perf_counter()
result = analyze(
ds,
member,
{
"start": "2026-08",
"end": "2026-08",
"comparison": "yoy",
"group": "department",
"metric": "revenue",
"filters": {},
},
default_preferences(ds),
)
assert ds.row_count == 332830
assert result["summary"]["revenue"]["current"] == Decimal("152419115.348455502666069")
assert result["summary"]["revenue"]["baseline"] == Decimal("225550255.4187610638720")
assert result["summary"]["gross"]["current"] == Decimal("17868580.85186759073400145")
assert result["summary"]["gross"]["baseline"] == Decimal("24790335.405853982758000")
assert result["summary"]["customers"]["current"] == 38361
assert result["summary"]["customers"]["baseline"] == 33147
assert result["summary"]["roi"]["current"] is None
assert sum(r["values"]["revenue"]["delta"] for r in result["rows"]) == result["summary"]["revenue"]["delta"]
report = {
"status": "passed",
"source": ds.name,
"sha256": ds.sha256,
"rows": ds.row_count,
"query_seconds": round(perf_counter() - start, 3),
"summary": result["summary"],
"quality": ds.quality,
"groups": len(result["rows"]),
}
print(json.dumps(report, ensure_ascii=False, default=str, indent=2))