--- name: auto-generate-export-contracts description: 根据订单合同信息自动生成车辆出口销售合同(Word)和Proforma Invoice(Excel)。用于处理海外车辆出口业务,支持从订单文本解析买方信息、车型列表、贸易条款等,自动匹配车型价格配置表,生成标准格式的中英双语销售合同和PI表格。当用户提供订单信息、要求生成销售合同/PI/Proforma Invoice时触发。 --- # 海外合同自动生成 Skill ## 功能 根据用户提供的订单合同信息,自动生成: 1. **车辆销售合同** (Vehicle Sales Contract) - `.docx` 格式 2. **Proforma Invoice** - `.xlsx` 格式 ## 触发条件 当用户: - 提供订单信息并要求生成销售合同/PI/Proforma Invoice - 提供包含车型、买方公司、贸易条款等信息的订单文本 ## 工作流程 ### Step 1: 接收订单信息 支持两种输入格式: - **结构化编号列表**(标准格式): ``` 1. 姓名:xxx; 2.任职:xxx; 3.意向车型: (1) 车型中文名 英文名 - 型号:LZWxxxx 排放标准 代码:xxx X台颜色 4.合同签约公司中文名称:xxx; 5.合同签约公司英文名称:xxx ... ``` - **自然语言描述**:用户自由描述订单内容 解析提取核心字段: - 买方公司中英文名称和地址 - 合同联系电话 - 车型列表(型号、发动机代码、数量、颜色) - 贸易条款(FCA/FOB/EXW) - 出发港口、目的地国家 ### Step 2: 车型价格匹配 遍历 `assets/vehicle-price-config.xlsx` 中的所有sheet,在**G列(型号)**精确匹配ModelCode: - 匹配成功 → 根据贸易条款获取对应USD价格(FCA→O列, FOB→N列, EXW→P列) - 匹配失败 → **提示用户提供该车型的单价USD** **用户提供的价格优先于价格表。** ### Step 3: 计算汇总 - 总数量 = Σ 各车型数量 - 总金额 = Σ (单价 × 数量) - 30%金额 = `ceil(总金额 × 0.30)`(向上取整) - 70%金额 = 总金额 - 30%金额 - 英文大写 = `num2words(总金额).upper()` ### Step 4: 生成合同编号 格式:`HLXYWPA{年月日}`,如 `HLXYWPA20260530` ### Step 5: 生成文件 **Proforma Invoice** (`{合同编号}-Proforma Invoice.xlsx`): - 复制模板 `assets/proforma-invoice-template.xlsx` - 替换买方信息、合同编号、日期、车型明细、价格、汇总信息 - 保留Excel公式(SUM、乘法公式) **销售合同** (`{合同编号}-车辆销售合同.docx`): - 复制模板 `assets/vehicle-sales-contract-template.docx` - 替换段落文本(合同编号、日期、买方信息、贸易条款等) - 替换表格(车辆明细表、汇总信息) - 银行账户信息保持模板固定值 ### Step 6: 输出 向用户输出两个文件,并附加固定提示语: > 销售合同、Proforma Invoice已生成,报价员核对无误后再发送给客户。 ## 脚本使用 ```bash python scripts/generate_contracts.py <订单信息文件.txt> -o <输出目录> -p '{"LZW1028SPY": 6176}' ``` 参数: - `order_file`: 订单信息文本文件路径 - `-o, --output`: 输出目录(默认当前目录) - `-p, --prices`: JSON字符串,手动提供缺失的车型价格 Python API: ```python from scripts.generate_contracts import generate_contracts result = generate_contracts(order_text, output_dir='.', user_prices={"LZW1028SPY": 6176}) # result['success'] = True/False # result['pi_path'] = PI文件路径 # result['contract_path'] = 销售合同文件路径 # result['missing_prices'] = 未匹配到价格的车型列表 ``` ## 依赖 - `python-docx` - `openpyxl` - `num2words` ## 模板文件 - `assets/proforma-invoice-template.xlsx`: Proforma Invoice模板 - `assets/vehicle-sales-contract-template.docx`: 销售合同模板 - `assets/vehicle-price-config.xlsx`: 车型价格配置表(多sheet) ## 字段映射详情 详见 [references/field-mapping.md](references/field-mapping.md)