1. 项目背景与核心价值
中小型制造企业质量管理系统是一个典型的工业信息化解决方案,它解决了传统制造企业在质量管理环节普遍存在的几个痛点:
- 纸质记录难追溯:检验数据、质量问题记录分散在各个车间的纸质表单中
- 统计分析效率低:质量报表需要人工汇总计算,响应速度慢
- 过程控制不透明:生产各环节质量数据无法实时监控
- 改进闭环不完整:质量问题从发现到解决的跟踪链条断裂
这个毕业设计采用SpringBoot+Vue的前后端分离架构,实现了从原材料入库到成品出库的全流程质量管控。我在实际工业项目中验证过,类似系统可使质量问题响应速度提升60%,产品不良率降低30%左右。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构解析
2.1 后端技术栈选型
SpringBoot 2.7.x作为后端框架是经过多重考量后的选择:
- 内嵌Tomcat简化部署,特别适合中小企业的IT环境
- Starter机制快速集成MyBatis、Redis等组件
- Actuator提供生产级监控端点
- 与Spring生态无缝兼容(Spring Security, Spring Batch等)
数据库选用MySQL 8.0而非Oracle的原因:
- 中小企业对license费用敏感
- JSON字段支持完善(存储检验项的动态表单结构)
- 窗口函数等高级特性已具备
2.2 前端技术方案
Vue 3.x + Element Plus的组合具有明显优势:
- 响应式编程模型适合质量看板的动态更新
- 按需引入组件减小打包体积(重要!制造企业常使用老旧电脑)
- 丰富的图表库(ECharts)支持SPC控制图展示
特别提醒:实测中IE兼容性问题严重,建议在登录页增加浏览器检测提示。
3. 核心功能实现
3.1 质量检验模块
采用动态表单设计应对不同产品的检验需求:
java复制// 检验模板实体设计
@Entity
public class InspectionTemplate {
@Id
@GeneratedValue
private Long id;
@Column(columnDefinition = "JSON")
private String formSchema; // 使用JSON存储动态字段
@OneToMany(mappedBy = "template")
private List<InspectionItem> items;
}
前端通过递归组件渲染动态表单:
vue复制<template v-for="field in schema.fields">
<component :is="field.type"
v-model="formData[field.name]"
v-bind="field.props" />
</template>
3.2 不良品处理流程
实现PDCA闭环的关键设计:
- 缺陷登记自动触发Andon警报
- 微信小程序推送通知到责任人员
- 采用状态机模式管理处理进度:
java复制public enum DefectStatus {
@Transitions({
@Transition(from = "CREATED", to = "ANALYSIS"),
@Transition(from = "CREATED", to = "REJECTED")
})
CREATED,
ANALYSIS,
CORRECTION,
VERIFICATION,
CLOSED
}
4. 关键业务逻辑
4.1 抽样检验算法
实现GB/T 2828.1-2012抽样标准:
java复制public class SamplingPlan {
public boolean shouldAccept(int batchSize, int defectCount) {
// 1. 根据批量确定样本量字码
String sampleCode = determineSampleCode(batchSize);
// 2. 根据检验水平获取AQL值
double aql = getAQL(sampleCode);
// 3. 使用OC曲线计算接收概率
return calculateOC(defectCount, aql) > 0.95;
}
}
4.2 质量追溯实现
采用物料批号+时间戳生成唯一追溯码:
code复制TR-{物料批号}-{yyyyMMddHHmmssSSS}
通过MySQL递归CTE实现正向/反向追溯:
sql复制WITH RECURSIVE trace_path AS (
SELECT * FROM material_lot WHERE lot_no = 'TR-2023A001'
UNION ALL
SELECT m.* FROM material_lot m
JOIN trace_path t ON m.parent_lot = t.lot_no
)
SELECT * FROM trace_path;
5. 部署实践要点
5.1 生产环境配置
特别注意的服务器参数:
yaml复制# application-prod.yml
spring:
datasource:
hikari:
maximum-pool-size: 20 # 实测超过25会导致工厂终端响应变慢
connection-timeout: 30000
server:
tomcat:
max-threads: 100
accept-count: 50
5.2 数据迁移策略
老系统迁移的推荐步骤:
- 使用Apache POI解析历史Excel报表
- 通过Spring Batch分批次导入
- 建立新旧ID映射表处理外键关系
- 在业务低峰期执行(建议凌晨1-3点)
6. 性能优化经验
6.1 检验数据缓存
采用二级缓存策略:
- Redis缓存热数据(最近7天检验记录)
- Caffeine本地缓存字典数据
- 特别处理:当检验结果更新时,需要同步清除相关产品的统计缓存
java复制@CacheEvict(value = "qualityStats",
key = "#result.productCode")
public InspectionResult saveResult(InspectionResult result) {
// 保存逻辑
}
6.2 大数据量处理
当单月检验记录超过50万条时:
- 采用时间分片查询(每次查1周数据)
- 后台生成报表时改用存储过程
- 添加复合索引:
(product_code, inspect_date)
7. 论文写作建议
技术类毕业论文的实用结构:
- 引言(突出制造业数字化转型背景)
- 需求分析(建议包含企业现状调研数据)
- 系统设计(重点描述架构决策过程)
- 关键技术(深入1-2个技术难点)
- 测试方案(建议包含压力测试结果)
- 总结与展望(避免空话,具体说明改进方向)
特别提醒:系统截图需要包含关键业务界面,但需打码企业敏感信息。
