EHR人力资源管理

项目简介:

EHR人力资源系统,是一个方便企业管理员工的系统,包括招聘信息发布,应聘者管理,人才库储备,员工信息详情,考勤管理,工资计算,工资条推送,员工关怀等功能,秉承着自动化的理念,让企业在这方面大大提高了效率。

需求分析一:

招聘管理
需要以下表:招聘需求表、信息发布表、发布渠道表、应平哲管理表
1.先要为公司招聘员工,需要一个招聘需求表来明确员工所需的具备的专业技能以及经验。和信息发布渠道表,通过罗列需求之后然后要人事部专员发布信息,通过BOSS,前程无忧,智联等招聘平台给应聘者发布信息,需要一个信息发布渠道表格,最后需要公司高层来审核录取员工,状态为通过或者不通过。通过之后给员工发送offer。

需求分析二:

员工信息管理
需要以下表:员工信息表、离职员工表、奖惩管理表、人才储备表
2.录取员工后需要给员工设置企业微信,员工头像,员工ID,员工住址和联系方式,所属部门和邮箱。这些具体信息需要一张员工表进行储存。然后员工也有奖惩管理机制,对于表现好的员工,有根据什么而奖励,比如全勤或者绩效奖励,奖励金额,奖励时间,以及对应的员工。有奖励也有惩罚,同上,根据什么而惩罚,惩罚多少金额,惩罚时间,惩罚员工,需要奖惩管理表。公司有入职员工同样也有离职员工,具体信息包括,离职原因,离职时间以及离职对应的员工。对于公司的员工,我们也考虑了人才储备管理,里面储备的员工等突发情况或者离职员工进行顶替,同样也有企业微信,员工头像,员工ID,员工住址和联系方式,所属部门和邮箱。

需求分析三:

员工薪资管理
需要以下表:员工薪资表、薪资等级表、社保表、工资条表
3.每一个入职的员工都会有工资,里面具体信息包括补贴,分红,年金,基本工资,社保率,以及对应的员工,需要员工薪资表来表述。各个部门各个管理层都会有不同的薪资等级分层管理,比如工作工龄久的,工作进度完成表现优异的,亦或完成情况一般的。都会有各自的薪资等级进行分发工资。里面有等级和社保率具体信息。每一个员工都会有自己的社保,具体信息里面有员工等级,对应工资以及对应员工。最后是对员工工资进行分发需要一个工资条,里面囊括了应发工资,实发工资,奖励,罚款,以及对应员工还有投保等具体信息。至此员工的完成整的薪资管理完成

需求分析四:

组织机构
需要以下表:公司管理表、部门管理表、职位管理表
4.因为我们是一个集团,所属子公司有非常多,需要一个公司表来进行记录。具体包括公司名,公司地址以及公司备注。每个公司内部都会有公司部门,部门里面里面需要记录部门的对应名称,部门备注,便于让人了解公司司职,同时部门还有对应的公司。每个部门都有相应的职位,比如董事长,人事部部长,后勤部部长,所以需要一个人职位表来表述。里面包括职位名称,职位备注,让人了解职位需要做什么。还有职位对应所属部门,比如董事长对应董事会。

需求分析五:

考勤打卡
需要以下表:考勤记载情况表、考勤规则表
5.公司都有自己的一套对应的考勤规则。需要打卡规则,打卡时间,打卡次数,打卡位置,规则发布人以及对应的打卡员工。以此来记录员工打卡情况。考勤记载需要打卡位置,打卡时间以及对应员工,来根据这些信息来记录员工的考勤

需求分析六:

团建活动
需要以下表:团建活动表
6.公司都会有团队建设活动,里面具体包括活动主题,活动地址,活动简介,活动详情,活动详情,活动经费,状态,组织人,团建以什么为主题在哪儿开展,在那个时间消费了多少,状态是否开展,由谁组织。需要以上具体信息

需求分析七:

节日祝福
需要以下表:节日祝福表
7.公司每到节日都会给员工定时发送节日祝福,表达了对员工的关怀。具体信息包括了具体节日,时间,祝福内容。

1.创建员工model(省略字段)
2.新建Dto到里面取员工外键别名并且提供GET SET

//部门名称@Columnprivate String deptName;//职位@Columnprivate String positionName;//薪资等级@Columnprivate String paygradesName;

创建员工对象关系映射–连表高级查询

 <!--查询所有员工信息携带部门--><select id="queryAllEmpPageList" resultMap="MyBaseResultMap" parameterType="cn.itsource.vo.EmpVo">select  e.* ,d.name deptName,p.name paygradesName,o.name positionName from ehr_emp eLEFT JOIN ehr_dept d on d.id=e.dept_idLEFT JOIN ehr_paygrades p ON e.paygrades_id=p.idLEFT JOIN ehr_position o ON e.position_id=o.id<where>e.logicToDelete=1<if test="id!=null and id!=''">and e.id=#{id}</if><if test="deptId!=null and deptId!=''">and e.dept_id=#{deptId}</if></where></select>

员工Dao层
方法名是映射里面id 查询员工所有信息
集合泛型里面是Dto要包含别名

public interface EmpDao extends BaseMapper<Emp> {//员工连表分页查询List<EmpDto> queryAllEmpPageList(EmpVo empVo);}

员工service层
提供Vo,里面包括高级查询字段 提供GET SET

public class EmpVo {private Integer id;private  Integer deptId;

里面EmpVo参数用来接收前台传来的值进行高级查询,page,size,分页查询
集合泛型里面是Dto要包含别名

public interface EmpService extends BaseService<Emp> {//员工连表分页查询PageInfo<EmpDto> queryAllEmpPageList(Integer page, Integer size, EmpVo empVo);}

员工serviceImpl层
调用dao层方法,实现查询所有并且高级查询

@Service
@Transactional
public class EmpServiceImpl extends BaseServiceImpl<Emp> implements EmpService {@AutowiredEmpDao empDao;//员工连表分页查询@Overridepublic PageInfo<EmpDto> queryAllEmpPageList(Integer page, Integer size, EmpVo empVo) {PageHelper.startPage(page,size);List<EmpDto> empPageList = empDao.queryAllEmpPageList(empVo);PageInfo<EmpDto> empPageListPageInfo = new PageInfo<>(empPageList);return empPageListPageInfo;}

员工Controller层
分页查询,高级查询—返回给前台

@RequestMapping(value = "/list",method = RequestMethod.GET)@ApiOperation("获取列表数据")public String ajaxList(Integer page, Integer size, EmpVo empVo) {PageTable<List<EmpDto>> pageTable = new PageTable<List<EmpDto>>();PageInfo<EmpDto> empPageListPageInfo = empService.queryAllEmpPageList(page, size,empVo);pageTable.setCode(WebConstant.PAGESUCCESSCODE);pageTable.setMsg("获取成功");pageTable.setData(empPageListPageInfo.getList());pageTable.setCount(empPageListPageInfo.getTotal());return responseAPI.getJsonString(pageTable);

保存或修改,根据id判断

 @ApiOperation("保存或修改操作")@RequestMapping(value = "/saveUpdate",method = RequestMethod.POST)public String saveUpdate(@RequestBody Emp emp) {JsonReturnData<String> jsonReturnData = new JsonReturnData<>(WebConstant.ERRORCODE, "操作失败");if (emp.getId() != null) {empService.updateNoNull(emp);jsonReturnData.setCode(WebConstant.SUCCESSCODE);jsonReturnData.setMsg("更新成功");} else {emp.setLogictodelete(1);empService.insert(emp);jsonReturnData.setCode(WebConstant.SUCCESSCODE);jsonReturnData.setMsg("添加成功");}return responseAPI.getJsonString(jsonReturnData);}

删除–根据ID

 @ApiOperation("删除")@RequestMapping(value = "/delete",method = RequestMethod.DELETE)public String delete(Integer id) {JsonReturnData<String> jsonReturnData = new JsonReturnData<>(WebConstant.ERRORCODE, "删除失败");if (id != null) {Emp emp=new Emp();emp.setId(id);emp.setLogictodelete(WebConstant.DELETECODE);empService.updateDelete(emp);jsonReturnData.setCode(WebConstant.SUCCESSCODE);jsonReturnData.setMsg("删除成功");}return responseAPI.getJsonString(jsonReturnData);}

员工前端
提供增删改查接口对应前台方法

let api={baseurl :"http://localhost",//获取列表getList(params){return axios.get(this.baseurl+"/emp/list",{params}).then(res=>res.data);},//查询所有id信息getEmpID(params){return axios.get(this.baseurl+"/emp/idList",{params}).then(res=>res.data)},//查询所有部门信息getDeptsList(params){return axios.get(this.baseurl+"/emp/deptList",{params}).then(res=>res.data)},//保存或修改方法saveUpdate(params){return axios.post(this.baseurl+"/emp/saveUpdate",params).then(res=>res.data);},//删除方法delete(params){return axios.delete(this.baseurl+"/emp/delete",{params}).then(res=>res.data);},

刷新数据

 <el-form-item><el-button plain  icon="check" @click="cleanSJ">重置</el-button></el-form-item>

刷新方法

 cleanSJ(){this.filters={id:'',deptId:''}this.getUsers();},

显示列表字段必须跟Dto字段一样,别名也要对应一致
保存和修改还是用model字段
查询用vo里面提供的字段对应

下拉框
根据id来获取

<el-select v-model="filters.id" @change="idBOX" placeholder="请选择工号"><el-optionv-for="item in ids":label="item.id":value="item.id"></el-option></el-select>

提供方法

idBOX(val){this.getID();},
 getID(){api.getEmpID().then((res)=>{this.ids=res;})},

返回页面

 mounted() {this.getUsers();this.getID();this.getDept();}

提供装数据的数组

ids:[],

需要高级查询的字段

 filters: {id: '',companyId:'',},

员工外键保存和修改的时候还是用model字段,value需要用id

 <el-select v-model="editForm.companyId" @change="company" placeholder="请选择公司"><el-optionv-for="item in companys":key="item.id":label="item.name":value="item.id"></el-option></el-select>

判断状态、性别

//性别显示转换formatSex: function (row, column) {return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知';},

时间类型字符串反序列化

   para.birth = (!para.birth || para.birth == '') ? '' : util.formatDate.format(new Date(para.birth), 'yyyy-MM-dd');

保存修改数据,修改需要id保存不需要,字段皆为model字段

editForm: {id:'',userid:'',sign:'',avatar:'',name:'',password:'',img:'',birthday:'',sex:'-1',phone:'',qq:'',email:'',age:'',currentaddress:'',inductiontime:'',state:'',specialty:'',mark:'',islogin:'',deptId:'',paygradesId:'',positionId:'',logictodelete:'',status:'',upid:'',openid:''

显示新增数据,需要别名并且不为NULL

 //显示新增界面handleAdd: function () {this.addFormVisible = true;this.addForm = {name: '',mark: '',companyName: null};

EHR人力资源项目总结相关推荐

  1. tomcat启动成功 未加载项目_欣冠精密eHR系统项目成功启动

    近日,"同鑫&欣冠精密eHR系统项目启动会"成功举行,会议上双方项目组成员通过充分有效的沟通,明确项目组织.计划与实施过程的注意事项,共同推进欣冠精密实现组织.人事.考勤. ...

  2. eHR管理系统品牌排名,eHR人力资源系统主要功能有哪些呢

    eHR人力资源系统主要功能有,eHR管理系统品牌排名 eHR人事管理系统主要功能是什么?在电脑和企业信息化还没有普及的时候,公司都还是纸质文档的年代,一切的存档,工作都是手动存储,如果想要查找一些文档 ...

  3. java 项目 人力资源项目,基于jsp的人力资源系统-JavaEE实现人力资源系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的人力资源系统, 该项目可用各类java课程设计大作业中, 人力资源系统的系统架构分为前后台两部分, 最终实现在线上 ...

  4. 人力资源数据分析师前景_人力资源数据分析师——大数据下的精英岗位

    人力资源数据分析师的工作而是通过横截面上数据的整体性分析,和纵向数据的历史演变和未来趋势,对公司人力资源情况有一个宏观的把握. 劳人研究生会,公众号:劳人研究生会劳有所学-职业介绍|人力资源数据分析师 ...

  5. 软件项目管理-项目人力资源管理

    8.1.1  项目人力资源 1.项目人力资源 项目人力资源管理就是根据项目的目标.项目活动进展情况和外部环境的变化,采取科学的方法,对项目团队成员的思想.心理和行为进行有效的管理,充分发挥他们的主观能 ...

  6. 中国人力资源服务行业投资建议与前景战略规划研究报告2022~2028年

    中国人力资源服务行业投资建议与前景战略规划研究报告2022-2028年 第1章:中国人力资源服务行业综述 1.1 人力资源服务的内涵 1.1.1 人力资源服务的定义 1.1.2 人力资源服务的分类 1 ...

  7. 思迈特软件Smartbi:企业HR面对大量的人力资源如何做数据分析

    在很多企业里,人力资源部门相对独立于其他部门,但实际上人力资源部门所管的事情都是面向所有员工的,影响到生产.销售.服务以及整个公司.专业的HR管理者在企业里作为不同的角色都面临着一些问题,对制定科学的 ...

  8. 项目人力资源管理·十一

    第十三章 项目人力资源管理 关键词:项目人力资源管理,马斯洛需求模型,赫茨伯格双因素理论,领导与管理,项目团队建设和项目团队管理 1 项目人力资源管理概述 项目人力资源管理包括制定人力资源管理计划.项 ...

  9. 在线筛选简历的有效方法,四步走!

    文章来源:红海eHR人力资源管理系统 人力资源部门如何才能快速识别出他们眼中的合适的人选?今天,我总结了快速在线筛选简历的方法和技巧,并制定了四个步骤来精确的锁定目标简历,以促进高效企业人才招聘. 1 ...

最新文章

  1. IOS7新增120*120Icon图标
  2. python重复字符串n次_python装饰器听了N次也没印象,读完这篇你就懂了
  3. 腾讯信用向全国开放了,据说700分都算低的!
  4. python竞赛试题及答案_竞赛信息 | 蓝桥杯大赛Python组
  5. 【Java从入门到头秃专栏 8】语法篇(七) :反射 动态代理 注解
  6. 20岁MM和25岁MM的区别(非原创,分享贴)
  7. 系统集成项目管理工程师(试题分析、考试大纲、教材目录)
  8. 【协议森林】IPv6过渡技术之隧道和翻译技术
  9. Mac解决Updating Homebrew卡顿
  10. C++ 通讯录管理系统
  11. 一个球绳命最后的高度哈哈
  12. 当黑丝遇上Nginx网站服务(你选谁)
  13. SQL (十五)更新和删除数据(updata语句,delete语句)
  14. sql统计各分数段人数示例
  15. jvm调试工具arthas的tt命令记录参数和返回值使用案例
  16. THUWC2017 酱油记
  17. 优矿量化实验室———转自知乎
  18. 国内低代码平台有哪些?织信informat好不好用?
  19. idea不用鼠标写代码
  20. ILSVRC2015数据集百度云下载链接

热门文章

  1. 栈应用:中缀表达式求值
  2. STM32单片机(4) 独立看门狗实验
  3. AI人工智能相面项目总结一,为什么要做AI相面
  4. Ubuntu18.04上安装ROS的详细教程
  5. 建设银行科技岗位秋招经历
  6. 美团计划招聘 10000 人!
  7. VBA中冗长的多条件判断如何破
  8. WiFi 管理帧(三)(动态频谱切换-DFS - 802.11h)
  9. Notepad++ 删除空白行的方法
  10. 常见算法-孩子们的游戏