欢迎光临
我们一直在努力

Python+Django实战|企业固定资产管理系统:资产建档、领用归还、巡检维护、资产折旧、报废审批、盘点台账、数据统计

一、项目背景与痛点

企事业单位、集团公司、园区办公场景中,电脑、打印机、办公桌椅、仪器设备、安防器材等固定资产数量庞大,是企业重要的有形资产。目前多数中小企业仍采用纸质台账、Excel表格管理固定资产,随着资产数量增加、人员流动、设备频繁调动,传统管理模式暴露出大量问题,核心痛点如下:

  • 资产档案零散,信息追溯困难:纸质台账易破损、丢失,Excel多文件分散存储,无法快速查询资产型号、采购时间、存放位置、使用人等基础信息;
  • 领用归还流程混乱:员工借用资产仅做口头登记,无标准化流程,资产去向不明,离职时难以追回设备;
  • 资产折旧无法量化:办公设备、仪器存在使用损耗,传统方式无法自动计算资产折旧、剩余价值,财务核算缺少精准数据;
  • 日常巡检缺失:设备故障、老化无法及时发现,故障资产继续使用易引发安全隐患,也无统一巡检记录;
  • 报废流程不规范:资产达到使用年限或彻底损坏后,无线上审批流程,随意报废造成资产流失;
  • 人工盘点效率极低:定期盘点依靠人工逐一核对,耗时久、误差大,盘点结果无法自动生成台账报表;
  • 权限划分模糊:普通员工可随意修改资产数据,核心资产信息存在被误改、篡改风险。

针对传统固定资产管理的各类弊端,本次基于Python+Django4.2+MySQL+资产折旧算法+二维码生成搭建轻量化企业固定资产管理系统,实现资产分类建档、人员领用、归还登记、日常巡检、自动折旧、报废审批、定期盘点、台账导出、数据统计全套闭环能力。本项目开辟企业行政资产管控全新赛道,和日志、天气、智能在线考试、智能图书、网盘、考勤、会议室、问卷、招聘、二手、美食、进销存、租赁等往期所有项目业务、功能、代码完全无重复。

二、核心目标与定位

本项目核心目标:搭建固定资产全生命周期数字化管理平台,实现资产分类建档→信息录入→人员领用/归还→日常巡检维护→自动计提折旧→线上报废审批→定期盘点核对→台账报表导出→资产数据分析完整闭环,彻底替代纸质台账与Excel,实现企业固定资产可查、可管、可追溯、可核算。

项目精准定位:面向政企单位、中小企业、园区的行政类管理系统,采用Django原生MVT架构,部署简单、服务器资源占用低;划分超级管理员、资产管理员、普通员工三类权限角色,数据与操作权限严格隔离;适配行政部、财务部、技术部联合使用场景,主打流程标准化、数据精准化、全链路可追溯、报表自动化。

核心设计理念:资产档案标准化、领用流程规范化、折旧计算自动化、报废审批流程化、盘点数据可视化,解决传统资产管理混乱、核算不准、盘点低效的核心问题。


三、整体技术方案

项目基于Django原生MVT分层架构开发,MySQL存储资产、分类、领用、巡检、折旧、报废全量业务数据,后端封装固定资产折旧算法,集成二维码生成能力用于现场盘点,自定义状态枚举管控资产全生命周期,借助ORM聚合查询+ECharts实现数据统计与可视化,自定义中间件完成角色权限拦截。整体分层架构流程图如下:

┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 资产建档层 │────▶│ 领用归还层 │────▶│ 日常巡检层 │────▶│ 资产折旧层 │
│ 分类管理、资产信息录入、二维码生成 │ 员工申请、管理员审核、归还登记 │ 故障上报、维修记录、状态更新 │ 按年限自动计算折旧与剩余价值 │
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 报废审批层 │────▶│ 定期盘点层 │────▶│ 台账导出层 │
│ 报废申请、多级审批、资产注销 │ 现场盘点、数据核对、差异标记 │ 盘点台账、资产报表Excel导出 │
│ │ │
▼ ▼
┌─────────────┐
│ 数据统计层 │
│ 资产总量、品类占比、折旧汇总图表统计 │


┌─────────────────────────────────────────────────────────────────────────┐
│ 底层技术底座 │
│ – 后端框架:Python3.11 + Django4.2 原生MVT架构 │
│ – 数据存储:MySQL 存储资产全生命周期所有业务数据 │
│ – 算法能力:直线折旧法实现固定资产价值计算 │
│ – 工具集成:二维码生成库,生成资产唯一标识用于现场盘点 │
│ – 状态管理:自定义枚举,管控资产在用/闲置/维修/报废全状态 │
│ – 权限体系:多角色中间件,区分管理员与员工操作权限 │
│ – 文件导出:openpyxl实现资产台账、盘点报表Excel导出 │
│ – 数据可视化:ECharts 展示资产品类、折旧、占用占比图表 │
└─────────────────────────────────────────────────────────────────────────

完整技术栈清单:

  • Web后端:Python 3.11、Django 4.2 原生MVT轻量化架构
  • 数据库:MySQL 8.0,结构化存储资产、人员、流程、报表数据
  • 算法模块:直线折旧算法,自动计算资产月折旧额、剩余价值
  • 二维码生成:第三方库生成资产专属二维码,适配线下盘点
  • 状态管控:自定义枚举类,管理资产全生命周期状态
  • 权限控制:自定义中间件,实现三级角色权限隔离
  • 报表导出:openpyxl库,生成Excel资产台账与盘点报表
  • 数据可视化:ECharts 完成资产分布、折旧数据图表展示

四、核心能力模块详解

1. 资产分类与档案管理模块

搭建标准化资产体系,完成基础信息建档,为全流程管理提供数据支撑:

  • 多级分类:按照办公设备、电子数码、家具家电、仪器器材、安防设备划分一级/二级分类;
  • 完整档案:记录资产名称、型号、规格、采购价格、采购日期、使用年限、存放地点;
  • 唯一标识:每台资产生成独立编号+专属二维码,线下扫码快速查询档案;
  • 资产状态:区分闲置、在用、维修、报废四大基础状态。

2. 资产领用与归还模块(核心亮点)

标准化线上流程,解决资产去向不明、借用无记录的问题:

  • 领用申请:员工选择资产、填写使用事由、申请借用时长,提交线上申请;
  • 多级审核:资产管理员审核申请,通过后方可领取设备;
  • 归还登记:使用完毕后线上提交归还记录,管理员核验并更新资产状态;
  • 领用台账:每笔借用、归还记录永久留存,人员离职可快速核对资产。

3. 日常巡检与维修模块

建立定期巡检机制,及时发现故障资产,延长设备使用寿命:

  • 巡检计划:管理员制定月度/季度巡检任务,分配巡检人员;
  • 故障上报:巡检中发现设备故障,在线填报故障类型、故障描述;
  • 维修登记:记录维修人员、维修时长、维修费用、修复结果;
  • 状态联动:维修完成后自动将资产从“维修”切换为“在用/闲置”状态。

4. 资产折旧计算模块

基于财务直线折旧法,自动核算资产损耗,支撑财务成本核算:

  • 折旧规则:根据采购价、规定使用年限,自动计算月折旧金额;
  • 动态计算:按月更新资产当前剩余价值,无需人工核算;
  • 折旧台账:单独汇总所有资产折旧明细,可按部门、分类筛选;
  • 到期提醒:资产达到规定使用年限时,自动高亮提醒。

5. 资产报废审批模块

规范资产报废流程,杜绝随意处置固定资产:

  • 报废申请:针对老化、损坏无维修价值的资产,提交报废申请与原因;
  • 多级审批:资产管理员+财务人员逐级审核,审批通过方可执行报废;
  • 资产注销:审批完成后,资产状态变更为报废,不再参与领用、盘点;
  • 报废台账:统一归档所有报废资产记录,便于财务对账。

6. 定期盘点管理模块

替代人工盘点,提升核对效率,自动标记账实差异:

  • 盘点任务:管理员发起盘点任务,划定盘点范围与时间;
  • 扫码盘点:结合资产二维码,线下扫码快速核对实物与系统数据;
  • 差异标记:系统自动比对账面数量与实物数量,标记盘盈、盘亏资产;
  • 盘点归档:盘点结果永久保存,形成完整盘点报告。

7. 台账与报表导出模块

满足行政、财务办公归档需求,一键生成标准化报表:

  • 资产总台账:导出全单位所有资产明细,包含价格、状态、使用人;
  • 领用/报废报表:单独导出借用记录、报废审批单据;
  • 折旧报表:导出月度/年度资产折旧汇总表;
  • 盘点报告:自动生成盘点差异报告,支持离线打印归档。

8. 数据统计分析模块

多维度可视化分析,为资产采购、运维提供决策依据:

  • 总量统计:统计资产总数、在用数、闲置数、维修数、报废数;
  • 品类占比:饼图展示各类资产数量、价值占比;
  • 部门分布:统计各部门领用资产规模;
  • 折旧趋势:按月展示整体资产折旧金额变化。

五、创新价值与亮点

  • 资产全生命周期管控:从采购建档、领用、巡检、折旧、报废、盘点实现一站式闭环管理,全流程可追溯;
  • 财务级自动折旧计算:采用通用直线折旧算法,数据精准对接财务核算,告别人工算账;
  • 二维码联动线下场景:资产专属二维码适配现场巡检、盘点,线上线下数据打通;
  • 多级审批流程:领用、报废均设置线上审批,流程规范,规避资产流失风险;
  • 多报表自动导出:覆盖资产、盘点、折旧、各类办公报表,满足政企归档要求。

  • 六、应用前景与落地场景

    • 中小型企业行政管控:企业办公电脑、家具、设备统一管理,适配行政+财务联合办公;
    • 机关/事业单位:单位国有固定资产规范化管理,满足审计、盘点要求;
    • 产业园区/写字楼
    • :园区公共设备、配套资产集中管控;
    • 科研实验室:实验仪器、精密设备建档、巡检、折旧管理;
    • 毕业设计/求职项目:政企行政类管理系统,业务场景专业,差异化优势显著。

    七、完整代码结构示例

    1. 项目整体目录结构

    djangoassetsmanage/
    ├── manage.py
    ├── assets_project/ # 项目全局配置
    │ ├── settings.py # 数据库、折旧规则、二维码、导出配置
    │ ├── urls.py # 全局路由分发
    │ └── middleware.py # 角色权限拦截中间件
    ├── apps/ # 模块化业务拆分
    │ ├── user_role/ # 用户、角色、部门权限模块
    │ ├── assets_category/ # 资产多级分类模块
    │ ├── assets_base/ # 资产建档、二维码生成模块
    │ ├── assets_borrow/ # 领用、归还、审批模块
    │ ├── assets_check/ # 巡检、维修登记模块
    │ ├── assets_depreciate/ # 资产折旧计算模块
    │ ├── assets_scrap/ # 报废申请、多级审批模块
    │ ├── assets_inventory/ # 定期盘点、差异核对模块
    │ └── report_export/ # 各类台账、报表导出模块
    ├── core/ # 公共工具类
    │ ├── depreciate_calc.py # 直线折旧算法工具
    │ ├── qr_code_gen.py # 资产二维码生成工具
    │ ├── excel_export.py # Excel报表生成工具
    │ └── status_check.py # 资产状态校验工具
    ├── static/ # 样式、ECharts、前端脚本
    ├── templates/ # 前后台页面模板
    ├── media/ # 二维码、资产图片存储目录
    ├── requirements.txt # 项目依赖包
    └── readme.md # 部署、使用文档
    </pre>

    ### 2. 核心可运行代码片段
    #### 示例1:资产分类、资产主模型、领用记录模型
    ```python
    from django.db import models
    from django.contrib.auth.models

    # 资产状态枚举
    ASSETS_STATUS = (
    ("idle", "闲置"),
    ("using", "在用"),
    ("repair", "维修中"),
    ("scrap", "已报废"),
    )
    # 领用状态枚举
    BORROW_STATUS = (
    ("apply", "待审核"),
    ("pass", "领用中"),
    ("back", "已归还"),
    ("reject", "申请驳回"),
    )

    class AssetsCategory(models.Model):
    """资产分类模型"""
    cat_name = models.CharField(max=50, verbose_name="分类名称")
    parent_cat = models.ForeignKey("self", null=True, blank=True, on_delete=models.SET_NULL, verbose_name="父分类")
    create_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
    return self.cat_name

    class AssetsInfo(models.Model):
    """固定资产主模型"""
    assets_code = models.CharField(max=32, unique=True, verbose_name="资产编号")
    category = models.ForeignKey(AssetsCategory, on_delete=models.CASCADE, verbose_name="所属分类")
    assets_name = models.CharField(max=100, verbose_name="资产名称")
    model = models.CharField(max=80, blank=True, verbose_name="型号规格")
    buy_price = models.DecimalField(max_digits=10, decimal_places=2, verbose_name="采购单价")
    buy_date = models.DateField(verbose_name="采购日期")
    use_years = models.IntegerField(verbose_name="规定使用年限(年)")
    location = models.CharField(max=100, verbose_name="存放地点")
    status = models.CharField(max=10, choices=ASSETS_STATUS, default="idle", verbose_name="资产状态")
    residual_value = models.DecimalField(max_digits=10, decimal_places=2, default=0, verbose_name="当前剩余价值")
    create_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
    return f"{self.assets_code}{self.assets_name}"

    class AssetsBorrow(models.Model):
    """资产领用归还记录"""
    assets = models.ForeignKey(AssetsInfo, on_delete=models.CASCADE, verbose_name="关联资产")
    borrow_user = models.ForeignKey(User, related="borrow_user", on_delete=models.CASCADE, verbose_name="领用人")
    borrow_reason = models.TextField(verbose_name="领用事由")
    borrow_time = models.DateTime(verbose_name="领用时间")
    expect_back_time = models.DateTime(verbose_name="预计归还时间")
    audit_user = models.ForeignKey(User, related="audit_user", null=True, blank=True, on_delete=models.SET_NULL, verbose_name="审核人")
    borrow_status = models.CharField(max=10, choices=BORROW_STATUS, default="apply", verbose_name="领用状态")
    back_time = models.DateTime(null=True, blank=True, verbose_name="实际归还时间")
    create_time = models.DateTime(auto_now_add=True)

    示例2:直线折旧算法工具类(core/depreciate_calc.py)

    from datetime import datetime
    from django.db.models import F

    class DepreciateCalc:
    """固定资产直线折旧计算工具"""
    @classmethod
    def calc_month_depreciate(cls, buy_price, use_years):
    """计算月折旧额"""
    total_month = use_years * 12
    if total_month == 0:
    return 0
    return round(float(buy_price) / total_month, 2)

    @classmethod
    def auto_update_residual(cls, assets_obj):
    """自动更新资产剩余价值"""
    buy_dt = assets.buy_date
    now_dt = datetime.now().date()
    # 计算已使用月份
    use_month = (now_dt.year buy_dt.year) * 12 + (now_dt.month buy_dt.month)
    month_dep = cls.calc_month_depreciate(assets.buy_price, assets.use_years)
    total_dep = round(use_month * month_dep, 2)
    new_residual = round(float(assets.buy_price) total_dep, 2)
    # 剩余价值最低为0
    if new_residual < 0:
    new_residual = 0
    # 数据库更新
    assets_obj.residual_value = new_residual
    assets_obj.save()
    return new_residual

    示例3:资产领用申请核心视图

    from django.views import View
    from django.contrib.auth.decorators import login_required
    from django.utils.decorators import method_decorator
    from django.shortcuts import redirect
    from django.contrib import messages
    from apps.assets_base.models import AssetsInfo
    from apps.assets_borrow.models import AssetsBorrow

    @method_decorator(login_required, name="dispatch")
    class AssetsBorrowView(View):
    def post(self, request):
    assets_id = request.POST.get("assets_id")
    borrow_reason = request.POST.get("borrow_reason")
    borrow_time = request.POST.get("borrow_time")
    expect_back = request.POST.get("expect_back_time")

    # 校验资产是否存在且闲置
    try:
    assets = AssetsInfo.objects.get(id=assets_id, status="idle")
    except Assets.DoesNotExist:
    messages.error("资产不存在或当前不可领用!")
    return redirect("assets_list")

    # 新增领用申请
    AssetsBorrow.objects.create(
    assets=assets,
    borrow_user=request.user,
    borrow_reason=borrow_reason,
    borrow_time=borrow_time,
    expect_back_time=expect_back
    )
    messages.success("领用申请提交成功,请等待管理员审核!")
    return redirect("borrow_list")


    八、总结与展望

    本篇博客聚焦政企固定资产全生命周期管理全新赛道,基于Python+Django搭建专业资产管控系统,和日志、天气、在线考试、智能图书、网盘、考勤、会议室、问卷、招聘、二手、美食、进销存、租赁等所有往期项目完全独立。项目核心融合直线折旧算法、二维码生成、多级审批、盘点核对、Excel报表导出等技术,贴合企业、机关、实验室真实行政与财务办公场景,业务专业性强,代码落地价值高。

    系统覆盖资产建档、领用、巡检、折旧、报废、盘点、报表全流程,既可以作为学习Django算法集成、流程审批、文件导出的优质案例,也是毕业设计、求职简历中辨识度极高的政企类实战项目。

    后续迭代规划

  • 新增资产维保费用统计,汇总维修成本,辅助资产性价比分析;
  • 接入短信提醒,领用审核、资产到期、盘点任务自动推送通知;
  • 新增资产调拨功能,支持跨部门资产转移并留存调拨记录;
  • 开发移动端扫码盘点页面,提升现场盘点作业效率。

  • 赞(0)
    未经允许不得转载:171主机测评 » Python+Django实战|企业固定资产管理系统:资产建档、领用归还、巡检维护、资产折旧、报废审批、盘点台账、数据统计
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址