# jvs-spc **Repository Path**: software-minister/jvs-spc ## Basic Information - **Project Name**: jvs-spc - **Description**: 轻量制造业SPC质量控制系统,支持检测规则配置、Excel导入、控制图分析、异常判定与处理、过程能力分析,实现过程波动实时监控与预警,防批量不良。https://spc.bctools.cn - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: 2.4 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SPC 过程质量控制系统 本项目是一套面向制造业质量管理场景的轻量级 SPC(Statistical Process Control,统计过程控制)过程质量控制系统,旨在帮助企业对生产过程中的检测数据进行统计分析、异常识别和质量追溯。 ## 系统简介 系统一期聚焦 SPC 核心能力,支持检测规则配置、Excel 数据导入、控制图分析、异常判定、异常处理以及过程能力分析等功能。通过对过程数据进行可视化监控,系统可以帮助质量人员及时发现过程波动、趋势偏移、超控制限、超规格等问题,从而在产品批量不良发生前进行预警和干预。 ## 核心功能 ### 多种检测数据类型支持 - **单值计量型(I-MR)**:适用于连续型单值数据的监控,如单件产品的尺寸、重量等 - **分组计量型(Xbar-R/Xbar-S)**:适用于按组抽样数据的监控,如每小时/每批次抽检多个样本 - **不良率型(P)**:适用于监控产品或批次的不良率变化 - **缺陷数型(C)**:适用于监控固定单位内的缺陷数量 ### SPC 控制图支持 - **I-MR 图**:单值-移动极差控制图,用于单值数据的长期监控 - **Xbar-R 图**:均值-极差控制图,适用于子组样本量较小的场景 - **P 图**:不良率控制图,用于不合格品率的监控 - **C 图**:缺陷数控制图,用于固定样本单位缺陷数的监控 ### 检测规则与配置 - 支持配置规格限(USL/LSL) - 支持多种抽样方式:按时间分组、按批次、按序列 - 支持自定义判异规则组合 - 支持控制限的手动固化与自动计算 ### 数据导入与管理 - 支持 Excel 标准模板导入检测数据 - 自动进行数据分组和预处理 - 保留完整的数据导入历史记录 - 支持历史数据追溯 ### 异常检测与处理 - **八大判异规则**: 1. 超出控制限(1点超出3σ) 2. 连续同侧(9点同侧) 3. 趋势(6点连续递增/递减) 4. 周期性(14点交替上下) 5. A区(2/3点进入A区) 6. B区(4/5点进入B区) 7. C区(7点以上在C区) 8. 远离C区(连续3点有2点在A区外) - 异常确认、原因分析、处理措施记录 - 异常工单闭环管理 ### 过程能力分析 - 计算 Cp、Cpk、Pp、Ppk 等过程能力指标 - 支持 PPM(百万分之不良)转换 - 正态分布概率计算 ### 可视化看板 - 总览看板:产品、工序、检测项统计 - 异常处理看板:异常趋势、等级分布、触发规则分布 - 我的待处理任务 ## 技术架构 ### 技术栈 - **后端框架**:Spring Boot 2.7 / Java 17 - **数据库**:MySQL 8.0+ - **ORM 框架**:MyBatis-Plus - **API 文档**:Swagger/OpenAPI 3.0 - **构建工具**:Maven - **容器化**:Docker ### 项目结构 ``` jvs-spc/ ├── jvs-spc-common/ # 公共模块 │ ├── chart/ # 控制图计算相关 │ │ ├── impl/ # 控制图计算器实现 │ │ ├── subchart/ # 子图计算(I-MR, Xbar-R等) │ │ └── constant/ # 常量定义(控制限系数等) │ ├── collector/ # 数据采集(Excel导入) │ ├── dto/ # 数据传输对象 │ ├── entity/ # 实体类定义 │ ├── enums/ # 枚举定义 │ ├── mapper/ # MyBatis Mapper接口 │ ├── model/ # 业务模型 │ ├── rule/ # 判异规则实现 │ ├── service/ # 服务层接口及实现 │ ├── utils/ # 工具类 │ └── vo/ # 视图对象 └── jvs-spc-mgr/ # 管理端模块 ├── controller/ # REST API 控制器 ├── resources/ # 配置文件 └── SpcApplication.java # 启动类 ``` ### 核心组件设计 **控制图计算器(ControlChartCalculator)** - 采用策略模式设计,通过 `ControlChartRegistry` 注册管理 - 支持多种控制图类型的扩展 - 自动计算 UCL、CL、LCL 及异常点标记 **判异规则(AbnormalRule)** - 采用策略模式,通过 `AbnormalRuleRegistry` 注册管理 - 支持灵活配置启用哪些判异规则 - 每个规则独立实现,互不干扰 **数据导入(DataCollector)** - 支持多种数据源的扩展 - Excel 导入支持标准模板解析 - 自动处理数据分组和抽样 **抽样引擎(SamplingEngine)** - 支持按时间、按批次、按序列三种抽样方式 - 自动进行数据聚合(计算均值、极差、标准差) ## 适用场景 本系统适用于制造企业在以下场景中进行过程质量监控: 1. **连续型检测数据分析**:尺寸、重量、压力、温度等单值数据的长期监控 2. **抽样质量数据分析**:每小时、每批次、按组抽样的质量数据分析 3. **产品不良率监控**:监控生产过程的不良率变化趋势 4. **缺陷数监控**:固定单位(如每平方米、每台设备)的缺陷数监控 5. **生产过程异常预警**:实时发现过程异常,避免批量不良发生 6. **质量问题追溯与处理闭环**:完整的异常处理流程管理 7. **过程能力 Cp/Cpk 分析**:评估工序满足规格要求的能力 ## API 接口 ### 控制图管理 | 接口 | 方法 | 说明 | |------|------|------| | `/chart/generate/{inspectionItemId}` | GET | 生成控制图(含异常标记,支持时间范围筛选) | | `/chart/recalculate/limit/{inspectionItemId}` | POST | 重新计算控制限 | | `/chart/limit/fix/{inspectionItemId}` | POST | 固化控制限 | | `/chart/limit/manual-fix/{inspectionItemId}` | POST | 手动指定控制限 | ### 数据导入 | 接口 | 方法 | 说明 | |------|------|------| | `/data/import/excel/{inspectionItemId}` | POST | 导入 Excel 数据 | | `/data/import/history/list/{inspectionItemId}` | GET | 查询导入历史 | ### 异常处理 | 接口 | 方法 | 说明 | |------|------|------| | `/abnormal/page` | GET | 异常列表分页查询 | | `/abnormal/confirm` | POST | 异常确认 | | `/abnormal/analysis` | POST | 异常定位 | | `/abnormal/handle` | POST | 异常处理 | | `/abnormal/close/{abnormalRecordId}` | POST | 关闭异常工单 | ### 看板 | 接口 | 方法 | 说明 | |------|------|------| | `/dashboard/overview` | GET | 总览看板 | | `/abnormal/dashboard/stats` | GET | 异常看板-指标卡片 | | `/abnormal/dashboard/trend` | GET | 异常趋势(近7天) | ### 基础数据 | 接口 | 方法 | 说明 | |------|------|------| | `/product/tree` | GET | 获取产品-工序-检测项目树 | | `/process/list/{productId}` | GET | 根据产品ID查询工序 | | `/inspection/item/list/{processId}` | GET | 根据工序ID查询检测项目 | ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Nacos(配置中心,可选) ### 编译项目 ```bash # 克隆项目 git clone https://gitee.com/software-minister/jvs-spc.git cd jvs-spc # 编译 mvn clean install -DskipTests ``` ### 配置文件 配置 `jvs-spc-mgr/src/main/resources/bootstrap.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/jvs_spc?useUnicode=true&characterEncoding=utf8 username: root password: your_password cloud: nacos: config: server-addr: jvs-nacos:8848 namespace: jvs discovery: server-addr: jvs-nacos:8848 namespace: jvs ``` ### 数据库初始化 执行 `sql/init.sql` 初始化数据库表结构。 ### 启动服务 ```bash cd jvs-spc-mgr java -jar target/jvs-spc-mgr.jar ``` 服务默认端口为 **8080**,API 文档访问地址:http://localhost:8080/swagger-ui.html ### Docker 部署 ```bash docker build -t jvs-spc-mgr:latest ./jvs-spc-mgr docker run -d -p 8080:8080 --name jvs-spc jvs-spc-mgr:latest ``` ## 使用指南 ### 1. 创建产品-工序-检测项 1. 在产品管理中创建产品 2. 在工序管理中创建工序并关联产品 3. 在检测项目管理中创建检测项,配置: - 数据类型(单值/分组/不良率/缺陷数) - 规格限(USL/LSL/目标值) - 抽样方式(时间/批次/序列) - 判异规则组合 ### 2. 导入数据 1. 下载对应数据类型的 Excel 模板 2. 按照模板格式整理检测数据 3. 通过数据导入接口上传 Excel 文件 4. 系统自动进行分组、计算和异常检测 ### 3. 查看控制图 1. 进入控制图页面 2. 选择检测项 3. 查看自动生成的控制图 4. 可按时间范围筛选数据 5. 查看异常点标记和判异规则 ### 4. 异常处理流程 1. **发现异常**:控制图自动标记异常点 2. **确认异常**:质量人员进行确认 3. **定位分析**:分析异常原因和影响范围 4. **制定措施**:制定纠正和预防措施 5. **执行处理**:执行措施并记录 6. **关闭工单**:验证效果后关闭异常 ## 项目目标 本项目以简洁、易理解、易扩展的方式实现 SPC 的核心业务流程,降低企业使用 SPC 工具的门槛。系统不追求一开始覆盖所有复杂质量管理场景,而是优先把"检测规则、数据导入、控制图、异常判断、异常处理、能力分析"这些基础能力做好,为后续扩展设备采集、MQTT/API 接入、更多控制图、质量报表和智能预警打下基础。 ## 开源初衷 我们将该系统开源,希望与更多从事制造业数字化、质量管理、工业软件开发的朋友一起交流和完善 SPC 系统的设计与实现。欢迎大家提出 Issue、提交 PR,或基于本项目进行二次开发和业务适配。 本项目适合用于: - 学习 SPC 系统设计原理 - 质量管理数字化实践 - 企业内部质量管理系统的一期基础版本 ![输入图片说明](https://foruda.gitee.com/images/1784949287377494612/e19fbeb3_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949306380907690/a703c2ec_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949314125189564/0d9b3b50_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949321738330002/f65585cf_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949341849893199/edc1f354_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949359921610561/3ed93c01_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949369952769375/18b95bf1_10006021.png "屏幕截图") ![输入图片说明](https://foruda.gitee.com/images/1784949379121907529/b3b0bd8a_10006021.png "屏幕截图") ## 许可证 本项目采用 [Apache-2.0](LICENSE) 开源协议。 ## 贡献者 感谢所有为项目做出贡献的开发者! ## 联系方式 - 项目地址:https://gitee.com/software-minister/jvs-spc - 问题反馈:https://gitee.com/software-minister/jvs-spc/issues