Java项目:企业绩效管理系统(java+SSM+HTML+LayUI+bootstrap+mysql)

源码获取:俺的博客首页 "资源" 里下载!

项目介绍


本项目包含管理员与普通员工两种角色,
管理员角色包含以下功能:
管理员登录,员工管理,部门管理,岗位管理,职称管理,工龄奖金管理,工资项管理,考勤管理,工资查询,统计图表等功能。
员工角色包含以下功能:
员工登录,个人信息管理,考勤管理,工资详情等功能。


环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 5.7版本;
6.是否Maven项目:是;


技术栈

1. 后端:Spring+SpringMVC+Mybatis
2. 前端:HTML+CSS+JavaScript+LayUI+jquery+bootstrap


使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中dbconfig.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,输入localhost:8080/ssm_esms 登录
注:tomcat中需配置路径为/ssm_esms,否则会有异常
管理员账号/密码:admin/admin
用户账号/密码:18080833/123456

 

 

 

 

 

员工管理控制层:

@RestController
@RequestMapping("/employee")
@CrossOrigin
@Slf4j
public class EmployeeController {
    @Autowired
    private EmployeeService employeeService;
    @Autowired
    private DepartmentService departmentService;
    @Autowired
    private JobService jobService;
    @Autowired
    private EduLevelMapper eduLevelMapper;
    @Autowired
    private EmployeeMapper employeeMapper;
    /**
     * 搜索接口
     */
    @GetMapping("/search")
    public Result search(@RequestParam(name = "name", required = false,defaultValue = "") String name,
                         @RequestParam(name = "current", required = false, defaultValue = "1") Integer current,
                         @RequestParam(name = "size", required = false, defaultValue = "10") Integer size) {
        return employeeService.list(current, size, name);
    }

    /**
     * 分页查询接口
     *
     * @param current
     * @param size
     * @return
     */
    @GetMapping("/list")
    public Result list(@RequestParam(name = "current", required = false, defaultValue = "1") Integer current,
                       @RequestParam(name = "size", required = false, defaultValue = "10") Integer size) {
        return employeeService.list(current, size, null);
    }

    /**
     * 根据id获取员工具体信息
     * @param id
     * @return
     */
    @GetMapping("/getUserById")
    public EmployeeDTO getUserAllInfoById(@RequestParam(name = "id") Integer id) {
        return employeeService.getUserById(id);
    }

    /**
     * 根据员工获取信息
     * @param id
     * @return
     */
    @GetMapping("/getEmployeeById")
    public Employee getUserById(@RequestParam(name = "id") Integer id) {
        return employeeMapper.selectById(id);
    }
    /**
     * 增加员工接口
     *
     * @param employee
     * @return
     */
    @PostMapping("/add")
    public Map<String, Object> addUser(@RequestBody Employee employee) {
        log.info(employee.toString());
        return employeeService.add(employee);
    }

    /**
     * 更新用户
     * @param employee
     * @return
     */
    @PostMapping("/update")
    public Map<String, Object> updateUser(@RequestBody Employee employee) {
        log.info(employee.toString());
        return employeeService.update(employee);
    }

    /**
     * 删除用户
     * @param id
     * @return
     */
    @GetMapping("/delete")
    public Result deleteEmployeeById(@RequestParam(name = "id") Integer id) {
        return employeeService.deleteEmployeeById(id);
    }

    /**
     * 辞退员工
     *
     * @param id
     * @return
     */
    @GetMapping("/dismiss")
    public Map<String, Object> dismissEmployeeById(@RequestParam(name = "id") Integer id) {
        return employeeService.dismissEmployeeById(id);
    }

    /**
     * 得到所以工作,部门,学历信息
     *
     * @return
     */
    @GetMapping("/otherInfo")
    public Result getAllOtherInfo() {
        Map<String, Object> info = new HashMap<>();
        info.put("departments", departmentService.selectAll());
        info.put("jobs", jobService.selectAll());
        info.put("eduLevels", eduLevelMapper.selectList(null));
        return Result.success(info);
    }

    @GetMapping("/map")
    public Result getMap() {
        return employeeService.getMap();
    }
}

登录管理业务处理层:

@Service
public class AuthServiceImpl implements AuthService {
    @Autowired
    private EmployeeMapper employeeMapper;

    @Override
    public Result login(String email, String password) {

        //先用邮箱查询是否有这个员工
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Employee::getEmail, email);
//        queryWrapper.eq(Employee::getPassword, password);
        Employee employee = employeeMapper.selectOne(queryWrapper);
        //判断员工是否存在
        if (employee == null) {
            return Result.failure(ResponseCode.USER_NOT_FOUND);
        } else {
            //判断密码是否正确
            if (!employee.getPassword().equals(password)) {
                return Result.failure(ResponseCode.PASSWORD_ERROR);
            }
            // 生成token
            String token = UUID.randomUUID().toString();
            LoginDTO loginDTO = new LoginDTO();
            if (employee.getAuthority() == 1) {
                loginDTO.setSuper(true);
            } else {
                loginDTO.setSuper(false);
            }
            loginDTO.setToken(token);
            loginDTO.setUserId(employee.getId());
            return Result.success(loginDTO);
        }
    }
}

部门管理控制层: 

@Service
public class DepartmentServiceImpl implements DepartmentService {
    @Autowired
    private DepartmentMapper departmentMapper;
    @Autowired
    private DeptManagerMapper deptManagerMapper;
    @Autowired
    private EmployeeMapper employeeMapper;

    @Override
    public List<DepartmentDTO> selectAll() {
        List<DepartmentDTO> departmentDTOS = departmentMapper.selectAll();
        for (DepartmentDTO departmentDTO : departmentDTOS) {
            LambdaQueryWrapper<DeptManager> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(DeptManager::getDeptId, departmentDTO.getId());
            DeptManager deptManager = deptManagerMapper.selectOne(queryWrapper);
            // fixes bug  #空指针异常,  如果部门没有经理, 会抛出空指针异常
            if (deptManager != null) {
                EmployeeDTO manager = employeeMapper.getUserById(deptManager.getEmpId());
                departmentDTO.setManager(manager);
            }
        }
        return departmentDTOS;
    }

    @Override
    public Map<String, Object> add(Map<String, Object> map) {

        //先查询是否有部门
        String name = (String) map.get("name");
        Integer managerId = Integer.parseInt((String) map.get("managerId"));
        LambdaQueryWrapper<Department> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(Department::getName, name);
        Integer count = departmentMapper.selectCount(wrapper);
        if (count != 0) {
            map.put("code", 511);
            map.put("message", "部门存在");
            return map;
        }
        //查询经理是否存在
        LambdaQueryWrapper<Employee> wrapper1 = new LambdaQueryWrapper<>();
        wrapper1.eq(Employee::getId, managerId);
        Integer count1 = employeeMapper.selectCount(wrapper1);
        if (count1 == 0) {
            map.put("code", 404);
            map.put("message", "用户不存在");
            return map;
        }
        //定义返回结果
        Map<String, Object> resultMap = new HashMap<>();
        Department department = new Department();
        department.setIntro((String) map.get("description"));
        department.setName((String) map.get("name"));
        //插入部门
        int i = departmentMapper.insert(department);
        //部门经理表
        DeptManager deptManager = new DeptManager();
        deptManager.setDeptId(department.getId());
        deptManager.setEmpId(managerId);
        int insert = deptManagerMapper.insert(deptManager);
        if (i !=0 ) {
            map.put("code", 200);
            map.put("message", "添加成功");
            return map;
        } else {
            map.put("code", 500);
            map.put("message", "添加失败");
            return map;
        }
    }
}

 源码获取:俺的博客首页 "资源" 里下载!

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
.2.2 职工需求描述 对于职工来说,职工可以修改其密码信息,查询其基本信息和工资信息,收发留言信息。 职工登陆 职工在登陆时输入自己的用户名和密码,如无误后进入职工信息中心界面。默认的密码由管理员分配。如果密码错误则提示密码出错请重新输入,职工可以返回登陆界面。 职工密码修改 职工在登陆后,可以修改自己的密码。在修改密码界面中,需要两次输入自己的新密码,然后系统经过判断修改密码。下次可以通过新密码登陆系统。 职工考勤信息查询 在职工登陆后,进入考勤查询界面,页面给出每月的考勤信息,点击相应的年月,可以查看自己每个月的考勤记录详细信息。 职工工资信息查询 进入查询界面,职工可以查看详细工资情况,职工可以通过选择月份,便可以查询职工固定月份的工资信息。职工还可以查询自己的奖惩信息。 职工留言管理 职工可以向管理员发送留言,查看管理员发送给自己的留言。 3.2.3 管理员需求描述 对于管理员来说,管理员的能够实现的功能是该工资管理系统的核心功能,包括员工基本档案信息的管理,工资的设定与计算,考勤记录与统计,奖惩或其他重要事项的记录,留言管理,科室信息管理等。 管理员登陆 管理员在登陆框选择身份为管理员,输入自己的管理员号以及密码。如无误后进入管理员界面。如果密码不正确则提示密码错误信息,需要重新输入,返回管理员登陆界面。 密码修改 管理员可以修改自己的密码,下次登陆时管理员就需要输入自己的新密码登陆系统。 科室管理 随着医院规模的扩大,医院可能需要增加某些科室,修改科室信息等,管理员登陆系统后,可以对科室信息进行管理、操作。 员工信息管理 管理员登陆后,可以进行查看员工信息,增加员工,修改员工信息,删除员工信息等操作。 员工奖惩信息管理 根据 人民医院管理制度,管理员可以使用系统记录每个员工的奖励 ,惩罚等其他重要信息,以便确定员工的工作状况,实现相应的奖励和处罚。 员工工资设置 管理员登陆系统后,可以设置每个员工的每月工资信息,其中工资项包括基本工资,基本津贴,财务人员需要为每个在职的员工设定基本工资与基本津贴。财务人员根据员工的具体工资情况,输入奖金,税率等,系统自动计算应发,扣发,实发等工资项。 工资统计与报表打印 统计每个月所有员工的工资信息,并提供报表打印功能。 留言管理模块 职工查看自己的工资信息后,如有问题,可以向财务人员(系统管理员)发送留言,管理员可以回复留言,删除留言信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyondwild

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值