当前位置: 首页 > news >正文

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

背景

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

系统设计

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

在这里插入图片描述

数据库设计

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 {@Autowiredprivate 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 {@Autowiredprivate 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));}

相关文章:

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

背景 财务管理系统能够通过互联网得到广泛的、全面的宣传&#xff0c;让尽可能多的员工了解和熟知财务管理系统的便捷高效&#xff0c;为管理者和员工提供了服务&#xff0c;节省人力、物力和时间&#xff0c;提高工作效率。 系统设计 为了更好的去理清本系统整体思路&#…...

使用OpenCV进行肺炎诊断检测

肺炎是一种由感染引起的严重呼吸道疾病&#xff0c;特别是在高危人群中&#xff0c;可能会出现危及生命的并发症。必须尽快诊断和治疗肺炎&#xff0c;以最大限度地提高患者康复的机会。 诊断过程并不容易&#xff0c;需要一些医学实验室工具和先进的医疗技能&#xff0c;但我们…...

北华大学第九届程序设计竞赛 题解

5.14和队友VP一场&#xff0c;第二次VP&#xff0c;状态明显比第一次好很多&#xff0c;总共A了7题&#xff0c;基本是能做出来的都做出来了&#xff0c;最后还剩下接近2小时的时间。。。。。 A "北华"有几何 思路&#xff1a;数图片中“北华”的数量&#xff0c;直…...

【Java算法题】剑指offer_01数据结构

前言 刷题链接&#xff1a; https://www.nowcoder.com/exam/oj/ta?page2&tpId13&type265 1. 链表 JZ24 反转链表 思路&#xff1a;基本操作&#xff0c;如下所示。 /* public class ListNode {int val;ListNode next null;ListNode(int val) {this.val val;} }…...

最简单配置jenkins容器使用宿主机的docker方法

构建镜像和发布镜像到harbor都需要使用到docker命令。而在Jenkins容器内部安装Docker官方推荐直接采用宿主机带的Docker即可 设置Jenkins容器使用宿主机Docker 设置宿主机docker.sock权限 chown root:root /var/run/docker.sock chmod orw /var/run/docker.sock 添加数据卷 v…...

Android aidl及binder基础知识巩固

作者&#xff1a;义华 1、什么是binder binder是android framework提供的&#xff0c;用于跨进程方法调用的机制&#xff0c;具有安全高效等特点。 我们知道&#xff0c;在 Android 系统中&#xff0c;每个应用程序都运行在一个独立的进程中&#xff0c;各个进程之间需要进行…...

[日记]LeetCode算法·二十五——二叉树⑤ AVL树(插入+删除)附代码实现

本章的代码实现基于上一篇BST与优先队列的基类进行平衡二叉树&#xff0c;即AVL树。 文章目录 AVL的概念AVL查询效率AVL的插入1.插入节点2.更新平衡因子BF3.旋转调整树的结构3.1 LL 右旋3.2 RR 左旋3.3 LR 左右双旋3.4 RL 右左双旋 4 插入总结 AVL的删除1.寻找删除节点2.更新平…...

flink-1.13.6 例子

-------------------------------------------------------------- flink版本: flink-1.13.6 [rootmaster bin]# pip3 list | grep flink WARNING: Ignoring invalid distribution -andas (/usr/local/python38/lib/python3.8/site-packages) apache-flink 1.13.0 a…...

Go语音基于zap的日志封装

zap日志封装 Zap是一个高性能、结构化日志库&#xff0c;专为Go语言设计。它由Uber开源&#xff0c;并且在Go社区中非常受欢迎。它的设计目标是提供一个简单易用、高效稳定、灵活可扩展的日志系统。 以下是Zap的一些主要特点&#xff1a; 1.高性能&#xff1a;Zap的性能非常出…...

可持续能源技术具有改变世界的潜力,并且已经在多个方面展现出积极的影响。

可持续能源技术的发展在当今全球面临的气候变化和能源安全挑战中扮演着至关重要的角色。我认为可持续能源技术具有改变世界的潜力&#xff0c;并且已经在多个方面展现出积极的影响。以下是我对此的观点&#xff1a; 1&#xff0c;可持续能源技术有助于减少对化石燃料的依赖 化…...

Java常用工具之StringUtils类

目录 一、字符串判空二、分隔字符串三、判断是否为纯数字四、将集合拼接成字符串五、其他方法 字符串&#xff08;String&#xff09;在我们的日常工作中&#xff0c;用得非常非常非常多。 在我们的代码中经常需要对字符串判空&#xff0c;截取字符串、转换大小写、分隔字符串、…...

MyBatis-plus的批量插入方式对比分析

MyBatis-plus的批量插入方式对比分析 【摘要】Mybatis批量插入一直是开发者重点关注的问题&#xff0c;本文列举了Mybatis的五种插入方式进行对比分析&#xff0c;验证了五种批量插入的方式的优先级。 1 准备工作 1.1 新建spring项目 略。 1.2 导入pom.xml依赖 <depende…...

【系分论文】论软件开发模型及应用

目录 论题论题介绍论文要点理论素材准备范文摘要正文 论文补充知识 论题 论软件开发模型及应用 论题介绍 软件开发模型&#xff08; Software Development Model&#xff09;是指软件开发全部过程、活动和任务的结构框架。软件开发过程包括需求、设计、编码和测试等阶段&…...

渗透测试--5.3.使用john破解密码

前言 由于Linux是Internet最流行的服务器操作系统&#xff0c;因此它的安全性备受关注。这种安全主要靠口令实现。 Linux使用一个单向函数crypt&#xff08;&#xff09;来加密用户口令。单向函数crypt&#xff08;&#xff09;从数学原理上保证了从加密的密文得到加密前的明…...

Go中的变量类型

Go中的变量类型 1.为什么要使用变量 变量其实指定的是一段内存地址&#xff0c;根据这个内存地址可以找到我们需要找到的东西。 2.变量类型 变量的功能就是用来存储数据的&#xff0c;根据不同的数据类型可以存储不同的数据。常见的变量的类型 整型、浮点型、布尔型等。变…...

基于STM32的NRF24L01 2.4G通讯模块的驱动实验(HAL库)

前言&#xff1a;本文为手把手教学NRF24L01 2.4G通讯模块的驱动实验&#xff0c;本教程的 MCU 采用STM32F103ZET6与STM32F103C8T6&#xff0c;彼此进行互相通讯。通过 CubeMX 软件配置 SPI 协议驱动NRF24L01 2.4G通讯模块&#xff08;HAL库&#xff09;。NRF24L01 2.4G是嵌入式…...

DJ5-3 多路访问链路和协议

目录 一、网络链路 二、广播信道要解决问题 三、多路访问协议 1、基本介绍 2、多路访问协议的类型&#xff08;3&#xff09; 四、信道划分协议 1、时分多路访问 TDMA 2、频分多路访问 FDMA 3、码分多路访问 CDMA&#xff08;略&#xff09; 五、随机访问协议 1、纯…...

技术领导力?

作品集&#xff08;Portfolio&#xff09;会比简历&#xff08;Resume&#xff09;更有参考意义。 怎么才算有技术领导力&#xff1f; 1) 能够发现问题&#xff0c;并能够提供解决问题的思路和方案&#xff0c;并能比较方案的优缺点。 2) 能用更简洁有效的方式解决问题。 3…...

计算机的基本工作原理

参考资料&#xff1a; L-1.6: Common Bus system| How basic computer works - YouTube 准备好内存单元、不同类型的寄存器&#xff0c;内存和寄存器、寄存器和寄存器之间都是通过总线连接(假设是直接把数据总线、控制总线、地址总线变成一条总线)。 使用多路复用器实现的总线&…...

【论文简述】Cross-Attentional Flow Transformer for Robust Optical Flow(CVPR 2022)

一、论文简述 1. 第一作者&#xff1a;Xiuchao Sui、Shaohua Li 2. 发表年份&#xff1a;2021 3. 发表期刊&#xff1a;arxiv 4. 关键词&#xff1a;光流、Transformer、自注意力、交叉注意力、相关体 5. 探索动机&#xff1a;由于卷积的局部性和刚性权重&#xff0c;有限…...

C 语言从 0 入门(十三)|结构体:自定义数据类型与实战

大家好&#xff0c;我是网域小星球。 前面我们学习了基本数据类型、数组、指针、函数&#xff0c;能够处理数字、字符等简单数据。但在实际开发中&#xff0c;我们经常需要描述一个复杂对象&#xff0c;比如学生、商品、员工、书籍等&#xff0c;它们包含多种不同类型的信息&a…...

终极指南:Ant Media Server视频转码技术与FFmpeg集成优化方案

终极指南&#xff1a;Ant Media Server视频转码技术与FFmpeg集成优化方案 【免费下载链接】Ant-Media-Server Ant Media Server — Ultra-low latency streaming engine with WebRTC (~0.5s), SRT, RTMP, HLS, CMAF, adaptive bitrate, transcoding & scaling 项目地址: …...

九,附录 B:响应周期公式

九&#xff0c;附录 B&#xff1a;响应周期公式九&#xff0c;附录 B&#xff1a;响应周期公式九&#xff0c;附录 B&#xff1a;响应周期公式 A2B_RESPCYCS 寄存器用于设置从控制帧&#xff08;SCF&#xff09;开始到最后一个从节点用响应帧&#xff08;SRF&#xff09;进行响…...

GD32F45ZG引脚模式实战指南:从基础配置到高级应用

1. GD32F45ZG引脚模式基础入门 第一次接触GD32F45ZG的引脚配置时&#xff0c;我也被各种模式搞得晕头转向。这就像刚拿到新手机时&#xff0c;得先搞清楚各个按键的功能才能玩转它。GD32F45ZG的引脚就是它的"按键"&#xff0c;配置对了才能让芯片按我们的想法工作。 …...

Java字符串相似度计算:10大算法库终极指南

Java字符串相似度计算&#xff1a;10大算法库终极指南 【免费下载链接】java-string-similarity Implementation of various string similarity and distance algorithms: Levenshtein, Jaro-winkler, n-Gram, Q-Gram, Jaccard index, Longest Common Subsequence edit distanc…...

2026年04月10日最热门的开源项目(Github)

根据本期榜单的数据分析&#xff0c;我们可以从几个角度进行探讨&#xff0c;包括项目的语言、介绍、当前Stars及热度等。 1. 项目语言分布 此榜单中的项目主要集中在Python和JavaScript等常用语言上&#xff0c;其中Python项目数量较多。可以观察到Python的丰富生态和广泛应…...

R语言农业预测代码开源泄露?3个被90%农科院忽略的产量建模陷阱(附可复现代码)

第一章&#xff1a;R语言农业产量预测代码开源泄露事件全景剖析 2023年夏季&#xff0c;某国家级农业大数据平台在GitHub公开仓库中意外暴露了包含真实县域气象、土壤与历史产量数据的R语言建模脚本&#xff0c;引发行业级安全震动。该仓库原意为教学示范&#xff0c;但因.giti…...

HTML5中SVG解析器原理及手动构建矢量字符串

SVG由浏览器XML解析器处理而非专用解析器&#xff0c;作为XML节点入DOM后由渲染引擎转为图形指令&#xff1b;手动构建需确保XML合法、坐标清晰、路径正确、字符转义。SVG在HTML5中不是通过传统“解析器”逐字符分析的&#xff0c;而是由浏览器内置的XML解析器处理——它把SVG标…...

STM32G474的COMP比较器,除了保护电路还能这么玩?一个LED灯搞定电压监测

用STM32G474的COMP比较器玩转电压监测&#xff1a;一个LED灯就够了 在嵌入式开发中&#xff0c;我们常常需要监测电压变化&#xff0c;比如电池电量、传感器输出等。传统做法是使用ADC采样&#xff0c;然后通过软件判断阈值。但这种方法需要占用CPU资源&#xff0c;响应速度也受…...

Vue——Vue 面包屑导航实现

背景问题&#xff1a; 需要实现页面面包屑导航。 方案思考&#xff1a; 根据当前路由路径生成面包屑。 具体实现&#xff1a; 面包屑组件&#xff1a; <!-- components/Breadcrumb.vue --> <template><el-breadcrumb class"app-breadcrumb" separa…...