feat(regulatory): 增加mock通知留痕

This commit is contained in:
2026-06-07 09:35:24 +08:00
parent d88d642f6a
commit d39e3fe2d5
4 changed files with 152 additions and 1 deletions

View File

@@ -0,0 +1,39 @@
from __future__ import annotations
from django.utils import timezone
from review_agent.models import RegulatoryNotificationRecord, RegulatoryReviewBatch
NOTIFIABLE_SEVERITIES = {"blocking", "high", "medium"}
def create_mock_notifications(batch: RegulatoryReviewBatch) -> list[RegulatoryNotificationRecord]:
records = []
existing_issue_ids = {
item.get("issue_id")
for item in RegulatoryNotificationRecord.objects.filter(batch=batch, channel=RegulatoryNotificationRecord.Channel.MOCK).values_list(
"payload", flat=True
)
if isinstance(item, dict)
}
for issue in batch.issues.order_by("id"):
if issue.severity not in NOTIFIABLE_SEVERITIES or issue.pk in existing_issue_ids:
continue
records.append(
RegulatoryNotificationRecord.objects.create(
batch=batch,
channel=RegulatoryNotificationRecord.Channel.MOCK,
target="法规整改负责人",
status=RegulatoryNotificationRecord.Status.SENT,
sent_at=timezone.now(),
payload={
"issue_id": issue.pk,
"rule_code": issue.rule_code,
"severity": issue.severity,
"title": issue.title,
"suggestion": issue.suggestion,
},
)
)
return records