SOHE 智能餐余垃圾置管系统 --- 完整流程与功能说明
SOHE智能餐余垃圾置管系统(以下简称"系统")业务流程、功能模块、数据模型、接口示例、硬件集成与实现。
一、系统目标与范围
目标:对餐饮单位产生的餐余垃圾进行全流程智能化监管与处置:实时采集产生量与称重数据、上传处置量与入厂/出厂重量、设备运行状态监控、报警与审计日志,支持监管部门、运营方和餐饮单位协同管理与追溯。
范围:
- 数据采集:称重设备(进厂/出厂/中转)、时间、地点、单位信息
- 设备监控:状态、通讯、传感器告警
- 报警管理:超标、异常重量、设备离线、作弊疑似
- 日志审计:用户操作、自动事件、修正记录
- 报表与统计:日/周/月/年、单位排行、合规性检测
- 移动端/PC端:餐饮端上报、司机/称重员操作、监管端审批
- 接入硬件:电子秤、门禁、称重摄像头、物联网网关
- 可扩展:路线优化、预测、可视化地图、区块链上链
二、系统主要角色
- 餐饮单位管理员:登记单位信息,上报产垃圾/预约入厂。
- 称重员 / 司机:现场称重、拍照、确认入厂/出厂、上传处置量。
- 运营调度人员:调度车辆、处理异常报警。
- 设备维护人员:设备巡检、故障处理。
- 监管人员(政府/环保):查看报表、审计日志、监管报警。
- 系统管理员:用户权限管理、系统配置、备份。
三、高层业务流程(步骤化)
-
餐饮单位注册与资料维护
- 单位信息(名称、地址、经营类型、负责人、联系人、证照信息)录入并审核。
-
产生记录(自动/手工)
- 餐饮单位通过移动端或接口提交"产生记录":产生时间、估算重量(或自动称重)、产生点ID(厨房/门口)、照片(可选)、垃圾类型(餐余/厨余/油渣)。
- 系统生成产生记录ID,进入待收运状态。
-
预约/调度收运
- 餐饮单位预约上门收运或运营方安排路线。
- 调度系统分配车辆与称重点。
-
上门收运 --- 现场称重(进厂重量)
- 车辆到达称重点/厂区,电子地磅自动读取"进厂重量"(毛重),拍照(车牌、车厢)、称重终端上传数据:产生记录ID、进厂时间、进厂重量、称重设备ID、操作员ID。
- 系统关联单据并校验(照片与车牌匹配,重量范围合理性校验)。
-
处置/中转处理
- 在处理中间环节记录处理明细(例如转堆、堆肥量、厌氧消化量),可分批记录"处置量"。
- 设备(破碎机/烘干/发酵设备)状态与运行日志同步上传。
-
出厂称重(回皮重 / 去皮重)
- 出厂时称重获取回皮重(空车重量)或称重后得到净处理量(毛重 - 皮重)。
- 系统计算处理量并记录处置结论(已处理/转运/异常)。
-
数据校验与计量确认
- 系统依据规则自动校验(与预约重量、历史数据比较、同车多次入厂检测)。
- 若校验失败,生成报警/待人工复核。
-
报警处理
- 对超限、异常波动、设备离线、时序错乱等触发报警,支持短信/微信/邮件/推送通知,设定SLA与处理流程。
-
审计与日志
- 所有用户操作、系统自动修正、手工核销均产生审计日志并不可篡改保存(可接区块链上链或数据库只追加策略)。
-
报表与分析
- 生成日/周/月报表、合规报告、单位排行、设备利用率、异常统计、地图可视化。
四、功能模块一览(细分)
下面按模块详细列出功能点(可直接用于开发任务拆解):
1. 用户与权限模块
- 用户/角色管理(RBAC:监管、运营、餐饮、称重员、维护)
- 单位(餐饮)管理与资质审核
- 操作日志/审计查看
2. 设备与物联模块
- 设备注册(秤、摄像头、网关、传感器)
- 设备心跳/状态监控(在线/离线、故障码)
- 固件版本管理、远程重启/维护指令下发
- 支持协议:MQTT、HTTP、Modbus、串口转网关
3. 数据采集模块
- 自动称重采集(串口/网关->MQTT->服务器)
- 摄像头抓拍(车牌、称重过程)
- 移动端手工上传(产生记录、照片、备注)
- GPS/位置点位关联
4. 称重与计量模块
- 进厂/出厂称重流程(毛重/皮重/净重)
- 称重单据生成、打印(二维码/条码)
- 多称重点合并、分批计量
- 实时数据校验(波动、超标、逻辑冲突)
5. 报警与通知模块
- 报警策略编辑(阈值、条件组合)
- 报警分级(紧急/高/中/低)
- 通知渠道:短信、邮件、企业微信、APP推送
- 报警处理工单(指派、回复、关闭、二次上报)
6. 流程与审批模块
- 入厂单确认、处置单审批
- 人工复核与凭证上传(图片、视频)
- 异常申诉/复核历史记录
7. 报表与可视化
- 实时看板(单位、设备、报警)
- 地图视图(热力图、路由)
- 导出(CSV/Excel/PDF)
- 定时报表/邮件分发
8. 审计与合规
- 操作日志(who/when/what)
- 数据防篡改(只追加、备份、哈希校验)
- 合规报告模板(交给监管部门用)
9. 系统管理与监控
- 备份/恢复、性能监控、告警上报
- API 密钥管理、访问频率限制(Rate Limiting)
- 多租户支持(如果需要)
10. 扩展智能功能(可选)
- 异常检测的 ML 模型(识别作弊、虚报)
- 运输路线优化(基于地图服务)
- 处理量预测(单位/节假日动态)
- 区块链上链(不可篡改审计)------可选
五、关键业务规则
- 毛重与皮重时差不得超过 24 小时;超时需人工复核。
- 单车同日累计净处理量超出历史平均 3 倍触发警报。
- 设备离线超过 15 分钟触发离线告警;离线超过 24 小时自动生成维护单。
- 相同产生记录多次计量时,系统按"首次入厂"为准,后续需人工核准。
- 用户操作的关键字段修改需记录原值与修改原因。
六、数据模型
下面给出核心表结构,供开发直接使用或作参考(简化版)。
sql
-- 餐饮单位
CREATE TABLE restaurant_unit (
unit_id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(200) NOT NULL,
license_no VARCHAR(100),
contact_name VARCHAR(100),
contact_phone VARCHAR(50),
address VARCHAR(500),
category VARCHAR(50), -- 餐饮类型
status TINYINT DEFAULT 1, -- 1:正常 0:停用
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 产生记录(餐余垃圾产生)
CREATE TABLE generation_record (
gen_id BIGINT PRIMARY KEY AUTO_INCREMENT,
unit_id BIGINT NOT NULL,
gen_time DATETIME NOT NULL,
estimate_weight DECIMAL(10,2), -- 估算
gen_type VARCHAR(50), -- 餐余/厨余/油脂等
photo_url VARCHAR(1000),
status VARCHAR(50) DEFAULT '待收运', -- 状态
remark TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY(unit_id) REFERENCES restaurant_unit(unit_id)
);
-- 称重单(入厂/出厂)
CREATE TABLE weigh_record (
weigh_id BIGINT PRIMARY KEY AUTO_INCREMENT,
gen_id BIGINT, -- 关联产生记录,可为空
vehicle_no VARCHAR(50),
operator_id BIGINT,
device_id BIGINT,
weigh_type VARCHAR(10), -- 'IN' or 'OUT'
weigh_time DATETIME NOT NULL,
weight DECIMAL(10,2) NOT NULL,
photo_url VARCHAR(1000),
gps VARCHAR(100), -- "lat,lng"
source VARCHAR(50) DEFAULT 'device',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY(gen_id) REFERENCES generation_record(gen_id)
);
-- 处置记录(处理量)
CREATE TABLE disposal_record (
disposal_id BIGINT PRIMARY KEY AUTO_INCREMENT,
weigh_in_id BIGINT, -- 入厂称重记录
weigh_out_id BIGINT, -- 出厂称重记录,计算净量
net_weight DECIMAL(10,2),
process_type VARCHAR(100),
processed_at DATETIME,
operator_id BIGINT,
remark TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 报警表
CREATE TABLE alarm (
alarm_id BIGINT PRIMARY KEY AUTO_INCREMENT,
alarm_type VARCHAR(100),
level VARCHAR(20),
related_id BIGINT, -- 可关联 weigh_id / device_id / gen_id
message TEXT,
status VARCHAR(20) DEFAULT '未处理',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
handled_at DATETIME,
handler_id BIGINT
);
-- 设备表
CREATE TABLE device (
device_id BIGINT PRIMARY KEY AUTO_INCREMENT,
device_sn VARCHAR(100) UNIQUE,
type VARCHAR(50), -- scale/camera/gateway
location VARCHAR(200),
status VARCHAR(20) DEFAULT 'online',
last_heartbeat DATETIME,
meta JSON,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 操作日志
CREATE TABLE operation_log (
log_id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT,
action VARCHAR(200),
target_table VARCHAR(100),
target_id BIGINT,
before_data JSON,
after_data JSON,
ip VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
七、常用 API 设计示例
示例仅列出关键端点与请求/响应示例。
- 餐饮单位注册
POST /api/units
json
{
"name":"某某饭店",
"license_no":"ABC123",
"contact_name":"张三",
"contact_phone":"13800138000",
"address":"某市某区"
}
- 提交产生记录
POST /api/generation
json
{
"unit_id": 1001,
"gen_time": "2025-12-14T11:30:00Z",
"estimate_weight": 35.5,
"gen_type": "餐余",
"photo_url": "https://..."
}
- 设备上报称重(设备通过MQTT/HTTP网关推送)
POST /api/weigh
json
{
"device_sn":"SCALE-0001",
"weigh_type":"IN",
"weigh_time":"2025-12-14T12:05:00Z",
"weight": 1250.50,
"vehicle_no":"晋A12345",
"photo_url":"https://...",
"gen_id": 2012
}
- 查询警报
GET /api/alarms?status=未处理&level=紧急
- 人工复核/处理报警
POST /api/alarms/{alarm_id}/handle
json
{
"handler_id": 3001,
"action":"已确认,安排复核",
"result":"待排查"
}
八、硬件集成与通信设计
硬件构成
- 电子地磅(称重):支持RS232输出称重数据
- 工业相机/车牌识别相机:用于捕捉车辆与称重过程
- 物联网网关:将串口/设备数据转为MQTT/HTTP推送到云端
- 门禁/道闸(可选):控制车辆进出,并触发称重流程
- 移动端设备(Android/IOS):手工上报、扫码、审批
通信协议与链路
- 称重设备 -> 网关:串口(RS232)或Modbus
- 网关 -> 后端:MQTT或HTTPS(REST)
- 摄像头 -> 后端:RTSP + 定时抓图上传;或通过网关抓图并上传
- 移动端 -> 后端:HTTPS + JWT 或 OAuth2
实时性与可靠性
- 称重数据优先级高,建议网关本地缓存(持久化)并重试机制。
- 心跳机制:设备每 N 秒上报心跳,后台统计并触发离线报警。
- 图片/视频较大,采用分片上传或先上传到对象存储(如 S3),再把 URL 写入主表。
九、报警策略与处理流程
常见报警类型
- 设备离线(心跳超时)
- 异常重量(与预约或历史明显不符)
- 重复计量/多次入厂(同车连续入厂异常)
- 超限/超出许可单位日处理量
- 图片/视频缺失或车牌识别不一致
处理流程
- 系统触发报警并生成报警单。
- 自动通知相应责任人(短信/微信/APP)。
- 责任人确认并指派工单(维修、复核、行政处罚等)。
- 记录处理结果并归档为审计文本。
- 必要时触发二次抽检或监管复核。
十、前端界面/移动端页面
PC/管理端:
- 登录/权限管理
- 实时仪表盘(今日产生总量、待处理、设备在线率、报警)
- 地图视图(单位/车辆/设备分布)
- 单位管理/资质审核
- 称重记录管理(筛选/复核)
- 报表导出/定时任务
- 设备管理/固件管理
移动端(餐饮端):
- 单位信息与资质查看
- 提交产生记录(拍照、重量、备注)
- 查看预约与收运状态
- 报警与处理历史
移动端(称重员/司机):
- 当日任务(入厂/出厂)
- 扫码/拍照上传称重单据
- GPS 打点与签到
十一、安全与合规
- 数据传输使用 TLS(HTTPS/MQTTs)
- 鉴权:OAuth2/JWT,角色权限控制(RBAC)
- 日志不可抵赖性:关键数据保存历史版本,操作日志不可删除
- 数据保留策略:根据法规设置(例如 3 年或 5 年),并提供导出功能
- 隐私保护:对人员信息/电话号码做访问控制与脱敏展示
十二、部署与运维建议
- 后端:Spring Boot(微服务或单体根据规模),容器化(Docker + Kubernetes)
- 数据库:MySQL/Postgres(主从),时序/日志用 ElasticSearch(可选)
- 消息中间件:Kafka/RabbitMQ(高并发)或 MQTT Broker(EMQX)用于设备数据
- 对象存储:MinIO / S3 用于存放照片/视频
- 监控:Prometheus + Grafana;日志集中(ELK)
- 备份/恢复:定时备份 DB & 对象存储,演练恢复
十三、测试与验收项
- 功能测试:产生记录上报、进/出厂称重、处置记录、报警生成与处理。
- 设备兼容性测试:与典型电子秤/网关/摄像头的连通性测试。
- 性能测试:并发称重上报 1000TPS(依据规模设定),报表导出压力测试。
- 容错测试:网关/设备断连重连、重复数据去重。
- 安全测试:渗透测试、数据泄露防护、认证授权测试。
- 验收标准:准确率 > 99%(计量)、设备在线率 > 95%(可定制)。
十四、扩展功能建议(优先级可调整)
- 地图/路线优化调度(中):提升收运效率,节省油耗。
- 异常识别 ML(中):训练模型识别虚报/作弊行为。
- 接口对接监管平台(高):支持监管部门接入 API。
- 区块链审计上链(低):增加不可篡改性(若监管要求)。
- 微信小程序/企业微信接入(高):便于餐饮单位与监管通知。
十五、示例场景流程(具体步骤示例)
- 餐饮单位 A 在 2025-12-15 08:00 上传产生记录:估重 18 kg(照片附带)。
- 调度员在 2025-12-15 09:00 分配车辆 V01 前往收运。
- 车辆到厂,地磅自动读取毛重 1230 kg(weigh_in),拍照保存。
- 处理完毕后,出厂称重回皮重 1010 kg(weigh_out),系统计算净处理量 220 kg。
- 系统与产生记录核对,确认净处理量匹配;若不匹配(比如超出 3 倍),触发"异常重量"报警,自动抄送调度员与监管员。
- 调度员在线上提交复核申请,维护人员审查图片与称重曲线后关闭报警并记录处理决议。
十六、开发技术栈建议
- 后端:Java + Spring Boot / Spring Cloud(或 Node.js + NestJS)
- 数据库:MySQL + Redis(缓存)+ ElasticSearch(日志/搜索)
- 消息/设备:EMQX(MQTT)或 Kafka
- 前端:Vue.js(管理端),WeChat 小程序
- 存储:MinIO
- 容器/部署:Docker
- CI/CD: GitHub
十七、交付物
- 需求规格说明书(含流程图、用例)
- 数据库 ER 图与 SQL 建表脚本
- 后端 API 文档(OpenAPI/Swagger)
- 前端原型 + 页面设计
- 设备接入说明(协议、样例)
- 测试用例与验收标准
- 部署手册与运维指南