1. 项目背景与核心价值
在传统生猪养殖行业中,养殖场管理者往往面临数据记录分散、信息传递滞后、决策缺乏依据等痛点。纸质台账容易丢失,Excel表格难以协同,而专业养殖管理系统又存在成本高、操作复杂的问题。这个基于微信小程序的生猪养殖信息化管理系统,正是为解决这些行业痛点而生。
微信小程序作为载体具有天然优势:无需安装独立App,扫码即用;依托微信生态,账号体系与消息通知无缝衔接;开发成本低,迭代速度快。系统将养殖过程中的关键数据(如存栏量、饲料消耗、免疫记录、生长曲线等)数字化,实现"一部手机管猪场"的轻量化管理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计解析
2.1 技术栈选型
- 前端:原生微信小程序 + Vant Weapp组件库
- 后端:Spring Boot 2.7 + MyBatis-Plus
- 数据库:MySQL 8.0(分表设计)
- 基础设施:Docker容器化部署
- 安全认证:JWT + 微信开放平台UnionID机制
选择这套技术栈主要考虑:
- 微信原生开发保证最佳性能体验
- Spring Boot快速构建RESTful API
- Docker部署确保环境一致性
- 微信生态账号体系降低用户注册门槛
2.2 核心功能模块
mermaid复制graph TD
A[用户端] --> B(养殖档案)
A --> C(饲喂管理)
A --> D(疫病防控)
A --> E(统计分析)
F[管理端] --> G(员工权限)
F --> H(数据看板)
F --> I(预警设置)
3. 关键实现细节
3.1 微信小程序端优化技巧
- 使用
wx.getSystemInfoSync()动态计算导航栏高度 - WebView通信采用
postMessage+事件监听方案 - 图标方案:将iconfont转换为base64嵌入wxss
- 列表页实现虚拟滚动优化性能:
javascript复制// 示例代码 - 虚拟滚动实现
Page({
data: {
screenHeight: 0,
itemHeight: 120,
visibleData: [],
scrollTop: 0
},
onLoad() {
this.setData({
screenHeight: wx.getSystemInfoSync().windowHeight
})
this.loadVisibleData()
},
onScroll(e) {
this.setData({ scrollTop: e.detail.scrollTop })
this.loadVisibleData()
},
loadVisibleData() {
const { scrollTop, screenHeight, itemHeight } = this.data
const startIdx = Math.floor(scrollTop / itemHeight)
const endIdx = startIdx + Math.ceil(screenHeight / itemHeight) + 1
this.setData({
visibleData: allData.slice(startIdx, endIdx)
})
}
})
3.2 后端核心业务逻辑
- 批次管理服务:
java复制@RestController
@RequestMapping("/batch")
public class BatchController {
@Autowired
private BatchService batchService;
@PostMapping
public Result createBatch(@Valid @RequestBody BatchDTO dto) {
// 批次号生成规则:农场ID+年月+序号
String batchNo = String.format("%s-%s-%03d",
dto.getFarmId(),
LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMM")),
batchService.getCurrentMonthCount(dto.getFarmId())+1);
return Result.success(batchService.createBatch(dto, batchNo));
}
@GetMapping("/statistics")
public Result getBatchStatistics(@RequestParam String farmId) {
return Result.success(batchService.getBatchStatistics(farmId));
}
}
- 智能预警服务实现:
sql复制-- 饲料消耗异常预警SQL示例
SELECT
b.batch_no,
f.feed_type,
f.actual_amount,
f.standard_amount,
(f.actual_amount - f.standard_amount) AS deviation
FROM
feed_records f
JOIN
batches b ON f.batch_id = b.id
WHERE
b.farm_id = #{farmId}
AND f.record_date >= DATE_SUB(NOW(), INTERVAL 7 DAY)
AND ABS(f.actual_amount - f.standard_amount) >
(SELECT warning_threshold FROM farm_configs WHERE id = #{farmId})
4. 部署实施全流程
4.1 开发环境搭建
- 小程序端:
bash复制# 安装开发者工具
npm install -g @vue/cli @vue/cli-service-global
# 初始化项目
vue create -p dcloudio/uni-preset-vue pig-management
- 服务端Docker部署:
dockerfile复制# Dockerfile示例
FROM openjdk:11-jre
WORKDIR /app
COPY target/pig-management-*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]
4.2 生产环境部署方案
推荐使用Nginx反向代理配置:
nginx复制server {
listen 80;
server_name yourdomain.com;
location /api/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
root /var/www/pig-management;
try_files $uri $uri/ /index.html;
}
}
5. 典型问题排查指南
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 微信登录失败 | UnionID获取失败 | 检查微信开放平台绑定状态 |
| 数据同步延迟 | WebSocket断开 | 实现心跳检测机制 |
| 图片上传失败 | 超过微信10MB限制 | 使用分片上传或先压缩 |
| 报表加载慢 | 未做分页查询 | 添加limit条件并优化SQL |
特别注意:微信小程序对HTTPS有强制要求,测试环境可使用内网穿透工具(如ngrok)生成临时域名
6. 扩展优化方向
- 物联网设备集成:通过蓝牙或WiFi连接智能称重设备、环境传感器
- 区块链溯源:将养殖关键数据上链,增强产品可信度
- AI预测模型:基于历史数据预测出栏时间和市场价格
- 微信支付对接:实现饲料、兽药等物资的在线采购
实际开发中发现,采用"小程序+Web管理后台"的混合架构最适合中小型养殖场。小程序满足日常移动办公需求,Web端则便于进行复杂的数据分析和报表导出。在数据库设计时,建议将频繁变更的数据(如每日饲喂记录)与基础信息(如猪舍资料)做物理分离,可显著提升查询性能。
