当前位置: 首页 > 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…...

037、LVGL动画类型与参数配置

LVGL动画类型与参数配置 上周帮一个做智能家居面板的客户调试,遇到个挺典型的坑:他用了lv_anim_set_path_cb()自定义了一个缓动曲线,结果动画跑起来像抽风一样忽快忽慢。我让他把回调函数贴出来一看——好家伙,路径函数里直接调了lv_anim_set_time()改时长。这种在动画执行…...

告别毛边!保姆级教程:在Unity里完美播放Pr导出的WebM透明视频(附完整参数)

告别毛边&#xff01;Unity中完美播放Pr导出WebM透明视频的终极指南 透明视频在游戏特效、UI动画和AR应用中越来越常见&#xff0c;但许多开发者都遇到过令人抓狂的"毛边"问题——那些不该出现的半透明像素像顽固污渍一样破坏视觉效果。本文将彻底解决这个痛点&#…...

Taotoken官方折扣与活动价接入实践带来的成本节省感受

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken官方折扣与活动价接入实践带来的成本节省感受 1. 背景与决策起点 作为个人开发者或小团队&#xff0c;在构建基于大模型的…...

基于大语言模型的自动化代码审查实践:AutoReviewer部署与调优指南

1. 项目概述&#xff1a;当代码审查遇上AI&#xff0c;一场效率革命 在软件开发的日常中&#xff0c;代码审查&#xff08;Code Review&#xff09;是保障代码质量、促进知识共享、统一团队编码风格的关键环节。然而&#xff0c;对于许多开发团队&#xff0c;尤其是中小团队或…...

从CineCamera到硬盘:UE中RenderTarget图像捕获与导出全流程解析

1. 从CineCamera到硬盘&#xff1a;RenderTarget图像捕获与导出全流程 在虚幻引擎&#xff08;UE&#xff09;开发中&#xff0c;经常需要将CineCamera相机拍摄的高质量画面保存为图片文件。无论是用于过场动画截图、后期处理还是游戏内截图功能&#xff0c;掌握RenderTarget的…...

三步解锁九大网盘高速下载:LinkSwift终极直链解析教程

三步解锁九大网盘高速下载&#xff1a;LinkSwift终极直链解析教程 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼…...

悬而未决:Nacos 与 Apollo 能否终结“改配置就要重启”的诅咒?

写在前面“你把 log-level 从 INFO 改成 DEBUG 了&#xff1f;行&#xff0c;我记一下。等下次发布的时候一起上线。”这句话&#xff0c;是不是很熟悉&#xff1f;在一个超过 5 年的大型微服务项目中&#xff0c;我见过太多这样的场景&#xff1a;开发团队在线上环境排查问题时…...

Android性能与功耗深度优化:从理论到实践

引言 在当今移动互联网时代,用户体验是应用成功的关键因素之一。流畅的操作、快速的响应、持久的续航,这些都与应用的性能和功耗表现息息相关。对于Android开发工程师而言,深入理解系统机制并掌握性能与功耗优化技术,已从加分项变为必备技能。特别是在金融、游戏、直播等对…...

GitHub Awesome List:OpenClaw机器人抓取学习资源全导航

1. 项目概述&#xff1a;一个汇聚开源AI学习技能的宝藏库最近在GitHub上闲逛&#xff0c;发现了一个名为botlearn-ai/awesome-openclaw-learning-skills的仓库。这个标题乍一看有点长&#xff0c;但拆解一下&#xff0c;信息量巨大。“botlearn-ai”暗示了项目与AI学习相关&…...

AI智能体安全审计实战:构建可插拔的安全技能库

1. 项目概述&#xff1a;一个面向AI智能体的安全审计技能库最近在折腾AI智能体&#xff08;Agent&#xff09;的开发&#xff0c;发现一个挺有意思的现象&#xff1a;大家把大量精力都花在了让智能体“更聪明”上&#xff0c;比如提升其推理能力、扩展工具调用范围&#xff0c;…...