摘 要
随着企业经营活动日益复杂,采购管理在企业成本控制、供应链协同和资源配置中的作用愈发突出。传统采购模式普遍依赖人工登记、纸质审批和分散沟通,容易出现信息传递不及时、审批周期较长、供应商管理不规范、订单执行过程不透明以及历史数据难以统计分析等问题。为提高采购业务处理效率,规范采购流程,增强业务数据的可追溯性,本文围绕企业采购场景,提出并分析了一套基于Java的公司采购系统。该系统采用B/S架构,后端以Java和Spring Boot为核心技术实现业务逻辑与接口服务,前端采用Vue实现页面展示与交互,数据库使用MySQL完成业务数据存储,并结合RBAC权限控制思想与工作流管理机制,对采购申请、供应商管理、询价报价、订单跟踪、收货验收及统计分析等核心环节进行统一设计。论文前三章重点完成了研究背景、研究意义、相关技术与系统分析内容,明确了采购方、供应商和系统管理员三类角色的业务边界,梳理了系统功能需求、非功能需求及用例关系。研究结果表明,基于Java技术栈构建公司采购系统具有较好的技术可行性和应用价值,能够为企业采购流程数字化、规范化和高效化提供有效支撑,也可为后续系统总体设计、详细设计与功能实现奠定基础。
关键词 : 公司采购系统;Java;Spring Boot;Vue;系统分析
目 录
[题 目 基于Java的公司采购系统的设计与实现 __](#题 目 基于Java的公司采购系统的设计与实现__)
[一 绪论](#一 绪论)
[(一) 研究背景](#(一) 研究背景)
[(二) 研究意义](#(二) 研究意义)
[(三) 国内研究现状](#(三) 国内研究现状)
[(四) 研究内容与论文结构](#(四) 研究内容与论文结构)
[二 相关技术](#二 相关技术)
[(一) B/S 架构](#(一) B/S 架构)
[(二) Java 语言与 Spring Boot 框架](#(二) Java 语言与 Spring Boot 框架)
[(三) Vue 与前后端分离技术](#(三) Vue 与前后端分离技术)
[(四) MySQL 数据库技术](#(四) MySQL 数据库技术)
[(五) RBAC 权限控制技术](#(五) RBAC 权限控制技术)
[(六) 工作流技术](#(六) 工作流技术)
[三 系统分析](#三 系统分析)
[(一) 系统建设目标](#(一) 系统建设目标)
[(二) 可行性分析](#(二) 可行性分析)
[(三) 业务流程分析](#(三) 业务流程分析)
[(四) 角色分析](#(四) 角色分析)
[(五) 功能需求分析](#(五) 功能需求分析)
[(六) 非功能需求分析](#(六) 非功能需求分析)
[(七) 用例分析](#(七) 用例分析)
[四 系统 设计](#四 系统设计)
[(一) 系统架构设计](#(一) 系统架构设计)
[(二) 系统总体设计](#(二) 系统总体设计)
[(三) 核心功能模块设计](#(三) 核心功能模块设计)
[(四) 数据库设计](#(四) 数据库设计)
[五 系统 实现与测试](#五 系统实现与测试)
[(一) 开发环境搭建](#(一) 开发环境搭建)
[(二) 关键功能实现代码展示](#(二) 关键功能实现代码展示)
[(三) 系统测试](#(三) 系统测试)
[1. 用户登录功能测试](#1. 用户登录功能测试)
[2. 创建数据测试](#2. 创建数据测试)
[3. 修改数据测试](#3. 修改数据测试)
[4. 查询数据测试](#4. 查询数据测试)
[(四) 测试结论](#(四) 测试结论)
[六 总结与展望](#六 总结与展望)
-
- 研究意义
从理论层面看,采购系统建设并非简单的信息录入,而是业务流程建模、权限控制、数据库设计、界面交互和软件工程方法在实际业务场景中的综合应用。现有研究围绕电子采购、供应商管理、合同管理和订单处理等方向进行了较多探索,但不同研究往往聚焦于某一业务环节,缺少从需求提交到订单闭环管理的一体化分析。围绕"基于 Java 的公司采购系统"开展研究,有助于将企业采购业务流程与信息系统分析方法有效结合,为中小型企业采购信息化建设提供可复用的分析框架。
从实践层面看,本系统能够帮助企业将原本依赖人工流转的采购事务转化为标准化、数字化的业务流程。通过在线发布采购需求、集中维护供应商资料、统一管理采购订单和保留关键操作日志,系统可以显著提升采购活动的透明度与执行效率,降低因信息不对称、流程断点和人为疏漏带来的管理风险。同时,系统沉淀的数据还能为后续采购分析、供应商绩效评估、成本控制和业务优化提供依据。
从教学和能力训练层面看,采购系统开发属于典型的企业级软件开发场景,涉及前后端分离架构、数据库建模、角色权限控制、流程审批、异常处理和页面交互等多个知识点。围绕该系统完成论文设计,有助于综合训练需求分析能力、系统设计能力、编码实现能力和文档撰写能力,体现计算机专业"以工程问题为导向"的培养目标。
-
- 用例分析
为了更直观地描述系统角色与功能之间的关系,本文采用用例分析方法对采购方、供应商和系统管理员的核心操作进行建模。采购方围绕采购业务闭环开展操作,重点包括登录系统、维护采购需求、发起询价、生成订单、跟踪订单进度、进行收货验收和查看历史采购信息等;供应商围绕协同履约开展操作,重点包括维护企业信息、管理商品目录、提交报价、确认订单、更新发货状态和查看反馈信息等;系统管理员则从平台治理角度出发,负责用户与角色管理、供应商资质审核、分类数据维护、公告发布、数据统计与日志审计等工作。
通过用例分析可以看出,采购方与供应商之间形成以询价、报价和订单为主线的业务互动关系,而系统管理员则通过配置和监管保证系统运行秩序。三类角色在同一平台下协同工作,但其功能边界和数据权限存在明显差异,因此系统在设计时必须既保证协同效率,也保证数据隔离与权限约束。
用例如图 3-5 所示。



-
- 系统总体设计
本系统以多角色协同管理为核心设计原则,围绕企业采购全生命周期业务,划分为采购方模块、供应商模块、系统管理员模块三大核心功能模块,覆盖采购需求提报、询价报价、订单生成、履约跟踪、供应商管理、系统运维等全部业务场景,实现采购方、供应商、管理员的权责分离与高效协作。其中采购方模块聚焦采购业务的发起与跟进,实现从需求提报到收货评价的全流程操作;供应商模块聚焦采购业务的响应与履约,完成资质维护、商品管理、报价接单、物流发货等核心操作;系统管理员模块聚焦平台的管控与运维,实现用户权限管理、资质审核、数据统计、系统配置等后台管理功能。三大模块相互配合、数据互通,构建起完整、闭环的企业采购管理体系,有效解决传统采购流程中信息不透明、审批滞后、管理低效等痛点。

-
-
- 数据库表设计
-
采购员表用于存储系统中采购方用户的基础信息,是采购业务发起方的数据载体。该表记录了采购员的账号、密码、姓名、联系方式、审核状态等核心内容,通过唯一账号实现与采购需求、在线询价、订单、收货记录等业务数据的关联,保证采购行为可追溯、权责可明确。
表4-1 采购员表
|--------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| caigouyuanzhanghao | varchar(56) | false | | false | 采购员账号 |
| mima | varchar(200) | false | | false | 密码 |
| caigouyuanxingming | varchar(56) | true | NULL | false | 采购员姓名 |
| touxiang | longtext | true | | false | 头像 |
| xingbie | varchar(56) | true | NULL | false | 性别 |
| nianling | varchar(56) | true | NULL | false | 年龄 |
| shoujihaoma | varchar(32) | true | NULL | false | 手机号码 |
| sfsh | varchar(200) | true | 待审核 | false | 是否审核 |
| shhf | longtext | true | | false | 回复内容 |
供应商表用于存储系统中供应方企业及联系人信息,是商品发布、报价响应、订单履约的主体数据表。表中包含企业资质、联系方式、主营品类、审核状态等关键字段,通过供应商账号实现与商品、报价、订单等业务模块的关联,确保供应主体信息完整可靠。
表4-2 供应商表
|-----------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| gongyingshangzhanghao | varchar(56) | false | | false | 供应商账号 |
| mima | varchar(200) | false | | false | 密码 |
| gongyingshangxingming | varchar(56) | true | NULL | false | 供应商姓名 |
| touxiang | longtext | true | | false | 头像 |
| xingbie | varchar(200) | true | NULL | false | 性别 |
| lianxifangshi | varchar(200) | true | NULL | false | 联系方式 |
| gongsimingcheng | varchar(200) | true | NULL | false | 公司名称 |
| xinyongdaima | varchar(200) | true | NULL | false | 信用代码 |
| zhuyingpinlei | varchar(200) | true | NULL | false | 主营品类 |
| zizhizhengshu | longtext | true | | false | 资质证书 |
| sfsh | varchar(200) | true | 待审核 | false | 是否审核 |
| shhf | longtext | true | | false | 回复内容 |
采购需求表是采购流程的起始业务表,用于记录采购员提交的采购计划信息,包括采购商品、规格、数量、预算及期望交付时间等内容。该表为后续在线询价、订单生成提供原始数据依据,是整个采购业务流程的数据源头。
表4-3 采购需求表
|---------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| jihuamingcheng | varchar(200) | true | NULL | false | 计划名称 |
| shangpinmingcheng | varchar(200) | true | NULL | false | 商品名称 |
| guige | varchar(200) | true | NULL | false | 规格 |
| shuliang | int(55) | true | NULL | false | 数量 |
| yusuan | double | true | NULL | false | 预算 |
| qiwangjiaofushijian | datetime | true | NULL | false | 期望交付时间 |
| caigouyuanzhanghao | varchar(200) | true | NULL | false | 采购员账号 |
| caigouyuanxingming | varchar(200) | true | NULL | false | 采购员姓名 |
| xuqiushijian | datetime | true | NULL | false | 需求时间 |
在线询价表用于记录采购员针对具体采购需求向供应商发起的询价信息。表中包含需求详情、采购员信息、供应商信息等内容,实现采购方向供应方的需求传递,是连接采购需求与报价返回的核心中间表。
表4-4 在线询价表
|-----------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| jihuamingcheng | varchar(200) | true | NULL | false | 计划名称 |
| shangpinmingcheng | varchar(200) | true | NULL | false | 商品名称 |
| guige | varchar(200) | true | NULL | false | 规格 |
| shuliang | int(55) | true | NULL | false | 数量 |
| yusuan | double | true | NULL | false | 预算 |
| qiwangjiaofushijian | datetime | true | NULL | false | 期望交付时间 |
| caigouyuanzhanghao | varchar(200) | true | NULL | false | 采购员账号 |
| caigouyuanxingming | varchar(200) | true | NULL | false | 采购员姓名 |
| xuqiushijian | datetime | true | NULL | false | 需求时间 |
| gongyingshangzhanghao | varchar(200) | true | NULL | false | 供应商账号 |
| gongyingshangxingming | varchar(200) | true | NULL | false | 供应商姓名 |
报价返回表用于存储供应商针对在线询价提交的报价信息,包含商品单价、交货周期、付款方式、报价时间等关键内容。该表是采购方对比选择供应商的重要依据,也是生成正式采购订单的数据基础。
表4-5 报价返回表
|-----------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| shangpinmingcheng | varchar(200) | true | NULL | false | 商品名称 |
| guige | varchar(200) | true | NULL | false | 规格 |
| shuliang | int(55) | true | NULL | false | 数量 |
| yusuan | double | true | NULL | false | 预算 |
| qiwangjiaofushijian | datetime | true | NULL | false | 期望交付时间 |
| caigouyuanzhanghao | varchar(200) | true | NULL | false | 采购员账号 |
| caigouyuanxingming | varchar(200) | true | NULL | false | 采购员姓名 |
| xuqiushijian | datetime | true | NULL | false | 需求时间 |
| gongyingshangzhanghao | varchar(200) | true | NULL | false | 供应商账号 |
| gongyingshangxingming | varchar(200) | true | NULL | false | 供应商姓名 |
| danjia | double | true | NULL | false | 单价 |
| jiaohuozhouqi | varchar(200) | true | NULL | false | 交货周期 |
| fukuanfangshi | varchar(200) | true | NULL | false | 付款方式 |
| wenjian | longtext | true | | false | 文件 |
| baojiashijian | datetime | true | NULL | false | 报价时间 |
商品信息表用于存储供应商发布的商品详情,包括商品名称、分类、图片、库存、单价、描述等内容。商品作为采购业务的核心标的物,该表为需求制定、在线询价、订单采购提供统一的商品数据支撑。
表4-6 商品信息表
|-----------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| shangpintupian | longtext | true | | false | 商品图片 |
| shangpinmingcheng | varchar(32) | true | NULL | false | 商品名称 |
| shangpinfenlei | varchar(56) | true | NULL | false | 商品分类 |
| kucun | int(55) | true | NULL | false | 库存 |
| danjia | double | true | NULL | false | 单价 |
| shangpinxiangqing | longtext | true | | false | 商品详情 |
| gongyingshangzhanghao | varchar(200) | true | NULL | false | 供应商账号 |
| gongyingshangxingming | varchar(200) | true | NULL | false | 供应商姓名 |
| fabushijian | datetime | true | NULL | false | 发布时间 |
| storeup_number | int(55) | true | 0 | false | 收藏数 |
| discuss_number | int(55) | true | 0 | false | 评论数 |
订单生成表是采购交易的正式凭证表,记录已确认的订单信息,包括订单编号、商品明细、总价、合同信息、交易双方信息等。该表标志采购进入履约阶段,是订单执行、物流发货、收货确认的核心依据。
表4-7 订单生成表
|-----------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| dingdanbianhao | varchar(200) | true | NULL | false | 订单编号 |
| shangpintupian | longtext | true | | false | 商品图片 |
| gongyingshangzhanghao | varchar(200) | true | NULL | false | 供应商账号 |
| gongyingshangxingming | varchar(200) | true | NULL | false | 供应商姓名 |
| shangpinmingcheng | varchar(32) | true | NULL | false | 商品名称 |
| shangpinfenlei | varchar(56) | true | NULL | false | 商品分类 |
| danjia | double | true | NULL | false | 单价 |
| shuliang | int(55) | true | NULL | false | 数量 |
| zongjia | double | true | NULL | false | 总价 |
| caigouyuanzhanghao | varchar(200) | true | NULL | false | 采购员账号 |
| caigouyuanxingming | varchar(200) | true | NULL | false | 采购员姓名 |
| hetongxinxi | longtext | true | | false | 合同信息 |
| shengchengshijian | datetime | true | NULL | false | 生成时间 |
| shhf | longtext | true | | false | 回复内容 |
确认收货表用于记录订单到货后的验收信息,包含物流编号、收货时间、支付状态、商品信息等内容。该表是采购流程的最终环节,标志订单履约完成,实现采购业务的数据闭环。
表4-8 确认收货表
|-----------------------|--------------|--------------|-------------------|------------|------------|
| 字段名 | 数据类型 | 允许为空 | 默认值 | 主键 | 备注 |
| id | bigint(20) | false | | true | 主键 |
| addtime | timestamp | false | CURRENT_TIMESTAMP | false | 创建时间 |
| wuliubianhao | varchar(200) | true | NULL | false | 物流编号 |
| shangpintupian | longtext | true | | false | 商品图片 |
| gongyingshangzhanghao | varchar(200) | true | NULL | false | 供应商账号 |
| gongyingshangxingming | varchar(200) | true | NULL | false | 供应商姓名 |
| shangpinmingcheng | varchar(32) | true | NULL | false | 商品名称 |
| danjia | double | true | NULL | false | 单价 |
| shuliang | int(55) | true | NULL | false | 数量 |
| zongjia | double | true | NULL | false | 总价 |
| caigouyuanzhanghao | varchar(200) | true | NULL | false | 采购员账号 |
| caigouyuanxingming | varchar(200) | true | NULL | false | 采购员姓名 |
| querenshijian | datetime | true | NULL | false | 确认时间 |
| discuss_number | int(55) | true | 0 | false | 评论数 |
| ispay | varchar(200) | true | 未支付 | false | 是否支付 |
- 系统实现与测试
- 开发环境搭建
本系统基于B/S架构,采用Java语言进行后端开发,使用Spring Boot框架构建核心业务逻辑,前端采用Vue.js框架实现页面交互。数据库选用MySQL进行数据存储,并使用MyBatis作为持久层框架。开发工具为IntelliJ IDEA,项目管理采用Maven,系统运行环境为JDK 1.8,服务器部署于Tomcat容器中。
|---------|----------------------------------------------|
| 环境项 | 配置说明 |
| 服务器操作系统 | Windows Server 2019 |
| 应用服务器 | Apache Tomcat 9.0 |
| 数据库 | MySQL 8.0 |
| 测试工具 | Postman(接口测试)、Selenium(UI自动化测试)、JMeter(性能测试) |
| 浏览器 | Chrome 120+、Edge、Firefox |
| 移动端兼容性 | 微信内置浏览器、移动端Chrome |
-
- 关键功能实现代码展示
- 采购方
- 采购方注册登录功能实现
- 采购方
- 关键功能实现代码展示
该界面实现采购方的注册与登录功能,用户可通过用户名和密码进行身份验证,注册时需填写基本信息,系统对输入信息进行前端校验与后端合法性检查。

-
-
-
- 采购方个人中心管理功能实现
-
-
采购方可在个人中心查看并修改个人信息,包括联系方式、收货地址等,系统支持信息更新并实时保存至数据库,提升用户管理便捷性。

-
-
-
- 采购方发起询价单功能实现
-
-
采购方可根据采购需求向多个供应商发起询价单,系统支持选择供应商、设置报价截止时间,并自动生成询价记录,提升询价效率。

-
-
- 供应商
- 供应商注册登录功能实现
- 供应商
-
供应商通过注册功能填写企业信息,提交后由管理员审核,审核通过后可登录系统,登录过程采用加密验证,保障账户安全

-
-
-
- 供应商商品信息管理功能实现
-
-
供应商可对商品进行上架、下架、编辑等操作,系统支持批量导入与图片上传,方便供应商快速维护商品库。

-
-
- 系统管理员
- 管理员首页数据分析功能实现
- 系统管理员
-
管理员可查看平台整体运营数据,包括用户数量、订单总量、交易金额等,系统以图表形式展示,便于快速掌握平台动态。

-
-
-
- 管理员商品信息管理功能实现
-
-
管理员可对平台所有商品进行审核与下架操作,确保商品信息合规,支持按供应商与商品类别进行批量管理。

- 总结与展望
本系统围绕企业采购与供应商协同管理的实际需求,设计并实现了一个功能完善的采购协同平台。系统采用前后端分离架构,前端基于Vue.js,后端使用Spring Boot框架,结合MySQL与MyBatis,保障了系统的稳定性和可扩展性。系统全面覆盖采购方、供应商、管理员三大角色核心业务流程。采购方可完成需求提报、询价、订单跟踪、确认收货、论坛交流及智能客服等操作,实现采购全流程数字化管理。供应商可进行商品管理、报价返回、订单确认及发货物流等业务,提升了响应效率与协同能力。管理员具备用户管理、订单监管、公告发布及系统配置等权限,确保平台规范运行。
在测试阶段,项目制定了涵盖功能、接口、兼容性与性能的综合测试策略,核心业务流程通过率达95%以上,系统在功能完整性、交互体验与安全防护等方面均达到预期目标,具备上线条件。
本系统的创新之处在于将采购需求、询价比价、订单履约与物流跟踪等环节一体化整合,实现了业务协同的闭环管理。智能客服模块降低了人工咨询成本,论坛交流增强了用户互动与平台粘性。
尽管系统已基本实现预期功能,但仍存在不足:智能客服仅支持单轮问答,缺乏上下文理解能力;数据可视化分析功能较为基础,缺乏对采购趋势与供应商绩效的深度挖掘;移动端部分页面交互体验有待优化。
展望未来,系统可从三方面持续优化:一是引入大语言模型,构建具备多轮对话能力的智能客服;二是增强数据分析功能,搭建采购分析仪表板,辅助管理决策;三是完善移动端应用,开发独立App或小程序,提升使用便捷性。通过持续迭代,本系统有望从采购协同工具发展为企业供应链管理的核心平台,为数字化转型提供有力支撑。