SpringBoot+Vue实现前后端分离的企业人事管理系统
文末獲取源碼
開發(fā)語言:Java
使用框架:spring boot
前端技術(shù):JavaScript、Vue.js 、css3
開發(fā)工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
數(shù)據(jù)庫(kù):MySQL 5.7/8.0
數(shù)據(jù)庫(kù)管理工具:phpstudy/Navicat
JDK版本:Java jdk8
Maven:apache-maven 3.8.1-bin
目錄
一、前言介紹?
二、功能需求分析
2.1前臺(tái)用戶功能?
2.2后臺(tái)管理員功能
三、前臺(tái)員工功能
3.1前臺(tái)登錄模塊
3.2企業(yè)資訊模塊
3.3培訓(xùn)信息詳細(xì)模塊
3.4個(gè)人信息模塊?
四、管理員功能模塊
4.1員工管理模塊
4.2企業(yè)資訊管理模塊
4.3培訓(xùn)信息管理模塊
4.4部門管理模塊?
4.5離職信息管理模塊?
五、員工功能模塊?
5.1考勤信息管理模塊?
5.2薪資信息管理模塊?
六、部分核心代碼?
6.1員工管理的邏輯代碼?
6.2考勤信息界面邏輯代碼?
6.3合同信息管理界面邏輯代碼
6.4薪資信息管理界面關(guān)鍵代碼
6.5用戶登錄的邏輯代碼
一、前言介紹?
企業(yè)人事管理系統(tǒng)主要功能模塊包括員工管理、考勤管理、工資管理、離職管理、培訓(xùn)管理等,采取面對(duì)對(duì)象的開發(fā)模式進(jìn)行軟件的開發(fā)和硬體的架設(shè),能很好的滿足實(shí)際使用的需求,完善了對(duì)應(yīng)的軟體架設(shè)以及程序編碼的工作,采取MySQL作為后臺(tái)數(shù)據(jù)的主要存儲(chǔ)單元,采用Springboot框架、B/S架構(gòu)進(jìn)行業(yè)務(wù)系統(tǒng)的編碼及其開發(fā),實(shí)現(xiàn)了本系統(tǒng)的全部功能。本次報(bào)告,首先分析了研究的背景、作用、意義,為研究工作的合理性打下了基礎(chǔ)。針對(duì)企業(yè)人事管理系統(tǒng)的各項(xiàng)需求以及技術(shù)問題進(jìn)行分析,證明了系統(tǒng)的必要性和技術(shù)可行性,然后對(duì)設(shè)計(jì)系統(tǒng)需要使用的技術(shù)軟件以及設(shè)計(jì)思想做了基本的介紹,最后來實(shí)現(xiàn)企業(yè)人事管理系統(tǒng)的部署與運(yùn)行。
二、功能需求分析
企業(yè)人事管理系統(tǒng)的功能主要分為前臺(tái)用戶根據(jù)自己的需求進(jìn)行注冊(cè)登錄:培訓(xùn)信息、合同信息、考勤信息、薪資信息、離職信息、獎(jiǎng)罰信息查詢操作。后臺(tái)系統(tǒng)管理員主要對(duì)注冊(cè)用戶,員工管理,薪資管理,考勤管理,獎(jiǎng)懲管理,離職管理等。?
2.1前臺(tái)用戶功能?
注冊(cè)登錄:用戶填寫個(gè)人信息,并驗(yàn)證手機(jī)號(hào)碼進(jìn)行賬戶注冊(cè),注冊(cè)成功后方可登錄系統(tǒng)。
考勤信息:員工可以在線上查看日常考勤信息。
薪資信息:員工的薪資發(fā)放明細(xì)。
培訓(xùn)信息:查看培訓(xùn)安排信息等。
企業(yè)資訊:可以進(jìn)行企業(yè)資訊瀏覽。
個(gè)人信息:用戶可以修改個(gè)人信息。
2.2后臺(tái)管理員功能
修改密碼:管理員可以隨時(shí)修改自己進(jìn)入系統(tǒng)的登錄密碼,以保證系統(tǒng)的安全性。
員工管理:對(duì)企業(yè)員工信息進(jìn)行維護(hù)管理等。
部門管理:對(duì)部門信息進(jìn)行維護(hù),添加、刪除、修改信息。
考勤信息管理:對(duì)員工考勤數(shù)據(jù)項(xiàng)進(jìn)行維護(hù)管理。
獎(jiǎng)懲信息管理:對(duì)員工獎(jiǎng)懲信息項(xiàng)進(jìn)行維護(hù)管理。
培訓(xùn)信息管理:對(duì)員工培訓(xùn)信息進(jìn)行維護(hù)管理。
企業(yè)資訊進(jìn)行發(fā)布。
三、前臺(tái)員工功能
3.1前臺(tái)登錄模塊
3.2企業(yè)資訊模塊
3.3培訓(xùn)信息詳細(xì)模塊
3.4個(gè)人信息模塊?
?
四、管理員功能模塊
4.1員工管理模塊
4.2企業(yè)資訊管理模塊
4.3培訓(xùn)信息管理模塊
4.4部門管理模塊?
4.5離職信息管理模塊?
五、員工功能模塊?
5.1考勤信息管理模塊?
5.2薪資信息管理模塊?
六、部分核心代碼?
6.1員工管理的邏輯代碼?
<%String lb=request.getParameter("lb");HashMap ext = new HashMap(); new CommDAO().insert(request,response,"xinwentongzhi",ext,true,false,"xinwentongzhi_add.jsp?lb="+lb);%>6.2考勤信息界面邏輯代碼?
<mapper namespace="com.project.demo.dao.base.BaseMapper"><select id="selectBaseList" resultType="java.util.LinkedHashMap">${select}</select><select id="selectBaseCount" resultType="Integer">${count}</select><select id="selectBaseOne" resultType="Object">${select}</select><update id="updateBaseSql">${sql}</update><delete id="deleteBaseSql">${sql}</delete></mapper>6.3合同信息管理界面邏輯代碼
@RequestMapping("/get_list")public Map<String, Object> getList(HttpServletRequest request) {Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));return success(map);}6.4薪資信息管理界面關(guān)鍵代碼
@RequestMapping("/get_obj")public Map<String, Object> obj(HttpServletRequest request) {List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));if (resultList.size() > 0) {JSONObject jsonObject = new JSONObject();jsonObject.put("obj",resultList.get(0));return success(jsonObject);} else {return success(null);}}6.5用戶登錄的邏輯代碼
* 登錄* @param data* @param httpServletRequest* @return*/@PostMapping("login")public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {log.info("[執(zhí)行登錄接口]");String username = data.get("username");String email = data.get("email");String phone = data.get("phone");String password = data.get("password");List resultList = null;QueryWrapper wrapper = new QueryWrapper<User>();Map<String, String> map = new HashMap<>();if(username != null && "".equals(username) == false){map.put("username", username);resultList = service.selectBaseList(service.select(map, new HashMap<>()));}else if(email != null && "".equals(email) == false){map.put("email", email);resultList = service.selectBaseList(service.select(map, new HashMap<>()));}else if(phone != null && "".equals(phone) == false){map.put("phone", phone);resultList = service.selectBaseList(service.select(map, new HashMap<>()));}else{return error(30000, "賬號(hào)或密碼不能為空");}if (resultList == null || password == null) {return error(30000, "賬號(hào)或密碼不能為空");}//判斷是否有這個(gè)用戶if (resultList.size()<=0){return error(30000,"用戶不存在");}User byUsername = (User) resultList.get(0);Map<String, String> groupMap = new HashMap<>();groupMap.put("name",byUsername.getUserGroup());List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));if (groupList.size()<1){return error(30000,"用戶組不存在");}UserGroup userGroup = (UserGroup) groupList.get(0);//查詢用戶審核狀態(tài)if (!StringUtils.isEmpty(userGroup.getSourceTable())){String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());if (res==null){return error(30000,"用戶不存在");}if (!res.equals("已通過")){return error(30000,"該用戶審核未通過");}}//查詢用戶狀態(tài)if (byUsername.getState()!=1){return error(30000,"用戶非可用狀態(tài),不能登錄");}String md5password = service.encryption(password);if (byUsername.getPassword().equals(md5password)) {// 存儲(chǔ)Token到數(shù)據(jù)庫(kù)AccessToken accessToken = new AccessToken();accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));accessToken.setUser_id(byUsername.getUserId());tokenService.save(accessToken);// 返回用戶信息JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));user.put("token", accessToken.getToken());JSONObject ret = new JSONObject();ret.put("obj",user);return success(ret);} else {return error(30000, "賬號(hào)或密碼不正確");}}public String select(Map<String,String> query,Map<String,String> config){StringBuffer sql = new StringBuffer("select ");sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");}if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");}if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);}log.info("[{}] - 查詢操作,sql: {}",table,sql);return sql.toString();}public List selectBaseList(String select) {List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);List<E> list = new ArrayList<>();for (Map<String,Object> map:mapList) {list.add(JSON.parseObject(JSON.toJSONString(map),eClass));}return list;}總結(jié)
以上是生活随笔為你收集整理的SpringBoot+Vue实现前后端分离的企业人事管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 尹稚:中国城镇化战略研究
- 下一篇: Vue npm install失败报错e