| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- class ExportPendingOutboundOrdersTool:
- name = 'export_pending_outbound_orders'
- route_path = '/mcp/tools/exportPendingOutboundOrders'
- FILTER_FIELDS = (
- 'number', 'product_type_id', 'product_id', 'order_warehouse_id',
- 'receiver_country', 'is_remove', 'address', 'inbound_date', 'status',
- 'is_battery', 'is_magnetic', 'is_wood', 'is_other', 'is_fda', 'is_toy',
- 'is_ultra_limit', 'is_sensitive', 'is_food', 'no_property',
- 'merge_declare_number', 'importer_id', 'packing_type',
- )
- def __init__(self, api_client=None):
- self.api_client = api_client
- def metadata(self):
- properties = {
- 'number': {
- 'type': 'string',
- 'description': '单号:订单号、参考号;多个值用空格、英文逗号或回车分隔。',
- },
- 'product_type_id': {'type': 'integer', 'description': '产品分类 ID。'},
- 'product_id': {
- 'type': 'array',
- 'items': {'type': 'integer'},
- 'description': '物流产品 ID 数组。先从筛选项工具获取授权值。',
- },
- 'order_warehouse_id': {'type': 'integer', 'description': '集货仓库 ID。'},
- 'receiver_country': {'type': 'string', 'description': '目的国国家代码。'},
- 'is_remove': {
- 'type': 'integer',
- 'enum': [0, 1],
- 'description': '是否装柜剔除:1 是,0 否。',
- },
- 'address': {'type': 'string', 'description': '派送地址模糊筛选。'},
- 'inbound_date': {
- 'type': 'string',
- 'description': '入库时间范围,格式 YYYY-MM-DD - YYYY-MM-DD。',
- },
- 'status': {
- 'type': 'array',
- 'items': {'type': 'integer'},
- 'description': '订单状态整数数组。',
- },
- 'merge_declare_number': {'type': 'string', 'description': '合并报关单号。'},
- 'importer_id': {'type': 'integer', 'description': '进口商 ID。'},
- 'packing_type': {
- 'type': 'string',
- 'description': '货物类型,多选值用英文逗号拼接。',
- },
- }
- for field, label in (
- ('is_battery', '带电'), ('is_magnetic', '带磁'), ('is_wood', '带木'),
- ('is_other', '其它'), ('is_fda', 'FDA产品'), ('is_toy', '玩具'),
- ('is_ultra_limit', '单箱尺寸超长超重'), ('is_sensitive', '敏感货'),
- ('is_food', '食品'), ('no_property', '无属性'),
- ):
- properties[field] = {
- 'type': 'string',
- 'enum': ['Y'],
- 'description': '商品属性:{0},选中时传 Y。'.format(label),
- }
- return {
- 'name': self.name,
- 'description': (
- '按 outbound/add.html 的筛选条件导出未排舱订单。筛选名称必须先通过 '
- 'list_pending_outbound_export_filter_options 获取当前员工有权限的 value。'
- '参数名仅用于工具调用;向用户回答时只能使用中文业务名称,不得展示内部参数名。'
- ),
- 'input_schema': {'type': 'object', 'properties': properties},
- }
- def call(self, request_id='rq_export_pending_outbound_orders', **kwargs):
- if self.api_client is None:
- raise RuntimeError('api client is required for export_pending_outbound_orders')
- payload = {}
- for field in self.FILTER_FIELDS:
- if field in kwargs and kwargs[field] is not None:
- payload[field] = kwargs[field]
- return self.api_client.call_tool(self.name, self.route_path, payload, request_id)
|