feat: 报工提交和审核刷新超额快照

This commit is contained in:
souplearn
2026-07-25 20:44:22 +08:00
parent 1ed48314be
commit b203b782de
4 changed files with 356 additions and 5 deletions
+2
View File
@@ -41,6 +41,7 @@ from app.services.misc_work import is_misc_product
from app.services.mold_locks import release_session_locks
from app.services.report_allocations import refresh_report_allocations
from app.services.report_lifecycle import purge_expired_voided_reports
from app.services.report_over_limit import CHECK_SOURCE_SUBMIT, refresh_report_over_limit_snapshot
from app.services.reporting_window import REPORTING_EXPIRED_DETAIL, is_reporting_expired
from app.services.serializers import equipment_option, product_option, report_out
from app.services.work_schedule import get_work_schedule_config
@@ -460,6 +461,7 @@ def submit_report(
db.add(report)
db.flush()
refresh_report_allocations(db, report, schedule=schedule, commit=False)
refresh_report_over_limit_snapshot(db, report, source=CHECK_SOURCE_SUBMIT, checked_at=submitted_at)
db.commit()
saved = _get_report_or_404(db, report.id)
+2
View File
@@ -36,6 +36,7 @@ from app.services.report_lifecycle import (
purge_expired_voided_reports,
restore_voided_report,
)
from app.services.report_over_limit import CHECK_SOURCE_REVIEW, refresh_report_over_limit_snapshot
from app.services.serializers import report_out
from app.services.work_schedule import WorkScheduleConfig, get_work_schedule_config
from app.timezone import now
@@ -532,6 +533,7 @@ def approve_report(
_apply_metrics(report, schedule)
refresh_report_allocations(db, report, schedule=schedule, commit=False)
reviewed_at = now()
refresh_report_over_limit_snapshot(db, report, source=CHECK_SOURCE_REVIEW, checked_at=reviewed_at)
was_pending = report.status == ReportStatus.pending
report.status = ReportStatus.approved
report.reviewer_phone = user.phone