OPER-003: 作业质量检查
优先级: 🟡 中 (15.0分) | 实施周期: 2-3周
客户原话
"作业质量难以量化,耕地深度、播种密度、收割损失率等指标无法准确记录,质量纠纷时缺乏客观依据。农户说质量不行,我们说已经按标准作业了,但是没有证据证明。想要个质量检查的办法,作业的时候就能记录质量数据,比如耕地深度、播种密度、收割损失率这些,有数据有真相,农户也没话说。最好能拍照留证,质量好坏一目了然。"
—— 某农机合作社理事长
客户类型需求差异
农机合作社(10-50台,本地作业)
需求程度: ⭐⭐⭐⭐⭐ 必需
核心需求:
- 质量标准简单明确
- 检查操作方便快捷
- 拍照取证自动化
- 质量报告一键生成
- 手机端即可操作
关键功能:
- 质量指标快速录入
- 自动拍照添加水印
- 质量评分自动计算
- PDF报告生成
- 历史记录查询
不需要的功能:
- 复杂的质量模型
- 多级审批流程
- 高级统计分析
农机服务站(跨区作业)
需求程度: ⭐⭐⭐⭐⭐ 必需
核心需求:
- 跨区域质量标准统一
- 离线检查(网络不好时)
- 检查数据云端存储
- 多设备数据共享
- 质量数据对比分析
关键功能:
- 离线检查
- 云端同步
- 数据导出
- 质量对比
- 多设备协同
不需要的功能:
- 内部成本核算
- 复杂的权限管理
大型农场(自有农机队)
需求程度: ⭐⭐⭐⭐ 重要
核心需求:
- 质量标准体系化管理
- 历史质量数据对比
- 质量趋势分析
- 与作业计划关联
- 质量改进追踪
关键功能:
- 质量标准库
- 数据对比分析
- 趋势图表
- 改进追踪
- 报表生成
不需要的功能:
- 对外收费
- 客户确认
农机租赁公司(租赁+作业)
需求程度: ⭐⭐⭐⭐ 重要
核心需求:
- 租赁方和承租方双确认
- 质量数据作为结算依据
- 质量记录防篡改
- 纠纷时可追溯
- 质量数据导出
关键功能:
- 双方确认
- 数据防篡改
- 电子签名
- 数据导出
- 纠纷追溯
业务场景描述
典型场景
场景1: 耕地质量检查
- 作业完成后,质检员到达地块
- 使用耕深测量仪在多个点测量耕深
- 拍摄地表平整度照片
- 评估土壤翻转效果
- 系统自动计算质量评分
- 生成质量检查报告
场景2: 播种质量检查
- 播种完成后,质检员随机选点
- 使用标准框架测量播种密度
- 挖取样本测量播种深度
- 拍摄播种效果照片
- 记录种子覆土情况
- 评估行距和株距均匀性
场景3: 收割质量检查
- 收割后,质检员在地块随机取样
- 收集并称重遗漏籽粒
- 计算损失率
- 检查籽粒破损情况
- 评估杂质含量
- 生成质量检查报告
场景4: 质量问题整改
- 质检发现耕深不足
- 系统自动标记不合格项
- 通知机手进行整改
- 整改完成后复检
- 复检合格后更新记录
场景5: 质量数据分析
- 管理员查看月度质量报表
- 分析各机手质量评分
- 识别常见质量问题
- 制定改进措施
- 跟踪改进效果
核心痛点
- 质量标准不统一 - 不同作业类型缺乏明确的质量标准
- 检查过程不规范 - 质量检查流程随意,缺乏系统化
- 数据难以量化 - 耕深、密度等指标无法精确测量
- 证据不充分 - 质量问题缺乏现场照片和数据支撑
- 报告生成困难 - 质量检查结果难以形成标准化报告
业务流程图
当前人工流程
痛点:
- 目测判断主观性强,缺乏客观依据
- 简单测量样本少,代表性不足
- 手工记录容易出错或遗漏
- 照片无水印,事后难以追溯
- 质量数据无法统计分析
系统化流程
优势:
- 质检流程标准化,减少人为因素
- 数据自动采集,准确可靠
- 照片自动水印,防止篡改
- 评分自动计算,公平公正
- 数据完整归档,可追溯分析
用户故事
故事1: 质检员快速完成质量检查
作为 质检员 我想要 使用手机快速完成质量检查 以便 提高检查效率,减少等待时间
验收标准:
- 扫描地块二维码启动质检
- 选择对应的质检模板(耕地/播种/收割)
- 按模板提示逐项检查和录入数据
- 测量工具数据自动同步到系统
- 拍照自动添加时间、位置、质检员水印
- 系统自动计算质量评分
- 一键生成质量报告
- 整个流程15-20分钟完成
故事2: 机手查看质量检查结果
作为 机手 我想要 实时查看质量检查结果 以便 及时了解作业质量,发现问题及时改进
验收标准:
- 质检完成后立即收到通知
- 查看详细的质量指标和评分
- 查看现场照片
- 对不合格项可以申诉
- 查看历史质量记录和趋势
故事3: 农户确认质量检查报告
作为 农户 我想要 查看和确认质量检查报告 以便 了解作业质量,放心支付费用
验收标准:
- 收到质量报告推送
- 查看各项质量指标和照片
- 对质量有疑问可以提出
- 确认无误后电子签名
- 签名后报告不可修改
故事4: 管理员分析质量数据
作为 管理员 我想要 分析质量数据和趋势 以便 发现问题,制定改进措施
验收标准:
- 查看质量统计报表
- 按时间、机手、作业类型筛选
- 查看质量趋势图
- 识别常见质量问题
- 导出数据进行深度分析
故事5: 系统自动预警质量问题
作为 系统 我想要 自动识别和预警质量问题 以便 及时发现异常,避免质量事故
验收标准:
- 质检数据实时分析
- 发现不合格项自动预警
- 通知相关人员
- 记录预警历史
- 跟踪问题处理进度
数据模型
核心实体
1. 质量检查记录 (QualityInspection)
interface QualityInspection {
id: string // 检查记录ID
inspectionNo: string // 检查编号: QI-YYYYMMDD-XXXX
orderId: string // 关联订单ID
fieldId: string // 地块ID
operationType: 'plowing' | 'seeding' | 'harvesting' | 'spraying' // 作业类型
// 检查信息
standardId: string // 质量标准ID
templateId: string // 检查模板ID
inspectorId: string // 质检员ID
inspectorName: string // 质检员姓名
inspectionTime: Date // 检查时间
location: Coordinate // 检查位置
// 检查结果
indicators: QualityIndicator[] // 质量指标
photos: InspectionPhoto[] // 检查照片
totalScore: number // 总分
grade: 'excellent' | 'good' | 'qualified' | 'unqualified' // 质量等级
passStatus: 'passed' | 'failed' | 'pending' // 合格状态
failedItems: string[] // 不合格项
// 整改信息
needRectification: boolean // 是否需要整改
rectificationSuggestions?: string // 整改建议
rectificationDeadline?: Date // 整改期限
rectificationStatus?: 'pending' | 'in_progress' | 'completed' // 整改状态
// 确认信息
operatorConfirmed: boolean // 机手确认
operatorConfirmedAt?: Date // 机手确认时间
customerConfirmed: boolean // 客户确认
customerConfirmedAt?: Date // 客户确认时间
customerSignature?: string // 客户签名(Base64)
// 报告
reportId?: string // 质量报告ID
reportUrl?: string // 报告PDF URL
// 系统字段
status: 'draft' | 'completed' | 'confirmed' | 'archived'
createdAt: Date
updatedAt: Date
}2. 质量标准 (QualityStandard)
interface QualityStandard {
id: string // 标准ID
name: string // 标准名称
operationType: string // 作业类型
version: string // 版本号
// 标准内容
indicators: StandardIndicator[] // 指标定义
scoringRules: ScoringRule[] // 评分规则
passThreshold: number // 合格阈值
// 适用范围
region?: string // 适用地区
cropType?: string // 适用作物
customerId?: string // 客户定制
// 系统字段
isActive: boolean
effectiveDate: Date
expiryDate?: Date
createdAt: Date
updatedAt: Date
}
interface StandardIndicator {
code: string // 指标代码
name: string // 指标名称
unit: string // 单位
standardValue: number // 标准值
tolerance: number // 允许偏差
weight: number // 权重
measurementMethod: string // 测量方法
required: boolean // 是否必检
}
interface ScoringRule {
indicatorCode: string
ranges: ScoreRange[]
}
interface ScoreRange {
min: number
max: number
score: number
description: string
}3. 质量指标 (QualityIndicator)
interface QualityIndicator {
code: string // 指标代码
name: string // 指标名称
category: 'depth' | 'density' | 'uniformity' | 'loss_rate' | 'quality' // 指标类别
// 测量值
measuredValue: number // 测量值
unit: string // 单位
standardValue: number // 标准值
deviation: number // 偏差
// 采样信息
samplePoints: SamplePoint[] // 采样点
sampleSize: number // 样本数量
measurementMethod: string // 测量方法
// 评分
score: number // 得分
weight: number // 权重
weightedScore: number // 加权得分
passed: boolean // 是否合格
// 备注
notes?: string // 备注
photos?: string[] // 相关照片
}
interface SamplePoint {
location: Coordinate
value: number
timestamp: Date
photo?: string
}4. 检查照片 (InspectionPhoto)
interface InspectionPhoto {
id: string
url: string // 照片URL
thumbnail: string // 缩略图
// 拍摄信息
takenAt: Date // 拍摄时间
location: Coordinate // 拍摄位置
photographer: string // 拍摄者
// 照片属性
category: 'overview' | 'detail' | 'measurement' | 'problem' // 照片类别
relatedIndicator?: string // 关联指标
description?: string // 描述
// 水印信息
watermark: {
timestamp: string
location: string
inspector: string
inspectionNo: string
}
// 元数据
fileSize: number
resolution: string
format: string
}数据关系
接口设计
1. 创建质量检查
POST /api/inspections
Request:
{
orderId: string,
fieldId: string,
operationType: string,
standardId: string,
inspectorId: string
}
Response:
{
code: 0,
message: "success",
data: {
inspectionId: string,
inspectionNo: string,
qrCode: string, // 二维码URL
template: { // 检查模板
id: string,
name: string,
indicators: StandardIndicator[]
}
}
}2. 记录质量指标
POST /api/inspections/{inspectionId}/indicators
Request:
{
code: string, // 指标代码
measuredValue: number, // 测量值
unit: string,
samplePoints: SamplePoint[],
notes?: string
}
Response:
{
code: 0,
message: "success",
data: {
indicator: {
code: string,
measuredValue: number,
standardValue: number,
deviation: number,
score: number,
passed: boolean
}
}
}3. 上传检查照片
POST /api/inspections/{inspectionId}/photos
Request: multipart/form-data
{
photo: File,
category: string,
relatedIndicator?: string,
description?: string,
location: Coordinate
}
Response:
{
code: 0,
message: "success",
data: {
photoId: string,
url: string,
thumbnail: string,
watermark: {
timestamp: string,
location: string,
inspector: string,
inspectionNo: string
}
}
}4. 完成质量检查
POST /api/inspections/{inspectionId}/complete
Request:
{
summary?: string,
needRectification: boolean,
rectificationSuggestions?: string
}
Response:
{
code: 0,
message: "success",
data: {
inspectionId: string,
status: "completed",
result: {
totalScore: number,
grade: string,
passStatus: string,
indicators: QualityIndicator[]
}
}
}5. 生成质量报告
POST /api/inspections/{inspectionId}/report
Request:
{
templateType: 'standard' | 'detailed' | 'simple',
includePhotos: boolean,
recipients: string[] // 接收人邮箱
}
Response:
{
code: 0,
message: "success",
data: {
reportId: string,
reportUrl: string, // PDF下载链接
generatedAt: Date
}
}6. 查询质量检查记录
GET /api/inspections?orderId={orderId}&startDate={startDate}&endDate={endDate}&status={status}
Response:
{
code: 0,
message: "success",
data: {
total: number,
list: [
{
inspectionId: string,
inspectionNo: string,
operationType: string,
totalScore: number,
grade: string,
passStatus: string,
inspectionTime: Date,
inspectorName: string
}
]
}
}7. 获取质量标准
GET /api/standards?operationType={operationType}®ion={region}
Response:
{
code: 0,
message: "success",
data: {
standards: [
{
id: string,
name: string,
operationType: string,
version: string,
indicators: StandardIndicator[],
passThreshold: number
}
]
}
}关键业务规则
1. 检查编号规则
- 格式:
QI-YYYYMMDD-XXXX - 示例:
QI-20240307-0001 - 每天从0001开始编号
- 检查编号全局唯一
2. 质量评分规则
- 总分100分,各指标按权重加权计算
- 优秀: 90-100分
- 良好: 80-89分
- 合格: 70-79分
- 不合格: <70分
- 任一关键指标不合格,整体判定为不合格
3. 采样规则
- 小地块(<10亩): 至少3个采样点
- 中地块(10-50亩): 至少5个采样点
- 大地块(>50亩): 每10亩增加1个采样点
- 采样点应均匀分布在地块各区域
4. 照片水印规则
- 所有照片自动添加水印
- 水印内容: 时间、位置、质检员、检查编号
- 水印不可去除或修改
- 照片压缩后上传,保留原图备份
5. 整改规则
- 轻微问题: 记录在案,下次改进
- 一般问题: 3天内整改完成
- 严重问题: 立即停工整改,复检合格后继续
- 整改完成后必须复检
6. 数据保存规则
- 检查数据保存3年
- 照片保存1年
- 质量报告永久保存
- 敏感数据加密存储
技术实现要点
1. 照片水印技术
技术方案:
- 使用 Canvas API 在照片上绘制水印
- 水印包含文字和半透明背景
- 水印位置: 照片底部居中
- 水印内容不可编辑
function addWatermark(image: File, watermarkInfo: WatermarkInfo): Promise<Blob> {
return new Promise((resolve) => {
const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
const img = new Image();
img.onload = () => {
canvas.width = img.width;
canvas.height = img.height;
// 绘制原图
ctx.drawImage(img, 0, 0);
// 绘制水印背景
ctx.fillStyle = 'rgba(0, 0, 0, 0.5)';
ctx.fillRect(0, img.height - 80, img.width, 80);
// 绘制水印文字
ctx.fillStyle = '#FFFFFF';
ctx.font = '20px Arial';
ctx.fillText(`时间: ${watermarkInfo.timestamp}`, 20, img.height - 50);
ctx.fillText(`位置: ${watermarkInfo.location}`, 20, img.height - 25);
ctx.fillText(`质检员: ${watermarkInfo.inspector}`, img.width - 200, img.height - 50);
ctx.fillText(`编号: ${watermarkInfo.inspectionNo}`, img.width - 200, img.height - 25);
canvas.toBlob(resolve, 'image/jpeg', 0.9);
};
img.src = URL.createObjectURL(image);
});
}2. 质量评分算法
算法说明:
- 各指标得分 = (1 - |偏差| / 允许偏差) × 100
- 总分 = Σ(指标得分 × 权重)
- 关键指标不合格时,总分强制<70
function calculateQualityScore(indicators: QualityIndicator[]): number {
let totalScore = 0;
let hasKeyIndicatorFailed = false;
for (const indicator of indicators) {
// 计算偏差率
const deviationRate = Math.abs(indicator.deviation) / indicator.tolerance;
// 计算指标得分
let score = 0;
if (deviationRate <= 1) {
score = (1 - deviationRate) * 100;
}
// 加权得分
indicator.score = score;
indicator.weightedScore = score * indicator.weight;
totalScore += indicator.weightedScore;
// 检查关键指标
if (indicator.required && !indicator.passed) {
hasKeyIndicatorFailed = true;
}
}
// 关键指标不合格,强制总分<70
if (hasKeyIndicatorFailed && totalScore >= 70) {
totalScore = 69;
}
return Math.round(totalScore * 100) / 100;
}3. 离线数据存储
技术方案:
- 使用 IndexedDB 存储离线数据
- 照片使用 Blob 格式存储
- 恢复网络后自动同步
// 离线存储检查数据
async function saveInspectionOffline(inspection: QualityInspection) {
const db = await openDB('quality-inspections', 1);
await db.put('inspections', {
...inspection,
syncStatus: 'pending'
});
}
// 同步离线数据
async function syncOfflineData() {
const db = await openDB('quality-inspections', 1);
const pendingInspections = await db.getAllFromIndex(
'inspections',
'syncStatus',
'pending'
);
for (const inspection of pendingInspections) {
try {
await uploadInspection(inspection);
inspection.syncStatus = 'synced';
await db.put('inspections', inspection);
} catch (error) {
console.error('同步失败:', error);
}
}
}4. PDF报告生成
技术方案:
- 后端使用 PDFKit 或 Puppeteer 生成PDF
- 报告模板使用 HTML + CSS
- 包含图表、照片、数据表格
async function generateQualityReport(inspectionId: string): Promise<string> {
const inspection = await getInspection(inspectionId);
// 渲染HTML模板
const html = renderReportTemplate(inspection);
// 使用 Puppeteer 生成PDF
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(html);
const pdfBuffer = await page.pdf({
format: 'A4',
printBackground: true
});
await browser.close();
// 上传到OSS
const pdfUrl = await uploadToOSS(pdfBuffer, `reports/${inspectionId}.pdf`);
return pdfUrl;
}客户类型需求差异
农机合作社(10-50台,本地作业)
核心诉求: 质量检查简单快捷,农户认可
功能侧重:
- 质量标准简单明确
- 检查操作方便快捷
- 拍照取证自动化
- 质量报告一键生成
- 手机端即可操作
典型场景:
- 作业完成后,质检员用手机扫码启动质检
- 按模板逐项检查,测量数据自动录入
- 拍照自动添加水印
- 系统自动计算评分
- 生成PDF报告,农户签字确认
- 整个流程15-20分钟完成
不需要的功能:
- 复杂的质量模型
- 多级审批流程
- 高级统计分析
农机服务站(跨区作业)
核心诉求: 跨区域质量标准统一,数据云端共享
功能侧重:
- 跨区域质量标准统一
- 离线检查(网络不好时)
- 检查数据云端存储
- 多设备数据共享
- 质量数据对比分析
典型场景:
- 跨区作业,到达陌生地块
- 网络信号不好,使用离线检查
- 检查数据保存在本地
- 恢复网络后,自动上传到云端
- 其他设备可以查看检查记录
- 对比不同地区的质量数据
特殊需求:
- 支持多省份质量标准
- 检查数据按区域分类管理
- 跨区域质量数据对比分析
大型农场(自有农机队)
核心诉求: 质量标准体系化,数据分析深度化
功能侧重:
- 质量标准体系化管理
- 历史质量数据对比
- 质量趋势分析
- 与作业计划关联
- 质量改进追踪
典型场景:
- 农场有100多块地,建立质量档案
- 每块地有质量标准和历史数据
- 每次作业后进行质量检查
- 对比历史数据,分析质量趋势
- 识别质量问题,制定改进措施
- 跟踪改进效果
特殊需求:
- 质量标准库管理
- 质量数据深度分析
- 质量改进闭环管理
- 与ERP系统集成
农机租赁公司(租赁+作业)
核心诉求: 质量数据防篡改,纠纷可追溯
功能侧重:
- 租赁方和承租方双确认
- 质量数据作为结算依据
- 质量记录防篡改
- 纠纷时可追溯
- 质量数据导出
典型场景:
- 承租方租用设备作业
- 作业完成后,质检员进行质量检查
- 租赁方远程查看检查结果
- 双方在线确认质量数据
- 质量数据作为结算依据
- 发生纠纷时,调取检查记录作为证据
特殊需求:
- 质量数据区块链存证
- 双方电子签名
- 质量数据不可修改
- 纠纷仲裁证据导出
系统交互
上游系统
- 订单管理系统: 获取作业订单信息,关联质检数据
- 地块管理系统: 获取地块信息,质量标准
- 人员管理系统: 获取质检员信息,权限验证
下游系统
- 结算系统: 提供质量数据,作为结算依据
- 绩效系统: 提供质量评分,用于绩效考核
- 数据分析系统: 提供质量数据,支撑业务分析
集成方式
实施建议
第一阶段: 标准建立(1周)
目标: 建立质量标准体系
任务:
- [ ] 梳理作业类型和质量指标
- [ ] 制定各作业类型的质量标准
- [ ] 设计质量检查模板
- [ ] 准备示例照片和说明
交付物:
- 质量标准文档
- 检查模板配置
- 操作手册
第二阶段: 系统部署(1-2周)
目标: 部署质量检查系统
任务:
- [ ] 系统配置和数据导入
- [ ] 质检员培训
- [ ] 测量工具集成
- [ ] 试运行和优化
交付物:
- 可用的质量检查系统
- 培训材料
- 操作视频
第三阶段: 全面推广(持续)
目标: 全面推广质量检查
任务:
- [ ] 逐步推广到所有作业
- [ ] 收集用户反馈
- [ ] 优化流程和标准
- [ ] 持续改进
交付物:
- 推广计划
- 效果评估报告
- 改进措施
成功案例
案例1: 某大型农场质量管理升级
实施前:
- 质量纠纷频发,客户投诉多
- 缺乏客观的质量评价体系
- 质量数据无法统计分析
实施后:
- 质量合格率从75%提升到92%
- 客户投诉减少60%
- 质量纠纷处理时间缩短80%
- 优质作业溢价提高15%
关键数据:
- 质量检查覆盖率: 100%
- 平均检查时间: 18分钟
- 客户满意度: 从65分提升到88分
- 年度质量成本降低: 30万元
案例2: 某农机合作社质量提升项目
实施前:
- 作业质量参差不齐
- 优秀机手和普通机手收入差距小
- 缺乏质量激励机制
实施后:
- 平均质量评分从82分提升到89分
- 优秀机手收入提高20%
- 客户满意度提升25%
- 回头客比例提高40%
关键数据:
- 质量优秀率: 从15%提升到35%
- 质量不合格率: 从12%降到3%
- 机手质量意识: 显著提升
- 合作社品牌影响力: 增强
案例3: 某农机服务平台质量体系建设
实施前:
- 质量标准不统一
- 质量纠纷处理成本高
- 平台信誉度不高
实施后:
- 质量标准覆盖率100%
- 质量检查完成率95%
- 质量纠纷减少70%
- 平台信誉度显著提升
关键数据:
- 质量检查数量: 月均5000次
- 质量数据准确率: 98%
- 纠纷处理时间: 从3天缩短到0.5天
- 平台交易量: 增长50%
相关场景
- OPER-001 订单管理: 订单创建后安排质检
- OPER-002 面积测量: 面积确认后进行质检
- OPER-004 作业记录: 质检结果影响作业记录
- BILL-001 费用计算: 质检结果作为结算依据
- MACH-001 设备档案: 质量问题可能源于设备故障
常见问题
Q1: 质量检查会不会增加很多工作量?
A: 使用数字化工具后,检查效率大幅提高。一个地块的检查通常只需15-20分钟,而且数据自动汇总,报告自动生成,总体工作量是减少的。
Q2: 质量标准太严格,很难达到怎么办?
A: 质量标准应该科学合理,既要保证质量,也要考虑可操作性。可以设置试运行期,根据实际情况调整标准。同时要加强培训,提高作业水平。
Q3: 质检员和机手有利益冲突怎么办?
A: 建议质检员独立于作业团队,由第三方或专门的质检部门负责。同时建立抽查复核机制,确保检查公正。
Q4: 测量设备成本高怎么办?
A: 可以从关键指标开始,逐步配齐设备。很多指标可以用手机APP配合简单工具完成测量。也可以考虑设备租赁或共享。
Q5: 离线环境下如何进行质量检查?
A: 系统支持离线操作,检查数据先保存在本地,有网络后自动同步。关键是要确保数据的完整性和时间戳的准确性。
本场景文档版本: v2.0 | 最后更新: 2024-03-07