☰
基于SpringBoot的企业资产管理系统毕业设计源码(源码+lw+部署文档+讲解等)
2026/10/8 8:27:00 网站建设 项目流程

博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业,有18年开发经验,长年从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。

一、研究目的

研究旨在通过构建基于SpringBoot框架的企业资产管理系统,以实现对企业固定资产、流动资产及无形资产的统一管理与实时监控,从而提升资产使用效率、降低运营成本并增强决策支持能力。系统设计将采用微服务架构与RESTful API,结合Spring Data JPA 对数据库进行高效访问,并通过Spring Security 实现细粒度权限控制,以满足不同角色在资产生命周期中的访问需求。为确保系统的可扩展性与可维护性,研究将引入Docker容器化部署与Kubernetes编排技术,使得应用能够在多节点环境下实现弹性伸缩与故障自愈。与此同时,系统将集成基于机器学习的资产预测模型,对资产折旧、维修周期及潜在风险进行预警,为企业管理层提供数据驱动的决策依据。最终,通过对比实验与案例验证,本研究期望证明基于SpringBoot的企业资产管理系统在性能、易用性与安全性方面相较传统信息化方案具有显著优势,并为后续行业应用提供可复制的技术路线。

二、研究意义

本研究所提出的基于SpringBoot的企业资产管理系统,具有显著的理论与实践意义。首先,在信息化时代背景下,企业资产管理面临着数据孤岛、流程冗余与安全隐患等挑战,而传统资产管理软件往往缺乏灵活性与可扩展性;通过采用SpringBoot微服务架构,本研究实现了系统的模块化拆分与高内聚低耦合设计,能够满足企业在业务规模扩大、业务类型多样化时的快速迭代需求,从而显著提升资产管理效率与数据准确性。其次,系统集成了Spring Security与JWT鉴权机制,为多角色访问提供细粒度权限控制,确保资产信息在共享与保密之间实现最佳平衡,降低因权限泄露导致的财务风险。再次,通过引入Docker容器化与Kubernetes编排技术,本研究实现了应用的弹性伸缩与故障自愈能力,为企业提供了高可用、低运维成本的部署方案,符合现代云原生架构的发展趋势。最后,系统嵌入机器学习预测模块,可对资产折旧率、维修周期及潜在风险进行实时预警,为企业决策层提供基于数据的精准支持,促进资产价值最大化与运营成本最小化。综上所述,本研究不仅为企业提供了一套高效、可扩展且安全可靠的资产管理解决方案,也为信息系统工程与软件架构领域提供了可借鉴的技术路径和经验总结。

三、国内外研究现状

国内外在企业资产管理系统领域的研究主要集中于三大方向:系统架构与技术实现、数据治理与安全控制以及智能化预测与决策支持。国外学者普遍采用微服务架构与容器化技术,以提高系统的可扩展性和运维效率。例如,基于SpringBoot的微服务框架已被广泛用于构建分布式资产管理平台,其通过Spring Cloud、Eureka、Zuul等组件实现服务发现、负载均衡与网关管理,显著降低了单点故障风险。国内研究则侧重于将传统企业资源计划(ERP)系统与现代云原生技术相结合,提出了基于Docker容器化部署的资产管理解决方案,并通过Kubernetes实现弹性伸缩与自动扩容,在多租户环境下保持高可用性。

在数据治理方面,国外研究强调统一元数据管理与实时数据同步。学者们通过构建统一的数据仓库和ETL流程,实现资产信息的全生命周期跟踪,并利用Kafka等消息中间件实现异步数据流。国内则更多关注于多源异构数据的集成与标准化,提出了基于RDBMS与NoSQL混合存储的资产数据平台,并通过数据质量评估模型提升数据可信度。安全控制方面,国外研究倾向于采用OAuth2.0、JWT以及RBAC机制,对资产信息进行细粒度访问控制;国内研究则在此基础上进一步引入基于区块链的不可篡改账本,实现资产交易与变更的可追溯性。

智能化预测与决策支持是近年来的热点。国外学者利用机器学习与深度学习技术,对资产折旧、维修周期和潜在风险进行预测,提出了基于时间序列分析的折旧模型和基于异常检测的故障预警系统。国内研究则侧重于将预测模型嵌入资产管理平台,构建面向业务决策的智能推荐引擎,并通过可视化仪表盘为管理者提供实时监控与决策支持。总体而言,国外研究更注重技术创新与理论深度,而国内研究则在系统集成与应用落地方面取得了显著进展。未来,结合云原生架构、数据治理和人工智能的综合解决方案将成为企业资产管理系统发展的主流趋势。

四、预期达到目标及解决的关键问题

本研究的预期目标在于构建一套基于SpringBoot框架的企业资产管理系统,该系统将实现资产全生命周期的统一管理与实时监控,提升资产利用率、降低运营成本,并为决策层提供数据驱动的支持。为实现此目标,系统将采用微服务架构与RESTful API设计,结合Spring Data JPA 对数据库进行高效访问,并通过Spring Security 实现细粒度权限控制,以满足不同角色在资产生命周期中的访问需求。与此同时,系统将集成Docker容器化部署与Kubernetes编排技术,使得应用能够在多节点环境下实现弹性伸缩与故障自愈,从而保证系统的高可用性与可维护性。最后,系统将嵌入基于机器学习的资产预测模型,对资产折旧、维修周期及潜在风险进行预警,为企业管理层提供精准决策依据。

在实现上述目标的过程中,研究将面临若干关键问题。首先,分布式微服务环境下的数据一致性与事务完整性是核心挑战之一,需要设计合适的分布式事务管理与补偿机制,以确保资产信息在多服务之间保持同步且不出现脏读或丢失。其次,高并发访问场景下的性能瓶颈必须得到有效缓解,需通过缓存策略、异步消息队列与数据库分库分表等手段提升系统吞吐量与响应速度。再次,资产信息的安全性与隐私保护要求严格的身份鉴权与权限细粒度控制,如何在满足业务灵活性的同时实现最小权限原则,是系统设计的重要考量。除此之外,系统需兼容企业现有的ERP或财务系统,数据迁移与接口对接过程中的格式转换与数据质量治理亦是不可忽视的问题。

针对智能化预测与决策支持功能,研究将探讨如何在保证模型准确性的前提下实现可解释性与可追溯性。资产折旧率、维修周期等预测模型的输入特征需要经过充分的数据清洗与特征工程,且模型训练过程需遵循可复现原则,以便后续审计与改进。与此同时,预测结果的可视化展示与业务规则的衔接也将是实现系统价值的重要环节,如何将模型输出转化为易于理解的决策建议,并嵌入到业务流程中,是实现系统落地效益的关键。

综上所述,本研究通过技术创新与系统集成相结合的方法,旨在提供一套高可用、可扩展且安全可靠的企业资产管理解决方案。通过解决分布式事务、性能瓶颈、安全控制与智能预测等关键问题,系统将为企业资产管理提供从数据采集、存储到分析决策的一体化支持,从而实现资产价值最大化与运营成本最小化的目标。

五、研究内容

本研究以构建基于SpringBoot的企业资产管理系统为核心目标,围绕系统架构设计、数据治理、安全控制与智能化决策支持四大模块展开整体研究。首先,在系统架构层面,研究采用微服务模式将资产登记、资产盘点、折旧计算、维修管理与报废处理等功能拆分为独立服务,每个服务通过Spring Cloud Netflix Eureka实现服务发现与注册,利用Zuul或Gateway实现统一网关路由,并通过Feign或RestTemplate完成跨服务调用;所有服务均使用Spring Data JPA对关系型数据库进行持久化访问,同时为高并发场景设计Redis缓存与消息队列(Kafka或RocketMQ)实现异步处理与解耦。其次,在数据治理层面,研究提出统一元数据管理框架,采用Apache Atlas或自研元数据仓库记录资产属性、变更历史与业务规则,并通过ETL流程将企业现有ERP系统的资产表与新系统进行同步,保证数据一致性;为提升数据质量,设计基于规则引擎的校验机制与异常检测模块,对异常数据进行标记并触发人工审核。第三,在安全控制层面,研究实现OAuth2.0+JWT双重鉴权体系,并结合Spring Security的细粒度权限管理实现基于角色与属性的访问控制;同时利用JWT在服务间传递身份信息,减少中心化认证服务器压力;在数据存储层面采用加密字段与传输层TLS保障资产信息安全。第四,在智能化决策支持层面,研究集成机器学习模型,对资产折旧率、维修周期与潜在风险进行预测;模型训练采用时间序列分析与监督学习相结合的方式,使用Python的scikit-learn或TensorFlow实现,并通过RESTful接口暴露预测结果;系统通过可视化仪表盘(基于Vue.js与ECharts)展示预测结果与业务指标,为管理层提供决策支持。最后,在运维与部署层面,研究将整个微服务体系容器化打包为Docker镜像,并使用Kubernetes进行编排,实现水平扩缩容、滚动升级与自愈;通过Prometheus与Grafana监控系统指标,结合ELK日志采集实现运维可视化。通过上述四大模块的协同设计,本研究旨在提供一套高可用、可扩展且安全可靠的企业资产管理解决方案,为企业资产生命周期管理与决策提供数据驱动与智能化支持。

六、需求分析

用户需求方面,企业资产管理系统的主要使用者包括资产管理员、财务人员、业务部门负责人以及高层决策者;每一类用户对系统的期望与关注点各不相同。资产管理员需要一个直观、易操作的界面,以便快速录入新资产、跟踪资产状态并生成盘点报告;他们希望系统能够支持多维度检索、批量导入导出以及自动生成折旧表,降低人工错误率并提升工作效率。财务人员则关注资产账务与税务合规,要求系统能够与企业的财务软件无缝对接,自动生成会计分录、支持税率变更和资产处置后的账务处理;他们还需要对资产负债表进行实时更新,并提供可审计的日志记录。业务部门负责人则更关注资产的可用性与成本控制,他们期望系统能够提供资产利用率分析、维修成本预测以及报废建议,帮助他们在预算制定和资源配置时做出精准决策。高层决策者则需要宏观视角的数据洞察,系统应能生成资产结构、折旧趋势以及投资回报率等关键指标的可视化仪表盘,以支持战略规划与风险评估。除此之外,所有用户都普遍期望系统具备安全可靠的身份鉴权机制、权限细粒度控制以及高可用的部署架构,以保障资产信息的机密性与完整性。

功能需求方面,系统必须实现资产全生命周期管理模块,包括资产登记、分类管理、属性维护、状态变更与报废处理;每一环节均需支持批量操作、版本追溯以及自动化审批流程,以满足企业内部治理要求。资产盘点模块应提供基于条码或RFID的快速扫描功能,支持现场离线数据上传与云端同步,并能够自动比对系统记录与实际库存,生成差异报告并触发异常处理。折旧管理模块需实现多种折旧方法(如直线法、双倍余额递减法等)的计算引擎,并支持税务折旧与账务折旧的分离;系统应能够根据资产类型、使用年限与残值率自动生成折旧计划,并在财务报表中实时反映。维修管理模块应包含维修申请、调度、执行与成本归集功能,支持多维度维修记录查询与成本分析;同时需与供应商管理模块集成,实现备件采购与库存补货的闭环。报废管理模块必须实现资产处置审批、资产评估、处置方式选择(如出售、捐赠、报废)以及最终的财务冲销处理,并在系统中生成处置报告。除此之外,系统还需提供数据治理与安全控制功能,包括统一元数据管理、数据质量监控、加密存储与传输、细粒度权限控制以及审计日志记录;并通过RESTful API向外部系统提供数据接口,以支持企业信息化生态的互联互通。最后,智能化决策支持模块应集成机器学习模型,对资产折旧率、维修周期与潜在风险进行预测,并将结果以可视化图表呈现给业务用户;系统还需支持自定义报表与仪表盘配置,以满足不同层级管理者的个性化需求。

七、可行性分析

经济可行性方面,本研究所提出的基于SpringBoot的企业资产管理系统在成本投入与收益预期上具备良好平衡。系统采用开源框架与云原生技术,避免了昂贵的许可费用,且容器化部署与Kubernetes编排能够在共享基础设施上实现资源池化,从而降低硬件采购与运维成本。软件开发周期预计为一年,人员投入主要为中高级Java开发工程师、前端开发者以及数据科学家,其人力成本相对传统ERP系统的定制化开发更为可控。系统上线后,企业将通过资产利用率提升、折旧与维修费用降低以及决策效率提升等方面获得显著经济效益。以往企业在资产管理中存在信息孤岛与手工盘点导致的误差,平均每年因资产闲置或过度维护产生的成本可占总运营成本的5%至10%;本系统通过实时监控与预测模型有望将此比例降低至2%至4%,从而在三年内实现投资回报率超过30%。综上所述,经济可行性评估显示项目具备可接受的资本支出与稳健的收益前景。

社会可行性方面,企业资产管理系统的推广将对企业内部治理、员工工作方式以及行业生态产生积极影响。首先,系统通过自动化流程与数字化记录降低了人工操作错误率,提升了数据透明度与可追溯性,有助于满足监管合规要求并增强公众信任。其次,系统为资产管理员提供直观的操作界面与批量处理功能,显著减轻其日常工作负担,提高职业满意度;对财务人员而言,系统自动生成会计分录与税务报表减少了手工录入错误,提升了工作效率。第三,系统的可视化仪表盘与预测模型为管理层提供及时、精准的数据支持,有助于优化资源配置与降低企业运营风险,从而提升整体竞争力。最后,系统的开放API与标准化数据接口将促进企业信息化生态的互联互通,为行业内其他业务系统(如采购、供应链管理)提供共享资产信息的平台,推动行业数字化升级。综上所述,社会可行性评估表明该项目能够满足企业内部需求、提升员工工作体验并对行业产生正向外溢效应。

技术可行性方面,本研究所采用的技术方案均基于成熟、广泛使用的开源框架与云原生技术,具备高度可靠性与可扩展性。SpringBoot作为微服务开发框架,提供了快速开发、自动配置与模块化管理能力;Spring Cloud Netflix Eureka实现服务发现与注册,Zuul或Gateway提供统一网关路由;Feign或RestTemplate简化跨服务调用;Redis缓存与Kafka消息队列分别解决高并发读写与异步解耦需求。数据库层面采用关系型数据库(如PostgreSQL)配合Spring Data JPA实现ORM映射,支持分库分表与读写分离;同时引入NoSQL(如MongoDB)存储非结构化资产日志,提升查询性能。安全层面通过OAuth2.0+JWT实现无状态鉴权,并结合Spring Security细粒度权限控制与加密存储,满足企业对数据机密性的严格要求。容器化与Kubernetes编排技术能够在云环境中实现弹性伸缩、滚动升级与自愈,降低运维成本。智能化决策支持模块采用Python的scikit-learn或TensorFlow训练模型,并通过RESTful接口集成至Java后端,确保模型可复现与可解释性。综上所述,技术可行性评估显示项目技术实现路径成熟、风险可控且易于后期维护与升级。

八、功能分析

系统功能模块设计围绕企业资产管理的全生命周期展开,逻辑上可分为核心业务模块、支持服务模块与平台治理模块。核心业务模块包括资产登记与分类、资产盘点、折旧与账务处理、维修与保养管理以及资产处置四大子系统;支持服务模块涵盖权限控制、安全审计、数据治理与集成以及智能预测分析;平台治理模块则负责系统监控、日志管理与运维自动化。每个模块均以微服务形式实现,便于解耦、扩展与维护。

资产登记与分类子系统负责资产信息的录入、更新与归档。其功能包括单条资产手工录入、批量导入(支持Excel、CSV格式)、条码/二维码扫描快速登记以及属性模板化管理;同时提供资产类型树结构,支持多级分类与自定义属性字段;系统通过校验规则确保录入数据完整性,并自动生成唯一资产编号。该子系统还提供资产状态管理功能,允许用户对资产进行启用、停用、报废等状态变更,并记录变更历史。

资产盘点子系统实现现场盘点与系统核对。其核心功能包括基于条码或RFID的现场扫描、离线数据上传与云端同步;支持多维度查询(按编号、类型、位置等)以及差异比对,自动生成盘点差异报告;在差异确认后,系统可触发补录或冲销流程。该子系统还提供盘点计划排程功能,支持周期性盘点与临时盘点任务的创建与提醒。

折旧与账务处理子系统负责资产折旧计算、账务分录生成与报表输出。其主要功能包括多种折旧方法(直线法、双倍余额递减法等)的配置;根据资产类型、使用年限与残值率自动生成折旧计划;在每个会计期间自动计算折旧金额并生成会计凭证,支持导出至财务系统的接口。系统还提供资产负债表、利润表等财务报表模板,并支持自定义报表设计与导出。

维修与保养管理子系统处理资产维护生命周期。功能包括维修申请创建、审批流程(多级审批)、工单分派与执行跟踪;系统可根据历史维修记录和预测模型自动生成预防性维护计划;同时管理备件库存、采购需求与供应商信息,并支持成本归集与报表分析。该子系统还提供维修成本趋势图、设备可靠性指标等可视化展示。

资产处置子系统处理资产报废、出售或捐赠等处置流程。其功能包括处置申请提交、评估与审批;根据处置方式自动生成冲销凭证并更新资产状态;同时支持资产处置价值评估、税务处理与报表生成。系统还提供处置历史查询与统计分析,帮助管理层评估资产处置策略效果。

权限控制与安全审计子系统负责用户身份鉴权、角色权限分配与操作日志记录。采用OAuth2.0+JWT实现无状态认证;通过Spring Security细粒度权限控制实现基于角色、部门和属性的访问限制;所有关键操作均写入审计日志,支持查询与导出。系统还提供多因素认证、密码策略与账号锁定机制,提升安全性。

数据治理与集成子系统处理多源数据的同步、质量管理与元数据维护。其功能包括ETL流程设计、数据清洗规则配置、异常检测与告警;支持与ERP、财务系统的接口对接,实现资产信息双向同步;同时构建元数据仓库,记录资产属性定义、变更历史与业务规则,便于后续查询与治理。

智能预测分析子系统利用机器学习模型对折旧率、维修周期与风险进行预测。其功能包括模型训练接口、特征工程配置、预测结果服务;通过RESTful API将预测结果返回给业务模块;系统提供可视化仪表盘展示预测趋势与警报,支持业务决策者制定预防性维护计划或资产处置策略。

监控与运维子系统负责系统健康状态监测、日志聚合与告警。其功能包括Prometheus指标采集、Grafana仪表盘展示、ELK日志收集与分析;支持自动化运维脚本(如滚动升级、故障恢复)以及容器编排的自愈策略,确保系统高可用。

通过上述模块的协同工作,系统实现了资产全生命周期管理的自动化与智能化,为企业提供准确、实时且可追溯的资产信息,支持财务合规、运营优化与战略决策。

九、数据库设计

资产表 Asset
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
asset_id | 资产编号 | 36 | VARCHAR(36) | PK |
name | 资产名称 | 255 | VARCHAR(255) ||
type_id | 资产类型编号 (FK) | 36|VARCHAR(36)|FK(AssetType.type_id)|
category_id|资产类别编号(FK)|36|VARCHAR(36)|FK(AssetCategory.category_id)|
serial_number|序列号/条码 | 100 | VARCHAR(100)||唯一约束
purchase_date|采购日期 | N/A | DATETIME||
purchase_cost|采购成本 | 18,2 | DECIMAL(18,2)||
depreciation_method|折旧方法 (枚举) | 20 | VARCHAR(20)||
useful_life_years|使用年限(年) | 3 | INT||
residual_value_rate|残值率(%) | 5,2 | DECIMAL(5,2)||
status_id|状态编号(FK) | 36 | VARCHAR(36)|FK(AssetStatus.status_id)|
location_id|位置编号(FK) | 36 | VARCHAR(36)|FK(AssetLocation.location_id)|
supplier_id|供应商编号(FK) | 36 | VARCHAR(36)|FK(Supplier.supplier_id)|
created_at|创建时间 | N/A | DATETIME||
updated_at|更新时间 | N/A | DATETIME||

资产类型表 AssetType
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
type_id|资产类型编号|36|VARCHAR(36)|PK|
name|类型名称|100|VARCHAR(100)||
description|类型描述|255|VARCHAR(255)||

资产类别表 AssetCategory
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
category_id|资产类别编号|36|VARCHAR(36)|PK|
name|类别名称|100|VARCHAR(100)||
description|类别描述|255|VARCHAR(255)||

资产状态表 AssetStatus
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
status_id|状态编号|36|VARCHAR(36)|PK|
name|状态名称(如在用、停用、维修中、报废)|50|VARCHAR(50)||

资产位置表 AssetLocation
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
location_id|位置编号|36|VARCHAR(36)|PK|
name|位置名称(如仓库A、机房B)|100|VARCHAR(100)||
address|地址详情|255|VARCHAR(255)||

供应商表 Supplier
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
supplier_id|供应商编号|36|VARCHAR(36)|PK|
name|供应商名称|150|VARCHAR(150)||
contact_name|联系人姓名|100|VARCHAR(100)||
contact_phone|联系电话|20|VARCHAR(20)||
contact_email|联系邮箱 | 100 | VARCHAR(100)||

盘点记录表 InventoryRecord
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
record_id|记录编号|36|VARCHAR(36)|PK|
asset_id|资产编号(FK)|36|VARCHAR(36)|FK(Asset.asset_id)|
scan_time|扫描时间|N/A | DATETIME||
scanned_by_user_id|扫描人编号(FK)|36 | VARCHAR(36)|FK(User.user_id)|
location_id|扫描位置(FK)|36 | VARCHAR(36)|FK(AssetLocation.location_id)

折旧计划表 DepreciationSchedule
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
schedule_id|计划编号|36|VARCHAR(36)|PK|
asset_id|资产编号(FK)|36|VARCHAR(36)|FK(Asset.asset_id)|
year_number|年份序号(1、2、…)|3 | INT||
depreciation_amount|年度折旧额 | 18,2 | DECIMAL(18,2)||
accumulated_depreciation|累计折旧额 | 18,2 | DECIMAL(18,2)||
effective_date|生效日期|N/A | DATETIME||

维修订单表 MaintenanceOrder
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
order_id|订单编号|36|VARCHAR(36)|PK|
asset_id|资产编号(FK)|36|VARCHAR(36)|FK(Asset.asset_id)|
request_date|申请日期|N/A | DATETIME||
status|订单状态(Pending、InProgress、Completed、Cancelled)|20 | VARCHAR(20)||
description|维修描述 | 500 | TEXT||

用户表 User
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
user_id|用户编号|36|VARCHAR(36)|PK|
username|用户名(唯一)|50|VARCHAR(50)|UNIQUE|
password_hash|密码哈希值|255|VARCHAR(255)||
email|电子邮件(唯一)|100 | VARCHAR(100)|UNIQUE|
phone |联系电话 |20 | VARCHAR(20)||

角色表 Role
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
role_id|角色编号|36|VARCHAR(36)|PK|
name|角色名称(如管理员、财务、维护)|50|VARCHAR(50)||

权限表 Permission
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
permission_id|权限编号|36|VARCHAR(36)|PK|
name|权限名称(如Asset.View、Asset.Edit)|100|VARCHAR(100)||

用户角色关联表 UserRole
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
user_role_id|关联编号|36|VARCHAR(36)|PK|
user_id|用户编号(FK)|36|VARCHAR(36)|FK(User.user_id)|
role_id|角色编号(FK)|36|VARCHAR(36)|FK(Role.role_id)

角色权限关联表 RolePermission
字段名(英文) | 说明(中文) | 大小 | 类型 | 主外键 | 备注
role_permission_id|关联编号|36|VARCHAR(36)|PK|
role_id|角色编号(FK)|36|VARCHAR(36)|FK(Role.role_id)|
permission_id|权限编号(FK)|36|VARCHAR(36)|FK(Permission.permission_id)

审计日志表 AuditLog
字段名(英文) | 说明(

十、建表语句

CREATE DATABASE IF NOT EXISTS asset_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE asset_management;

-- 资产类型表
CREATE TABLE IF NOT EXISTS AssetType (
type_id VARCHAR(36) NOT NULL,
name VARCHAR(100) NOT NULL,
description VARCHAR(255),
PRIMARY KEY (type_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 资产类别表
CREATE TABLE IF NOT EXISTS AssetCategory (
category_id VARCHAR(36) NOT NULL,
name VARCHAR(100) NOT NULL,
description VARCHAR(255),
PRIMARY KEY (category_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 资产状态表
CREATE TABLE IF NOT EXISTS AssetStatus (
status_id VARCHAR(36) NOT NULL,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (status_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 资产位置表
CREATE TABLE IF NOT EXISTS AssetLocation (
location_id VARCHAR(36) NOT NULL,
name VARCHAR(100) NOT NULL,
address VARCHAR(255),
PRIMARY KEY (location_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 供应商表
CREATE TABLE IF NOT EXISTS Supplier (
supplier_id VARCHAR(36) NOT NULL,
name VARCHAR(150) NOT NULL,
contact_name VARCHAR(100),
contact_phone VARCHAR(20),
contact_email VARCHAR(100),
PRIMARY KEY (supplier_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 资产表
CREATE TABLE IF NOT EXISTS Asset (
asset_id VARCHAR(36) NOT NULL,
name VARCHAR(255) NOT NULL,
type_id VARCHAR(36),
category_id VARCHAR(36),
serial_number VARCHAR(100) UNIQUE,
purchase_date DATETIME,
purchase_cost DECIMAL(18,2),
depreciation_method VARCHAR(20),
useful_life_years INT,
residual_value_rate DECIMAL(5,2),
status_id VARCHAR(36),
location_id VARCHAR(36),
supplier_id VARCHAR(36),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (asset_id),
CONSTRAINT fk_asset_type FOREIGN KEY (type_id) REFERENCES AssetType(type_id) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_asset_category FOREIGN KEY (category_id) REFERENCES AssetCategory(category_id) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_asset_status FOREIGN KEY (status_id) REFERENCES AssetStatus(status_id) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_asset_location FOREIGN KEY (location_id) REFERENCES AssetLocation(location_id) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_asset_supplier FOREIGN KEY (supplier_id) REFERENCES Supplier(supplier_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 盘点记录表
CREATE TABLE IF NOT EXISTS InventoryRecord (
record_id VARCHAR(36) NOT NULL,
asset_id VARCHAR(36) NOT NULL,
scan_time DATETIME DEFAULT CURRENT_TIMESTAMP,
scanned_by_user_id VARCHAR(36),
location_id VARCHAR(36),
PRIMARY KEY (record_id),
CONSTRAINT fk_inventory_asset FOREIGN KEY (asset_id) REFERENCES Asset(asset_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_inventory_user FOREIGN KEY (scanned_by_user_id) REFERENCES User(user_id) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_inventory_location FOREIGN KEY (location_id) REFERENCES AssetLocation(location_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 折旧计划表
CREATE TABLE IF NOT EXISTS DepreciationSchedule (
schedule_id VARCHAR(36) NOT NULL,
asset_id VARCHAR(36) NOT NULL,
year_number INT NOT NULL,
depreciation_amount DECIMAL(18,2),
accumulated_depreciation DECIMAL(18,2),
effective_date DATETIME,
PRIMARY KEY (schedule_id),
CONSTRAINT fk_depreciation_asset FOREIGN KEY (asset_id) REFERENCES Asset(asset_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 维修订单表
CREATE TABLE IF NOT EXISTS MaintenanceOrder (
order_id VARCHAR(36) NOT NULL,
asset_id VARCHAR(36) NOT NULL,
request_date DATETIME DEFAULT CURRENT_TIMESTAMP,
status VARCHAR(20) NOT NULL,
description TEXT,
PRIMARY KEY (order_id),
CONSTRAINT fk_maintenance_asset FOREIGN KEY (asset_id) REFERENCES Asset(asset_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 用户表(使用 User 为保留字需加反引号)
CREATE TABLE IF NOT EXISTS User (
user_id VARCHAR(36) NOT NULL,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
email VARCHAR(100) UNIQUE,
phone VARCHAR(20),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 角色表
CREATE TABLE IF NOT EXISTS Role (
role_id VARCHAR(36) NOT NULL,
name VARCHAR(50) NOT NULL,
PRIMARY KEY (role_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 权限表
CREATE TABLE IF NOT EXISTS Permission (
permission_id VARCHAR(36) NOT NULL,
name VARCHAR(100) NOT NULL,
PRIMARY KEY (permission_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 用户角色关联表
CREATE TABLE IF NOT EXISTS UserRole (
user_role_id VARCHAR(36) NOT NULL,
user_id VARCHAR(36) NOT NULL,
role_id VARCHAR(36) NOT NULL,
PRIMARY KEY (user_role_id),
CONSTRAINT fk_userrole_user FOREIGN KEY (user_id) REFERENCES User(user_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_userrole_role FOREIGN KEY (role_id) REFERENCES Role(role_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 角色权限关联表
CREATE TABLE IF NOT EXISTS RolePermission (
role_permission_id VARCHAR(36) NOT NULL,
role_id VARCHAR(36) NOT NULL,
permission_id VARCHAR(36) NOT NULL,
PRIMARY KEY (role_permission_id),
CONSTRAINT fk_rolepermission_role FOREIGN KEY (role_id) REFERENCES Role(role_id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_rolepermission_permission FOREIGN KEY (permission_id) REFERENCES Permission(permission_id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 审计日志表
CREATE TABLE IF NOT EXISTS AuditLog (
audit_id VARCHAR(36) NOT NULL,
user_id VARCHAR(36),
action VARCHAR(255) NOT NULL,
table_name VARCHAR(100),
record_id VARCHAR(36),
old_value TEXT,
new_value TEXT,
ip_address VARCHAR(45),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (audit_id),
CONSTRAINT fk_audit_user FOREIGN KEY (user_id) REFERENCES User(user_id) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

-- 索引(根据业务查询频率添加)
CREATE INDEX idx_asset_type ON Asset(type_id);
CREATE INDEX idx_asset_category ON Asset(category_id);
CREATE INDEX idx_asset_status ON Asset(status_id);
CREATE INDEX idx_asset_location ON Asset(location_id);
CREATE INDEX idx_asset_supplier ON Asset(supplier_id);

CREATE INDEX idx_inventory_asset ON InventoryRecord(asset_id);
CREATE INDEX idx_inventory_user ON InventoryRecord(scanned_by_user_id);
CREATE INDEX idx_inventory_location ON InventoryRecord(location_id);

CREATE INDEX idx_depreciation_asset ON DepreciationSchedule(asset_id);

CREATE INDEX idx_maintenance_asset ON MaintenanceOrder(asset_id);

CREATE INDEX idx_userrole_user ON UserRole(user_id);
CREATE INDEX idx_userrole_role ON UserRole(role_id);

CREATE INDEX idx_rolepermission_role ON RolePermission(role_id);
CREATE INDEX idx_rolepermission_permission ON RolePermission(permission_id);

CREATE INDEX idx_audit_user ON AuditLog(user_id);

文章下方名片联系我即可~大家点赞、收藏、关注、评论啦 、查看下方👇🏻获取联系方式👇🏻

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询