返回 Skill 列表
extension
分类: 数据与分析无需 API Key

存货报告

上传存货明细和出入库数据,生成存货周转分析、库龄分析、跌价准备测算、盘点差异报告,支持ABC分类管理和安全库存预警。

person作者: user_f1076f6ahubcommunity

进销存报表生成技能

技能描述

本技能专门用于根据企业的进销项发票数据,自动生成进销存库存明细账和报表(Excel格式),支持按商品品类、时间维度进行统计分析。

适用场景

  • 月度/季度进销存报表生成
  • 库存盘点和差异分析
  • 商品销售和采购结构分析
  • 出具库存管理报告

功能特性

1. 数据读取与过滤

  • 读取进项发票(采购数据)
  • 读取销项发票(销售数据)
  • 过滤非库存商品(服务、费用类发票)
  • 识别红字发票(退货/折让)

2. 进销存计算逻辑

| 计算项 | 公式 | 说明 | |--------|------|------| | 期初库存 | 上期末库存数量/金额 | 数量、金额分别核算 | | 本期进货 | 进项发票数量/金额合计 | 不含增值税 | | 本期销售 | 销项发票数量/金额合计 | 不含增值税 | | 期末库存 | 期初 + 本期进货 - 本期销售 | 数量、金额分别核算 | | 毛利率 | (销售收入 - 销售成本) ÷ 销售收入 × 100% | 按商品类别计算 |

3. 多维度分析

| 分析维度 | 内容 | |---------|---------| | 商品品类维度 | 按商品分类(食用菌、坚果、杂粮等)统计进销存 | | 时间维度 | 按月/季统计进销存变动 | | 供应商维度 | 按供应商统计采购数量和金额 | | 客户维度 | 按客户统计销售数量和金额 | | 库存预警 | 库存量过低/过高的商品预警 |

4. 双报表输出

进销存库存明细账(Excel):

  • 按商品编码汇总
  • 包含数量、规格型号、不含税金额
  • 计算期末库存数量和金额

进销存分析报表(Excel):

  • 进销存汇总表
  • 商品结构分析
  • 库存周转率分析
  • 毛利分析

输入输出格式

输入文件

进项发票文件 (--jin 参数):

  • 格式:Excel (.xlsx)
  • Sheet名称: 信息汇总表
  • 必需列:
    • 开票日期 (datetime)
    • 销方名称 (str)
    • 货物或应税劳务名称 (str)
    • 规格型号 (str, 可选)
    • 单位 (str, 可选)
    • 数量 (float, 可选)
    • 金额 (float, 不含税)
    • 税率 (str)
    • 发票状态 (str)
    • 是否正数发票 (str)

销项发票文件 (--xiao 参数):

  • 格式:Excel (.xlsx)
  • Sheet名称: 信息汇总表
  • 必需列:同进项发票

期初库存文件 (--begin 参数, 可选):

  • 格式:Excel (.xlsx) 或 CSV
  • 必需列:
    • 商品编码 (str)
    • 商品名称 (str)
    • 规格型号 (str)
    • 单位 (str)
    • 期初数量 (float)
    • 期初金额 (float, 不含税)

输出文件

进销存库存明细账 (--out-detail 参数):

  • 格式:Excel (.xlsx)
  • 文件名建议:[公司名]_进销存库存明细账_[期间].xlsx

进销存分析报表 (--out-report 参数):

  • 格式:Excel (.xlsx)
  • 文件名建议:[公司名]_进销存分析报表_[期间].xlsx

使用方法

方法一:命令行直接运行(需先开发脚本)

/Users/leewu/.workbuddy/binaries/python/envs/default/bin/python3 \
  ".workbuddy/skills/inventory-report/generate_inventory_report.py" \
  --jin  [进项发票文件路径] \
  --xiao [销项发票文件路径] \
  --begin [期初库存文件路径,可选] \
  --company [公司名称] \
  --period [期间,如 "2025年1-12月"] \
  --out-detail [库存明细账输出路径] \
  --out-report [分析报表输出路径]

参数说明

  • --jin: 进项/采购发票 Excel 文件路径(必需)
  • --xiao: 销项/销售发票 Excel 文件路径(必需)
  • --begin: 期初库存文件路径(可选,默认从0开始)
  • --company: 公司名称,用于报告标题(可选)
  • --period: 报表期间(可选,默认"本期")
  • --out-detail: 库存明细账输出路径(必需)
  • --out-report: 分析报表输出路径(必需)

示例

/Users/leewu/.workbuddy/binaries/python/envs/default/bin/python3 \
  ".workbuddy/skills/inventory-report/generate_inventory_report.py" \
  --jin  "财务资料/审计文件-春香/25年取得全量发票.xlsx" \
  --xiao "财务资料/审计文件-春香/25年开具发票.xlsx" \
  --company "春香优选(宁夏)科技有限公司" \
  --period "2025年1-12月" \
  --out-detail "输出/春香优选_进销存库存明细账_2025.xlsx" \
  --out-report "输出/春香优选_进销存分析报表_2025.xlsx"

方法二:对话触发(推荐)

触发语示例

  1. "用进销存报表生成技能,根据 [路径] 的进销项发票,生成 [公司名] 的 [期间] 进销存报表"
  2. "生成 [公司名] 的进销存库存明细账,采购发票在 [路径],销售发票在 [路径]"
  3. "根据发票数据出进销存报表,并按商品品类区分"

AI执行流程

  1. 读取用户提供的进项、销项发票文件路径
  2. 验证文件格式和内容
  3. 过滤非库存商品(服务、费用类)
  4. 调用 generate_inventory_report.py 脚本
  5. 生成库存明细账和分析报表
  6. 交付报告文件

核心脚本说明

generate_inventory_report.py(待开发)

功能模块

  1. load_invoice_data(file_path, invoice_type): 读取发票数据,过滤非库存商品
  2. calculate_inventory(jin_df, xiao_df, begin_inventory): 计算进销存
  3. analyze_inventory(inventory_data): 执行多维度分析
  4. generate_detail_report(data, output_path, company_name, period): 生成库存明细账
  5. generate_analysis_report(data, analysis, output_path, company_name, period): 生成分析报表

依赖库

  • pandas: 数据处理
  • openpyxl: Excel 文件生成和样式设置
  • argparse: 命令行参数解析

输出报表结构详解

报表1: 进销存库存明细账

Sheet 1: 库存明细账 | 商品编码 | 商品名称 | 规格型号 | 单位 | 期初数量 | 期初金额 | 本期进货数量 | 本期进货金额 | 本期销售数量 | 本期销售金额 | 期末库存数量 | 期末库存金额 |

Sheet 2: 库存变动明细 | 日期 | 商品编码 | 商品名称 | 变动类型(进货/销售/退货) | 数量 | 金额 | 对方单位 |

Sheet 3: 库存汇总表 | 商品品类 | 期末库存数量 | 期末库存金额 | 库存周转率 | 毛利率 |

报表2: 进销存分析报表

Sheet 1: 进销存汇总表 | 期间 | 期初库存金额 | 本期进货金额 | 本期销售金额 | 期末库存金额 | 毛利率 | 库存周转率 |

Sheet 2: 商品结构分析 | 商品品类 | 采购金额占比 | 销售金额占比 | 库存金额占比 | 毛利率 |

Sheet 3: 库存周转率分析 | 商品编码 | 商品名称 | 年平均库存 | 年销售成本 | 库存周转率 | 周转天数 | 评价 |

Sheet 4: 毛利分析 | 商品品类 | 销售收入 | 销售成本 | 毛利额 | 毛利率 | 同比变动 |

Sheet 5: 库存预警台账 | 商品编码 | 商品名称 | 当前库存 | 库存下限 | 库存上限 | 预警类型 | 建议措施 |

过滤规则说明

非库存商品过滤

以下商品/服务不计入进销存:

  • 服务类:住宿、餐饮、广告、劳务、建筑、运输、信息技术、保险等
  • 费用类:电费、天然气、水费、电话费、网络费等
  • 固定资产:设备、车辆、房产等(可选计入)

过滤关键词列表

non_inventory_keywords = [
    '住宿', '餐饮', '广告', '劳务', '建筑', '运输',
    '信息技术', '保险', '电费', '天然气', '水费',
    '电话费', '网络费', '租赁', '物业', '咨询'
]

红字发票处理

  • 是否正数发票 = "否" 的发票,视为红字发票(退货/折让)
  • 红字发票的数量和金额为负数,直接参与计算

自定义修改指南

修改商品分类规则

load_invoice_data() 函数中修改:

def categorize_goods(goods_name):
    """
    根据商品名称分类
    """
    if '食用菌' in goods_name or '菌' in goods_name:
        return '食用菌'
    elif '坚果' in goods_name or '干果' in goods_name:
        return '坚果干果'
    elif '杂粮' in goods_name or '米' in goods_name or '粥' in goods_name:
        return '杂粮谷物'
    elif '枸杞' in goods_name or '原浆' in goods_name:
        return '枸杞及制品'
    else:
        return '其他商品'

修改库存计算逻辑

calculate_inventory() 函数中修改:

# 使用加权平均法计算销售成本
def calculate_weighted_average_cost(inventory_records):
    """
    加权平均法计算期末成本
    """
    total_quantity = 0
    total_amount = 0
    
    for record in inventory_records:
        if record['type'] == '进货':
            total_quantity += record['quantity']
            total_amount += record['amount']
        elif record['type'] == '销售':
            # 计算加权平均单价
            weighted_avg_price = total_amount / total_quantity if total_quantity > 0 else 0
            # 计算销售成本
            cost = record['quantity'] * weighted_avg_price
            total_quantity -= record['quantity']
            total_amount -= cost
    
    return total_quantity, total_amount

添加新分析维度

analyze_inventory() 函数中添加:

def analyze_by_supplier(inventory_data):
    """
    按供应商分析采购结构
    """
    supplier_analysis = inventory_data.groupby('supplier_name').agg({
        'purchase_quantity': 'sum',
        'purchase_amount': 'sum'
    }).sort_values('purchase_amount', ascending=False)
    
    return supplier_analysis

版本信息

  • 当前版本:0.1.0(规划中,脚本待开发)
  • 创建日期:2026-06-05
  • 适用项目:春香优选(宁夏)科技有限公司(可复用至其他项目)
  • 维护者:中税云检(宁夏)企业管理咨询有限公司

更新日志

v0.1.0 (2026-06-05)

  • 技能定义文件创建
  • 功能框架设计完成
  • 等待脚本开发

后续开发计划

  1. 第一阶段:开发基础进销存计算功能(数量、金额核算)
  2. 第二阶段:添加商品分类和过滤规则
  3. 第三阶段:开发库存明细账和分析报表生成
  4. 第四阶段:添加库存周转率、毛利率等分析指标
  5. 第五阶段:开发库存预警功能
  6. 第六阶段:支持多种成本计算方法(加权平均、先进先出等)