原创

基于springboot2+vue2的纺织品企业财务管理系统

温馨提示:
本文最后更新于 2026年05月28日,已超过 12 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

1. 项目简介

纺织品企业财务管理系统,旨在为企业内部的员工、财务人员以及系统管理员提供一个线上财务信息管理平台。

系统主要功能包括:

  • 员工:可以申请报销、查看个人薪资、浏览公告、进行留言反馈。
  • 财务人员:负责审核员工的报销申请,管理公司的收费信息、支出信息以及为员工发放薪资。
  • 管理员:对整个系统进行后台管理,包括员工和财务人员信息管理、所有财务数据(报销、收费、支出、薪资)的增删改查、公告发布、留言回复以及各类基础数据(如报销类型、公告类型等)的配置。

通过该系统,企业可以实现财务流程的线上化、规范化,提升财务处理的效率和透明度。

2. 技术栈

  • 后端技术栈

    • 核心框架: Spring Boot 2.2.2.RELEASE
    • 持久层框架: MyBatis-Plus 2.3
    • 权限控制: Apache Shiro 1.3.2
    • 数据库: MySQL 5.7
    • 工具库: Hutool、Fastjson、Commons-lang3、Poi (用于Excel导入导出)
  • 前端技术栈:

    • 核心框架: Vue.js (基于vue/cli脚手架)
    • UI组件库: Element UI
    • HTTP请求: Axios
    • 图表: ECharts
    • 构建工具: Webpack

3. 详细介绍

3.1 功能模块

3.1.1 管理员 (users)

管理员拥有系统的最高权限,可以进行基础数据维护和业务数据管理。

  • 员工/财务人员管理:对公司的员工和财务人员信息进行增删改查,支持重置密码。
  • 报销信息管理:查看所有员工的报销申请,并进行审核、修改或删除。
  • 基础数据管理:管理系统中所有下拉框的选项数据,包括但不限于:
    • 报销类型(如招待费用、出差)
    • 公告类型
    • 收费类型
    • 支出类型
  • 公告信息管理:发布、修改、删除公司公告。
  • 留言管理:查看员工的留言并可以进行回复或删除。
  • 收支管理:管理所有的收费信息和支出信息,支持数据报表查看。
  • 薪资管理:管理所有员工的薪资发放记录,支持增删改查。

3.1.2 财务人员 (caiwurenyuan)

财务人员负责具体的财务流水处理和审核。

  • 报销信息管理:查看员工提交的报销单,并对状态为“待审核”的单据进行审核(同意或拒绝)。
  • 公告信息管理:查看公司发布的公告。
  • 收支管理:对公司的收费信息和支出信息进行增删改查。
  • 薪资管理:为员工添加、修改、删除薪资发放记录。

3.1.3 员工 (yuangong)

员工是系统的使用者,主要功能围绕个人财务和沟通。

  • 报销信息管理:提交新的报销申请,并查看自己历史报销单的审核状态和详情。
  • 公告信息管理:查看公司发布的公告。
  • 留言管理:向管理员或财务人员留言提问,并查看回复内容。
  • 薪资管理:查看自己每个月的薪资详情。

3.2 数据库设计

  • 用户表:

    • yuangong: 存储员工信息(账号、密码、姓名、手机号、身份证等)。
    • caiwurenyuan: 存储财务人员信息。
    • users: 存储管理员信息。
    • token: 存储用户登录的Token信息,用于身份验证。
  • 业务表:

    • baoxiao: 存储报销申请信息(报销名目、类型、金额、状态等)。
    • shoufeixinxi: 存储公司收费信息(收费名目、类型、预售金额、实收金额等)。
    • zhichuxinxi: 存储公司支出信息(支出名目、类型、金额等)。
    • xinzi: 存储员工薪资记录(对应员工、月份、金额)。
    • gonggao: 存储公司公告信息。
    • liuyan: 存储员工的留言和回复。
  • 辅助表:

    • dictionary: 字典表,用于存储各类下拉选项(如报销类型、性别等),实现了数据动态配置。

3.3 系统特色

  1. 角色权限分离: 系统清晰定义了管理员、财务人员、员工三个角色,菜单和按钮级别的权限控制分明。
  2. 数据字典: 通过dictionary表对系统中的常用选项进行管理,提高了系统的可维护性和扩展性,无需修改代码即可增加或修改选项。
  3. 审核流程: 报销申请实现了“员工提交 -> 财务审核”的简单工作流,状态明确(待审核/同意/拒绝)。
  4. 可视化报表: 集成了ECharts图表库,可以在后台对不同维度的数据进行统计展示。
  5. 工具集成: 集成了POI用于Excel文件的批量导入导出,方便数据迁移;集成了百度AI SDK,预留了人脸比对功能。

4. 部分代码

4.1 后端:报销信息控制器 (BaoxiaoController.java)

该控制器展示了系统处理HTTP请求的标准方式,包括分页查询、详情查询、保存、更新和删除。代码中通过从session中获取角色,实现了数据隔离(如员工只能看到自己的报销单)。

// 文件路径: ./qiyecaiwuguanli/src/main/java/com/controller/BaoxiaoController.java
package com.controller;

// ... 省略导入

@RestController
@Controller
@RequestMapping("/baoxiao")
public class BaoxiaoController {
    @Autowired
    private BaoxiaoService baoxiaoService;

    @Autowired
    private DictionaryService dictionaryService;

    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        String role = String.valueOf(request.getSession().getAttribute("role"));
        // 员工只能查看自己的报销单
        if("员工".equals(role))
            params.put("yuangongId",request.getSession().getAttribute("userId"));

        // ... 分页查询和字典转换
        PageUtils page = baoxiaoService.queryPage(params);
        List<BaoxiaoView> list =(List<BaoxiaoView>)page.getList();
        for(BaoxiaoView c:list){
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody BaoxiaoEntity baoxiao, HttpServletRequest request){
        String role = String.valueOf(request.getSession().getAttribute("role"));
        // 员工发起报销,自动关联当前登录员工ID
        if("员工".equals(role))
            baoxiao.setYuangongId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        // ... 校验并保存
        baoxiao.setInsertTime(new Date());
        baoxiao.setBaoxiaoYesnoTypes(1); // 新提交的申请状态默认为“待审核”
        baoxiaoService.insert(baoxiao);
        return R.ok();
    }
    // ...
}

4.2 前端:菜单和权限配置 (menu.js)

前端通过menu.js文件集中配置了不同角色可见的菜单列表以及每个菜单下可操作的按钮权限(如查看、新增、审核等),实现了前端的权限控制。

// 文件路径: ./qiyecaiwuguanli/src/main/resources/admin/admin/src/utils/menu.js
const menu = {
    list() {
        return [
            {
                roleName: "管理员",
                backMenu: [
                    {
                        menu: "财务人员管理",
                        child: [
                            {
                                "buttons": ["查看", "新增", "修改", "删除"],
                                "menu": "财务人员管理",
                                "tableName": "caiwurenyuan"
                            }
                        ]
                    },
                    // ...
                ]
            },
            {
                roleName: "财务人员管理",
                backMenu: [
                    {
                        menu: "报销信息管理",
                        child: [
                            {
                                "buttons": ["查看", "审核"], // 财务人员只有查看和审核权限
                                "menu": "报销信息管理",
                                "tableName": "baoxiao"
                            }
                        ]
                    },
                    // ...
                ]
            },
            {
                roleName: "员工",
                backMenu: [
                    {
                        menu: "报销信息管理",
                        child: [
                            {
                                "buttons": ["查看", "新增", "删除"],
                                "menu": "报销信息管理",
                                "tableName": "baoxiao"
                            }
                        ]
                    },
                    // ...
                ]
            }
        ]
    }
}
export default menu;

5. 部分截图

img1
img2
img3
img4
img5
img6
img7
img8
img9
img10
img11
img12
img13
img14
img15
img16
img17
img18
img19
img20
img21

6. 项目总结

本项目是一个功能较为完善的企业财务管理系统Demo,覆盖了企业财务管理中的报销、收支、薪资、信息发布等核心业务场景。系统采用了主流的Spring Boot + Vue技术栈,代码结构清晰,分层合理。

优点

  • 功能完整:涵盖了财务管理的多个方面,并实现了不同角色的权限隔离。
  • 易于维护:通过数据字典对可选项进行统一管理,提高了系统的灵活性。
  • 技术规范:后端遵循了Controller/Service/DAO的分层架构,前端使用了成熟的Vue+ElementUI组件库。

7.资源

https://fifteen.xiaobias.com/source/198

正文到此结束