工厂生产与销售管理系统 v2
创建于 2025 年 2 月 20 日
项目介绍
工厂生产与销售管理系统 v2 是面向中小型加工厂的一体化管理后台,项目以若依 RuoYi-Vue 3.8.9 为脚手架二次开发,首页标题即为”济宁生源饮料加工厂生产管理系统”,从物料字段(PET 瓶、橙汁原料、糖度检测参数等)可见其原型面向饮料生产场景。系统围绕”客户 → 销售订单 → 生产计划 → 出入库 → 质量检验”的工厂核心链路组织功能:客户管理与产品、设备、库存等主数据先行,销售订单以主从表承载订单明细并自动汇总总价,生产计划按订单/设备/产品/人员排产并自动联动出库与质检,质量模块覆盖标准、检验、异常三层,首页以统计卡与图表呈现整体运营状况。
数据库脚本中同时保留了 v1(pro_sale_order、pro_plan 等)与 v2(pro2_sales_order、pro2_production_plan、pro2_inventory_material 等)两套业务表设计,v2 对销售订单、生产计划、物料库存重新建模,是本项目”v2”命名的由来;当前运行的主业务仍以 pro_* 表为主。系统模块归属 pro-admin 下的 com.pro.pro 包,菜单统一挂载在”生产系统”目录下,涵盖客户管理、设备管理、销售管理、库存管理、生产计划、质检管理六项。
项目架构
项目沿用若依经典的”前端分离 + 后端多模块”结构:
| 模块 | 技术栈 | 说明 |
|---|---|---|
pro-admin | Spring Boot 2.5.15、Spring Security + JWT | 启动模块,com.pro.pro 为业务包:controller、service/impl、domain、mapper 四层 |
pro-common | MyBatis-Plus 3.5.4、MyBatis-Plus-Join、Fastjson2、Hutool、POI | 通用层,引入 mybatis-plus-join(yulichang)支持 Lambda 多表联查 |
pro-system | MyBatis-Plus | 用户、角色、菜单、部门、字典等系统管理能力 |
pro-framework | Druid 1.2.23、Redis、Quartz | 数据源、安全过滤、Token 服务、定时任务等框架设施 |
pro-ui | Vue 2.6.12、Element UI 2.15.14、ECharts 5.4.0、Axios | 管理后台前端,src/views/pro 下按业务组织页面,src/api/pro 封装接口 |
20250209.sql | MySQL 8.0.35 | 全库导出脚本:框架系统表 + pro_*/pro2_* 业务表 + 演示数据 |
业务代码分层清晰:ProBuildController、ProSaleOrderController、ProInventoryController、ProDeviceController、ProCustomerController、ProQualityInspectionController、ProQualityRecordsController、ProQualityStandardController 等控制器提供标准 CRUD、Excel 导出与 listForSelect 下拉接口;Service 层承载核心业务规则(订单总价计算、库存联动、生产计划联动);数据访问大量使用 MPJLambdaWrapper 完成多表联查,例如生产计划列表一次左连 pro_device(设备名)、pro_sale_order(订单号)、pro_product(产品名)、sys_user(生产人员),质检记录联查 sys_user 得到质检员姓名。首页大屏统计由 BigScreenController(/big-screen)与 BigScreenV2Controller(/big-screenV2)两组接口提供。
核心功能
客户与产品主数据。 客户管理(pro_customer)维护客户名称、联系人、电话、地址、客户类型(如个人客户)、信用等级、合作状态、服务地区与行业分类,支持列表查询、编辑与删除。产品管理(pro_product)记录产品名称、规格、计量单位并可与生产计划关联,配合 product 字典作为生产与统计的维度。
销售订单管理。 订单页面(pro/order)以主从表形式管理销售订单:主表记录客户(联表显示客户姓名与电话)、订单编号、订单类型(如预售订单)、交货时间、交货地址与状态;子表 pro_sale_order_item 录入物料、数量、单价多行明细。新增与修改订单时,Service 层遍历明细用 NumberUtil.mul(单价, 数量) 累加自动生成订单总价,删除订单时级联删除明细;/system/order/listForSelect 接口专门用于生产计划页只加载待处理订单。
动态库存管理。 库存管理(pro_inventory + pro_inventory_records)以”库存主表 + 出入库流水”设计:主表维护物料编码(唯一,重复插入抛 ServiceException("物料编码已存在"))、原料/成品类型、计量单位、仓库、存放位置、规格、采购单价及供应商名称/电话/地址;当前库存数量不手工维护,而是由出入库记录实时汇总(入库 type=0 之和 - 出库 type=1 之和)自动写入。出入库流水记录操作人、数量、备注,并可通过 sale_order_id、build_id 关联销售订单与生产计划,实现”下单出库、生产领料”的可追溯闭环。
生产计划与联动。 生产计划页面(pro/plan)按订单、设备、产品、生产人员组织排产,设置数量、优先级与计划开始/结束时间,状态区分未开始/进行中/已完成(0/1/2),列表联表展示订单号、设备名、产品名、生产人员用户名,并支持导出。新增生产计划时系统自动完成两处联动:一是插入一条关联 build_id 的质检记录占位(pro_quality_records),二是把表单中的物料清单写入出库记录(type=1);修改与删除计划时同步重建/清理对应出入库流水,保证计划与库存流水一致。
设备与质量管理。 设备管理(pro_device)维护设备编号、名称、类型、状态(字典 device_type/device_status)、安装位置、厂家、规格、启用日期、上次/下次维修日期与维修报废年限,并提供故障报告、维修计划、保养记录三个备注字段,形成简单的设备维保台账。质检管理以”质检记录 + 质检标准”两个页签组织:检验记录(pro_quality_inspection)登记物料、质检员、结果、检测时间、生产计划、质检目的/结论/项目;质检标准(pro_quality_standard)按物料定义检测参数(如 PH 值、糖度)的最小值与最大值;另有 pro_quality_records 按检测对象类型(原料/生产/成品)记录检测结果、检测数据、异常描述、处理状态与合格/不合格数量,异常处理(pro_quality_exception)记录处理措施与处理人。
数据看板。 首页即看板:生产总数、设备总数、库存总数、销量总数四张渐变配色统计卡(调用 /big-screen/getModule),下方六块 ECharts 图表——库存原材料/成品数量、设备状态分布、设备类型分布(饼图/柱状)、近 6 个月生产计划趋势折线、近 6 个月销售订单趋势柱状图,统计接口按字典驱动(遍历字典项统计数量)并基于 DATE_FORMAT 按月聚合,直观呈现工厂经营概况。
功能截图
暂无运行截图。
快速上手
-
准备数据库:使用 MySQL 8 执行
20250209.sql全量脚本(框架系统表、pro_*/pro2_*业务表与演示数据均已包含),脚本中已预置客户、设备、订单、生产计划、库存等示例数据。 -
启动后端:
cd RuoYi-Vue-工厂生产与销售管理系统v2
# 修改 pro-admin/src/main/resources/application-druid.yml 中的数据库地址、账号、密码
mvn clean package -DskipTests
java -jar pro-admin/target/pro-admin.jar
- 启动前端:
cd pro-ui
npm install
npm run dev # http://localhost:80,默认账号 admin / admin123
- 体验流程:先在”客户管理”维护客户、在”库存管理”录入带出入库流水的物料 → “销售管理”新建含明细的订单(总价自动汇总)→ “生产计划”选择待处理订单排产(自动生成质检记录与出库流水)→ “质检管理”登记检验记录与标准 → 回到首页查看统计卡与图表联动变化。
总结
工厂生产与销售管理系统 v2 是一个业务完整、贴近真实工厂场景的若依实战项目:以 RuoYi-Vue 3.8.9 为底座,围绕饮料加工厂”客户—订单—排产—出入库—质检”主线,完整实现了客户、设备、订单(主从表自动算价)、动态库存(流水驱动数量)、生产计划(创建联动出库与质检)、质量管控(标准/检验/异常)与首页数据看板,并保留 v1/v2 两代表设计体现迭代过程。技术上值得借鉴的点包括:用 MPJLambdaWrapper 优雅替代手写联表 SQL、以出入库流水反向汇总库存保证账实一致、生产计划创建时的多表联动事务处理、按字典驱动的大屏统计接口。对希望学习在成熟脚手架(Spring Boot + MyBatis-Plus + Vue 2 + Element UI)上快速落地工厂业务系统的开发者,这是一个完整的参考案例。