Java+MYSQL基于ssm的网上出差审批与费用报销管理系统

news2024/11/17 6:45:07

全新的时代,新的技术推动着公司管理制度的改革,在管理层面加入了先进的科学技术做到了与时俱进,所以企业创建自己的网上出差审批与费用报销系统是迫切需要的。在新时代的背景下,传统管理方式的缺点被暴露出来,传统管理方式的不足的地方有管理及时性不够,下达一个指令以后需要层层下达,经过很长时间下属员工才接到通知。管理效率不高,在人多的公司,管理制度跟不上势必会造成效率低下。管理不到位可能会到公司产生负面影响,所以利用科学的计算机语言设计出一套管理高效功能齐全的网上出差审批与费用报销系统是符合时代发展的。

请添加图片描述
本系统分为管理员和员工两部分,具体功能如下

管理员部分功能

  1. 部门信息管理,管理员可以管理公司内的所有的部门信息

  2. 员工信息管理,管理员可以对公司内员工的基本信息进行增删改查等操作

  3. 职称信息管理,管理员可以对公司内的不同员工的职称信息进行管理

  4. 报销类型管理,为了方便员工对不同类型的费用进行报销,管理员可以设置报销的类型

5.报销信息审核,主要是针对有报销申请的员工的出差费用进行审批

6.管理员信息管理,管理本系统内的管理员的基本信息

7.修改密码,修改自己的个人密码

员工部分功能

1.在线报销,员工可以在线申请自己的出差费用信息

2.我的报销,员工可以查看自己申请的出差费用的报销审批情况

3.修改密码,员工可以在本模块修改自己的个人密码
请添加图片描述
请添加图片描述
项目编号:jsp243ssm网上出差审批与费用报销系统
运行环境:
开发工具:IDEA /Eclipse
数据库:MYSQL5.7
应用服务:Tomcat7/Tomcat8
使用框架:Spring:SpringMVC:mybatis
请添加图片描述
请添加图片描述

package com.controller;

import java.io.File;
import java.io.IOException;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.io.PrintWriter;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import com.entity.Allusers;
//import com.chengxusheji.po.News;
import com.server.AllusersServer;
import com.util.PageBean;
import net.sf.json.JSONObject;

@Controller
public class AllusersController {
@Resource
private AllusersServer allusersService;

//
@RequestMapping(“showAllusers.do”)
public String showAllusers(int id,ModelMap map,HttpSession session){
/* Map<String,Object> bmap=new HashMap<String,Object>();
bmap.put(“uid”, id);*/
// map.put(“blist”, allusersService.getAll(bmap));
map.put(“allusers”, allusersService.getById(id));
return “read”;
}

@RequestMapping("addAllusers.do")
public String addAllusers(HttpServletRequest request,Allusers allusers,HttpSession session){
	Timestamp time=new Timestamp(System.currentTimeMillis());
	//Users u=(Users)session.getAttribute("user");
	/*if(u==null||u.equals("")){
		return "redirect:showIndex.do";
	}else{*/
		//bbs.setUid(u.getId());
		/*bbs.setPubtime(time.toString());
		bbs.setIsdel("1");*/
	    allusers.setAddtime(time.toString().substring(0, 19));
		allusersService.add(allusers);
		return "redirect:allusersList.do";
	/*}*/
	
	
}

// 处理编辑
@RequestMapping(“doUpdateAllusers.do”)
public String doUpdateAllusers(int id,ModelMap map,Allusers allusers){
allusers=allusersService.getById(id);
map.put(“allusers”, allusers);
return “allusers_updt”;
}
//
@RequestMapping(“updateAllusers.do”)
public String updateAllusers(int id,ModelMap map,Allusers allusers){
allusersService.update(allusers);
return “redirect:allusersList.do”;
}
// 所有List
// @RequestMapping(“allusersList.do”)
// public String allusersList(ModelMap map,HttpSession session){
// map.put(“list”, allusersService.getAll(null));
// map.put(“clist”, allusersService.getAll(null));
// return “allusers”;
// }
// 分页查询
@RequestMapping(“allusersList.do”)
public String goodList(@RequestParam(value=“page”,required=false)String page,
ModelMap map,HttpSession session,Allusers allusers, String username, String pwd, String cx){
/if(session.getAttribute(“user”)==null){
return “login”;
}
/
if(pagenull||page.equals(“”)){
page=“1”;
}
PageBean pageBean=new PageBean(Integer.parseInt(page), 15);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put(“pageno”, pageBean.getStart());
pmap.put(“pageSize”, 15);
Map<String, Object> bmap=new HashMap<String, Object>();
Map<String,Object> cmap=new HashMap<String,Object>();
/pmap.put(“uid”, ((Users)session.getAttribute(“user”)).getId());
bmap.put(“uid”, ((Users)session.getAttribute(“user”)).getId());
/
if(username
null||username.equals(“”)){pmap.put(“username”, null);cmap.put(“username”, null);}else{pmap.put(“username”, username);cmap.put(“username”, username);}
if(pwdnull||pwd.equals(“”)){pmap.put(“pwd”, null);cmap.put(“pwd”, null);}else{pmap.put(“pwd”, pwd);cmap.put(“pwd”, pwd);}
if(cx
null||cx.equals(“”)){pmap.put(“cx”, null);cmap.put(“cx”, null);}else{pmap.put(“cx”, cx);cmap.put(“cx”, cx);}

	int total=allusersService.getCount(bmap);
	pageBean.setTotal(total);
	List<Allusers> list=allusersService.getByPage(pmap);
	map.put("page", pageBean);
	map.put("list", list);
	session.setAttribute("p", 1);
	return "allusers_list";
}

// 分页模糊查询
@RequestMapping(“vagueAllusersList.do”)
public String vagueAllusersList(@RequestParam(value=“page”,required=false)String page,
ModelMap map,HttpSession session){
if(page==null||page.equals(“”)){
page=“1”;
}
PageBean pageBean=new PageBean(Integer.parseInt(page),PageBean.PAGESIZE);
Map<String, Object> pmap=new HashMap<String,Object>();
pmap.put(“pageno”, pageBean.getStart());
pmap.put(“pageSize”, pageBean.getPageSize());
Map<String, Object> bmap=new HashMap<String, Object>();
/pmap.put(“uid”, ((Users)session.getAttribute(“user”)).getId());
bmap.put(“uid”, ((Users)session.getAttribute(“user”)).getId());
/
int total=allusersService.getCount(bmap);
pageBean.setTotal(total);
List list=allusersService.getByPage(pmap);
map.put(“page”, pageBean);
map.put(“list”, list);
session.setAttribute(“p”, 2);
return “queryallusers”;
}
@RequestMapping(“deleteAllusers.do”)
public String deleteAllusers(int id){
allusersService.delete(id);
return “redirect:allusersList.do”;
}

@RequestMapping("quchongAllusers.do")
public void quchongAllusers(Allusers allusers,HttpServletResponse response){
	   Map<String,Object> map=new HashMap<String,Object>();
	   map.put("username", allusers.getUsername());
	   System.out.println("username==="+allusers.getUsername());
	   System.out.println("username222==="+allusersService.quchongAllusers(map));
	   JSONObject obj=new JSONObject();
	   if(allusersService.quchongAllusers(map)!=null){
			 obj.put("info", "ng");
		   }else{
			   obj.put("info", "username可以用!");
			  
		   }
	   response.setContentType("text/html;charset=utf-8");
	   PrintWriter out=null;
	   try {
		out=response.getWriter();
		out.print(obj);
		out.flush();
	} catch (IOException e) {
		e.printStackTrace();
	}finally{
		out.close();
	}
}

@RequestMapping("Alluserslogin.do")
public String checkAllusersLogin(Allusers allusers, HttpSession session) {
	Map<String,Object> u=new HashMap<String,Object>();
	System.out.println("name===" + allusers.getUsername());
	u.put("username",allusers.getUsername());
	//u.put("utype", "用户");
	//Md5.MD5HexEncode(user.getPassword())
	u.put("pwd",allusers.getPwd());
	allusers = allusersService.allusersLogin(u);
	if (allusers != null) {
		session.setAttribute("username", allusers);
		System.out.println("username=" + allusers);
		session.removeAttribute("suc");
		return "redirect:index.do";
	} else {
		System.out.println("usernafwfwwme=");
		session.setAttribute("suc", "登录失败!用户名或密码错误!");
		return "login";
	}

}

}

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

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

相关文章

AuthLab权限在线靶场通关记录

AuthLab通关记录 一个在线的权限靶场&#xff1a;https://authlab.digi.ninja/ 靶场内容比较简单&#xff0c;包括了JWT以及一些基本情况的权限Bypass IP Based Auth Bypass 该关卡根据提示有一个ip在192.168.0.100-200范围里可以直接bypass 拦截请求包修改X-Forwarded-For爆…

python网络副业有哪些?以自身经历分享怎么做副业挣钱

网络副业我个人比较看好的是Python&#xff0c;至少我是真实体会到了Python做副业真香&#xff0c;疫情被关在家那段时间也没耽误赚钱&#xff0c;反而比平常赚的还多一点&#xff0c;下图是我疫情期间在家做Python副业收入的部分截图&#xff0c;那会儿我用Excel表格每天记了一…

BEPU物理引擎碰撞系统的架构与设计

前面我们讲解了如何监听物理引擎的碰撞事件, 在物理引擎内核中如何架构与设计碰撞规则,使得物理Entity与周围的物理环境产生碰撞时&#xff0c;如何灵活的控制物理碰撞&#xff0c;本节給大家详细的讲解BEPUphysicsint 物理引擎内部是如何管理与控制碰撞规则的。本文主要讲解3个…

彻底删除的文件如何恢复?误删数据恢复,四种方法就可以解决

电脑磁盘中存储了许多文件&#xff0c;我们不可避免地会误删一些文件&#xff0c;但是我们中的许多人不知道在文件被错误删除后如何恢复它们。事实上&#xff0c;误删数据恢复没有想象中那么难&#xff0c;我们自己也可以操作完成。到底是什么方法&#xff1f;接下来我们将详细…

Java项目:springboot中小医院信息管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 1. 基于SpringBoot的中小医院信息管理系统&#xff0c;实现了部分核心功能。 2. 就诊卡提供了手动和读卡两种方式录入&#xff0c;其中IC读卡器…

Simulink 自动代码生成电机控制:基于霍尔FOC模型和代码生成

目录 霍尔角度估算原理 霍尔角度估算FOC模型和仿真 代码生成软件调试 总结 霍尔角度估算原理 PMSM在定子侧以互差120电角度的位置安装3个霍尔元件Ha, Hb, Hc。当转子转动时&#xff0c;霍尔元件会产生3个相位差120电角度的高低电平信号。霍尔信号会将一个电周期划分为6个扇…

可以快速搭建的免费开源项目:直播带货、富文本笔记、思维导图、声音克隆、消息推送服务、文档协作等等

可以快速搭建的免费开源项目&#xff1a;直播带货、富文本笔记、思维导图、声音克隆、消息推送服务、文档协作等等。 01 Pure Live 一个想让直播回归纯粹的项目&#xff0c;没有礼物、粉丝团、弹窗&#xff0c;只有直播和弹幕。这是国人在GitHub上制作的一个开源的直播系统&am…

一个转行者的自述,大学生做职业规划要趁早

这篇文章写给对自己的职业规划不清晰、想从第一份工作就找准职业方向的应届大学生。 作为21年毕业的职场新人&#xff0c;算不上建议&#xff0c;也不写鸡汤&#xff0c;只是在这里认真分享我走过的弯路。文章略长&#xff0c;预计阅读时间8分钟。 先说一个关于海的小故事 人们…

CSS -- CSS使用过渡(transition)添加动画

CSS 3过渡 过渡&#xff08;transition)是CSS3中具有颠覆性的特征之一&#xff0c;我们可以在不使用 Flash 动画或JavaScript 的情况下&#xff0c;当元素从一种样式变换为另一种样式时为元素添加效果。 过渡动画&#xff1a; 是从一个状态 渐渐的过渡到另外一个状态 可以让…

js什么是闭包?简单理解

闭包 作用域链和执行上下文 理解闭包前&#xff0c;先引入一个概念&#xff0c;作用域链 用我自己理解的讲&#xff1a;在一段程序中&#xff0c;程序内的变量、函数等都被串在这条链上&#xff0c;当我们使用这些变量、函数时&#xff0c;程序就会在这条链中搜索&#xff0…

【最新】滤器完整性检测各国规定

中国 用于直接接触无菌药液或无菌设备表面的气体的过滤器&#xff0c;应在每批或多批次连续生产结束后对其进行完整性测试。对于其他的应用&#xff0c;可以根据风险评估的结果&#xff0c;制定完整性测试的频率。 ——除菌过滤技术与应用指南 2018 美国 We recommend that …

系统中的安全架构

系统中的安全架构目录概述需求&#xff1a;设计思路实现思路分析1.shiro2.多模块下的安全架构参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for chan…

【网安神器篇】——searchsploit漏洞利用搜索工具

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

MyBatis是如何初始化的?

摘要&#xff1a;我们知道MyBatis和数据库的交互有两种方式有Java API和Mapper接口两种&#xff0c;所以MyBatis的初始化必然也有两种&#xff1b;那么MyBatis是如何初始化的呢&#xff1f;本文分享自华为云社区《MyBatis详解 - 初始化基本过程》&#xff0c;作者&#xff1a;龙…

golang 协程的实现原理

核心概念 要理解协程的实现, 首先需要了解go中的三个非常重要的概念, 它们分别是G, M和P, 没有看过golang源代码的可能会对它们感到陌生, 这三项是协程最主要的组成部分, 它们在golang的源代码中无处不在. G (goroutine) G是goroutine的头文字, goroutine可以解释为受管理的…

Java+MySQL基于ssm的学生宿舍管理系统

随着我国教育制度的改革,各大高校一直在不断的扩招相对应的学生的数量也在不断的增加。在学生数量增加之后学校后勤人员就需要对后勤部分更加精准的进行管理,其中宿舍管理就是后勤管理中比较重要的一个组成部分。如何能够对学生的宿舍信息进行更加科学合理的管理是当前大多数高…

Word文档误删怎样恢复?6种实用方法分享给你

如果您曾经因为没有保存微软Word文档而丢失了所有工作&#xff0c;那么您就会明白疼痛是多么明显。 幸运的是&#xff0c;自从在软盘上备份文件的黑暗时代以来&#xff0c;Word已经走过了漫长的道路。如今&#xff0c;如果您丢失了未保存的Word文档&#xff0c;可能仍然有一种…

31.Django大型电商项目之加入购物车——Django的增加、删除、修改、查询实操

1. 加入购物车 views # netshop\cartapp\views.py from django.shortcuts import render, redirect from django.http import HttpResponse, HttpResponseBadRequest from utils.cartmanager import * # Create your views here. # 购物车视图 def cartView(request):# 获取表…

高通Ride软件开发包使用指南(13)

高通Ride软件开发包使用指南&#xff08;13&#xff09;9.3使用HLOS验证PCIe交换机9.3.1先决条件发行说明9.3.2 PCIE设备枚举9.3.3验证SA9000推断9.3.4芯片对芯片9.3.5 NVME操作9.3.6 10Gb以太网9.3使用HLOS验证PCIe交换机 本节提供有关如何通过HLOS验证PCIe交换机用例的信息Q…

Set接口-HashSet和LinkedHashSet

1.Set 接口 1.1基本介绍 1)无序(添加和取出的顺序不一致)&#xff0c;没有索引; 2)不允许重复元素,所以最多包含一个null; 3)JDK API中Set接口的实现类有: 1.2Set 接口的常用方法 和 List 接口一样, Set 接口也是 Collection 的子接口&#xff0c;因此&#xff0c;常用方法和Co…