基于javaweb+mysql的ssm+mavenoa办公管理系统(java+layui+ssm+maven+mysql+jsp)

基于javaweb+mysql的ssm+mavenoa办公管理系统(java+layui+ssm+maven+mysql+jsp)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SSM+Mavenoa办公管理系统(java+layui+ssm+maven+mysql+jsp)

一、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等

        List<Menu> menuList = new ArrayList<>();

        int roleId = Integer.parseInt(request.getParameter("roleId"));
        List<Menu> menuByRoleId = menuService.getMenuByRoleId(roleId);

        List<Menu> menuAll = menuService.getMenuAll(0, 999);
        for(Menu menu : menuAll){
            menu.setDisabled(!menu.isStart());   //是否禁用
            for(Menu menu1: menuByRoleId){
                if(menu.getId().equals(menu1.getId())){
                    //如果相等
                    menu.setSpread(true);       //展开
                    menu.setChecked(true);      //选中
                    //是否是一级
                    for(Menu menu2 : menuAll){
                        if(menu.getId().equals(menu2.getPid())){
                            menu.setChecked(false); //取消勾选
                        }
                    }
                }
            }
        }
        //整理成树型
        for(Menu menu : menuAll){
            if(menu.getPid().equals(-1)){
                List<Menu> menuList1 = new ArrayList<>();
                for(Menu menu1 : menuAll){
                    if(menu.getId().equals(menu1.getPid())){
                        menuList1.add(menu1);
                    }
                }
                if(menuList1.size() > 0){
                    menu.setChildren(menuList1);
                }
                menuList.add(menu);
            }
        }
        return menuList;
    }

}

    public JSONObject resetPassword(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            //从前端获取数据
            String employeeId = request.getParameter("employeeId");
            String employeeNumber = request.getParameter("employeeNumber");
            if (employeeId == null || employeeNumber == null) {
                json.put("type", "error");
                json.put("msg", "null");
                return json;
            }
            //给初始密码加密
            Object password = new SimpleHash("MD5", Password.EMPLOYEE_INIT_PASSWORD, ByteSource.Util.bytes(employeeNumber), 1024);
            //保存进数据库
            if (employeeDao.resetEmployeePassword(Integer.parseInt(employeeId), password.toString()) > 0) {
                json.put("type", "success");
                json.put("msg", "重置密码成功!");
                return json;
            }
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        json.put("type", "error");
        json.put("msg", "重置密码失败!");
        return json;
    }

    @Override
    public JSONObject personageUpdateEmployee(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            Employee employee = JSONObject.parseObject(request.getParameter("employee"), Employee.class);
            if (employeeDao.verifyEmployeeNumber(employee) > 0) {
                json.put("type", "error");
                json.put("msg", "该工号已被使用,请使用别的工号");
                return json;
            }
            if (employeeDao.verifyEmployeePhone(employee) > 0) {
                json.put("type", "error");
                json.put("msg", "该手机号已被使用,请使用别的手机号");
                return json;
            }
            if (employeeDao.updateEmployee(employee) > 0) {
                processTask.setProcessTaskAssignee(hti.getAssignee());
                processTask.setProcessTaskTenantId(hti.getTenantId());
                Leave leave = leaveDao.selectLeaveByProcessInstanceId(hti.getExecutionId());
                if (leave != null) processTask.setLeave(leave);
                processTaskList.add(processTask);
            }
            json.put("type", "success");
            json.put("msg", "获取数据成功!");
            json.put("code", 0);
            json.put("count", processTaskList.size());
            json.put("data", processTaskList);
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        return json;
    }
}

@Transactional
@Service("/employeeService")
public class EmployeeServiceImpl implements EmployeeService {

    @Autowired
            String processInstanceStr = request.getParameter("processInstance");
            if (processInstanceStr == null) {
                json.put("type", "error");
                json.put("msg", "获取数据失败!");
                return json;
            }
            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
            RuntimeService runtimeService = processEngine.getRuntimeService();
            ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceStr).singleResult();
            if (processInstance == null) {
                json.put("type", "success");
                json.put("msg", "已完成");
                return json;
            }
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        json.put("type", "error");
        json.put("msg", "未完成");
        return json;
    }

    @Override
    public JSONObject historicTaskInstanceQuery(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            /** 从SecurityUtils中获取自身的工号*/
            String number = SecurityUtils.getSubject().getPrincipal().toString();
            if (number == null) {
                json.put("type", "error");
                json.put("msg", MessageError.SYSTEM_ERROR);
                return json;
            }
            /** 获取进程引擎*/
            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
            List<ProcessTask> processTaskList = new ArrayList<>();

            /** 得到历史的服务*/
            HistoryService historyService = processEngine.getHistoryService();
            List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery().taskAssignee(number).finished().list();
            for (HistoricTaskInstance hti : list) {
                ProcessTask processTask = new ProcessTask();
                processTask.setProcessTaskId(hti.getId());
                processTask.setProcessTaskName(hti.getName());
                processTask.setProcessTaskExecutionId(hti.getExecutionId());
                processTask.setCreateTime(hti.getCreateTime());
                processTask.setProcessTaskAssignee(hti.getAssignee());
                processTask.setProcessTaskTenantId(hti.getTenantId());
                Leave leave = leaveDao.selectLeaveByProcessInstanceId(hti.getExecutionId());
                return json;
            }
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        json.put("type", "error");
        json.put("msg", "打卡失败!");
        return json;
    }

    @Override
    public JSONObject punchingCardRecord(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            int page;
            int limit;

            String employeeNumber = SecurityUtils.getSubject().getPrincipal().toString();   //获取自身工号
            String pageStr = request.getParameter("page");
            String limitStr = request.getParameter("limit");

            page = Integer.parseInt(pageStr);   //转成int类型
            limit = Integer.parseInt(limitStr);

            List<Punch> punches = punchDao.selectPunchByEmployeeNumber(employeeNumber, (page - 1) * limit, limit, null, null);

            json.put("type", "success");
            json.put("msg", "获取数据成功");
            json.put("code", 0);
            json.put("count", punchDao.selectPunchCount(employeeNumber,null,null));
            json.put("data", punches);
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        return request.getParameter("page");
    }

    /**
     * 登录功能
     *
     * @param employee
     * @param model
     * @return
     */
    @RequestMapping("/login")
    public String login(Employee employee, Model model) {
        Subject subject = SecurityUtils.getSubject();
        //  查看是否又缓存记录
        if (!subject.isAuthenticated()) {
            //  如果没有缓存记录就进行登录
            UsernamePasswordToken token = new UsernamePasswordToken(employee.getEmployeeNumber(), employee.getEmployeePassword());
            //  记住密码?
            token.setRememberMe(false);
            try {
                subject.login(token);   //  进行登录校验
            } catch (Exception e) {
                model.addAttribute("employee", employee);
                model.addAttribute("msg", "用户名或密码错误!");
                return "../../login";   //  转发
            }
        }
        return "redirect:/main/toMain"; //  重定向
    }

    /**
     * 注销功能
     */
    @RequestMapping("/logout")
    @ResponseBody
    public JSONObject logout() {
        JSONObject json = new JSONObject();
        Subject subject = SecurityUtils.getSubject();
        subject.logout();
        json.put("msg", "注销成功!");
        return json;
    @RequestMapping("/revocation")
    @ResponseBody
    public JSONObject revocation(HttpServletRequest request){
        return noticeService.revocation(request);
    }

    /**
     * 打开系统弹出最新的系统消息
     * @param request
     * @return
     */
    @RequestMapping("/queryingSystemMessages")
    @ResponseBody
    public JSONObject queryingSystemMessages(HttpServletRequest request){
        return noticeService.queryingSystemMessages(request);
    }

    /**
     * 点击已阅读
     * @param request
     * @return
     */
    @RequestMapping("/noticeRead")
    @ResponseBody
    public JSONObject noticeRead(HttpServletRequest request){
        return noticeService.noticeRead(request);
    }
}

                menuList.add(menu);
            }
        }
        return menuList;
    }

    /**
     * 获取全部菜单信息
     *
     * @param request
     * @return
     */
    @RequestMapping("/getMenuAll")
    @ResponseBody
    public Map<String, Object> getMenuAll(HttpServletRequest request) {
        Map<String, Object> map = new HashMap<>();
        int page = Integer.parseInt(request.getParameter("page"));
        int limit = Integer.parseInt(request.getParameter("limit"));
        List<Menu> menuAll = menuService.getMenuAll((page - 1) * limit, limit);
        map.put("code", 0);
        map.put("msg", "");
        map.put("count", menuService.getMenuAllCount());
        map.put("data", menuAll);
        return map;
    }

    /**
     * 添加菜单
     *
     * @param request
     * @return
     */
    @RequestMapping("/addMenu")
    @ResponseBody
    public JSONObject addMenu(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            Menu menu = JSONObject.parseObject(request.getParameter("menu"), Menu.class);
            if (menuService.addMenu(menu) > 0) {
                json.put("type", "success");
                json.put("msg", "添加菜单成功!");
                return json;
            }
        } catch (Exception e) {
            json.put("tpe", "error");

@RequestMapping("/stationery")
@Controller
public class StationeryController {

    @Autowired
    private StationeryService stationeryService;

    /**
     * 获取办公用品全部信息
     *
     * @param request
     * @return
     */
    @RequestMapping("/getStationeryAll")
    @ResponseBody
    public JSONObject getStationeryAll(HttpServletRequest request) {
        return stationeryService.getStationeryAll(request);
    }

    /**
     * 添加办公用品
     *
     * @param request
     * @return
     */
    @RequestMapping("/addStationery")
    @ResponseBody
    public JSONObject addStationery(HttpServletRequest request) {
        return stationeryService.addStationery(request);
    }

    /**
     * 修改办公用品信息
     *
     * @param request

@Transactional
@Service("/processService")
public class ProcessServiceImpl implements ProcessService {

    @Autowired
    private LeaveDao leaveDao;

    @Override
    public JSONObject getHistoricProcessInstanceAll(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            /**
             * 分页处理
             */
            String page = request.getParameter("page");
            String limit = request.getParameter("limit");
            if (page == null || limit == null) {
                json.put("type", "error");
                json.put("msg", "获取分页数据失败!");
                return json;
            }
            int pageInt = Integer.parseInt(page);
            for (Task hti : list) {
                ProcessTask processTask = new ProcessTask();
                processTask.setProcessTaskId(hti.getId());
                processTask.setProcessTaskName(hti.getName());
                processTask.setProcessTaskExecutionId(hti.getExecutionId());
                processTask.setCreateTime(hti.getCreateTime());
                processTask.setProcessTaskAssignee(hti.getAssignee());
                processTask.setProcessTaskTenantId(hti.getTenantId());
                Leave leave = leaveDao.selectLeaveByProcessInstanceId(hti.getExecutionId());
                processTask.setLeave(leave);
                processTaskList.add(processTask);
            }
            json.put("type", "success");
            json.put("msg", "获取数据成功!");
            json.put("code", 0);
            json.put("count", processTaskList.size());
            json.put("data", processTaskList);
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        return json;
    }

    @Override
    public JSONObject isProcess(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            String processInstanceStr = request.getParameter("processInstance");
            if (processInstanceStr == null) {
                json.put("type", "error");
                json.put("msg", "获取数据失败!");
                return json;
            }
            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
            RuntimeService runtimeService = processEngine.getRuntimeService();
            ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceStr).singleResult();
            if (processInstance == null) {
                json.put("type", "success");
                json.put("msg", "已完成");
                return json;
            }
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            page = Integer.parseInt(pageStr);   //转成int类型
            limit = Integer.parseInt(limitStr);

            List<Punch> punches = punchDao.selectPunchByEmployeeNumber(employeeNumber, (page - 1) * limit, limit, null, null);

            json.put("type", "success");
            json.put("msg", "获取数据成功");
            json.put("code", 0);
            json.put("count", punchDao.selectPunchCount(employeeNumber,null,null));
            json.put("data", punches);
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        return json;
    }

    @Override
    public JSONObject initPunch(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            String employeeNumber = SecurityUtils.getSubject().getPrincipal().toString();   //得到自身工号
            if(employeeNumber.equals("100001")){
                employeeNumber = "";  //赋予管理员所有权限
            }
            //自定义时间格式
            SimpleDateFormat formatLeading = new SimpleDateFormat("yyyy-MM-dd");

            String punchDay = formatLeading.format(new Date());
            List<Punch> punches = punchDao.selectPunchByPunchDayAndEmployeeNumber(punchDay, employeeNumber);
            if (punches == null) {
                json.put("type", "error");
                json.put("msg", "获取数据失败!");
                return json;
            }
            json.put("type", "success");
            json.put("msg", "获取数据成功!");
            json.put("data", punches);
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
    public JSONObject updateNotice(HttpServletRequest request) {
        return noticeService.updateNotice(request);
    }

    /**
     * 已阅读系统公告
     *
     * @param request
     * @return
     */
    @RequestMapping("/flagNotice")
    @ResponseBody
    public JSONObject flagNotice(HttpServletRequest request) {
        return noticeService.flagNotice(request);
    }

    /**
     * 批量发布系统公告
     *
     * @param request
     * @return
     */
    @RequestMapping("/bulkReleaseNotice")
    @ResponseBody
    public JSONObject bulkReleaseNotice(HttpServletRequest request) {
        return noticeService.bulkReleaseNotice(request);
    }

    /**
     * 查看已发布公告
     * @param request
     * @return
     */
    @RequestMapping("/publishedAnnouncements")
    @ResponseBody
    public JSONObject publishedAnnouncements(HttpServletRequest request){
        return noticeService.publishedAnnouncements(request);
    }

    /**
     * 撤销发布的系统公告
     * @param request
     * @return
     */
    @RequestMapping("/revocation")
    @ResponseBody
    public JSONObject revocation(HttpServletRequest request){
        return noticeService.revocation(request);
    @Autowired
    private EmployeeService employeeService;

    /**
     * 获取雇员全部信息
     *
     * @param request
     * @return
     */
    @RequestMapping("/getEmployeeAll")
    @ResponseBody
    public JSONObject getEmployeeAll(HttpServletRequest request) {
        return employeeService.getEmployeeAll(request);
    }

    /**
     * 添加雇员
     *
     * @param request
     * @return
     */
    @RequestMapping("/addEmployee")
    @ResponseBody
    public JSONObject addEmployee(HttpServletRequest request) {
        return employeeService.addEmployee(request);
    }

    /**
     * 修改雇员信息
     *
     * @param request
     * @return
     */
    @RequestMapping("/updateEmployee")
    @ResponseBody
    public JSONObject updateEmployee(HttpServletRequest request) {
        return employeeService.updateEmployee(request);
    }

    /**
     * 删除雇员
     *
     * @param request
     * @return
     */
    @RequestMapping("/deleteEmployee")
    @ResponseBody
    public JSONObject deleteEmployee(HttpServletRequest request) {
        return employeeService.deleteEmployee(request);
    }


@Controller
@RequestMapping("/role")
public class RoleController {

    @Autowired
    private RoleService roleService;

    /**
     * 页面跳转
     *
     * @param request
     * @return
     */
    @RequestMapping("/toPage")
    public String toPage(HttpServletRequest request) {
        String url = "sys/role/role";
        String page = request.getParameter("page");
        if (page != null) {
            url = page;
        }
        return url;
    }

    /**
     * 添加角色
     *
     * @param request
     * @return
     */
    @RequestMapping("/addRole")
    @ResponseBody
    public JSONObject addRole(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            Role role = JSONObject.parseObject(request.getParameter("role"), Role.class);

@Transactional
@Service("/leaveService")
public class LeaveServiceImpl implements LeaveService {

    @Autowired
    private LeaveDao leaveDao;

    @Override
    public JSONObject addLeave(HttpServletRequest request) {
        JSONObject json = new JSONObject();
        try {
            /** 从前端获取数据*/
            String leaveStr = request.getParameter("leave");
            if (leaveStr == null) {
                json.put("type", "error");
                json.put("msg", "获取请假信息失败!");
                return json;
            }

            /** 对表单校验*/
            Leave leave = JSONObject.parseObject(leaveStr, Leave.class);
            if (leaveDao.verifyLeave(leave) <= 0) {
                json.put("type", "error");
                json.put("msg", "填写信息不正确!");
                return json;
            }
            /** 添加请假单*/
            if (leaveDao.addLeave(leave) > 0) {
                json.put("type", "success");
                json.put("msg", "请假单已发送给部门经理,审核完后在查收!");
                return json;
            }
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            //手动开启事务回滚
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            String permissionsIdList = request.getParameter("permissionsIdList");
            if (permissionsIdList == null) {
                json.put("type", "error");
                json.put("msg", "获取数据为空!");
                return json;
            }
            Integer[] integers = JSONObject.parseObject(permissionsIdList, Integer[].class);
            if (permissionsDao.deletePermissions(integers) > 0) {
                json.put("type", "success");
                json.put("msg", "删除权限成功!");
                return json;
            }
        } catch (Exception e) {
            json.put("type", "error");
            json.put("msg", MessageError.SYSTEM_ERROR);
            System.out.println(e.getMessage());
            return json;
        }
        json.put("type", "error");
        json.put("msg", "删除权限失败!");
        return json;
    }

    @Override
    public List<Menu> getPermissionsDtree(HttpServletRequest request) {
        List<Menu> menuList = new ArrayList<>();

        int roleId = Integer.parseInt(request.getParameter("roleId"));
        //获取全部的权限信息
        List<Permissions> permissionsList = permissionsDao.selectPermissionsAll(0, 99);
        //根据角色ID获取权限ID
        Set<Integer> permissionsId = permissionsDao.selectPermissionsByRoleId(roleId);
        //转成List<Menu>
        List<Menu> menuList1 = new ArrayList<>();
        for (Permissions permissions : permissionsList) {
            Menu menu = new Menu();
            menu.setId(permissions.getPermissionsId()); //ID
            menu.setPid(permissions.getPermissionsPid());   //PID
            menu.setTitle(permissions.getPermissionsDesc());   //名称
            menu.setDisabled(!(permissions.getPermissionsStart() > 0)); //是否禁用
            menu.setSpread(false);  //不展开
            menu.setChecked(false);  //不选中
            for (Integer i : permissionsId) {
                if (permissions.getPermissionsId().equals(i)) {
                    menu.setSpread(true);   //展开
                    menu.setChecked(true);  //选中
     *
     * @param request
     * @return
     */
    @RequestMapping("/updateEmployee")
    @ResponseBody
    public JSONObject updateEmployee(HttpServletRequest request) {
        return employeeService.updateEmployee(request);
    }

    /**
     * 删除雇员
     *
     * @param request
     * @return
     */
    @RequestMapping("/deleteEmployee")
    @ResponseBody
    public JSONObject deleteEmployee(HttpServletRequest request) {
        return employeeService.deleteEmployee(request);
    }

    /**
     * 修改角色
     *
     * @param request
     * @return
     */
    @RequestMapping("/updateRole")
    @ResponseBody
    public JSONObject updateRole(HttpServletRequest request) {
        return employeeService.updateRole(request);
    }

    /**
     * 修改部门
     *
     * @param request
     * @return
     */
    @RequestMapping("/updateDepartment")
    @ResponseBody
    public JSONObject updateDepartment(HttpServletRequest request) {
        return employeeService.updateDepartment(request);
    }

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值