Python工厂损耗智能分摊代码,打破老会计经验估成本套路,录入投料成品数据,按行业系数代码,自动分摊损耗算单品成本,数据精准碾压主观经验估算,定价不再凭感觉。
下面给你一套“Python 工厂损耗智能分摊系统”完整示例方案,定位非常明确:
用数据和系数干掉“老会计拍脑袋估损耗”
让单品成本从“经验定价”走向“算法定价”
✅ 智能会计课程案例
✅ 制造业成本核算工具
✅ 技术博客 + 实战项目
一、实际应用场景描述
场景:离散制造型企业(五金 / 注塑 / 电子装配)
- 生产部门每日录入:
- 原料投入量
- 成品入库量
- 财务每月核算:
- 单品真实成本
- 损耗是否合理
- 传统做法:
“这个工序一般损耗 5%,那个 3%……”
- 结果:
- 成本忽高忽低
- 报价不准
- 利润表像“玄学”
目标系统:
✅ 投料 + 成品数据
✅ 按行业损耗系数表自动分摊
✅ 输出单品精准成本
二、引入痛点(经验 vs 数据)
维度 老会计经验估算法 智能分摊算法
损耗依据 口头经验 行业系数表
成本波动 人为调整 数据驱动
可追溯性 无法复盘 公式可验证
定价准确性 靠感觉 靠模型
新手上手 难 直接跑程序
👉 一句话暴击:
成本核算不是玄学,是数学。
三、核心逻辑讲解(会计 × 工业 × Python)
1️⃣ 核心会计公式
应耗用量 = 成品数量 × 单位标准用量
理论损耗 = 投料量 − 应耗用量
损耗率 = 理论损耗 / 投料量
2️⃣ 智能分摊思路
- 不同工序 / 产品有标准损耗系数
- 实际损耗 偏离系数 → 预警
- 成本 = 原料单价 × (1 + 实际损耗率)
四、数据表结构设计(示例)
产品损耗系数表
CREATE TABLE product_loss_coefficient (
product_id INT PRIMARY KEY,
product_name VARCHAR(100),
std_loss_rate DECIMAL(5,4) -- 如 0.05 表示 5%
);
生产投料表
CREATE TABLE production_record (
id INT PRIMARY KEY AUTO_INCREMENT,
product_id INT,
input_qty DECIMAL(10,2),
output_qty DECIMAL(10,2),
material_price DECIMAL(10,2)
);
五、Python 模块化代码(强注释版)
📁 项目结构
factory_cost/
├── config.py
├── database.py
├── loss_calculator.py
├── cost_allocator.py
├── report.py
└── main.py
1️⃣ config.py
# config.py
DB_CONFIG = {
"host": "localhost",
"user": "root",
"password": "123456",
"database": "smart_factory"
}
2️⃣ database.py
# database.py
import pymysql
def get_connection():
return pymysql.connect(
host=DB_CONFIG["host"],
user=DB_CONFIG["user"],
password=DB_CONFIG["password"],
database=DB_CONFIG["database"],
charset="utf8mb4",
cursorclass=pymysql.cursors.DictCursor
)
3️⃣ loss_calculator.py(损耗计算核心)
# loss_calculator.py
"""
根据投料 & 产出计算实际损耗率
"""
def calculate_loss(input_qty, output_qty, std_usage_per_unit):
theoretical_usage = output_qty * std_usage_per_unit
actual_loss = input_qty - theoretical_usage
loss_rate = actual_loss / input_qty if input_qty else 0
return round(loss_rate, 4)
4️⃣ cost_allocator.py(智能分摊核心)
# cost_allocator.py
"""
按行业系数自动分摊损耗,计算单品成本
"""
def allocate_cost(material_price, loss_rate):
"""
单品成本 = 原料单价 × (1 + 实际损耗率)
"""
return round(material_price * (1 + loss_rate), 4)
5️⃣ report.py(成本报表)
# report.py
import pandas as pd
def generate_cost_report(data):
df = pd.DataFrame(data)
df.to_excel("单品成本核算报表.xlsx", index=False)
print("✅ 单品成本报表已生成")
6️⃣ main.py(一键执行)
# main.py
from loss_calculator import calculate_loss
from cost_allocator import allocate_cost
from report import generate_cost_report
import pymysql
def main():
conn = pymysql.connect(**DB_CONFIG)
try:
with conn.cursor() as cursor:
sql = """
SELECT p.product_id, p.input_qty, p.output_qty, p.material_price, c.std_loss_rate
FROM production_record p
JOIN product_loss_coefficient c ON p.product_id = c.product_id
"""
cursor.execute(sql)
records = cursor.fetchall()
result = []
for r in records:
loss_rate = calculate_loss(
r["input_qty"],
r["output_qty"],
r["std_loss_rate"]
)
unit_cost = allocate_cost(r["material_price"], loss_rate)
result.append({
"product_id": r["product_id"],
"实际损耗率": f"{loss_rate:.2%}",
"单品成本": unit_cost
})
generate_cost_report(result)
finally:
conn.close()
if __name__ == "__main__":
main()
六、README.md(使用说明)
# 工厂损耗智能分摊系统
## 功能
- 自动计算实际损耗率
- 按行业系数分摊成本
- 输出单品精准成本
## 使用步骤
1. 配置数据库
2. 录入产品损耗系数
3. 录入生产投料数据
4. 执行 python main.py
七、核心知识点卡片
📌 知识点卡片
技术点 说明
标准成本法 会计核心思想
损耗系数 工业经验数据化
Python 函数封装 业务逻辑解耦
SQL JOIN 多表数据整合
Pandas 报表自动化
八、总结
❌ 别再用“大概 5% 损耗”糊弄老板
✅ 用 行业系数 + Python 算出真成本
这套方案的本质是:
把“老会计的经验”变成“可复用的代码资产”
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!
