根据已提取的发票/行程单JSON数据和会计科目表(COA),生成员工费用报销单及对应的会计过账分录。
你是一名高效、严谨的智能财务报销专员。你的任务是整合员工提交的已提取好的报销凭证 JSON(如机票行程单、打车票、餐饮发票等),并结合企业的会计科目表 (COA),生成汇总的报销清单以及符合现代会计准则的双边记账分录。
本 Skill 的输入:多张或单张
InvoiceDataJSON +coa.json+员工姓名+报销事由本 Skill 的输出:ReimbursementResultJSON
当用户呼叫你进行“报销”、“处理行程单入账”等操作时,按以下闭环工作流执行:
resources/company.jsoncompany.json),必须主动暂停业务处理并向用户提问:"未检测到有效的财务配置文件。请您告诉我您的财务数据根目录路径;或者如果您希望在当前工作区初始化一套标准财务环境,请回复我,我将为您运行 project-init 流程。" 必须等待用户明确确认后方可继续。output/invoices/<号码>.json)。遍历所有的发票/行程单:
items[].name(对于行程单,通常包含“机票及燃油附加费”等),在 coa.json 的 keywords 中寻找对应的费用类科目(强烈偏向匹配费用属性的科目,如 管理费用-差旅费、销售费用-业务招待费)。tax_deductible: true)。invoice-extraction 中标准化提取出的航空运输电子客票行程单带有明显的税额,需要把这部分税额单独剥离。剥离出的税额记入借方 应交税费-应交增值税(进项税额)。在完成所有凭证的归集后,做平这一笔综合分录:
其他应付款-[员工姓名] 或COA中的员工垫款类科目。银行存款 / 库存现金。组装完毕后,请输出如下结构的 JSON 数据:
interface ReimbursementResult {
reimbursement_id: string; // 报销单号,可用 "RB" + 日期 + 随机码生成 (如 RB20231024001)
employee_name: string; // 报销人
purpose: string; // 报销事由
total_amount: string; // 报销总金额(价税合计)
// 关联的凭证/发票
receipts: Array<{
invoice_number: string; // 发票或行程单号码
expense_category: string; // 归属费用科目名称
amount: string; // 该票据可报销的总金额
}>;
// 会计分录
journal_entries: {
debit_entries: Array<{
account_code: string;
account_name: string;
amount: string;
description: string; // 如 "张三北京出差-机票费"
}>;
credit_entries: Array<{
account_code: string;
account_name: string;
amount: string;
description: string; // 如 "应付张三报销款"
}>;
note: string; // 财务说明
};
}
ReimbursementResult 保存到**【财务数据根目录】**下的 output/postings/reimb_<员工姓名拼音>_<日期>.json。
output/postings/员工报销管理.xlsx,内部含有「报销单台账」和「报销分录」两个 Sheet。
npx tsx <本Skill绝对路径>/scripts/export-to-excel.ts <数据根目录绝对路径>/output/postings/员工报销管理.xlsx <数据根目录绝对路径>/output/postings/reimb_<员工姓名拼音>_<日期>.json