作者主页:源码空间codegym
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文中获取源码
项目介绍
本系统的功能分为管理员和员工两个角色
管理员的功能有:
(1)个人中心管理功能,添加管理员账号和修改登录密码;
(2)部门信息管理功能,对企业中的部门进行合理安排;
(3)员工信息管理功能,对企业中的员工的基本资料进行维护;
(4)绩效考核管理功能,发布员工的绩效考核,修改和删除不正确的绩效考核;
(5)岗位信息管理功能,对员工的岗位进行分配;
(6)公告信息管理功能,发布公告和管理公告;
(7)绩效绩效指标管理功能,需要考核的指标进行设置。
员工的功能有:
(1)个人资料管理功能,对本人基本信息进行维护;
(2)公告信息管理功能,实现在线查询公告;
(3)绩效考核管理功能,查询自己的考核信息;
(4)绩效指标管理功能,查询考核的指标。
环境要求
1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat7.x,8.X,9.x版本均可
4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;
5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目
6.数据库:MySql5.7/8.0等版本均可;
技术栈
运行环境:jdk8 + tomcat9 + mysql5.7 + windows10
服务端技术:Spring Boot+ Mybatis +VUE
使用说明
1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;
3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;
运行指导
idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:
http://mtw.so/5MHvZq
源码地址:http://codegym.top
运行截图
文档截图
项目截图
代码
package com.controller;
import com.alibaba.fastjson.JSONObject;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.FuzerenEntity;
import com.entity.view.FuzerenView;
import com.service.DictionaryService;
import com.service.FuzerenService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 负责人
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/fuzeren")
public class FuzerenController {
private static final Logger logger = LoggerFactory.getLogger(FuzerenController.class);
@Autowired
private FuzerenService fuzerenService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;
//级联表service
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(StringUtil.isNotEmpty(role) && "用户".equals(role)){
params.put("yonghuId",request.getSession().getAttribute("userId"));
}
params.put("orderBy","id");
PageUtils page = fuzerenService.queryPage(params);
//字典表数据转换
List<FuzerenView> list =(List<FuzerenView>)page.getList();
for(FuzerenView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
FuzerenEntity fuzeren = fuzerenService.selectById(id);
if(fuzeren !=null){
//entity转view
FuzerenView view = new FuzerenView();
BeanUtils.copyProperties( fuzeren , view );//把实体数据重构到view中
//修改对应字典表字段
dictionaryService.dictionaryConvert(view);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody FuzerenEntity fuzeren, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,fuzeren:{}",this.getClass().getName(),fuzeren.toString());
Wrapper<FuzerenEntity> queryWrapper = new EntityWrapper<FuzerenEntity>()
.eq("username", fuzeren.getUsername())
.or()
.eq("fuzeren_phone", fuzeren.getFuzerenPhone())
.or()
.eq("fuzeren_id_number", fuzeren.getFuzerenIdNumber());
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
FuzerenEntity fuzerenEntity = fuzerenService.selectOne(queryWrapper);
if(fuzerenEntity==null){
fuzeren.setCreateTime(new Date());
fuzeren.setPassword("123456");
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// fuzeren.set
// }
fuzerenService.insert(fuzeren);
return R.ok();
}else {
return R.error(511,"账户或者身份证号或者手机号已经被使用");
}
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody FuzerenEntity fuzeren, HttpServletRequest request){
logger.debug("update方法:,,Controller:{},,fuzeren:{}",this.getClass().getName(),fuzeren.toString());
//根据字段查询是否有相同数据
Wrapper<FuzerenEntity> queryWrapper = new EntityWrapper<FuzerenEntity>()
.notIn("id",fuzeren.getId())
.andNew()
.eq("username", fuzeren.getUsername())
.or()
.eq("fuzeren_phone", fuzeren.getFuzerenPhone())
.or()
.eq("fuzeren_id_number", fuzeren.getFuzerenIdNumber());
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
FuzerenEntity fuzerenEntity = fuzerenService.selectOne(queryWrapper);
if("".equals(fuzeren.getFuzerenPhoto()) || "null".equals(fuzeren.getFuzerenPhoto())){
fuzeren.setFuzerenPhoto(null);
}
if(fuzerenEntity==null){
// String role = String.valueOf(request.getSession().getAttribute("role"));
// if("".equals(role)){
// fuzeren.set
// }
fuzerenService.updateById(fuzeren);//根据id更新
return R.ok();
}else {
return R.error(511,"账户或者身份证号或者手机号已经被使用");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
fuzerenService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
FuzerenEntity fuzeren = fuzerenService.selectOne(new EntityWrapper<FuzerenEntity>().eq("username", username));
if(fuzeren==null || !fuzeren.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
// // 获取监听器中的字典表
// ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext();
// Map<String, Map<Integer, String>> dictionaryMap= (Map<String, Map<Integer, String>>) servletContext.getAttribute("dictionaryMap");
// Map<Integer, String> role_types = dictionaryMap.get("role_types");
// role_types.get(yonghu.getRoleTypes());
String token = tokenService.generateToken(fuzeren.getId(),username, "fuzeren", "负责人");
R r = R.ok();
r.put("token", token);
r.put("role","负责人");
r.put("username",fuzeren.getFuzerenName());
r.put("tableName","fuzeren");
r.put("userId",fuzeren.getId());
return r;
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody FuzerenEntity fuzeren){
// ValidatorUtils.validateEntity(user);
if(fuzerenService.selectOne(new EntityWrapper<FuzerenEntity>().eq("username", fuzeren.getUsername()).orNew().eq("fuzeren_phone",fuzeren.getFuzerenPhone()).orNew().eq("fuzeren_id_number",fuzeren.getFuzerenIdNumber())) !=null) {
return R.error("账户已存在或手机号或身份证号已经被使用");
}
fuzeren.setCreateTime(new Date());
fuzerenService.insert(fuzeren);
return R.ok();
}
/**
* 重置密码
*/
@GetMapping(value = "/resetPassword")
public R resetPassword(Integer id){
FuzerenEntity fuzeren = new FuzerenEntity();
fuzeren.setPassword("123456");
fuzeren.setId(id);
fuzerenService.updateById(fuzeren);
return R.ok();
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrFuzeren(HttpServletRequest request){
Integer id = (Integer)request.getSession().getAttribute("userId");
FuzerenEntity fuzeren = fuzerenService.selectById(id);
return R.ok().put("data", fuzeren);
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
}