feat: 优化差旅报销预审流程与个人工作台 UI 体系
- 完善 user_agent_application 申请差旅报销预审槽位与消息组装 - 增强预算助理报告与风险建议卡片交互 - 重构登录页视觉样式与移动端响应式适配 - 优化个人工作台、文档中心、政策中心、员工管理等页面布局 - 拆分 travelRequestDetailPreReviewModel 为 advice/submit 模型 - 补充报销草稿、风险复核、Item Sync 与模板执行器测试覆盖
This commit is contained in:
@@ -16,6 +16,7 @@ from app.main import create_app
|
||||
from app.models.employee import Employee
|
||||
from app.models.financial_record import ExpenseClaim, ExpenseClaimItem
|
||||
from app.models.organization import OrganizationUnit
|
||||
from app.models.risk_observation import RiskObservation, RiskObservationFeedback
|
||||
from app.models.role import Role
|
||||
from app.schemas.ocr import OcrRecognizeBatchRead, OcrRecognizeDocumentRead
|
||||
from app.services.expense_claim_attachment_storage import ExpenseClaimAttachmentStorage
|
||||
@@ -594,6 +595,31 @@ def test_claim_delete_allows_draft_owner_by_employee_id_without_employee_no_head
|
||||
client, session_factory = build_client()
|
||||
with session_factory() as db:
|
||||
claim, _ = seed_claim(db)
|
||||
observation = RiskObservation(
|
||||
id="risk-observation-delete-1",
|
||||
observation_key="claim-delete-risk-observation-1",
|
||||
subject_type="expense_claim",
|
||||
subject_key=claim.id,
|
||||
subject_label=claim.claim_no,
|
||||
claim_id=claim.id,
|
||||
claim_no=claim.claim_no,
|
||||
risk_type="policy",
|
||||
risk_signal="draft_pre_review",
|
||||
title="草稿预审风险",
|
||||
description="删除草稿时应同步清理关联风险观察。",
|
||||
risk_score=70,
|
||||
risk_level="medium",
|
||||
confidence_score=0.8,
|
||||
)
|
||||
feedback = RiskObservationFeedback(
|
||||
id="risk-observation-feedback-delete-1",
|
||||
observation=observation,
|
||||
feedback_type="confirm",
|
||||
actor="auditor",
|
||||
)
|
||||
db.add(observation)
|
||||
db.add(feedback)
|
||||
db.commit()
|
||||
claim_id = claim.id
|
||||
|
||||
response = client.delete(
|
||||
@@ -608,3 +634,5 @@ def test_claim_delete_allows_draft_owner_by_employee_id_without_employee_no_head
|
||||
|
||||
with session_factory() as db:
|
||||
assert db.get(ExpenseClaim, claim_id) is None
|
||||
assert db.get(RiskObservation, "risk-observation-delete-1") is None
|
||||
assert db.get(RiskObservationFeedback, "risk-observation-feedback-delete-1") is None
|
||||
|
||||
Reference in New Issue
Block a user