{
  "schema_version": "2.0",
  "rule_code": "risk.travel.high.date_outside_trip",
  "name": "票据日期超出差旅行程高风险",
  "description": "票据日期、住宿日期或明细发生日期超出申报出差起止日期，允许 1 天交通衔接容差。",
  "enabled": true,
  "requires_attachment": true,
  "risk_dimension": "travel_reimbursement_control",
  "risk_category": "差旅费-日期一致性",
  "ontology_signal": "travel_date_outside_trip_window",
  "evaluator": "template_rule",
  "finance_rule_code": "rule.expense.company_travel_expense_reimbursement",
  "finance_rule_sheet": "公司差旅费报销规则",
  "business_stage": [
    "expense_application",
    "reimbursement"
  ],
  "expense_types": [
    "travel"
  ],
  "applies_to": {
    "domains": [
      "expense",
      "travel"
    ],
    "expense_types": [
      "travel"
    ],
    "business_stages": [
      "expense_application",
      "reimbursement"
    ]
  },
  "inputs": {
    "fields": [
      {
        "key": "claim.trip_start_date",
        "label": "出差开始日期",
        "type": "date",
        "source": "claim"
      },
      {
        "key": "claim.trip_end_date",
        "label": "出差结束日期",
        "type": "date",
        "source": "claim"
      },
      {
        "key": "item.item_date",
        "label": "明细发生日期",
        "type": "date",
        "source": "item"
      },
      {
        "key": "attachment.issue_date",
        "label": "票据日期",
        "type": "date",
        "source": "attachment"
      },
      {
        "key": "attachment.stay_start_date",
        "label": "住宿开始日期",
        "type": "date",
        "source": "attachment"
      },
      {
        "key": "attachment.stay_end_date",
        "label": "住宿结束日期",
        "type": "date",
        "source": "attachment"
      }
    ]
  },
  "params": {
    "template_key": "composite_rule_v1",
    "field_keys": [
      "claim.trip_start_date",
      "claim.trip_end_date",
      "item.item_date",
      "attachment.issue_date",
      "attachment.stay_start_date",
      "attachment.stay_end_date"
    ],
    "conditions": [
      {
        "id": "ticket_date_outside_trip",
        "operator": "date_outside_range",
        "date_fields": [
          "item.item_date",
          "attachment.issue_date",
          "attachment.stay_start_date",
          "attachment.stay_end_date"
        ],
        "range_start_fields": [
          "claim.trip_start_date"
        ],
        "range_end_fields": [
          "claim.trip_end_date"
        ],
        "tolerance_days": 1
      }
    ],
    "hit_logic": "ticket_date_outside_trip",
    "condition_summary": "任一票据/明细日期早于出差开始日前 1 天或晚于结束日后 1 天。",
    "message_template": "票据日期超出申报差旅行程，请补充改签/延期说明或更正行程日期。"
  },
  "outcomes": {
    "pass": {
      "severity": "none",
      "action": "continue"
    },
    "fail": {
      "severity": "high",
      "action": "block",
      "risk_score": 88
    }
  },
  "metadata": {
    "owner": "admin",
    "stability": "admin_configured",
    "source_ref": "差旅费报销风险规则库 / admin 手工配置",
    "created_at": "2026-05-26T07:06:27.746703+00:00",
    "created_by": "admin",
    "risk_score": 88,
    "risk_level": "high",
    "rule_title": "票据日期超出差旅行程高风险",
    "finance_rule_code": "rule.expense.company_travel_expense_reimbursement",
    "finance_rule_sheet": "公司差旅费报销规则",
    "business_stage": [
      "expense_application",
      "reimbursement"
    ],
    "expense_types": [
      "travel"
    ],
    "implementation_note": "使用当前规则中心 JSON 风险规则执行器可识别的字段与模板配置。",
    "risk_level_label": "高风险",
    "risk_score_model": "risk_score_v3",
    "risk_score_detail": {
      "score": 88,
      "level": "high",
      "level_label": "高风险",
      "model": "risk_score_v3",
      "source": "admin_manual_travel_risk_catalog",
      "reason": "按差旅费报销高/中/低风险分层手工设定。"
    }
  },
  "severity": "high",
  "risk_score": 88,
  "risk_level": "high",
  "template_key": "composite_rule_v1",
  "risk_level_label": "高风险",
  "risk_score_detail": {
    "score": 88,
    "level": "high",
    "level_label": "高风险",
    "model": "risk_score_v3",
    "source": "admin_manual_travel_risk_catalog",
    "reason": "按差旅费报销高/中/低风险分层手工设定。"
  }
}
