乳品厂生牛乳批次建模实践:收奶批/槽车批/厂内批三层绑定设计

简介: 乳品厂数字化第一需求不是提效率,是出事别背锅。巴氏奶保质期2-7天,客诉一旦爆发,召回范围能不能从"整线三天"缩到"两小时一班",取决于收奶、杀菌、CIP、灌装、出库是否绑在同一批号上。本文以实际项目复盘,拆解乳品MES三个核心落地点:生牛乳批次三层留痕、杀菌/CIP参数超差硬拦截、成品批正向反向追溯。短保效期FIFO强制和临期预警逻辑同步覆盖。适合做食品数字化、工业软件集成的朋友参考。

摘要:乳品厂数字化的第一道坎不是"上系统",是收奶环节的数据建模。本文以实际项目中的数据库设计为例,拆解生牛乳从牧场到厂内生产线的批次绑定逻辑,并给出核心表结构和数据流。适合做工业软件、MES 开发、IoT 数据采集的开发者参考。

一、为什么收奶不能用"一张表搞定"

很多通用 MES 在乳品厂上线后,追溯做不出来的根因,出在收奶建模阶段。

牧场送一车奶到工厂,实际上携带了三层身份:

  1. 牧场批号:同一牧场、同一天、同一牛群产出的奶,有独立检测报告(脂肪、蛋白、菌落总数、抗生素)
  2. 槽车批号:同一辆车可能装了 2-3 个牧场的奶(拼车),每车有独立的 COA(Certificate of Analysis)
  3. 厂内收奶批号:工厂收奶时生成的内部批号,关联净乳机、暂存罐、验收结果

如果只用一张 raw_material_lot 表,把牧场批和槽车批混在一起,后面一旦客诉,你只能查到"用了哪车奶",查不到"这车奶里混了哪几个牧场的、哪个牧场的指标超标"。

所以正确做法是:三层独立建表,通过外键关联,系统自动绑定,不靠人填。

二、核心表设计

1. 牧场批次表 pasture_lot

CREATE TABLE pasture_lot (
pasture_lot_no VARCHAR(64) PRIMARY KEY,
pasture_name VARCHAR(128),
cow_group VARCHAR(32), -- 牛群编号
milk_date DATE, -- 挤奶日期
fat_rate DECIMAL(5,2), -- 脂肪含量 %
protein_rate DECIMAL(5,2), -- 蛋白含量 %
bacteria_count INT, -- 菌落总数
antibiotic_result VARCHAR(16), -- 抗生素检测:阴性/阳性
quality_status SMALLINT, -- 0待检 1合格 2拒收
created_at DATETIME
);

2. 槽车批次表 tanker_lot

CREATE TABLE tanker_lot (
tanker_lot_no VARCHAR(64) PRIMARY KEY,
tanker_no VARCHAR(32), -- 槽车编号
driver_name VARCHAR(32),
departure_time DATETIME, -- 离开牧场时间
arrival_time DATETIME, -- 到厂时间
temperature_on_arrival DECIMAL(4,1), -- 到厂温度
total_volume DECIMAL(10,2), -- 总体积 L
coa_no VARCHAR(64), -- COA 报告编号
created_at DATETIME
);

3. 槽车-牧场关联表 tanker_pasture_mapping

CREATE TABLE tanker_pasture_mapping (
id BIGINT PRIMARY KEY,
tanker_lot_no VARCHAR(64),
pasture_lot_no VARCHAR(64),
volume DECIMAL(10,2), -- 该牧场奶在此车中的体积
sequence_no SMALLINT, -- 装车顺序
FOREIGN KEY (tanker_lot_no) REFERENCES tanker_lot(tanker_lot_no),
FOREIGN KEY (pasture_lot_no) REFERENCES pasture_lot(pasture_lot_no)
);

拼车场景靠这张表解决:一车奶对应多个牧场批,每个批有多少升,系统自动记录。

4. 厂内收奶批表 milk_receive_lot

我们在万界星空科技乳制品MES里用 milk_receive_lot 这张表承接厂内收奶动作:
CREATE TABLE milk_receive_lot (
receive_lot_no VARCHAR(64) PRIMARY KEY,
tanker_lot_no VARCHAR(64),
receiving_line VARCHAR(32), -- 收奶线编号
clarifier_no VARCHAR(32), -- 净乳机编号
storage_tank VARCHAR(32), -- 暂存罐编号
receive_start DATETIME,
receive_end DATETIME,
received_volume DECIMAL(10,2),
temperature_in DECIMAL(4,1), -- 进线温度
temperature_out DECIMAL(4,1), -- 出线温度
fat_actual DECIMAL(5,2), -- 实际检测脂肪
protein_actual DECIMAL(5,2), -- 实际检测蛋白
status SMALLINT, -- 0收奶中 1待检 2合格 3隔离 4拒收
operator VARCHAR(32),
created_at DATETIME,
FOREIGN KEY (tanker_lot_no) REFERENCES tanker_lot(tanker_lot_no)
);

这张表是追溯链路的总入口:输入厂内收奶批号,系统自动展开 → 槽车批号 → 牧场批号列表(含每个牧场的脂肪/蛋白/菌落/抗生素结果)。

三、数据流:从收奶到杀菌到灌装

pasture_lot (牧场批)
↑
tanker_pasture_mapping (拼车映射)
↑
tanker_lot (槽车批)
↑
milk_receive_lot (厂内收奶批)
↑
processing_batch (生产工单)
├── sterilization_record (杀菌参数)
├── cip_record (清洗报告)
├── filling_record (灌装记录)
│ └── package_unit (箱码/托盘码)

正向追溯:成品箱码 → 灌装记录 → 生产工单 → 收奶批 → 槽车批 → 牧场批
反向召回:某牧场抗生素阳性 → 关联槽车 → 关联收奶批 → 关联生产工单 → 关联成品批 → 关联出库客户

四、几个容易踩的坑

  1. 槽车温度超限但牧场批合格

到厂温度 > 6℃ 时,即使牧场检测全部合格,也要标记"待复检"。系统里不能只存最终判定,要存每个环节的原始数据,审计时才说得清。

  1. 拼车奶混罐后无法拆分

多车奶进同一个暂存罐后,物理上已经混合。系统要做"混合批"标记:一旦混罐,追溯粒度只能到"罐"级别,不能假装还能精确到"哪车哪牧场"。提前告诉质量部门这个限制,别等飞检时解释不清。

  1. 收奶批和杀菌工单不是 1:1

一罐奶可能供 2-3 个杀菌工单(巴氏和 UHT 同时用),也可能一个工单用了 2 个罐的奶。系统要支持多对多映射,不能简单假设一对一。

  1. 拒收奶的去向要记

牧场批拒收后,槽车退回还是转做工业奶粉原料?这个决策和去向必须留痕,不能"口头处理"。

五、和 SCADA / ERP 的边界

cb14a5c3-63d6-44e3-91a0-5b549807fc71.png

六、小结

乳品厂批次追溯能不能做出来,80% 取决于收奶建模对不对。

核心原则:
• 牧场批、槽车批、厂内批三层独立,不合并不省略

• 拼车场景用映射表,不靠人脑记

• 每个环节的原始数据全留,不只有最终判定

• 追溯链路从第一天就跑通,别等飞检来了再补

把 milk_receive_lot 这张表设计扎实,后面的杀菌参数绑定、CIP 互锁、灌装赋码都是顺着这条链路往下接,不会散。

相关文章
|
1月前
|
缓存 人工智能
一文看懂Token Plan Credits动态计费规则:没有固定 Token 换算,消耗因素与计算实例
阿里云百炼Token Plan采用动态Credits计费,无固定Token换算比例。消耗由模型类型、Token数量、思考模式及工具调用等共同决定,不同模型抵扣系数各异。以qwen3.6-plus为例,输入/缓存/输出Token折算系数均不同,百万Tokens成本低至1.12元,较按量计费最高省44%。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
479 0
|
1月前
|
存储 运维 搜索推荐
装备制造企业上云MES,本地部署和云端部署怎么选?
装备制造企业做数字化转型,MES 该选云端 SaaS 还是本地私有化部署?本文对比两种方案优缺点,给出选型评估维度,帮助制造企业科学决策 MES 部署架构。
|
1月前
|
存储 弹性计算 Serverless
阿里云免费中心:上百款云产品免费用,包括云服务器、云数据库、Tokens、免费存储等云产品,0元直达
阿里云免费中心提供超176款云产品新用户免费试用,涵盖ECS、OSS、RDS、FC、无影云电脑等,含300–660元额度、500GB云盘、120小时云电脑等福利;学生还可享12个月ECS。注意:仅限未购过该产品的账号,停机仍计费,到期未释放将产生费用。(239字)
469 1
|
1月前
|
并行计算 API 开发者
Windows 环境下 llama.cpp 编译运行指南
本文详解Windows下用llama.cpp本地部署大模型:从VS2026编译(支持CPU/GPU)、ModelScope下载GGUF格式Qwen2.5-1.5B模型,到启动llama-server API服务及Python调用验证,全程轻量、低延迟、高隐私,助力开发者快速落地。
704 2
|
1月前
|
人工智能 监控 架构师
【云栖大会】逛展拿礼+硬核论坛:阿里云开放平台展区全攻略
2026云栖大会,阿里云开放平台亮相杭州1号馆!可观测治理(1-B6-2)与Agent编排(1-B3-3)双展区互动体验,扫码领“掌上凉风”、挑战得手机支架、深度体验赢限量好礼;论坛签到即赠盲盒,早到更有隐藏彩蛋!
|
1月前
|
人工智能 Linux 调度
阿里云服务器2核2G3M99元:续费同价至2029年,入门级云服务器特惠指南
本文主要介绍了阿里云服务器经济型e实例(规格为2核2G、3M带宽、40G ESSD Entry云盘)以99元/年的特惠价格面向个人和企业新老用户推出的活动详情。文章详细解析了该云服务器的具体配置参数、购买与续费的规则(特别是强调续费同价至2029年)、以及基于共享型架构和Intel至强处理器的核心性能指标,并指出了该产品适用于个人博客、企业官网、开发测试等轻量级应用场景,同时提及了另一款199元/年的通用算力型u1实例作为进阶选择。
|
1月前
|
人工智能 自然语言处理 安全
从阿里云百炼到 PAI 私有化:一条不返工的企业 DeepSeek/RAG 落地路径
本文面向技术负责人,提出中小企业大模型落地三步法:先用阿里云百炼快速验证应用与评测(天级),再轻量自建RAG掌握知识主权,最后按需将生成侧平滑迁移至PAI-EAS或自建GPU。全程通过统一OpenAI兼容路由层解耦,确保业务代码零返工。强调评测驱动、渐进演进与分级安全。(239字)
|
1月前
|
人工智能 自然语言处理 文字识别
阿里云有哪些AI产品可免费试用?超30款AI产品和1亿+大模型 tokens免费体验
阿里云AI产品免费试用活动面向认证新用户开放,覆盖超30款AI产品与至高1亿+大模型Tokens。权益包含阿里云百炼1亿+Tokens限免体验、PAI全链路AI开发免费算力、多款NLP与视觉智能产品百万级调用额度,还支持预约AI专家获取专属POC服务,零成本帮助开发者与企业完成AI应用前期探索与验证。
|
1月前
|
存储 JSON 数据建模
发酵食品批次追溯的数据建模难点:以调味品酿造为例
本文基于调味品发酵(酱油、醋等)数字化实践,指出其时间尺度长(数月)、工艺动态性强、品质依赖全程微生物状态等特点;提出以“发酵批次+事件”替代传统MES工单模型,详解数据建模、CCP趋势监控与风味逆向追溯方案,助力工业软件/IoT从业者避坑落地。
|
29天前
|
缓存 人工智能 JSON
中小厂云MES落地:一套能跑通的 PLC / ERP 集成架构
本文基于中小制造企业数字化实践,剖析MES项目失败主因——边界不清,并提出以ISA-95为纲的分层架构:边缘网关终结工业协议、云MES专注业务逻辑、ERP与MES通过3个核心接口解耦。强调“设备数据→业务语言”的翻译本质,给出可落地的数据模型、断网缓存方案及实施路径。

热门文章

最新文章