基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】

博主介绍:⚡全栈开发工程师,精通Web前后端技术、数据库、架构设计。专注于Java技术领域和小程序领域的开发,毕业设计、课程设计项目中主要包括定制化开发、源代码、代码讲解、文档报告辅导、安装调试等

✅文末获取联系✅

目录

1 项目介绍

2 技术选型 

3 系统总体设计 

4 项目效果图

5 代码实现 

6 总结 

7 源码获取或咨询


1 项目介绍

随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,财务管理系统就是信息时代变革中的产物之一。

任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于java技术、springboot框架、B/S机构、Mysql数据库设计并实现了财务管理系统。系统主要包括首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理等功能模块。

本文首先介绍了财务管理技术的发展背景与发展现状,然后遵循软件常规开发流程,首先针对系统选取适用的语言和开发平台,根据需求分析制定模块并设计数据库结构,再根据系统总体功能模块的设计绘制系统的功能模块图,流程图以及E-R图。然后,设计框架并根据设计的框架编写代码以实现系统的各个功能模块。最后,对初步完成的系统进行测试,主要是功能测试、单元测试和性能测试。测试结果表明,该系统能够实现所需的功能,运行状况尚可并无明显缺点。 

2 技术选型 

此系统基于java语言,采用B/S架构模式,使用技术有SpringBoot+mybatis/mybatisplus+vue等,数据库使用的是MySQL,采用Maven构建工具,可使用开发软件有 idea/navicat/vscode,都能够正常运行。 

3 系统总体设计 

3.1系统功能模块设计 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第1张图片 

3.2 数据库概念结构设计

(1)员工管理E/R图如下所示: 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第2张图片

 (2)工资调整管理E/R图如下所示:

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第3张图片

(3)固定资产管理E/R图如下所示: 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第4张图片

 

3.3 数据库逻辑结构设计 

表1序时账

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

pingzhengdanhao

varchar

200

凭证单号

fapiao

varchar

200

发票

shouzhileixing

varchar

200

收支类型

zhaiyao

varchar

200

摘要

duifangkemu

varchar

200

对方科目

jine

float

金额

dengjishijian

date

登记时间

表2用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表3token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4年度利润

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

niandutongji

varchar

200

年度统计

zhuyingshouru

float

主营收入

zhuyingyewuchengben

int

主营业务成本

zhuyingyewushuijinjifujia

int

主营业务税金及附加

qitayewulirun

int

其他业务利润

yingyefeiyong

int

营业费用

guanlifeiyong

int

管理费用

caiwufeiyong

int

财务费用

touzishouyi

int

投资收益

butieshouyi

int

补贴收益

yingyewaishouru

int

营业外收入

yingyewaizhichu

int

营业外支出

suodeshui

int

所得税

jinglirun

int

净利润

dengjishijian

date

登记时间

4 项目效果图

 1、系统登录

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第5张图片 

2、管理员-员工管理 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第6张图片 

3、管理员-员工工资管理

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第7张图片 

4、管理员-部门管理 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第8张图片 

5、管理员-工资调整管理 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第9张图片 

6、管理员-序时账管理 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第10张图片 

7、管理员-固定资产管理

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第11张图片 

8、管理员-经营信息管理

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第12张图片 

9、管理员-统计报表

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第13张图片 

10、管理员-工资统计报表 

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第14张图片 

11、员工-工资管理

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第15张图片 

 

12、员工-工资调整管理

基于Java+SpringBoot+Vue财务管理系统的设计与实现 前后端分离【Java毕业设计·文档报告·代码讲解·安装调试】_第16张图片 

5 代码实现 

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;

/**
 * 计算机学姐
 */
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
	@Autowired
    private ConfigService configService;
	/**
	 * 上传文件
	 */
	@RequestMapping("/upload")
	public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
		if (file.isEmpty()) {
			throw new EIException("上传文件不能为空");
		}
		String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
		File path = new File(ResourceUtils.getURL("classpath:static").getPath());
		if(!path.exists()) {
		    path = new File("");
		}
		File upload = new File(path.getAbsolutePath(),"/upload/");
		if(!upload.exists()) {
		    upload.mkdirs();
		}
		String fileName = new Date().getTime()+"."+fileExt;
		File dest = new File(upload.getAbsolutePath()+"/"+fileName);
		file.transferTo(dest);
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq("name", "faceFile"));
			if(configEntity==null) {
				configEntity = new ConfigEntity();
				configEntity.setName("faceFile");
				configEntity.setValue(fileName);
			} else {
				configEntity.setValue(fileName);
			}
			configService.insertOrUpdate(configEntity);
		}
		return R.ok().put("file", fileName);
	}
	
	/**
	 * 下载文件
	 */
	@IgnoreAuth
	@RequestMapping("/download")
	public ResponseEntity download(@RequestParam String fileName) {
		try {
			File path = new File(ResourceUtils.getURL("classpath:static").getPath());
			if(!path.exists()) {
			    path = new File("");
			}
			File upload = new File(path.getAbsolutePath(),"/upload/");
			if(!upload.exists()) {
			    upload.mkdirs();
			}
			File file = new File(upload.getAbsolutePath()+"/"+fileName);
			if(file.exists()){
				/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
					getResponse().sendError(403);
				}*/
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

6 总结 

本系统所实现的是一个财务管理系统,该系统严格按照需求分析制作相关模块,并利用所学知识尽力完成,但是本人由于学识浅薄,无法真正做到让该程序可以投入市场使用,仅仅简单实现部分功能,希望日后还能改善。

本系统具有以下优点:

该系统具有较高的适用性,选用B/S结构,可以在绝大部分个人平台上使用该系统。

系统将用户权限进行划分,管理员与员工能看到及操作的信息不一样,两者具备不同的操作权限。

该系统操作界面简单明了,大部分人都可以正常使用。

但也存在以下问题需要改进:

运行时窗口不能被刷新,可以改进。

系统过于简单,显示的信息有限。

不能添加多个管理员账号,如果可以则将利于发展财务管理系统规模,便于财务管理信息集中管理。

7 源码获取或咨询

 

关注公众号:计算机编程吧

关注后 会不定时更新学习资源,发放福利哟!

感谢大家能够积极点赞、收藏、关注、评论哦 ,更多推荐:计算机毕业设计

如果大家有任何疑虑,请下方昵称位置详细咨询。

你可能感兴趣的:(计算机毕业设计,java,spring,boot,毕业设计,mysql,vue.js)