OA自动化办公管理系统(java+Layui+SSM+Maven+mysql+JSP+html)
今天小编给各位分享oa办公系统的知识,文中也会对其通过OA自动化办公管理系统(java+Layui+SSM+Maven+mysql+JSP+html)和什么是OA办公系统?等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!
内容导航:
一、OA自动化办公管理系统(java+Layui+SSM+Maven+mysql+JSP+html)
一、项目运行环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等
用户管理控制层:/** * @author yy */ @Controller@RequestMapping("/user")public class UserController extends BaseController{ private String prefix = "system/user/"; @Autowired IUserService iUserService; @Autowired IRoleService iRoleService; @Autowired IDeptService iDeptService; @Autowired IPositionService iPositionService; @Autowired private SysPasswordService passwordService; /** * * @描述 跳转到用户页面 * * @date 2018/9/16 10:54 */ @RequestMapping("/tolist") @RequiresPermissions("user:list") public String toUserList() { return prefix + "user"; } /** * @描述 用户数据 * @date 2018/9/15 12:30 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo list(User user) { startPage(); List<User> users = iUserService.selectByUser(user); return getDataTable(users); } /** * 编辑用户 system/user/edit/20180914-1 */ @RequiresPermissions("user:update") @RequestMapping("/edit/{userId}") public String edit(@PathVariable("userId") String userId, Model model) { // 个人信息 User user = iUserService.selectByPrimaryKey(userId); Map<String, Object> role_post_dept = getRole_Post_Dept(); model.addAttribute("depts", role_post_dept.get("dept")); model.addAttribute("roles", role_post_dept.get("role")); model.addAttribute("positions", role_post_dept.get("position")); model.addAttribute("user", user); return prefix + "edit"; } /** * * @描述 保存用户 * * @date 2018/9/15 18:53 */ @PostMapping("/editSave") @RequiresPermissions("user:update") @Operlog(modal = "用户管理", descr = "修改用户信息") @ResponseBody public AjaxResult save(User user) { if (StringUtils.isNotNull(user.getUid()) && User.isBoss(user.getUid())) { return error("不允许修改管理员用户"); } if(user.getPwd()!=null){ user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024); user.setPwd(md5.toHex()); } return result(iUserService.updateByPrimaryKeySelective(user)); } /** * @描述 添加用户页面 * @date 2018/9/15 18:46 */ @RequestMapping("/toAdd") @RequiresPermissions("user:add") public String toaddUser(Model model) { Map<String, Object> role_post_dept = getRole_Post_Dept(); model.addAttribute("depts", role_post_dept.get("dept")); model.addAttribute("roles", role_post_dept.get("role")); model.addAttribute("positions", role_post_dept.get("position")); return prefix + "add"; } /** * * @描述 添加用户 * * @date 2018/9/15 20:40 */ @RequestMapping("/addSave") @RequiresPermissions("user:add") @Operlog(modal = "用户管理", descr = "添加用户") @ResponseBody public AjaxResult addUser(User user) { user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", user.getPwd(), user.getSalt(), 1024); user.setPwd(md5.toHex()); user.setAvatar(CsEnum.avatar.USER_AVATAR.getValue()); user.setCreateTime(new Date()); return result(iUserService.insertSelective(user)); } /** * * @描述 批量删除 * * @date 2018/9/16 9:31 */ @RequestMapping("/del") @RequiresPermissions("user:del") @Operlog(modal = "用户模块", descr = "删除用户") @ResponseBody public AjaxResult delByUserIds(String[] ids) { try { int i = iUserService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 编辑密码修改页面 * * @date 2018/9/16 10:25 */ @RequestMapping("/resetPwd/{userId}") @RequiresPermissions("user:update") public String editPwd(@PathVariable("userId") String id, Model model) { model.addAttribute("uid", id); return prefix + "resetPwd"; } /** * * @描述 密码修改 * * @date 2018/9/16 10:42 */ @RequestMapping("/resetPwd") @RequiresPermissions("user:update") @Operlog(modal = "用户模块", descr = "修改密码") @ResponseBody public AjaxResult resetPwd(User user) { return result(iUserService.resrtPwd(user)); } /** * 校验手机号码 */ @PostMapping("/checkPhoneUnique") @ResponseBody public String checkPhoneUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkPhoneUnique(user); } return uniqueFlag; } /** * 校验email邮箱 */ @PostMapping("/checkEmailUnique") @ResponseBody public String checkEmailUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkEmailUnique(user); } return uniqueFlag; } /** * * @描述: 校验登录名唯一性 * * @params: * @return: * @date: 2018/10/2 17:06 */ @PostMapping("/checkLoginNameUnique") @ResponseBody public String checkLoginNameUnique(User user) { String uniqueFlag = "0"; if (user != null) { uniqueFlag = iUserService.checkLoginNameUnique(user); } return uniqueFlag; } public Map<String, Object> getRole_Post_Dept() { Map<String, Object> map = new HashMap<>();// 角色 List<Role> roles = iRoleService.selectRoleList(new Role());// 部门信息 List<Dept> depts = iDeptService.selectDeptList(new Dept());// 岗位 List<Position> positions = iPositionService.selectPositionList(new Position()); map.put("role", roles); map.put("dept", depts); map.put("position", positions); return map; } /** * 用户个人信息查看页面 */ @RequestMapping("/myMsg") public String ToMyMsg(Model model, HttpServletRequest request) { User user = iUserService.selectByPrimaryKey(getUserId()); model.addAttribute("user", user); model.addAttribute("loginIp", HttpHeaderUtil.getIpAddr(request)); return prefix + "profile/msg"; } /** * 密码修改页面 */ @RequestMapping("/resetMyPwd") public String toResetPwd(Model model) { User user = iUserService.selectByPrimaryKey(getUserId()); model.addAttribute("user", user); return prefix + "profile/resetPwd"; } /** * 密码修改保存 */ @RequestMapping("/updateMyPwdSave") @ResponseBody @RequiresPermissions("user:update") @Operlog(modal = "个人信息", descr = "修改密码") public AjaxResult updateMyPwdSave(String password) { User user = new User(); user.setSalt(ShiroUtils.randomSalt()); SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024); user.setPwd(md5.toHex()); user.setUid(getUserId()); int i = iUserService.updateByPrimaryKeySelective(user); if (i > 0) { //更新shiro中的信息 ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); return success(); } return error(); } /** * 编辑用户头像修改 */ @RequestMapping("/updateAvatar") public String toupdateAvatar(Model model) { model.addAttribute("user", getUser()); return prefix + "profile/avatar"; } /** * 修改保存用户头像 */ @RequestMapping("/updateAvatarSave") @RequiresPermissions("user:update") @Operlog(modal = "个人信息", descr = "修改头像") @ResponseBody public AjaxResult toupdateAvatar(MultipartFile file) { try { String imgPath = UploadFile.uploadUserImg(file); if (StringUtils.isEmpty(imgPath)) { return error("图片上传失败,稍后再试!"); } User user = new User(); user.setUid(getUserId()); user.setAvatar(imgPath); int i = iUserService.updateByPrimaryKeySelective(user); if (i > 0) { ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); } return result(i); } catch (IOException e) { return error(); } catch (FileSizeException e) { //文件过大 return error(e.getMsg()); } catch (FileNameLengthException e) { //文件名字超长 return error(e.getMsg()); } } /** * 校验密码和原来密码是否相同 */ @RequestMapping("/checkPassword") @ResponseBody public boolean checkPassword(String password) { //加密后与数据库密码比较 User user = getUser(); SimpleHash md5 = new SimpleHash("MD5", password, user.getSalt(), 1024); String oldPassword = md5.toHex(); String pwd = getPwd(); if (pwd.equals(oldPassword)) { return true; } return false; } }
部门管理控制层:/** * @author yy */@Controller@RequestMapping("/dept")public class DeptController extends BaseController{ private String prefix = "system/dept/"; @Autowired IDeptService iDeptService; @Autowired IUserService iUserService; /** * * @描述 页面跳转到部门 * * @date 2018/9/16 10:59 */ @RequestMapping("/tolist") @RequiresPermissions("dept:list") public String tolist() { return prefix + "dept"; } /** * * @描述 ajax请求的所有部门 * * @date 2018/9/16 10:48 */ @RequestMapping("/ajaxlist") @ResponseBody public List<Dept> list(Dept dept) { List<Dept> depts = iDeptService.selectDeptList(dept); return depts; } /** * * @描述 部门列表页 * * @date 2018/9/16 10:52 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo listPag(Dept dept) { //开启分页 startPage(); List<Dept> depts = iDeptService.selectDeptList(dept); return getDataTable(depts); } /** * * @描述 新增页面 * * @date 2018/9/16 11:37 */ @RequiresPermissions("dept:add") @RequestMapping("/toAdd") public String toAdd(Model model) { List<User> users = iUserService.selectByUser(new User()); model.addAttribute("users", users); return prefix + "add"; } /** * * @描述: 查询所有部门下的所有用户 用户归类 树状数据 * * @date: 2018/9/27 11:25 */ @RequestMapping("/getDeptAndUserTreeData") @ResponseBody public List<Object> DeptAndUserTreeData() { List<Dept> depts = iDeptService.selectDeptAndUser(); List<User> users=new ArrayList<>(); LinkedList<Object> deptList = new LinkedList<>(); for (Dept dept : depts) { Map<String, Object> deptMap = new HashMap(); deptMap.put("name", dept.getDeptName()); deptMap.put("id", null); users = dept.getUsers(); LinkedList<Object> userlist = new LinkedList<>(); for (User user : users) { Map<String, Object> userMap = new HashMap(); userMap.put("name",user.getName()); userMap.put("id",user.getUid()); userMap.put("icon","/img/timg.jpg"); userlist.add(userMap); } deptMap.put("children",userlist); deptList.add(deptMap); } return deptList; } /** * * @描述 批量删除 * * @date 2018/9/16 11:53 */ @RequestMapping("/del") @RequiresPermissions("dept:del") @ResponseBody @Operlog(modal = "部门管理",descr = "删除部门") public AjaxResult del(String[] ids) { try { iDeptService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 执行保存操作 * * @date 2018/9/16 11:54 */ @RequestMapping("/addSave") @Operlog(modal = "部门管理",descr = "添加部门") @RequiresPermissions("dept:add") @ResponseBody public AjaxResult addDept(Dept dept) { dept.setCreateTime(new Date()); return result(iDeptService.insertSelective(dept)); } /** * * @描述 编辑修改页面 * * @date 2018/9/16 14:06 */ @RequestMapping("/edit/{id}") @RequiresPermissions("dept:update") public String edit(@PathVariable("id") String id, Model model) { Dept dept = iDeptService.selectByPrimaryKey(id); List<User> users = iUserService.selectByUser(new User()); model.addAttribute("users", users); model.addAttribute("Dept", dept); return prefix + "edit"; } /** * * @描述 修改保存 * * @date 2018/9/16 16:12 */ @RequestMapping("/editSave") @RequiresPermissions("dept:update") @Operlog(modal = "部门管理",descr = "修改信息") @ResponseBody public AjaxResult save(Dept dept) { int i = 0; try { i = iDeptService.updateByPrimaryKeySelective(dept); } catch (Exception e) { return error(e.getMessage()); } return result(i); } /** * 校验部门名称 */ @PostMapping("/checkDeptNameUnique") @ResponseBody public String checkDeptNameUnique(Dept dept) { String uniqueFlag = "0"; if (dept != null) { uniqueFlag = iDeptService.checkDeptNameUnique(dept); } return uniqueFlag; }}
角色管理控制层:/** * @author yy */@Controller@RequestMapping("/role")public class RoleController extends BaseController{ private String prefix = "system/role/"; @Autowired IUserService iUserService; @Autowired IRoleService iRoleService; @Autowired IPermissionService iPermissionService; /** * * @描述 页面跳转 * * @date 2018/9/16 10:59 */ @RequestMapping("/tolist") @RequiresPermissions("role:list") public String tolist() { return prefix + "role"; } /** * * @描述 ajax请求所有 * * @date 2018/9/16 10:48 */ @RequestMapping("/ajaxlist") @ResponseBody public List<Role> list(Role role) { List<Role> roles = iRoleService.selectRoleList(role); return roles; } /** * * @描述 列表 * * @date 2018/9/16 10:52 */ @RequestMapping("/tableList") @ResponseBody public TableDataInfo listPag(Role role) { //开启分页 startPage(); List<Role> roles = iRoleService.selectRoleList(role); return getDataTable(roles); } /** * * @描述 新增页面 * * @date 2018/9/16 11:37 */ @RequestMapping("/toAdd") @RequiresPermissions("role:add") public String toAdd(Model model) { return prefix + "add"; } /** * * @描述 批量删除 * * @date 2018/9/16 11:53 */ @RequestMapping("/del") @RequiresPermissions("role:del") @Operlog(modal = "角色管理",descr = "删除角色") @ResponseBody public AjaxResult del(Integer[] ids) { try { iRoleService.deleteByPrimaryKeys(ids); } catch (Exception e) { return error(e.getMessage()); } return success(); } /** * * @描述 添加保存 * * @date 2018/9/16 11:54 */ @RequestMapping("/addSave") @RequiresPermissions("role:update") @Operlog(modal = "角色管理",descr = "添加角色") @ResponseBody public AjaxResult addRole(Role role, Integer[] ids) { role.setCreateTime(new Date()); int insert = 0; try { if (StringUtils.isEmpty(ids)) { ids = new Integer[0]; } insert = iRoleService.insert(role, ids); } catch (Exception e) { return error(e.getMessage()); } //清空缓存 ShiroUtils.clearCachedAuthorizationInfo(); return result(insert); } /** * * @描述: 根据ID 获取u他的所有权限 做回显 * * @params: roleId 角色Id * @return: * @date: 2018/9/27 14:04 */ @RequestMapping("/selectById/{roleId}") @ResponseBody public Role selectById(@PathVariable("roleId") Integer roleId) { Role role = iRoleService.selectByPrimaryKey(roleId); return role; } /** * * @描述 编辑修改页面 * * @date 2018/9/16 14:06 */ @RequestMapping("/edit/{id}") @RequiresPermissions("role:update") public String edit(@PathVariable("id") Integer id, Model model) { Role role = iRoleService.selectByPrimaryKey(id); model.addAttribute("Role", role); return prefix + "edit"; } /** * * @描述 编辑修改权限页面 * * @date 2018/9/16 14:06 */ @RequestMapping("/editPower/{id}") @RequiresPermissions("role:update") public String editPower(@PathVariable("id") Integer id, Model model) { Role role = iRoleService.selectByPrimaryKey(id); model.addAttribute("Role", role); return prefix + "editPower"; } /** * * @描述 修改角色信息保存 * * @date 2018/9/16 16:12 */ @RequestMapping("/editSave") @RequiresPermissions("role:update") @Operlog(modal = "角色管理",descr = "修改角色信息") @ResponseBody public AjaxResult save(Role role) { int i = 0; try { i = iRoleService.updateByPrimaryKeySelective(role); } catch (Exception e) { return error(e.getMessage()); } return result(i); } /** * * @描述 修改角色权限信息保存 * * @date 2018/9/16 16:12 */ @RequestMapping("/editPowerSave") @RequiresPermissions("role:update") @Operlog(modal = "角色管理",descr = "修改角色权限") @ResponseBody public AjaxResult editPowerSave(Role role, Integer[] ids) { int i = 0; try { if (StringUtils.isEmpty(ids)) { ids = new Integer[0]; } i = iRoleService.updateByPrimaryKeyPowerSelective(role, ids); } catch (Exception e) { return error(e.getMessage()); } //清空缓存 ShiroUtils.clearCachedAuthorizationInfo(); //如果用户正在修改的角色id 是当前用户的角色id 则刷新 subject的User信息 if (role.getRoleId().equals(getRoleId())) { ShiroUtils.reloadUser(iUserService.selectByPrimaryKey(getUserId())); } return result(i); } /** * 校验名称唯一 */ @PostMapping("/checkRoleNameUnique") @ResponseBody public String checkDeptNameUnique(Role role) { String uniqueFlag = "0"; if (role != null) { uniqueFlag = iRoleService.checkRoleNameUnique(role); } return uniqueFlag; }}
项目源码及开发文档由于限制,这里不能直接放链接,需要项目源码与开发文档的同学转发本文+关注+私信【0221】即可获取
一、什么是OA办公系统?
什么是OA办公管理系统?企业员工需要了解OA系统的这些特征。
什么是OA办公系统?
OA办公系统是指利用计算机网络技术帮助企业实现方便,高效,自动化协同办公效率的办公自动化系统。
传统的办公方法需要大量的人力和物力资源,并且需要花费大量时间来处理轻微和重复的任务,这导致效率低下并且不能更好地专注于工作。 OA系统的自动化已成为社会发展的主要趋势。
如果是这样,OA系统的具体功能是什么?各个公司会更喜欢吗?
OA系统应具备哪些功能?
1.建立内部沟通平台
通知,公告,工作报告,工作日志,工作计划,即时消息和其他内部通信功能。这使公司员工能够快速沟通和沟通,帮助他们第一次实现协作目标。
2.辅助办公室
私人办公室,会议管理,办公用品管理,特殊管理,车队管理等各种辅助办公室与日常办公工作相结合。 OA办公系统使这些二级办公室自动化。
信息披露和文件管理自动化
4.建立信息发布平台
在组织内部建立有效的信息传播和交换场所,可以广泛传播给公司内部的员工,如电子公告板,电子论坛,电子出版物,内部规章制度,公告,技术交流等。员工可以了解公司的动态。
5.自动化文档管理
您可以创建各种文档,文件,知识,信息等,并且可以根据您的权限进行存储,共享和使用,并且可以轻松找到它们。
自动文档管理允许您将各种文档数字化,文档以云盘和电子文件柜的形式保留,并根据您的许可使用和共享。
二、OA办公自动化系统包括哪些功能模块
泛微协同OA办公自动化系统能向企业提供一个协同的、集成的办公环境,使所有的办公人员都在统一且个性化的信息门户中一起工作,摆脱时间和地域的限制,实现协同工作与知识管理。
泛微e-cology OA系统PC端包含流程、门户、知识、人事、沟通、客户、项目、财务等20多个功能模块;APP移动端形成工作中心、企业微信、通信录、流程审批、移动审批、移动邮件
、移动文档等20多个功能模块;同时在微信中也可以方便的使用移动办公、协助沟通、流程审批考勤签到等15个模块。
部分功能模块展示如下图:
三、OA系统中包含哪些功能模块?
OA办公自动化系统能向企业提供一个协同的、集成的办公环境,使所有的办公人员都在统一且个性化的信息门户中一起工作,摆脱时间和地域的限制,实现协同工作与知识管理。
e-cology OA系统PC端包含流程管理、门户管理、知识管理、人事管理、沟通、客户管理、项目管理、财务管理等20多个功能模块;APP移动端形成智能语音、考勤、会议、日程、通讯录、流程审批、移动任务、移动邮件、移动文档等20多个功能模块;同时在微信中也可以方便的使用移动办公、协助沟通、流程审批考勤签到等15个模块。
部分功能模块展示如下图:
关于oa办公系统的问题,通过《OA办公自动化系统包括哪些功能模块》、《OA系统中包含哪些功能模块?》等文章的解答希望已经帮助到您了!如您想了解更多关于oa办公系统的相关信息,请到本站进行查找!
爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。