# quickFactory **Repository Path**: factoryopen/quickfactory ## Basic Information - **Project Name**: quickFactory - **Description**: 经典系统一体化的中小工厂生产运作平台。贯通ERP、MES、PLM的主要能力,已交付验证。实用性强,适合0.5-5亿产值离散制造工厂。略有业务深度、业务柔性、小组织灵活性,Ruoyi Java技术体系。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: http://www.factoryopen.net - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-04 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # QuickFactory 中小工厂智造一体化平台 [![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Java](https://img.shields.io/badge/JDK-1.8%2B-orange.svg)](https://www.oracle.com/java/) [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.5.15-brightgreen.svg)](https://spring.io/projects/spring-boot) [![Vue](https://img.shields.io/badge/Vue-2.6.12-green.svg)](https://vuejs.org/) [![MySQL](https://img.shields.io/badge/MySQL-5.6%2B-lightgrey.svg)](https://www.mysql.com/) [![Element UI](https://img.shields.io/badge/Element%20UI-2.15.14-green.svg)](https://element.eleme.io/) [![ECharts](https://img.shields.io/badge/ECharts-5.4.0-orange.svg)](https://echarts.apache.org/) [![Redis](https://img.shields.io/badge/Redis-3.0%2B-red.svg)](https://redis.io/) [![Maven](https://img.shields.io/badge/Maven-3.3%2B-C71A36.svg)](https://maven.apache.org/) [![Node](https://img.shields.io/badge/Node-17%2B-339933.svg)](https://nodejs.org/) --- > **版本建议**:当前仓库为 **QuickFactory 2.x.x**,属于历史版本的**保留性维护**,以稳定为先。面向未来,建议使用 **3.x.x(QuickFactory-AI)** 版本;如需 2.x.x 的功能与 API 说明,继续见下文。 ## 项目介绍 QuickFactory 是一套面向**中小型离散制造工厂**的智造一体化生产运作平台,贯通 ERP / MES / PLM 的主要能力,兼含简易商机管理和绿色工厂管理功能,属于广义 MOM(制造运营管理)系统范畴。 系统基于 RuoYi-Vue 分离版(v3.8.7)深度定制开发,历经多次大规模重构迭代,已在真实工厂交付验证。系统在业务深度、生产柔性与组织灵活性之间取得平衡,适合 **0.5~5 亿产值**的中小型离散制造工厂直接使用,5~8 亿产值工厂可斟酌选用;除商机与绿色工厂相关功能外,其余功能均按真实业务场景精心设计。 ### 开发目标 1. 为中小工厂提供一套具有六个特点的生产运作平台源码:**迭代自主可控、能力总体凑齐、功能易于理解、操作简单明了、申报拿来即用、绿色工厂挨靠** 2. 充分响应地市级"智能工厂申报"所需的能力证明(完整证明需增加非开源模块"2.5D 车间数字孪生"),较多响应地市级"绿色工厂申报"所需的能力证明 ### 核心价值 | 维度 | 描述 | |------|------| | **系统一体化** | 商机→订单→计划→制造→仓库→采购→工艺→质量→设备,同一套体系结构、数据库、功能流程 | | **流程全覆盖** | 1 条主流程 + 3 条支流程(直发/转包/自制),完整覆盖离散制造主要场景 | | **生产柔性** | 基于工序的柔性配置,支持闭环的柔性生产跟踪,为复杂排产与自适应调度预留扩展空间 | | **操作极简** | 非源头不手输、非必要不跨页、多平台订单一键导入、供应链/班组作业一键完成 | | **绿色制造** | 内置电耗/水耗/气耗登记统计、安全风险登记、污染物排放登记等绿色工厂管理模块 | ## 开源协议与合规 - **开源协议**:本项目依据 [Apache License 2.0](LICENSE) 发布,可自由使用、修改与分发。 - **第三方许可证**:前后端第三方依赖的许可证清单见 [`licenses/`](licenses/)(`backend-license-manifest.csv`、`frontend-license-manifest.csv` 及许可证全文 `backend-license-texts.txt` 等)。 - **NOTICE 要求**:依据 Apache 2.0 及 [`NOTICE.zh-CN.md`](NOTICE.zh-CN.md),分发本项目或其衍生作品时须—— 1. 保留版权与归属声明 **“Copyright (c) 2024-2026 www.factoryopen.net”**,并如实标注来源于 quickFactory; 2. 不得暗示或明示 `www.factoryopen.net` 对您的产品提供担保、认可或背书; 3. 不得将 `quickFactory` 名称与 `www.factoryopen.net` 用于误导性的商业推广。 - 若您的产品基于本项目,请同步保留 `LICENSE`、`NOTICE` 及上述归属声明。 ## 业务架构 ``` ┌──────────────────────────────────────────────────────────────────────────────┐ │ QuickFactory │ ├────────┬──────────┬───────────┬───────────┬─────────┬────────────┬───────────┤ │ 营销端 │ 工艺端 │ 生管端 │ 供应链 │ 制造端 │ IIoT │ 仪表盘 │ ├────────┼──────────┼───────────┼───────────┼─────────┼────────────┼───────────┤ │ 商机 │ 品类工艺 │ 交货筹划 │ 采购 │ 班组作业 │ 车间数字孪生 │ 日表现 │ │ 合同 │ 产品工艺 │ MRP │ 储运 │ 质检质保 │ IIoT视频 │ 批次表现 │ │ 订单 │ 作业指示 │ 派工/调度 │ 质检质保 │ │ (暂未开源) │ 库存表现 │ │ 客诉 │(视频/图纸 │ 备料追踪 │ 存货交易 │ │ │ 质量趋势 │ │ │ /SOP) │ │ │ │ │ QCD仪表 │ └────────┴──────────┴───────────┴───────────┴─────────┴────────────┴───────────┘ ``` ### 业务流程:1 主 3 支 **1 条主流程** ```text 合同 → 订单 → 交货统筹 → 直发/转包/自制 → 成品入库 → 发货 ``` **3 条支流程** | 流程 | 完整路径 | |------|----------| | **直发** | 合同 → 订单 → 交货统筹 → 直发 → 发货计划 → 发货单 → 销售出库 | | **转包** | 合同 → 订单 → 交货统筹 → 转包 → 请购 → 采购计划 → 采购单 → 通知收货 → 仓库收货 → 通知收检 → 收货检验 → 采购入库 | | **自制** | 合同 → 订单 → 交货统筹 → 自制 → 主计划(MPS)→ 请补工艺 → MRP(算料/拆单)→ 派工 → 工序收开完转 → 质量异常登记 → 入库 | --- ## 能力特征 ### 智造一体化 系统贯通商机、订单、交货、计划、制造、仓库、采购、工艺、质量、设备互联、数字孪生。自带车间数字孪生、工业互联(IIoT)的标准化适配。全系统采用同一套体系结构、数据库、功能流程。 ### 生产跟踪柔性 基于工序的柔性配置,结合班组"收→开工→完工→转移"四步作业流与异常登记,提供闭环的、适应多场景变化的柔性生产跟踪能力。通过工时的灵活设置,为复杂排产、自适应调度等更高水平数智建设预留空间。 ### 制造过程闭环 完整跟踪车间、班组、质检的生产过程。可分类跟踪、分类处理生产过程中发生的各类质量异常和工艺异常,形成"跟踪→发现→处理→关闭"的完整闭环。 ### 操作简易 - 多平台订单导入 - 供应链作业一键完成 - 班组作业一键完成 - 跨部门请求集中处理 --- ## 特色设计 ### 1. 单据状态变迁标准化 除工单(pln_wo)和制造批次(pln_ml)外,所有单据共用同一套状态码,使用同一套状态变迁动作流: ```text 底稿(0) → 请审(1) → 过审(3) → 发布(4) → 请处理(6) → 处理中(8) → 完成(12) → 待结案(16) → 结案(18) ↑ ↓ ↑ └── 拒审(2) └── 有异常(10) ←── 异常(15) ←── 冻结(13) / 停用(14) ``` > 状态流转逻辑由 `StatusAlgorithm` 统一管理,各模块 `*Algorithm` 类调用。 ### 2. 集中可视化 | 视图 | 说明 | |------|------| | **订单透视** | 树表结构,透视订单各明细在车间/仓库/工艺/交管各节点的实际分布与执行情况 | | **在制跟踪** | 实时滚动跟踪正在车间生产的在制任务多维度信息 | | **待理透明** | 质检待处理、仓库待处理,透明化展示 | | **存货透明** | 库存量、库存批次、物料分类,一屏展示 | | **单况透明** | 订单、交货项状态透明化展示 | ### 3. 非必要,不输入 - **非源头不手输**:除订单、工艺、过程异常等源头数据外,近乎不需要数据录入,仅点击按钮即可完成中间操作 - **合同直接导入**:支持各省烟草平台网上订单导入,最大幅度降低转单作业工时 - **工艺必补方补**:普通订单仅在工艺不完备时,触发工艺员补工艺数据 ### 4. 非必要,不跨页 事务处理大厅化 — 同一角色的多种事务在统一界面集中处理,无需来回切换页面。适用角色:**工艺、采购、仓库、质检**。 --- ## 技术架构 ### 技术栈总览 | 层级 | 技术选型 | 版本 | |------|----------|------| | **后端框架** | Spring Boot(RuoYi-Vue 分离版) | 2.5.15 | | **前端框架** | Vue + Element UI | 2.6.12 / 2.15.14 | | **数据可视化** | ECharts | 5.4.0 | | **数据库** | MySQL | 5.6+ | | **持久层** | MyBatis + PageHelper | 3.5.2 / 1.4.7 | | **缓存** | Redis(Lettuce 连接池) | 3.0+ | | **安全认证** | Spring Security + JWT(jjwt) | 0.9.1 | | **连接池** | Druid(支持多数据源动态切换) | 1.2.20 | | **定时任务** | Quartz | - | | **API 文档** | Swagger 3(springfox)+ Knife4j | 3.0.0 | | **导入导出** | Apache POI | 4.1.2 | | **JSON** | Fastjson2 | 2.0.43 | | **验证码** | kaptcha | 2.3.3 | | **构建工具** | Maven 多模块 | 3.3+ | | **JDK** | 1.8 | 1.8 | ### Maven 模块结构 ```text quickfactory/ ├── quickfactory-admin # 入口模块 — Spring Boot Application, 系统管理 Controller ├── quickfactory-system # 系统管理 — RuoYi 扩展(单号规则、冻结管理) ├── quickfactory-manufacturing # 核心业务 — ERP/MES/PLM 全部业务模块 ├── ruoyi-common # 通用工具 — 基础实体、注解、工具类、异常、Redis ├── ruoyi-framework # 框架核心 — Security、AOP、Druid、Token、过滤器 ├── ruoyi-quartz # 定时任务 — Quartz 作业调度 ├── quickfactory-ui # 前端 — Vue 2 + Element UI SPA └── sql # 数据库 — 完整 Demo 库 SQL + 清除脚本 ``` ### 后端代码结构 业务模块 `quickfactory-manufacturing` 采用**双层代码结构**: **层一:业务算法层** `net.factoryopen.core` ```text net.factoryopen.core ├── logic/ │ ├── StatusAlgorithm.java # 统一状态流转引擎 │ └── ProductAlgorithm.java # 产品/物料计算引擎 ├── common/ │ ├── type/ # 业务类型枚举(物料类型/检验类型/仓库类型等 16 个枚举) │ ├── status/ # 状态定义(BillStatus / BillFullStatus2) │ ├── priority/ # 优先级定义(PriorityLevel) │ ├── exception/ # 自定义业务异常(15 个异常类,如 MaterialUnavailableException 等) │ └── codeManager/ # 单据编号管理器 └── util/ ├── InputUtil.java # 输入校验工具 └── FormatUtil.java # 格式化工具 ``` **层二:标准分层 MVC** `net.factoryopen.quickfactory.manufacturing` ```text net.factoryopen.quickfactory.manufacturing.{area} ├── controller/ # 控制器层 ├── domain/ # 实体 / 领域模型 ├── mapper/ # MyBatis Mapper 接口 └── service/ # 服务接口 + 实现 ``` > 各业务区(area)按前缀独立分包,每个区均有 4 层结构,总计约 1100+ Java 类。 **Algorithm 层说明** 系统核心业务逻辑抽取到 46 个 Algorithm 类,位于 `net.factoryopen.core.quickfactory.manufacturing.{area}` 包下,负责跨实体的复杂状态流转、编号生成、MRP 计算等。典型的 Algorithm 包括: | 类名 | 职责 | |------|------| | StatusAlgorithm | 统一状态流转引擎 | | OrdContractAlgorithm / OrdSoQuicklyAlgorithm | 合同/订单状态变迁 | | DelMpsAlgorithm / DelDeliveryPlanAlgorithm | 主计划/发货流程 | | EngProductEngineeringAlgorithm | 产品工程变更处理 | | PlnMrpMpAlgorithm / PlnMrpMrAlgorithm / PlnMrpWoAlgorithm | MRP 三阶段计算 | | PlnWoAlgorithm / PlnMlDispatchingAlgorithm | 工单/制造批次派工 | | ExeProcessOperatingAlgorithm / ExeMlOperatingAlgorithm | 工序作业/批次作业 | | SncStockRequestAlgorithm / SncGrAlgorithm | 出入库/收货流程 | | SupPoAlgorithm / SupPurchasingPlanAlgorithm | 采购单/采购计划 | | QuaInspectRequestItemAlgorithm / QuaExceptionDealAlgorithm | 质检/异常处理 | ### 前端代码结构 ```text quickfactory-ui/src/ ├── api/ # API 接口定义(229 个 JS 文件,按业务域分目录) │ ├── bas/ cha/ del/ ehs/ eng/ │ ├── exe/ idx/ ord/ pln/ │ ├── qua/ res/ snc/ sup/ │ └── system/ monitor/ ├── views/ # 页面视图(170 个 Vue 文件,按业务域分目录) │ ├── bas/ cha/ del/ ehs/ eng/ │ ├── exe/ idx/ ord/ pln/ │ ├── qua/ res/ snc/ sup/ │ └── system/ monitor/ tool/ dashboard/ ├── components/ # 通用组件 │ ├── Header/ TopNav/ SizeSelect/ Breadcrumb/ │ ├── RuoYi/ IconSelect/ ImagePreview/ ImageUpload/ │ ├── Echart/ Crontab/ DictTag/ iFrame/ │ ├── FileUpload/ Editor/ Pagination/ RightToolbar/ │ └── ... ├── layout/ # 布局组件 ├── store/ # Vuex 状态管理(含 vuex-persistedstate) ├── router/ # 路由配置 ├── utils/ # 工具函数 / 混入(mixin) │ ├── auth.js / request.js / permission.js │ └── mixins/ (通用混入逻辑) ├── directive/ # 自定义指令 ├── plugins/ # 插件配置 └── assets/ # 样式 / 图片 / 图标 / SVG ``` --- ## 数据库设计 ### 设计规范 - **字符集**:utf8mb4,排序规则 utf8mb4_general_ci - **表命名**:按业务域前缀分组,如 `ord_*`(订单)、`eng_*`(工程)、`pln_*`(计划) - **主键**:bigint 自增 ID - **审计字段**:每张业务表均含 `create_by`、`create_time`、`update_by`、`update_time` - **逻辑删除**:`del_flag` 字段标记(RuoYi 体系) - **总数**:约 185 张数据库表 ### 核心业务流程对应的表关系 ```text 客户(cha_customer) │ └── 合同(ord_contract → ord_contract_item) │ └── 销售订单(ord_so → ord_so_item) │ ├── 直发 ──→ del_gd/→ del_gd_item ──→ del_delivery_plan ──→ del_delivery_order │ ──→ snc_inventory_io(出库) │ ├── 转包 ──→ del_osplan ──→ sup_pr/sup_pritem ──→ sup_purchasing_plan │ ──→ sup_po/sup_po_item ──→ snc_gr/snc_gr_item │ ──→ qua_inspect_request ──→ snc_inventory_io(入库) │ └── 自制 ──→ del_mps/del_plan_item ──→ pln_mrp_mp ──→ pln_mrp_mr ──→ pln_mrp_wo ──→ pln_wo/pln_ml ──→ exe_process_moves/exe_process_work(工序作业) ──→ qua_inspect_request ──→ snc_inventory_io(入库) ``` ### 权限与系统表(RuoYi 标准) ```text sys_user ─┬─ sys_user_role ── sys_role ── sys_role_menu ── sys_menu ├─ sys_user_post ── sys_post └─ sys_user_dept ── sys_dept sys_dict_type ── sys_dict_data sys_config / sys_notice sys_logininfor / sys_oper_log (审计日志) sys_job / sys_job_log (Quartz 定时任务) sys_billcode_rule / sys_bill_frozen (扩展:单号规则/冻结管理) gen_table / gen_table_column (RuoYi 代码生成器) ``` --- ## 快速开始 ### 环境要求 | 组件 | 最低版本 | |------|------| | JDK | 1.8 | | MySQL | 5.6 | | Redis | 3.0 | | Maven | 3.3 | | Node.js | 17+ | > 前端开发/构建脚本使用了 `--openssl-legacy-provider`(Webpack 4 在 Node 17+ 上需要该选项),故 Node 需 **17+**;建议使用 LTS 18/20。 ### Step 1:初始化数据库 ```bash # 导入完整 Demo 数据库(含完整演示数据,可直接体验) mysql -u root -p < sql/quickfactory-free.sql # 生产上线:再清空演示业务数据 mysql -u root -p < sql/clear_all_demo_data.sql ``` > `quickfactory-free.sql` 包含全部表结构、系统数据及业务数据,几乎所有界面均可完整体验。 > `clear_all_demo_data.sql` 可按主题分类清除数据,适用于正式上线前的初始化。 ### Step 2:配置数据库连接 编辑 `quickfactory-admin/src/main/resources/application-druid.yml`: ```yaml spring: datasource: druid: master: url: jdbc:mysql://localhost:3306/quickfactory-free?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 username: root password: 你的密码 ``` ### Step 3:配置 Redis(按需) 编辑 `quickfactory-admin/src/main/resources/application.yml`: ```yaml spring: redis: host: localhost port: 6379 password: # 无密码留空 ``` ### Step 4:启动后端 ```bash # 项目根目录 mvn clean package -DskipTests # 启动 admin 模块 cd quickfactory-admin mvn spring-boot:run ``` 启动成功后访问: - **后端服务**:http://localhost:8080 - **Swagger 文档**:http://localhost:8080/swagger-ui/index.html - **Druid 监控面板**:http://localhost:8080/druid(账号 factoryopen / 密码 factoryopen.net) ### Step 5:启动前端 ```bash cd quickfactory-ui npm install npm run dev ``` 浏览器访问 **http://localhost:80** 即可使用系统。 --- ## 演示账号 所有账号默认密码:`factoryopen.net` | 角色 | 账号 | 功能范围 | |------|------|----------| | 超级管理员 | admin | 系统管理、全部功能与数据权限 | | 工艺工程师 | gongyi | 物料、BOM、工艺路线、SOP/图纸/视频 | | 业务员 | yewuyuan | 商机、合同、订单录入 | | 跟单员 | gendan | 订单跟踪、对账单 | | 交管员 | jiaoguan | 发货计划、发货单、外协管理 | | 计划员 | jihua | 主计划(MPS)、MRP、工单管理 | | 调度员 | diaodu | 派工、班组调度 | | 采购员 | caigou | 供应商管理、采购申请/计划/单 | | 库管员 | kuguan | 入库/出库/存货管理 | | 质检员 | zhijian | 来料检验/制程检验/成品检验 | | 质保员 | zhibao | 质量异常分析处理、免检管理 | | 下料工 | xialiao | 下料工序作业 | | 机加工 | jijia | 机加工序作业 | | 数控工 | shukong | 数控工序作业 | | 成检工 | chengjian | 成品检验工序 | | 会计 | kuaiji | 财务数据查看 | | 多处理工 | duochuli | 跨工序多功能作业(可完整体验班组作业记录界面) | --- ## 权限体系 采用 RuoYi 标准 RBAC 模型: ```text 用户(sys_user) ── 角色(sys_role) ── 菜单权限(sys_menu) 用户(sys_user) ── 岗位(sys_post) ── 部门(sys_dept) ``` - **菜单权限**:控制页面/按钮可见性 - **数据权限**:支持按部门等维度过滤数据 - **演示模式**:默认关闭,开启后屏蔽所有增删改操作 --- ## 关键配置项 | 配置项 | 配置文件 | 说明 | 默认值 | |--------|----------|------|--------| | 服务端口 | application.yml → server.port | HTTP 端口 | 8080 | | 数据库连接 | application-druid.yml | 主从多数据源 | master 启用 | | Redis | application.yml → spring.redis | Redis 缓存 | localhost:6379 | | 文件上传 | application.yml → spring.servlet.multipart | 上传限制 | 单文件 10MB / 总计 20MB | | JWT | application.yml → token | 令牌密钥与有效期 | 30 分钟 | | 验证码 | application.yml → quickfactory.captchaType | math / char | math | | Druid 监控 | application-druid.yml → statViewServlet | 连接池监控 | /druid 路径 | | 定时任务 | application.yml → quickfactory.scheduled | 控制开关 | false(关闭) | | Swagger | application.yml → swagger | API 文档开关 | true(开启) | | XSS 过滤 | application.yml → xss | 跨站脚本防护 | true(开启) | | 用户锁定 | application.yml → user.password | 密码错误策略 | 5 次 / 10 分钟 | --- ## 生产部署 ### 后端部署 ```bash mvn clean package -DskipTests java -jar quickfactory-admin/target/quickfactory-admin.jar --spring.profiles.active=druid ``` ### 前端部署 ```bash cd quickfactory-ui npm run build:prod # 将 dist/ 目录部署到 Nginx 或后端 static/ ``` ### 生产环境建议 1. **更换密码**:数据库中 root 密码、Druid 监控面板密码 2. **更换 JWT 密钥**:`application.yml` 中 `token.secret` 替换为高强度随机字符串 3. **Redis 密码**:生产环境务必设置 Redis 密码 4. **日志**:建议配置 Logback 输出到文件,配合 ELK 收集 5. **HTTPS**:生产环境建议启用 SSL --- ## 常见问题(FAQ) **Q1:为什么前端要 `--openssl-legacy-provider`,Node 要用 17+?** `npm run dev` / `build:prod` 通过 `NODE_OPTIONS=--openssl-legacy-provider` 运行,该选项是 Node 17+(OpenSSL 3)下兼容 Webpack 4 所必需的哈希算法选项。因此前端要求 **Node 17+**(建议 LTS 18/20);在 Node 16 及以下会报 `bad option: --openssl-legacy-provider`。 **Q2:启动后端提示 `Port 8080 was already in use`?** 8080 已被占用。可先结束占用进程,或将 `application.yml` 中 `server.port` 改为其它端口;前端 `vue.config.js` 的代理 `target` 也需同步调整。 **Q3:前端请求为什么走 `/dev-api`?** 开发环境由 `vue.config.js` 的 `devServer.proxy` 将 `/dev-api` 代理到后端 `http://localhost:8080`;生产环境用 `/prod-api`(见 `.env.production` 的 `VUE_APP_BASE_API`)。若后端地址不同,改 `vue.config.js` 的 `target` 或对应 `.env.*`。 **Q4:Redis 是必需的吗?** 必需。RuoYi 用 Redis 缓存 token/会话与验证码,未启动 Redis 会导致登录失败。默认连接 `localhost:6379` 无密码;生产环境请设置 Redis 密码,并配置 `application.yml` 的 `spring.redis.password`。 **Q5:Druid 监控面板地址与默认口令?** 访问 `http://localhost:8080/druid`,默认账号 `factoryopen`、密码 `factoryopen.net`(与演示账号一致)。**生产环境务必修改**:在 `application-druid.yml` 中改 `statViewServlet.login-username` / `login-password`,并按需关闭 `statViewServlet.enabled` 或限制访问 / 设置白名单。 --- ## 开发指南 ### 代码生成 系统内嵌 RuoYi 代码生成器,通过 `gen_table` / `gen_table_column` 表配置后,一键生成标准 CRUD 代码(Controller / Service / Mapper / Vue 页面)。 ### 新增业务模块 1. **建表**:遵循前缀命名规范(如 `my_*`),数据表须含审计字段 2. **后端**:在 `quickfactory-manufacturing` 中仿照现有模块创建 `domain/mapper/service/controller` 四层代码 3. **核心逻辑**:跨表状态流转逻辑在 `net.factoryopen.core.quickfactory.manufacturing.{area}` 下创建 `*Algorithm` 类 4. **前端**:在 `quickfactory-ui/src/views/` 和 `src/api/` 下按业务域分目录 ### 代码分层约定 ```text Controller → Service(接口 + 实现) → Mapper → MyBatis XML ↑ ↑ │ │ └── *Algorithm(复杂业务逻辑,位于 core 包) │ └── StatusAlgorithm(统一状态引擎) ``` --- ## 项目信息 | 项 | 内容 | |----|------| | **项目名称** | QuickFactory | | **项目版本** | 2.0.0 | | **开源协议** | Apache License 2.0 | | **基础框架** | RuoYi-Vue 分离版 v3.8.7 | | **JDK** | 1.8 | | **作者** | factoryopen | | **仓库地址** | https://gitee.com/factoryopen/quickfactory | | **官方网站** | http://www.factoryopen.net | | **使用手册** | http://www.factoryopen.net/res/md-images/userGuide.html | --- ## 贡献指南 / 联系方式 欢迎参与改进,通过以下方式提交反馈或代码: - **提交 Issue / 反馈缺陷**: - **Pull Request**:Fork 后基于最新 `master` 创建分支(建议命名 `feature/xxx` 或 `codex/xxx`),提交前运行前端 `npm run lint`、后端 `mvn -q -DskipTests compile` 确保无基础错误。 - **关于贡献**:提交即表示同意以 Apache-2.0 授权相关改动;请勿在提交内容中附带客户敏感数据或生产数据。 **联系方式** - 微信 / 抖音:微信二维码 抖音二维码 - 官方仓库: - 官方网站: --- ## 鸣谢 - [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) — 基础开发框架 - [Element UI](https://element.eleme.io/) — 前端 UI 组件库 - **工信部首届工业数字孪生大赛** — FactoryTwins 模块获优秀作品奖 --- ## 附录:数据库表结构明细 系统共 **14 个业务域**,按代码前缀划分如下: ### 基础数据 `bas`(9 表) | 表名 | 说明 | |------|------| | bas_unit | 计量单位 | | bas_currency | 币种 | | bas_bill_status | 共用单据状态码 | | bas_pay_pattern | 付款方式 | | bas_shipment_type | 交货方式 | | bas_material_grade | 物料等级 | | bas_operation_type | 作业类型 | | bas_invoice_pattern | 发票方式 | | bas_pending_code | 待处理编码 | ### 客户营销 `cha`(9 表) 客户管理、线索管理、销售员管理 | 核心表 | 说明 | |--------|------| | cha_customer | 客户主档 | | cha_customer_address | 客户地址 | | cha_customer_bank | 客户银行账号 | | cha_customer_contact | 客户联系人 | | cha_customer_potential | 客户潜力评估 | | cha_leads | 销售线索 | | cha_leads_visit / cha_leads_visiting | 线索拜访/跟进记录 | | cha_sales | 销售员管理 | ### 订单合同 `ord`(10 表) 销售合同、销售订单、客诉登记、对账单、项目管理 | 核心表 | 说明 | |--------|------| | ord_contract | 销售合同 | | ord_contract_item | 合同明细 | | ord_so | 销售订单 | | ord_so_item | 订单明细 | | ord_so_quickly | 快速订单(多平台导入) | | ord_complain | 客诉登记 | | ord_checkbusi | 对账单 | | ord_so_finance | 订单财务维度 | ### 发运计划 `del`(13 表) 主生产计划(MPS)、发货单、外协计划、订单透视 | 核心表 | 说明 | |--------|------| | del_mps | 自制品主生产计划 | | del_plan_item | 计划项 | | del_osplan | 外协计划(转包/采购) | | del_osplan_receiving | 外协收货 | | del_delivery_plan | 发货计划 | | del_delivery_order | 发货单 | | del_delivery_deal | 交货项 | | del_gd / del_gd_item | 发货明细 | | del_perspectivity | 订单透视视图数据 | ### 工艺工程 `eng`(31 表) 物料/BOM/工艺路线/SOP/图纸/视频/ECN/品类工艺。本模块为 PLM 核心。 | 核心表 | 说明 | |--------|------| | eng_material | 物料主档 | | eng_material_inventory | 物料库存属性 | | eng_material_production | 物料生产属性 | | eng_material_purchasing | 物料采购属性 | | eng_material_sales | 物料销售属性 | | eng_material_parameters | 物料参数 | | eng_material_replacable | 物料替代关系 | | eng_product_bom | 产品 BOM | | eng_product_routing | 产品工艺路线 | | eng_product_routingkiparts | 工艺路线关键件 | | eng_product_routingtool | 工艺路线工具 | | eng_pruduct_sop / eng_pruduct_video / eng_product_drawing | SOP/视频/图纸 | | eng_product_ecn | 工程变更通知 | | eng_er | 工程变更请求 | | eng_exception | 工艺异常登记 | ### 计划调度 `pln`(24 表) 工单、制造批次、MRP、派工/调度、备料 | 核心表 | 说明 | |--------|------| | pln_wo | 工单(对应 ERP 生产订单) | | pln_wo_material / pln_wo_routing 等 | 工单物料/工艺路线/SOP | | pln_ml | 制造批次 | | pln_ml_material / pln_ml_routing 等 | 制造批次物料/工艺路线 | | pln_mrp_mp | MRP 主计划 | | pln_mrp_mr | MRP 物料需求 | | pln_mrp_wo | MRP 工单建议 | | pln_material_computing | 物料计算 | ### 制造执行 `exe`(6 表) 工序移转、生产入库、班组作业 | 核心表 | 说明 | |--------|------| | exe_process_moves | 工序移转记录(收/开/完/转) | | exe_process_work | 工序作业执行 | | exe_exception_req | 制造过程异常请求 | | exe_ml_operating | 制造批次作业 | | exe_ml_split | 制造批次拆分 | | exe_ml_stockin | 制造批次入库 | ### 供应链 `snc`(10 表) 存货管理、出入库请求、仓库收货、库存交易 | 核心表 | 说明 | |--------|------| | snc_stock_request | 出入库请求 | | snc_stock_request_item | 出入库请求明细 | | snc_gr | 收货单 | | snc_gr_item | 收货明细 | | snc_inventory_io | 库存交易流水 | | snc_inventory | 库存结存 | ### 采购供应 `sup`(12 表) 供应商管理、采购申请、采购计划、采购单、配额管理 | 核心表 | 说明 | |--------|------| | sup_supplier | 供应商主档 | | sup_supplier_address / sup_supplier_bank / sup_supplier_contact | 供应商明细 | | sup_supplier_quota | 供应商配额 | | sup_pr / sup_pritem | 请购申请/明细 | | sup_purchasing_plan | 采购计划 | | sup_po / sup_po_item | 采购单/明细 | | sup_po_item_return | 采购退货 | ### 质量质保 `qua`(12 表) 请检、生产/采购/制造异常分类处理、免检策略 | 核心表 | 说明 | |--------|------| | qua_inspect_request | 请检单 | | qua_inspect_request_item | 请检明细 | | qua_exception | 质量异常登记 | | qua_exception_deal | 异常处理 | | qua_inspect_return | 质检退货 | | qua_inspect_redeal | 复检处理 | ### 设备资源 `res`(13 表) 机台、产线、工具、班别、班组、仓库、储位、工人 | 核心表 | 说明 | |--------|------| | res_machine / res_machine_type | 机台/机台类型 | | res_line | 产线 | | res_tool | 工具/模具 | | res_workgroup | 班组 | | res_workgroup_machine / res_workgroup_process / res_workgroup_tool | 班组资源 | | res_labor | 工人 | | res_shift / res_shiftsys | 班次/排班 | | res_ware_house / res_ware_position | 仓库/储位 | ### 绿色工厂 `ehs`(16 表) 能源消耗登记与统计、安全风险登记、污染物排放登记 | 核心表 | 说明 | |--------|------| | ehs_power_consuming / ehs_power_foodie / ehs_power_foodie_category | 电耗登记/统计/分类 | | ehs_water_consuming / ehs_water_foodie / ehs_water_foodie_category | 水耗登记/统计/分类 | | ehs_gas_consuming / ehs_gas_foodie / ehs_gas_foodie_category | 气耗登记/统计/分类 | | ehs_hazard_category / ehs_hazard_record / ehs_hazard_deal | 安全风险分类/登记/处理 | | ehs_pollution_category / ehs_pollution_point / ehs_pollution_index / ehs_pollution_record | 污染物分类/排口/指标/排放登记 | ### 仪表盘 `idx`(Home,7 表) 日表现、批次表现、存货表现、质量趋势、QCD仪表 | 核心表 | 说明 | |--------|------| | hom_achieve_daytrend / hom_achieve_lotrend / hom_achieve_inventory | 日/批次/存货表现 | | hom_quality_daytrend / hom_quality_resultrend / hom_quality_causetrend | 质量日趋势/结果/原因 | | hom_qcd | QCD 综合仪表 | ### 系统管理 `sys`(~19 表,含 RuoYi 标准和 QuickFactory 扩展) 用户/角色/菜单/部门/字典/岗位/日志/通知 + 单号规则 + 冻结管理