| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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)
|