| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- class QueryOrderReceivableCostDetailsTool:
- name = 'query_order_receivable_cost_details'
- route_path = '/mcp/tools/queryOrderReceivableCostDetails'
- def __init__(self, api_client=None):
- self.api_client = api_client
- def metadata(self):
- return {
- 'name': self.name,
- 'description': (
- '按明确订单号分页查询应收费用行、费用确认、关账和核销状态。调用前必须'
- '确认用户提供的是订单号;不得使用参考号、物流单号或其他号码猜单,不得模糊'
- '查询、跨字段试查或改用其他工具重试。公司、员工、菜单权限和客户数据范围由'
- '当前设备会话确定,调用方不得覆盖。'
- ),
- 'input_schema': {
- 'type': 'object',
- 'properties': {
- 'order_number': {
- 'type': 'string', 'minLength': 1, 'maxLength': 100,
- 'pattern': '.*\\S.*',
- },
- 'page': {
- 'type': 'integer', 'minimum': 1, 'maximum': 100,
- 'default': 1,
- },
- 'limit': {
- 'type': 'integer', 'minimum': 1, 'maximum': 100,
- 'default': 20,
- },
- },
- 'required': ['order_number'],
- 'additionalProperties': False,
- },
- }
- def call(
- self,
- order_number,
- page=1,
- limit=20,
- request_id='rq_query_order_receivable_cost_details',
- ):
- if self.api_client is None:
- raise RuntimeError(
- 'api client is required for query_order_receivable_cost_details'
- )
- payload = {
- 'order_number': self._order_number(order_number),
- 'page': self._bounded_integer(page, 'page'),
- 'limit': self._bounded_integer(limit, 'limit'),
- }
- return self.api_client.call_tool(
- self.name, self.route_path, payload, request_id
- )
- @staticmethod
- def _order_number(value):
- if not isinstance(value, str):
- raise ValueError('order_number is invalid')
- value = value.strip()
- if not value or len(value) > 100:
- raise ValueError('order_number is invalid')
- return value
- @staticmethod
- def _bounded_integer(value, field):
- if (
- isinstance(value, bool)
- or not isinstance(value, int)
- or value < 1
- or value > 100
- ):
- raise ValueError('{0} is invalid'.format(field))
- return value
|