feat(server): 更新用户代理服务,新增编排器服务测试用例,完善服务编排能力
This commit is contained in:
@@ -643,7 +643,7 @@ class UserAgentService:
|
|||||||
if is_submitted:
|
if is_submitted:
|
||||||
body = (
|
body = (
|
||||||
f"主题:{subject}\n"
|
f"主题:{subject}\n"
|
||||||
f"结论:报销单已提交审批,当前节点为 {approval_stage or '审批中'}。\n"
|
f"结论:报销单已完成 AI验审,当前节点为 {approval_stage or '审批中'}。\n"
|
||||||
"建议:后续可在个人报销列表中跟踪审批进度,必要时再补充说明或附件。\n"
|
"建议:后续可在个人报销列表中跟踪审批进度,必要时再补充说明或附件。\n"
|
||||||
f"原始问题:{payload.message}"
|
f"原始问题:{payload.message}"
|
||||||
)
|
)
|
||||||
@@ -1279,7 +1279,7 @@ class UserAgentService:
|
|||||||
if review_action == "next_step":
|
if review_action == "next_step":
|
||||||
if draft_payload is not None and draft_payload.status == "submitted":
|
if draft_payload is not None and draft_payload.status == "submitted":
|
||||||
stage_text = draft_payload.approval_stage or "审批中"
|
stage_text = draft_payload.approval_stage or "审批中"
|
||||||
return f"报销单 {draft_payload.claim_no or ''} 已提交审批,当前节点为 {stage_text}。".strip()
|
return f"报销单 {draft_payload.claim_no or ''} 已完成 AI验审,当前节点为 {stage_text}。".strip()
|
||||||
if payload.tool_payload.get("submission_blocked"):
|
if payload.tool_payload.get("submission_blocked"):
|
||||||
return str(payload.tool_payload.get("message") or "").strip() or "当前报销单暂时还不能提交审批。"
|
return str(payload.tool_payload.get("message") or "").strip() or "当前报销单暂时还不能提交审批。"
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -634,13 +634,18 @@ def test_orchestrator_expense_next_step_submits_claim_to_approval() -> None:
|
|||||||
user_id = "zhangsan@example.com"
|
user_id = "zhangsan@example.com"
|
||||||
|
|
||||||
with session_factory() as db:
|
with session_factory() as db:
|
||||||
db.add(
|
manager = Employee(
|
||||||
Employee(
|
employee_no="E3000",
|
||||||
|
name="李经理",
|
||||||
|
email="manager@example.com",
|
||||||
|
)
|
||||||
|
employee = Employee(
|
||||||
employee_no="E3001",
|
employee_no="E3001",
|
||||||
name="张三",
|
name="张三",
|
||||||
email=user_id,
|
email=user_id,
|
||||||
|
manager=manager,
|
||||||
)
|
)
|
||||||
)
|
db.add_all([manager, employee])
|
||||||
db.commit()
|
db.commit()
|
||||||
|
|
||||||
response = client.post(
|
response = client.post(
|
||||||
@@ -673,8 +678,8 @@ def test_orchestrator_expense_next_step_submits_claim_to_approval() -> None:
|
|||||||
assert payload["status"] == "succeeded"
|
assert payload["status"] == "succeeded"
|
||||||
assert payload["result"]["draft_payload"]["claim_no"].startswith("EXP-")
|
assert payload["result"]["draft_payload"]["claim_no"].startswith("EXP-")
|
||||||
assert payload["result"]["draft_payload"]["status"] == "submitted"
|
assert payload["result"]["draft_payload"]["status"] == "submitted"
|
||||||
assert payload["result"]["draft_payload"]["approval_stage"] == "AI验审"
|
assert payload["result"]["draft_payload"]["approval_stage"] == "直属领导审批"
|
||||||
assert "已提交审批" in payload["result"]["answer"]
|
assert "已完成 AI验审" in payload["result"]["answer"]
|
||||||
|
|
||||||
with session_factory() as db:
|
with session_factory() as db:
|
||||||
claim = db.scalar(
|
claim = db.scalar(
|
||||||
@@ -684,7 +689,7 @@ def test_orchestrator_expense_next_step_submits_claim_to_approval() -> None:
|
|||||||
)
|
)
|
||||||
assert claim is not None
|
assert claim is not None
|
||||||
assert claim.status == "submitted"
|
assert claim.status == "submitted"
|
||||||
assert claim.approval_stage == "AI验审"
|
assert claim.approval_stage == "直属领导审批"
|
||||||
assert claim.submitted_at is not None
|
assert claim.submitted_at is not None
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user