[免费]SpringBoot公司财务管理系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的SpringBoot公司财务管理系统,分享下哈。
项目视频演示
【免费】SpringBoot公司财务管理系统 Java毕业设计_哔哩哔哩_bilibili
项目介绍
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公司财务管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公司财务管理系统利用当下成熟完善的springBoot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发.公司财务管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
系统展示








部分代码
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>公司财务管理系统</title><meta name="renderer" content="webkit|ie-comp|ie-stand"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" /><meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /><link rel="stylesheet" href="../static/css/font.css"><link rel="stylesheet" href="../static/css/xadmin.css"><script type="text/javascript" src="../static/js/jquery.min.js"></script><script src="../static/lib/layui/layui.js" charset="utf-8"></script><script type="text/javascript" src="../static/js/xadmin.js"></script><style>#select{display: none;}</style>
</head>
<body class="login-bg"><div class="login layui-anim layui-anim-up"><div class="message">公司财务管理系统</div><div id="darkbannerwrap"></div><form method="post" class="layui-form" ><input name="username" placeholder="用户名" type="text" lay-verify="required" class="layui-input" ><hr class="hr15"><input name="password" lay-verify="required" placeholder="密码" type="password" class="layui-input"><hr class="hr15"><div id="select"><select name="status" id="status" style="display: none"><option value="0">管理员</option><option value="1">员工</option><option value="2">顾客</option></select></div><hr class="hr15"><input value="登录" lay-submit lay-filter="login" style="width:100%;" type="submit"><hr class="hr20" ></form>
</div><script>$("#select").hide();$(function () {layui.use('form', function(){var form = layui.form;// layer.msg('玩命卖萌中', function(){// //关闭后的操作// });//监听提交form.on('submit(login)', function(data){console.log(data);$.post("/login.do",data.field,function(res){console.log(res);if(res.code == 200){layer.msg("登录成功,正在跳转...",{time:800},function () {top.location.href='/pages/index';});}else if(res.code == 202){layer.msg("登录成功,正在跳转...",{time:800},function () {top.location.href='/pages/index2';});}else if(res.code == 203){layer.msg("登录成功,正在跳转...",{time:800},function () {top.location.href='/pages/index3';});}else {layer.msg("用户名或密码错误!")}},"json");return false;});});})</script></body>
</html>
package com.example.cwgl.controller;import com.example.cwgl.dao.CallpayMapper;
import com.example.cwgl.dao.CustomerMapper;
import com.example.cwgl.dao.EmpMapper;
import com.example.cwgl.entity.*;
import com.example.cwgl.service.PrivilegeService;
import com.example.cwgl.service.UserInfoService;
import com.example.cwgl.utils.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.List;@Controller
public class UserInfoController {@Resourceprivate UserInfoService userInfoService;@Resourceprivate PrivilegeService privilegeService;@AutowiredEmpMapper empMapper;@AutowiredCustomerMapper customerMapper;@RequestMapping(value = {"/", "login.html"})public String toLogin(HttpServletRequest request, HttpServletResponse response){HttpSession session = request.getSession();if(session.getAttribute(Config.CURRENT_USERNAME)==null){return "login";}else {try {response.sendRedirect("/pages/index");} catch (IOException e) {e.printStackTrace();return "login";}return null;}}// @RequestMapping(value = "/login.do",method = RequestMethod.POST)@RequestMapping(value = "/login.do")@ResponseBodypublic Result getUserInfo(UserInfo userInfo, HttpServletRequest request, HttpServletResponse response){if (userInfo.getStatus()==0){boolean userIsExisted = userInfoService.userIsExisted(userInfo);System.out.println(userIsExisted + " - " + request.getHeader("token"));userInfo = getUserInfo(userInfo);if("client".equals(request.getHeader("token")) && !userIsExisted){//用户不存在return ResultUtil.success(-1);}if (userIsExisted && userInfo == null){return ResultUtil.unSuccess("用户名或密码错误!");}else {//将用户信息存入sessionuserInfo = setSessionUserInfo(userInfo,request.getSession());//将当前用户信息存入cookiesetCookieUser(request,response);return ResultUtil.success("登录成功", userInfo);}}else if (userInfo.getStatus()==1){Emp emp=empMapper.selectByNo(userInfo.getUsername());if (emp!=null && emp.getPassword().equals(userInfo.getPassword())){request.getSession().setAttribute("empInfo",emp);return ResultUtil.success2("登录成功", userInfo);}return ResultUtil.unSuccess("用户名或密码错误!");}else {Customer customer=customerMapper.selectByNo(userInfo.getUsername());if (customer!=null && customer.getPassword().equals(userInfo.getPassword())){request.getSession().setAttribute("customerInfo",customer);return ResultUtil.success3("登录成功", userInfo);}return ResultUtil.unSuccess("用户名或密码错误!");}}@RequestMapping("/users/getUsersByWhere/{pageNo}/{pageSize}")public @ResponseBody Result getUsersByWhere(UserInfo userInfo, @PathVariable int pageNo, @PathVariable int pageSize, HttpSession session){if ("".equals(userInfo.getHouseid())){userInfo.setHouseid(null);}if (userInfo.getRoleid() == -1){userInfo.setRoleid(Config.getSessionUser(session).getRoleid());}Utils.log(userInfo.toString());PageModel model = new PageModel<>(pageNo,userInfo);model.setPageSize(pageSize);return userInfoService.getUsersByWhere(model);}@RequestMapping("/user/add")public @ResponseBody Result addUser(UserInfo userInfo){System.out.println(userInfo);try {int num = userInfoService.add(userInfo);if(num>0){return ResultUtil.success();}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/user/update")public @ResponseBody Result updateUser(UserInfo userInfo){try {int num = userInfoService.update(userInfo);if(num>0){return ResultUtil.success();}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/user/del/{id}")public @ResponseBody Result deleteUser(@PathVariable String id){try {int num = userInfoService.delete(id);if(num>0){return ResultUtil.success();}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/getSessionUser")@ResponseBodypublic UserInfo getSessionUser(HttpSession session){UserInfo sessionUser = (UserInfo) session.getAttribute(Config.CURRENT_USERNAME);sessionUser.setPassword(null);return sessionUser;}@RequestMapping("/logout")public String logout(HttpServletRequest request, HttpServletResponse response){delCookieUser(request, response);request.getSession().removeAttribute(Config.CURRENT_USERNAME);return "login";}@RequestMapping("/getAllRoles")public @ResponseBody Result<Role> getAllRoles(){try {List<Role> roles = userInfoService.getAllRoles();if (roles.size()>0){return ResultUtil.success(roles);}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/role/add")public @ResponseBody Result addRole(Role role){try {int num = userInfoService.addRole(role);if(num>0){privilegeService.addDefaultPrivilegesWhenAddRole(role.getRoleid().toString());return ResultUtil.success();}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/role/update")public @ResponseBody Result updateRole(Role role){try {int num = userInfoService.updateRole(role);if(num>0){return ResultUtil.success();}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/role/del/{roleid}")public @ResponseBody Result deleteRole(@PathVariable String roleid){try {privilegeService.delPrivilegesWenDelRole(roleid);int num = userInfoService.deleteRole(roleid);if(num>0){return ResultUtil.success();}else {privilegeService.addDefaultPrivilegesWhenAddRole(roleid);return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}@RequestMapping("/getRole/{id}")public @ResponseBody Result getRoleById(@PathVariable String id){try {Role role = userInfoService.getRoleById(id);if(role != null){return ResultUtil.success(role);}else {return ResultUtil.unSuccess();}}catch (Exception e){return ResultUtil.error(e);}}/*** 登录时将用户信息加入cookie中* @param response*/private void setCookieUser(HttpServletRequest request, HttpServletResponse response){UserInfo user = getSessionUser(request.getSession());Cookie cookie = new Cookie(Config.CURRENT_USERNAME,user.getUsername()+"_"+user.getId());//cookie 保存7天cookie.setMaxAge(60*60*24*7);response.addCookie(cookie);}/*** 注销时删除cookie信息* @param request* @param response*/private void delCookieUser(HttpServletRequest request, HttpServletResponse response){UserInfo user = getSessionUser(request.getSession());Cookie cookie = new Cookie(Config.CURRENT_USERNAME,user.getUsername()+"_"+user.getId());cookie.setMaxAge(-1);response.addCookie(cookie);}/*** 通过用户信息获取用户权限信息,并存入session中* @param userInfo* @param session* @return*/public UserInfo setSessionUserInfo(UserInfo userInfo, HttpSession session){List<Privilege> privileges = privilegeService.getPrivilegeByRoleid(userInfo.getRoleid());userInfo.setPrivileges(privileges);session.setAttribute(Config.CURRENT_USERNAME,userInfo);return userInfo;}public UserInfo getUserInfo(UserInfo userInfo){return userInfoService.getUserInfo(userInfo);}
}
源码代码
链接:https://pan.baidu.com/s/1TvTsM3flekYYzOEi8Tgfig
提取码:1234

相关文章:
[免费]SpringBoot公司财务管理系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的SpringBoot公司财务管理系统,分享下哈。 项目视频演示 【免费】SpringBoot公司财务管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 现代经济快节奏发展以及不断完善升级的信息化技术&…...
5G 模组 RG500Q常用AT命令
5G 模组 RG500Q常用AT命令 5G 模组 RG500Q常用AT命令 at ATQNWPREFCFG\"mode_pref\",nr5g && sleep 1 at ATQNWPREFCFG\"nr5g_band\",79 && sleep 1 at atqnwlock\"commo…...
【YOLO 项目实战】(11)YOLO8 数据集与模型训练
欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【YOLO 项目实战】(1)YOLO5 环境配置与检测 【YOLO 项目实战】(10)YOLO8 环境配置与推理检测 【YOLO 项目实战】(11)YOLO8 数据…...
基于matlab的单目相机标定
链接: 单目相机标定(使用Matlab) 用Matlab对单目相机参数的标定步骤(保姆级教程) 1.准备代码 调用摄像头代码(用于测试摄像头是否可用): #https://blog.csdn.net/qq_37759113/art…...
DB-GPT 智谱在线模型配置
LLM_MODELzhipu_proxyllm PROXY_SERVER_URLhttps://open.bigmodel.cn/api/paas/v4/chat/completions ZHIPU_MODEL_VERSIONglm-4 ZHIPU_PROXY_API_KEY70e8ec7113882ff5478fcecaa47522479.ExY2LyjcvWmqrTAf...
Navicat 17 功能简介 | SQL 美化
SQL美化 本期,我们将深入挖掘 Navicat 的实用的SQL代码美化功能。你只需简单地点击“SQL 美化”按钮,即可轻松完成 SQL 的格式化。 随着 17 版本的发布,Navicat 也带来了众多的新特性,包括兼容更多数据库、全新的模型设计、可视化…...
RTA_OS内核源码解析 3.9-任务激活
RTA_OS内核源码解析 3.9-任务激活 文章目录 RTA_OS内核源码解析 3.9-任务激活一、激活简介二、同步激活2.1 中断管理2.2 异常条件判断2.3 激活Task2.4 任务调度2.4.1 Os_RaiseCrossCoreISR2.4.2 Os_CrossCoreISR三、异步激活3.1 异常条件判断3.2 激活Task一、激活简介 一般将T…...
新能源汽车充电需求攀升,智慧移动充电服务有哪些实际应用场景?
在新能源汽车行业迅猛发展的今天,智慧充电桩作为支持这一变革的关键基础设施,正在多个实际应用场景中发挥着重要作用。从公共停车场到高速公路服务区,从企业园区到住宅小区,智慧充电桩不仅提供了便捷的充电服务,还通过…...
计算机的错误计算(一百八十六)
摘要 就上节(即(一百八十五))内容,有读者来信,建议用另外一个大模型计算。本节详细讲解该大模型的对错,特别是涉及 Python Decimal的内容以及泰勒展式内容。 例1. 已知 用大模型计算 下面是…...
当我用影刀AI Power做了一个旅游攻略小助手
在线体验地址:旅游攻略小助手https://power.yingdao.com/assistant/ca1dfe1c-9451-450e-a5f1-d270e938a3ad/share 运行效果图展示: 话不多说一起看下效果图: 智能体的截图: 工作流截图: 搭建逻辑: 其实这…...
首批|云轴科技ZStack成为开放智算产业联盟首批会员单位
近日 ,在Linux基金会AI & Data及中国开源软件推进联盟的指导之下,开放智算产业联盟成立大会在北京成功召开。在大会上,联盟首次公布了组织架构并颁发了首批会员单位证书。凭借ZStack AIOS平台智塔和在智算领域的技术创新,云轴…...
MMO之AOI
这章来说下AOI算法,常用的有九宫格,灯塔(九宫格优化版),四叉树,十字链表/三轴链表(加跳跃表) 写这章主要为了以后温故 方便 1: 一般AOI 的基本接口如下 enter:对象进入地图; leave:对象离开地图…...
linux---多线程
线程的基本概念 定义:在Linux中,线程是进程内部的一个执行单元,是进程的一个实体,它是CPU调度和分派的基本单位。一个进程可以包含多个线程,这些线程共享进程的资源,如代码段、数据段、打开的文件、信号处理…...
【JavaEE初阶】线程 和 thread
本节⽬标 认识多线程 掌握多线程程序的编写 掌握多线程的状态 一. 认识线程(Thread) 1概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏着多份代码. 还…...
如何规避eBay账号被封的风险?原因与对策
ebay是全球知名的跨境电商平台之一,吸引了不少的商家入驻。然而随着平台规则的不断更新和完善,很多ebay商家在运营的过程中,会遇到账号被封禁的问题。那ebay账号被封的原因有哪些?本文将带来详细的分析,帮助商家保护…...
Word使用分隔符实现页面部分分栏
文章目录 Word使用分隔符实现页面部分分栏分隔符使用页面设置 Word使用分隔符实现页面部分分栏 分隔符使用 word中的分隔符: 前面不分栏,后面分栏(或前面分栏,后面不分栏),只需要在分隔位置处插入分隔符:“连续”即…...
Express (nodejs) 相关
Express 相关 长乐未央学习视频东哥 1. 安装 express-generator 脚手架,新建项目 执行命令 npm install express express-generator4 -g 同时安装 express,和 express 脚手架. npm install express express-generator4 -g通过 express 脚手架创建 express 项目 exp…...
【Harmony Next】多个图文配合解释DevEco Studio工程中,如何配置App相关内容,一次解决多个问题?
解决App配置相关问题列表 1、Harmony Next如何配置图标? 2、Harmony Next如何配置App名称? 3、Harmony Next如何配置版本号? 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号? 6、Harmony Next多语言配置在哪…...
台球助教平台开发球厅预约选择机制和助教匹配选择机制详细需求实例说明(第十四章)
以下是对台球助教系统相关功能的详细规划描述: 一、预约助教功能 二、选择球厅练球功能 三、选择陪练时间功能 四、下单订单支付功能 一、预约助教功能 助教信息展示 在专门的 “助教预约” 页面,以列表形式呈现所有可供预约的台球助教。每个助教条目…...
MyBatis通过注解配置执行SQL语句原理源码分析
文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件,配置mapper接口 <mappers><!--注解配置--><mapper…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
