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

[免费]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脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBoot公司财务管理系统&#xff0c;分享下哈。 项目视频演示 【免费】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 项目实战】&#xff08;1&#xff09;YOLO5 环境配置与检测 【YOLO 项目实战】&#xff08;10&#xff09;YOLO8 环境配置与推理检测 【YOLO 项目实战】&#xff08;11&#xff09;YOLO8 数据…...

基于matlab的单目相机标定

链接&#xff1a; 单目相机标定&#xff08;使用Matlab&#xff09; 用Matlab对单目相机参数的标定步骤&#xff08;保姆级教程&#xff09; 1.准备代码 调用摄像头代码&#xff08;用于测试摄像头是否可用&#xff09;&#xff1a; #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美化 本期&#xff0c;我们将深入挖掘 Navicat 的实用的SQL代码美化功能。你只需简单地点击“SQL 美化”按钮&#xff0c;即可轻松完成 SQL 的格式化。 随着 17 版本的发布&#xff0c;Navicat 也带来了众多的新特性&#xff0c;包括兼容更多数据库、全新的模型设计、可视化…...

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…...

新能源汽车充电需求攀升,智慧移动充电服务有哪些实际应用场景?

在新能源汽车行业迅猛发展的今天&#xff0c;智慧充电桩作为支持这一变革的关键基础设施&#xff0c;正在多个实际应用场景中发挥着重要作用。从公共停车场到高速公路服务区&#xff0c;从企业园区到住宅小区&#xff0c;智慧充电桩不仅提供了便捷的充电服务&#xff0c;还通过…...

计算机的错误计算(一百八十六)

摘要 就上节&#xff08;即&#xff08;一百八十五&#xff09;&#xff09;内容&#xff0c;有读者来信&#xff0c;建议用另外一个大模型计算。本节详细讲解该大模型的对错&#xff0c;特别是涉及 Python Decimal的内容以及泰勒展式内容。 例1. 已知 用大模型计算 下面是…...

当我用影刀AI Power做了一个旅游攻略小助手

在线体验地址&#xff1a;旅游攻略小助手https://power.yingdao.com/assistant/ca1dfe1c-9451-450e-a5f1-d270e938a3ad/share 运行效果图展示&#xff1a; 话不多说一起看下效果图&#xff1a; 智能体的截图&#xff1a; 工作流截图&#xff1a; 搭建逻辑&#xff1a; 其实这…...

首批|云轴科技ZStack成为开放智算产业联盟首批会员单位

近日 &#xff0c;在Linux基金会AI & Data及中国开源软件推进联盟的指导之下&#xff0c;开放智算产业联盟成立大会在北京成功召开。在大会上&#xff0c;联盟首次公布了组织架构并颁发了首批会员单位证书。凭借ZStack AIOS平台智塔和在智算领域的技术创新&#xff0c;云轴…...

MMO之AOI

这章来说下AOI算法,常用的有九宫格&#xff0c;灯塔(九宫格优化版),四叉树&#xff0c;十字链表/三轴链表&#xff08;加跳跃表&#xff09; 写这章主要为了以后温故 方便 1: 一般AOI 的基本接口如下 enter&#xff1a;对象进入地图&#xff1b; leave&#xff1a;对象离开地图…...

linux---多线程

线程的基本概念 定义&#xff1a;在Linux中&#xff0c;线程是进程内部的一个执行单元&#xff0c;是进程的一个实体&#xff0c;它是CPU调度和分派的基本单位。一个进程可以包含多个线程&#xff0c;这些线程共享进程的资源&#xff0c;如代码段、数据段、打开的文件、信号处理…...

【JavaEE初阶】线程 和 thread

本节⽬标 认识多线程 掌握多线程程序的编写 掌握多线程的状态 一. 认识线程&#xff08;Thread&#xff09; 1概念 1) 线程是什么 ⼀个线程就是⼀个 "执⾏流". 每个线程之间都可以按照顺序执⾏⾃⼰的代码. 多个线程之间 "同时" 执⾏着多份代码. 还…...

如何规避eBay账号被封的风险?原因与对策

​ebay是全球知名的跨境电商平台之一&#xff0c;吸引了不少的商家入驻。然而随着平台规则的不断更新和完善&#xff0c;很多ebay商家在运营的过程中&#xff0c;会遇到账号被封禁的问题。那ebay账号被封的原因有哪些&#xff1f;本文将带来详细的分析&#xff0c;帮助商家保护…...

Word使用分隔符实现页面部分分栏

文章目录 Word使用分隔符实现页面部分分栏分隔符使用页面设置 Word使用分隔符实现页面部分分栏 分隔符使用 word中的分隔符&#xff1a; 前面不分栏&#xff0c;后面分栏(或前面分栏&#xff0c;后面不分栏)&#xff0c;只需要在分隔位置处插入分隔符&#xff1a;“连续”即…...

Express (nodejs) 相关

Express 相关 长乐未央学习视频东哥 1. 安装 express-generator 脚手架&#xff0c;新建项目 执行命令 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如何配置图标&#xff1f; 2、Harmony Next如何配置App名称&#xff1f; 3、Harmony Next如何配置版本号&#xff1f; 4、Harmony Next如何配置Bundle ID? 5、Harmony Next如何配置build号&#xff1f; 6、Harmony Next多语言配置在哪…...

台球助教平台开发球厅预约选择机制和助教匹配选择机制详细需求实例说明(第十四章)

以下是对台球助教系统相关功能的详细规划描述&#xff1a; 一、预约助教功能 二、选择球厅练球功能 三、选择陪练时间功能 四、下单订单支付功能 一、预约助教功能 助教信息展示 在专门的 “助教预约” 页面&#xff0c;以列表形式呈现所有可供预约的台球助教。每个助教条目…...

MyBatis通过注解配置执行SQL语句原理源码分析

文章目录 前置准备流程简要分析配置文件解析加载 Mapper 接口MapperAnnotationBuilder解析接口方法注解parseStatement 方法详解MapperBuilderAssistant 前置准备 创建一个mybatis-config.xml文件&#xff0c;配置mapper接口 <mappers><!--注解配置--><mapper…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括&#xff1a;采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中&#xff0c;设置任务排序规则尤其重要&#xff0c;因为它让看板视觉上直观地体…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...