基于SpringBoot的财务管理系统的设计与实现

news2024/11/27 12:29:33

背景

财务管理系统能够通过互联网得到广泛的、全面的宣传,让尽可能多的员工了解和熟知财务管理系统的便捷高效,为管理者和员工提供了服务,节省人力、物力和时间,提高工作效率。

系统设计

为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该财务管理系统的功能结构图如下所示:

在这里插入图片描述

数据库设计

ER图

ER图是由实体及其关系构成的图,通过E/R图可以清楚地描述系统涉及到的实体之间的相互关系。在系统中对一些主要的几个关键实体如下图。

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

在这里插入图片描述
(2)工资调整管理
在这里插入图片描述
(3) 固定资产管理E/R图如下所示

在这里插入图片描述

数据库表设计

由于涉及的数据表较多,此处只展示部分数据表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统详细设计

管理员功能模块

管理员登录系统后,可以对首页,个人中心,员工管理,部门管理,员工工资管理,工资调整管理,资产类别管理,固定资产管理,经营信息管理,序时账管理,年度利润管理,系统管理等功能进行相应的操作管理,如图。

在这里插入图片描述
员工管理,在员工管理页面可以对索引,员工工号,员工姓名,图片,性别,部门,职位,联系方式,入职时间等内容进行详情,修改和删除等操作,如图。
在这里插入图片描述

员工功能模块

员工登录进入系统可以对首页,个人中心,员工工资管理,工资调整管理,系统管理等功能进行相应操作,如图。

在这里插入图片描述
个人中心,在个人信息页面通过填写员工工号,员工姓名,照片,性别,职位,联系方式,入职时间等内容进行个人信息修改操作,如图。

在这里插入图片描述
工资调整管理,在工资调整管理页面可以对索引,调整原因,调整额度,调整时间,员工工号,员工姓名,部门等内容进行详情操作,如图。

在这里插入图片描述

代码实现

由于代码较多,此处只展示部分代码。

年度利润管理

/**
 * 年度利润
 * 后端接口
 * @author 
 * @email 
 * @date 2022-04-02 16:46:23
 */
@RestController
@RequestMapping("/niandulirun")
public class NiandulirunController {
    @Autowired
    private NiandulirunService niandulirunService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NiandulirunEntity niandulirun,
		HttpServletRequest request){
        EntityWrapper<NiandulirunEntity> ew = new EntityWrapper<NiandulirunEntity>();
		PageUtils page = niandulirunService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, niandulirun), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NiandulirunEntity niandulirun, 
		HttpServletRequest request){
        EntityWrapper<NiandulirunEntity> ew = new EntityWrapper<NiandulirunEntity>();
		PageUtils page = niandulirunService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, niandulirun), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NiandulirunEntity niandulirun){
       	EntityWrapper<NiandulirunEntity> ew = new EntityWrapper<NiandulirunEntity>();
      	ew.allEq(MPUtil.allEQMapPre( niandulirun, "niandulirun")); 
        return R.ok().put("data", niandulirunService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NiandulirunEntity niandulirun){
        EntityWrapper< NiandulirunEntity> ew = new EntityWrapper< NiandulirunEntity>();
 		ew.allEq(MPUtil.allEQMapPre( niandulirun, "niandulirun")); 
		NiandulirunView niandulirunView =  niandulirunService.selectView(ew);
		return R.ok("查询年度利润成功").put("data", niandulirunView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NiandulirunEntity niandulirun = niandulirunService.selectById(id);
        return R.ok().put("data", niandulirun);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NiandulirunEntity niandulirun = niandulirunService.selectById(id);
        return R.ok().put("data", niandulirun);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NiandulirunEntity niandulirun, HttpServletRequest request){
    	niandulirun.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(niandulirun);
        niandulirunService.insert(niandulirun);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NiandulirunEntity niandulirun, HttpServletRequest request){
    	niandulirun.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(niandulirun);
        niandulirunService.insert(niandulirun);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NiandulirunEntity niandulirun, HttpServletRequest request){
        //ValidatorUtils.validateEntity(niandulirun);
        niandulirunService.updateById(niandulirun);//全部更新
        return R.ok();
    }
    }


工资调整管理

@RestController
@RequestMapping("/gongzidiaozheng")
public class GongzidiaozhengController {
    @Autowired
    private GongzidiaozhengService gongzidiaozhengService;


    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,GongzidiaozhengEntity gongzidiaozheng,
		HttpServletRequest request){
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("yuangong")) {
			gongzidiaozheng.setYuangonggonghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<GongzidiaozhengEntity> ew = new EntityWrapper<GongzidiaozhengEntity>();
		PageUtils page = gongzidiaozhengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongzidiaozheng), params), params));

        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,GongzidiaozhengEntity gongzidiaozheng, 
		HttpServletRequest request){
        EntityWrapper<GongzidiaozhengEntity> ew = new EntityWrapper<GongzidiaozhengEntity>();
		PageUtils page = gongzidiaozhengService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gongzidiaozheng), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( GongzidiaozhengEntity gongzidiaozheng){
       	EntityWrapper<GongzidiaozhengEntity> ew = new EntityWrapper<GongzidiaozhengEntity>();
      	ew.allEq(MPUtil.allEQMapPre( gongzidiaozheng, "gongzidiaozheng")); 
        return R.ok().put("data", gongzidiaozhengService.selectListView(ew));
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/538085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习用于医学预后-第二课第四周1-4节-使用线性和基于树的模型构建风险评估模型

今天起进入到第四周课程的学习&#xff0c;使用线性和基于树的模型构建风险评估模型 风险分数 本周&#xff0c;你将学习建立和评估生存预测模型的策略&#xff0c;这些模型将使你能够比较个体患者的风险。您将学习两个这样的模型:Cox比例风险和生存树。最后&#xff0c;您将…

【学习心得】VMware的下载安装与创建Ubuntu虚拟机

Python在Linux系统中的开发环境搭建① 1、VMware的下载安装 1.1 去官方网站下载软件&#xff1a;https://www.vmware.com/ 1.2 在工具中找到workstation pro 1.3 点击试用版本 1.4 点击下载 1.5 双击安装 1.6 下一步 1.7 接受许可 1.8 选择足够空间的磁盘进行安装、勾选增强…

chatgpt赋能Python-pycharm中如何设置滚动条

PyCharm中如何设置滚动条 介绍 PyCharm是一款由JetBrains开发的Python集成开发环境&#xff0c;提供了丰富的功能和工具&#xff0c;让Python开发更加高效和方便。其中一个重要的功能就是滚动条&#xff0c;它可以帮助我们在长篇代码中快速找到需要的部分&#xff0c;并浏览整…

Chrome浏览器更新失败的问题(chrome无法更新至最新版本怎么办)

报错1 如果在计算机上更新 Chrome 时遇到问题&#xff0c;您可能会看到以下错误消息&#xff1a; 更新失败&#xff1a;管理员已停用更新更新失败&#xff08;错误&#xff1a;3 或 11&#xff09;&#xff1a;检查更新时出错&#xff0c;无法访问更新服务器更新失败&#xf…

网络安全学习路线

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

chatgpt赋能Python-pycharm关联py文件

PyCharm关联Python文件的使用指南 PyCharm作为一款强大的Python开发工具&#xff0c;其集成的许多功能可以大大提高开发效率。其中之一就是PyCharm可以自动关联Python文件&#xff0c;让用户更加方便的进行Python程序的编写。本文将详细介绍PyCharm关联Python文件的使用方法及…

chatgpt赋能Python-pycharm快捷键

PyCharm快捷键大全&#xff1a;提高Python编程效率的秘密武器 在Python开发的过程中&#xff0c;PyCharm是被广泛使用的IDE之一。它可以帮助我们提高效率&#xff0c;省去不少重复性的工作&#xff0c;同时还具有强大的代码自动完成和调试功能。而在PyCharm中&#xff0c;有许…

软考-软件设计师

目录 一、计算机系统 1.1 CPU的功能有&#xff1a; 1.2 运算器的组成 1.3 控制器——不仅要保证程序的正确执行、还要能够处理异常事件 1.3.1 指令控制逻辑 1.4 计算机基本单位 1.5 进制的变换 1.5.1 进制加减法 1.6 原码、反码、补码、移码 1.7 浮点数 1.8 寻址 1…

chatgpt赋能Python-pycharm同一个程序开两个

PyCharm同一个程序开两个&#xff1a;提升编程效率的好帮手 作为一名有10年Python编程经验的工程师&#xff0c;我经常会使用PyCharm作为我的主要编程工具。而在日常的编程工作中&#xff0c;有时会遇到这样一个情况&#xff1a;需要在同一个程序中同时进行两个不同的操作。这…

C++二叉树中序非递归遍历(两种方法)

#include <stdio.h> #include <malloc.h> //树结构 typedef struct kl { int data; struct kl *lchild; struct kl *rchild; }bittree; //栈结构 typedef struct ji { int top; bittree **data; int size; }stack; //初始化栈 void in…

Linux 基金会开源教育及人才培养峰会来了

开源技术正在快速发展&#xff0c;在云计算、大数据、人工智能等领域逐步形成技术主流。作为一种新的软件生产方式&#xff0c;开源已经被列入“十四五”规划纲要。纲要提出&#xff0c;支持数字技术开源社区等创新联合体发展&#xff0c;完善开源知识产权和法律体系&#xff0…

10.从架构师角度理解MySQL性能优化和索引合并

MySQL性能调优 1. 查询性能优化1.1 什么是慢查询1.2 慢查询的配置1.3 慢查询解读分析1.3.1 日志模式1.3.2 慢查询分析mysqldumpshow 1.4 优化SQL查询方法论1.4.1 业务层--请求了不需要的数据&#xff1f;查询不需要的记录总是取出全部列重复查询相同的数据 1.4.2 执行层--是否在…

File和IO流

1、File 1.1、何为File&#xff1f; File类的对象代表操作系统的文件&#xff08;文件、文件夹&#xff09; File类提供了诸如&#xff1a;创建文件对象代表文件&#xff0c;获取文件信息&#xff08;大小、修改时间&#xff09;、删除文件、创建文件&#xff08;文件夹&…

chatgpt赋能Python-pandas归一化python

Pandas归一化Python教程 越来越多的数据分析和机器学习应用需要将数据归一化&#xff0c;以保证数据的统一性和可比性。Pandas是Python中最常用的数据处理库之一&#xff0c;它提供了许多常用的方法&#xff0c;包括数据归一化。本教程将介绍如何使用Pandas进行数据归一化&…

Springboot地方废物回收机构管理的设计与实现

背景 地方废物回收机构的需求和管理上的不断提升&#xff0c;地方废物回收机构管理的潜力将无限扩大&#xff0c;地方废物回收机构管理系统在业界被广泛关注&#xff0c;本系统及对此进行总体分析&#xff0c;将地方废物回收机构信息管理的发展提供参考。地方废物回收机构管理…

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测

回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测 目录 回归预测 | MATLAB实现基于贝叶斯线性回归(Bayesian Regression)的多变量输入回归预测预测效果基本介绍模型描述程序设计参考资料预测效果 基本介绍 Matlab实现基于贝叶斯线性回归(Bay…

为什么要放弃 $ 语法糖提案

《最新&#xff0c;Vue 中的响应性语法糖已废弃》 本文标题中的 $ 语法糖指的就是上文中的响应式语法糖 (Reactivity Transform)&#xff0c;那为什么不写 Reactivity Transform 呢&#xff1f;因为这个名实在是太长了… 大家觉得被废弃是因为分不清是正常变量还是响应式变量…

chatgpt赋能Python-pycharm关联anaconda

使用PyCharm关联Anaconda打造高效Python开发环境 PyCharm是一个流行的Python集成开发环境&#xff08;IDE&#xff09;&#xff0c;而Anaconda则是一个免费、开源的Python发行版。PyCharm与Anaconda的结合使得开发者能够在一个统一的环境中开发Python应用程序。本文将探讨如何…

Vivado综合属性系列之五 USE_DSP

目录 一、前言 二、USE_DSP 2.1 工程代码 2.2 结果 2.3 参考资料 一、前言 ​对于逻辑运算&#xff0c;加、减、乘、除等可以使用逻辑资源LUT实现&#xff0c;也可以使用专用的运算资源DSP来实现。在一些计算量较大时&#xff0c;使用DSP可以节省许多逻辑资源&#xff0c;…

【V2G】电动汽车接入电网优化调度研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…