给社区宠物店搭建耗材损耗智能成本简易核算模板。
一、实际应用场景描述
典型场景:
- 社区型宠物店,主营洗澡、美容、寄养
- 日常消耗品包括:
- 洗毛液、护毛素
- 一次性手套、毛巾
- 宠物尿垫、清洁消毒剂
- 店主需要:
- 记录每日耗材领用
- 核算每日 / 每月耗材成本
- 识别异常损耗(如突然用量激增)
系统定位:
一个轻量级、本地化、可复用的「耗材损耗成本核算模板」
二、引入痛点分析(非技术 → 技术映射)
业务痛点 技术映射
Excel 手工统计容易漏记 缺乏事务化记录
不清楚哪种耗材最耗钱 缺少分类聚合
无法判断是否存在浪费 缺少同比 / 阈值预警
月底算不清成本 没有标准成本模型
多员工操作混乱 无操作日志与权限隔离
👉 解决思路:
将“耗材损耗”抽象为:
库存流水 + 单位成本 + 损耗归集 + 报表输出
三、核心逻辑讲解(智能会计视角)
1️⃣ 会计逻辑抽象
- 耗材 = 低值易耗品
- 领用 = 费用发生
- 损耗核算 = 实际用量 × 单价
- 异常损耗 = 超过历史均值一定幅度
2️⃣ 核心流程
graph TD
A[录入耗材领用] --> B[校验与格式化]
B --> C[写入耗材流水表]
C --> D[按日/月聚合成本]
D --> E[异常损耗检测]
E --> F[生成成本报表]
四、代码模块化设计(Python)
📁 项目结构
pet_store_cost/
├── main.py # 程序入口
├── models.py # 数据模型
├── inventory.py # 库存与领用逻辑
├── cost.py # 成本核算
├── alert.py # 异常损耗检测
├── storage.py # SQLite 存储
└── README.md
五、代码实现(注释清晰、模块化)
1️⃣ models.py(数据建模)
from dataclasses import dataclass
from datetime import date
@dataclass
class ConsumableUsage:
usage_id: str
item_name: str
quantity: float
unit_price: float
usage_date: date
staff: str
2️⃣ storage.py(本地存储)
import sqlite3
DB_PATH = "pet_store.db"
def init_db():
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS consumable_usage (
usage_id TEXT PRIMARY KEY,
item_name TEXT,
quantity REAL,
unit_price REAL,
usage_date TEXT,
staff TEXT
)
""")
conn.commit()
conn.close()
3️⃣ inventory.py(领用记录)
import uuid
from datetime import date
class InventoryLedger:
def __init__(self):
self.usages = []
def record_usage(self, item_name, quantity, unit_price, staff):
record = {
"usage_id": str(uuid.uuid4()),
"item_name": item_name,
"quantity": quantity,
"unit_price": unit_price,
"usage_date": date.today(),
"staff": staff
}
self.usages.append(record)
return record
4️⃣ cost.py(成本核算)
from collections import defaultdict
class CostCalculator:
@staticmethod
def daily_cost(usages):
cost_by_date = defaultdict(float)
for u in usages:
cost = u["quantity"] * u["unit_price"]
cost_by_date[u["usage_date"]] += cost
return cost_by_date
5️⃣ alert.py(异常损耗检测)
import statistics
def detect_anomaly(quantities, threshold=2.0):
"""
若当日用量超过均值 + threshold * 标准差,视为异常
"""
if len(quantities) < 3:
return False
mean = statistics.mean(quantities)
std = statistics.stdev(quantities)
latest = quantities[-1]
return latest > mean + threshold * std
6️⃣ main.py(一键核算)
from inventory import InventoryLedger
from cost import CostCalculator
from alert import detect_anomaly
def run():
ledger = InventoryLedger()
# 模拟录入
ledger.record_usage("洗毛液", 2, 45, "张三")
ledger.record_usage("一次性手套", 50, 0.3, "李四")
usages = ledger.usages
daily_cost = CostCalculator.daily_cost(usages)
print("📊 每日耗材成本:")
for d, c in daily_cost.items():
print(f"{d}: {c:.2f} 元")
if __name__ == "__main__":
run()
六、README 示例(技术文档)
# 宠物店耗材损耗成本核算模板
## 项目简介
本模板用于社区宠物店日常耗材领用记录与成本分析。
## 功能
- 耗材领用记录
- 每日成本核算
- 异常损耗预警
## 使用方法
bash
python main.py
## 适用对象
- 小微门店
- 财务教学示例
- 智能会计课程实践
七、使用说明(面向开发者 / 店主)
1. 安装 Python 3.9+
2. 运行
"main.py"
3. 修改
"record_usage()" 参数适配实际耗材
4. 可扩展为:
- CSV 导入
- 日报自动生成
- Web 接口
八、核心知识点卡片
模块 知识点
models 数据建模、不可变记录
inventory 流水账设计、事务记录
cost 成本归集、聚合计算
alert 统计学异常检测
storage SQLite、本地持久化
九、总结(工程 + 会计视角)
- 本项目将「宠物店耗材损耗」转化为标准化成本计算问题
- 通过 流水账 + 单位成本 + 聚合分析,实现:
- 成本透明
- 损耗可控
- 数据可追溯
- 适合作为:
- 智能会计课程案例
- 小微门店数字化起点
- 财务自动化原型系统
利用AI解决实际问题,如果你觉得这个工具好用,欢迎关注长安牧笛!
