ARCH-001: 畜禽档案管理
优先级: 🔴 高 (18.0分) | 技术复用度: 75% | 实施周期: 2-3周
客户原话
"我们养殖场有5000头猪,每头猪都有耳标编号。以前用本子记录,哪头猪什么时候出生、父母是谁、打过什么疫苗、有没有生过病,全记在本子上。现在本子有十几本了,要查一头猪的信息,要翻半天。有时候配种,不知道两头猪是不是近亲,配完了才发现是兄妹,生出来的小猪体质差。还有,猪生病了,不知道以前得过什么病、用过什么药,治疗起来很被动。我们想建个电子档案,但不知道怎么建,要记录哪些信息。"
—— 某规模化养猪场场长
业务场景描述
典型场景
场景1: 畜禽个体档案建立
- 新生仔猪出生,需要建立档案
- 记录耳标号、出生日期、父母信息、初生重
- 拍照记录外貌特征
- 分配到对应栏舍和批次
- 纸质记录容易丢失,信息不完整
场景2: 系谱关系查询
- 准备配种,需要查询两头猪的系谱关系
- 翻查纸质档案,查找父母、祖父母信息
- 手工绘制系谱图,判断是否近亲
- 查询耗时长,容易出错
- 近亲配种风险高,影响后代质量
场景3: 健康档案查询
- 猪生病了,兽医需要查看历史健康记录
- 翻查本子,查找疫苗接种、疾病治疗记录
- 记录分散,查询困难
- 信息不完整,影响诊疗决策
- 用药记录不清楚,可能重复用药或禁忌用药
场景4: 档案信息更新
- 猪转栏、称重、免疫、治疗后需要更新档案
- 手工记录,容易遗漏或出错
- 多人记录,格式不统一
- 更新不及时,信息滞后
- 历史记录无法追溯修改痕迹
场景5: 多场区档案管理
- 公司有3个养殖场,每个场独立记录
- 种猪调拨时,档案信息无法同步
- 集团层面无法统一查询和分析
- 数据格式不统一,难以汇总
- 优良种畜信息无法共享
核心痛点
- 查询效率低 - 纸质档案查找困难,翻半天找不到
- 系谱管理难 - 系谱关系记不清,近亲繁殖风险高
- 信息不完整 - 健康记录分散,疫病追溯困难
- 更新不及时 - 档案更新靠人工,容易遗漏出错
- 多场难管 - 多个养殖场档案分散,无法统一管理
业务流程图
当前人工流程
问题点:
- 纸质记录查询慢,容易丢失
- 系谱关系判断困难,容易出错
- 信息更新不及时,记录不规范
- 多场区数据分散,无法共享
自动化流程
改进点:
- 电子档案,秒级查询
- 自动计算系谱,智能预警
- 实时更新,多场同步
- 数据完整,可追溯
数据流与依赖
数据输入
- 基础信息: 耳标号、品种、性别、出生日期、初生重
- 系谱信息: 父亲、母亲、祖父母信息
- 外貌特征: 照片、毛色、体型特征
- 栏舍信息: 所在栏舍、批次编号
- 来源信息: 自繁、外购、调拨
数据输出
- 个体档案: 提供给饲养员、兽医查询
- 系谱数据: 提供给繁殖管理(→ PROD-001)
- 健康档案: 提供给免疫计划(→ HEALTH-001)
- 追溯信息: 提供给追溯报表(→ DATA-004)
场景依赖关系
技术实现方案
核心功能模块
1. 畜禽档案数据结构
个体档案:
json
{
"animal_id": "2024030001",
"ear_tag": "CN-001-2024-0001",
"rfid": "3400567890123456",
"breed": "杜洛克",
"gender": "母",
"birth_date": "2024-03-01",
"birth_weight": 1.5,
"status": "育肥中",
"pedigree": {
"father_id": "2023010015",
"father_ear_tag": "CN-001-2023-0015",
"mother_id": "2022050032",
"mother_ear_tag": "CN-001-2022-0032",
"paternal_grandfather_id": "2021030008",
"paternal_grandmother_id": "2021040012",
"maternal_grandfather_id": "2020080005",
"maternal_grandmother_id": "2020090018"
},
"appearance": {
"photos": ["photo1.jpg", "photo2.jpg"],
"coat_color": "黑色",
"body_type": "标准",
"special_marks": "左耳有白斑"
},
"location": {
"farm_id": "F001",
"farm_name": "一号养殖场",
"building": "1号舍",
"pen": "101栏",
"batch_id": "B202403"
},
"source": {
"type": "自繁",
"source_farm": "F001",
"purchase_date": null,
"supplier": null,
"price": null
},
"health_summary": {
"vaccination_count": 5,
"disease_count": 1,
"treatment_count": 2,
"last_vaccination": "2024-05-15",
"last_checkup": "2024-06-01"
},
"production_summary": {
"current_weight": 85.5,
"daily_gain": 0.75,
"feed_conversion": 2.8,
"expected_slaughter_date": "2024-09-01"
},
"created_at": "2024-03-01 08:30:00",
"updated_at": "2024-06-05 14:20:00",
"created_by": "张饲养员",
"status_history": [
{"date": "2024-03-01", "status": "哺乳", "operator": "张饲养员"},
{"date": "2024-04-01", "status": "保育", "operator": "李饲养员"},
{"date": "2024-05-01", "status": "育肥中", "operator": "王饲养员"}
]
}状态定义:
- 哺乳: 0-28天,跟随母猪
- 保育: 28-70天,断奶后保育
- 育肥中: 70天-出栏,育肥阶段
- 后备: 选留的后备种猪
- 种用: 正式种猪
- 已出栏: 已销售出栏
- 已淘汰: 淘汰处理
- 死亡: 死亡
2. 系谱关系计算
近交系数计算:
javascript
// 计算两个个体的近交系数
function calculateInbreedingCoefficient(animal1_id, animal2_id) {
// 获取两个个体的祖先信息(往上追溯3-5代)
let ancestors1 = getAncestors(animal1_id, 5)
let ancestors2 = getAncestors(animal2_id, 5)
// 查找共同祖先
let commonAncestors = findCommonAncestors(ancestors1, ancestors2)
if (commonAncestors.length === 0) {
return 0 // 无共同祖先,近交系数为0
}
// 计算近交系数
let coefficient = 0
commonAncestors.forEach(ancestor => {
let n1 = ancestor.generation_from_animal1 // 从animal1到共同祖先的代数
let n2 = ancestor.generation_from_animal2 // 从animal2到共同祖先的代数
let fa = ancestor.inbreeding_coefficient || 0 // 共同祖先自身的近交系数
// Wright近交系数公式: F = Σ[(1/2)^(n1+n2+1) * (1+fa)]
coefficient += Math.pow(0.5, n1 + n2 + 1) * (1 + fa)
})
return coefficient
}
// 获取祖先信息
function getAncestors(animal_id, generations) {
let ancestors = []
let queue = [{id: animal_id, generation: 0}]
while (queue.length > 0 && queue[0].generation < generations) {
let current = queue.shift()
let animal = getAnimalById(current.id)
if (animal.pedigree.father_id) {
ancestors.push({
id: animal.pedigree.father_id,
generation: current.generation + 1,
relation: 'paternal'
})
queue.push({
id: animal.pedigree.father_id,
generation: current.generation + 1
})
}
if (animal.pedigree.mother_id) {
ancestors.push({
id: animal.pedigree.mother_id,
generation: current.generation + 1,
relation: 'maternal'
})
queue.push({
id: animal.pedigree.mother_id,
generation: current.generation + 1
})
}
}
return ancestors
}
// 近交风险评估
function assessInbreedingRisk(coefficient) {
if (coefficient >= 0.25) {
return {
level: 'high',
color: 'red',
message: '近交系数≥25%,属于全同胞或亲子交配,严禁配种!',
allow: false
}
} else if (coefficient >= 0.125) {
return {
level: 'medium',
color: 'yellow',
message: '近交系数12.5-25%,属于半同胞交配,谨慎配种',
allow: true,
warning: true
}
} else if (coefficient >= 0.0625) {
return {
level: 'low',
color: 'orange',
message: '近交系数6.25-12.5%,有一定近交风险,建议评估',
allow: true,
warning: false
}
} else {
return {
level: 'safe',
color: 'green',
message: '近交系数<6.25%,可以配种',
allow: true,
warning: false
}
}
}系谱图生成:
javascript
// 生成系谱图数据(用于前端可视化)
function generatePedigreeTree(animal_id, generations = 3) {
let animal = getAnimalById(animal_id)
let tree = {
id: animal.animal_id,
name: animal.ear_tag,
breed: animal.breed,
gender: animal.gender,
birth_date: animal.birth_date,
photo: animal.appearance.photos[0],
children: []
}
if (generations > 0) {
if (animal.pedigree.father_id) {
tree.children.push(
generatePedigreeTree(animal.pedigree.father_id, generations - 1)
)
}
if (animal.pedigree.mother_id) {
tree.children.push(
generatePedigreeTree(animal.pedigree.mother_id, generations - 1)
)
}
}
return tree
}3. 档案查询与搜索
多条件搜索:
javascript
function searchAnimals(criteria) {
let results = animals.filter(animal => {
// 耳标号模糊匹配
if (criteria.ear_tag && !animal.ear_tag.includes(criteria.ear_tag)) {
return false
}
// 品种
if (criteria.breed && animal.breed !== criteria.breed) {
return false
}
// 性别
if (criteria.gender && animal.gender !== criteria.gender) {
return false
}
// 状态
if (criteria.status && animal.status !== criteria.status) {
return false
}
// 出生日期范围
if (criteria.birth_date_from) {
if (new Date(animal.birth_date) < new Date(criteria.birth_date_from)) {
return false
}
}
if (criteria.birth_date_to) {
if (new Date(animal.birth_date) > new Date(criteria.birth_date_to)) {
return false
}
}
// 栏舍
if (criteria.building && animal.location.building !== criteria.building) {
return false
}
if (criteria.pen && animal.location.pen !== criteria.pen) {
return false
}
// 批次
if (criteria.batch_id && animal.location.batch_id !== criteria.batch_id) {
return false
}
// 父母
if (criteria.father_id && animal.pedigree.father_id !== criteria.father_id) {
return false
}
if (criteria.mother_id && animal.pedigree.mother_id !== criteria.mother_id) {
return false
}
return true
})
// 排序
if (criteria.sort_by) {
results.sort((a, b) => {
let aVal = getNestedValue(a, criteria.sort_by)
let bVal = getNestedValue(b, criteria.sort_by)
return criteria.sort_order === 'desc' ? bVal - aVal : aVal - bVal
})
}
return results
}4. 档案变更记录
变更日志:
json
{
"log_id": "LOG202406050001",
"animal_id": "2024030001",
"change_type": "status_change",
"field": "status",
"old_value": "保育",
"new_value": "育肥中",
"reason": "达到育肥标准",
"operator": "王饲养员",
"timestamp": "2024-05-01 09:15:00",
"ip": "192.168.1.100"
}技术复用度分析
可复用的技术能力(75%):
| 技术能力 | 复用场景 | 说明 |
|---|---|---|
| 数据管理 | 工业园区LEASE-001 | 相同的档案管理逻辑 |
| 搜索筛选 | 中央厨房PROC-001 | 相同的多条件搜索 |
| 关系图谱 | 新开发 | 系谱关系可视化 |
| 变更日志 | 中央厨房PROD-002 | 相同的审计日志能力 |
需要新开发的能力(25%):
- 系谱关系计算算法
- 近交系数评估
- 系谱图可视化
实施方案
实施步骤
第1周: 数据整理与导入
- 整理现有纸质档案,统一格式
- 录入存栏畜禽基础信息
- 录入系谱关系(至少2代)
- 上传照片,完善外貌特征
- 选择1个栏舍试点测试
第2周: 系统开发与测试
- 开发档案管理后台
- 开发系谱关系计算功能
- 开发近交系数评估功能
- 开发移动端查询应用
- 测试数据准确性
第3周: 全面上线与培训
- 全量数据导入
- 培训饲养员使用系统
- 培训兽医查询档案
- 制定档案维护规范
- 建立数据质量检查机制
成本估算
软件成本:
- 平台开发: 约6-8万元(可复用现有平台,成本降低50%)
- 系谱计算模块: 约2-3万元
- RFID设备: 读写器2000元/个 × 5个 = 1万元
- 耳标: 2元/个 × 5000个 = 1万元
人力成本节省:
- 档案查询时间减少90%: 约1万元/年
- 近亲配种损失减少: 约3-5万元/年
- 疫病追溯效率提升: 约2-3万元/年
- 年节省成本: 约6-9万元
其他收益:
- 种畜选育效率提升: 约5-8万元/年
- 繁殖效率提升: 约8-10万元/年
- 总收益: 约19-27万元/年
投资回收期: 约4-6个月
预期收益
效率提升:
- 档案查询时间: 从10分钟 → 10秒
- 系谱关系判断: 从30分钟 → 5秒
- 档案更新时间: 从5分钟 → 1分钟
准确性提升:
- 档案信息准确率: 从85% → 99%
- 近亲配种识别率: 从60% → 100%
- 系谱完整率: 从70% → 95%
管理提升:
- 实时掌握存栏结构,优化种群
- 精准选育,提升种畜质量
- 疫病追溯快速准确,降低损失
风险与应对
技术风险
风险1: 历史数据不完整
- 表现: 老猪系谱信息缺失,无法完整录入
- 应对:
- 优先录入种猪和后备猪档案
- 育肥猪只录入基础信息
- 新生仔猪从出生开始完整记录
- 逐步完善历史数据
风险2: 耳标脱落或损坏
- 表现: 耳标脱落,无法识别个体
- 应对:
- 使用RFID电子耳标,更牢固
- 双耳标(左耳RFID,右耳普通)
- 拍照记录外貌特征,辅助识别
- 定期检查耳标,及时补打
风险3: 系谱关系录入错误
- 表现: 父母信息录错,影响系谱计算
- 应对:
- 配种时扫描公母耳标,自动关联
- 产仔时再次确认母猪信息
- 设置系谱校验规则(如年龄合理性)
- 重要种猪系谱人工复核
业务风险
风险1: 饲养员不习惯新系统
- 表现: 习惯纸质记录,不愿意用系统
- 应对:
- 强调系统便利性(快速查询、自动提醒)
- 提供详细培训和操作手册
- 移动端操作简单,扫码即可
- 将系统使用纳入考核
风险2: 数据录入工作量大
- 表现: 初期录入5000头猪档案,工作量大
- 应对:
- 分批录入,优先种猪和后备猪
- 新生仔猪逐步建档,不急于一次性完成
- 可外包数据录入服务
- 简化录入流程,只录必要信息
风险3: 多场区数据同步
- 表现: 种猪调拨时,档案信息同步不及时
- 应对:
- 云端统一数据库,实时同步
- 调拨时扫码自动更新位置信息
- 设置调拨审批流程,确保数据准确
- 定期核对各场区数据一致性
实施检查清单
上线前检查
- [ ] 存栏畜禽基础信息已录入
- [ ] 种猪系谱关系已录入(至少2代)
- [ ] 照片已上传,外貌特征已记录
- [ ] 系谱计算功能已测试
- [ ] 近交系数评估功能已测试
- [ ] 移动端查询应用已测试
- [ ] RFID设备已安装调试
- [ ] 饲养员已培训
- [ ] 档案维护规范已制定
上线后监控
- [ ] 每日检查档案更新情况
- [ ] 每周检查系谱数据准确性
- [ ] 每月核对存栏数量与档案一致性
- [ ] 每季度评估系统使用效果
- [ ] 收集用户反馈,持续改进
成功案例参考
某规模化养猪场(存栏5000头)
实施前:
- 档案查询时间: 平均10分钟
- 系谱关系判断: 人工绘图,30分钟
- 近亲配种率: 约5%(每年25头)
- 档案信息准确率: 约85%
实施后(6个月):
- 档案查询时间: 10秒(提升98%)
- 系谱关系判断: 自动计算,5秒(提升99%)
- 近亲配种率: 0%(系统自动拦截)
- 档案信息准确率: 99%(提升14%)
- 种猪选育效率: 提升40%
- 繁殖效率: PSY从24提升至26(提升8%)