排班算法代码java,排班规则算法 源码

java中的时间操作问题,难题求解

我以前遇到过类似的问题。就是做值班表 自动排班的时候。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、做网站、当阳网络推广、小程序定制开发、当阳网络营销、当阳企业策划、当阳品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供当阳建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

我不知道用SQL语句怎么做;而且又不想插入空数据,于是就用程序实现的。

其中有部分实现了时间段的构造,你可以看下。应该不难解决。

//半自动排班

@SuppressWarnings("unchecked")

public ActionForward automatic(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception{

ScheduletableActionForm newform = (ScheduletableActionForm)form;

String id_str = request.getParameter("id");

if(id_str==null){

id_str = newform.getSchedule().getId_string();

}

long id = Long.parseLong(id_str);

Schedule schedule = ScheduleDAO.getScheduleById(id);

//排班明细结束时间由排班表决定

Date enddate = schedule.getEnddate();

//排班模板时间段由该排班表已有的明细决定

List datelist = SchedulelineDAO.getSchedulelineShowSizeScheduleId(id);

if(datelist==null||datelist.size()==0){

newform.setErrormsg("请至少先选择一个排班循环");

}

else{//该datelist长度一定大于0,否则不允许进入自动排班

Date startpoint = (Date)datelist.get(0);

Date endpoint = (Date)datelist.get(datelist.size()-1);

//只排endpoint至enddate之间的明细

Date start_go = TimeFormat.getDateAfter(endpoint, 0, 0, 1, 0, 0, 0);

Date end_go = enddate;

//构造自动排班的日期列表

ArrayListDate datelist_go = new ArrayListDate();

Date tempdate = start_go;

while(!tempdate.after(end_go)){

datelist_go.add(tempdate);

tempdate = TimeFormat.getDateAfter(tempdate, 0, 0, 1, 0, 0, 0);

}

int size = datelist_go.size();

//构造模板日期列表

ArrayListDate modellist = new ArrayListDate();

Date tempmodel = startpoint;

while(!tempmodel.after(endpoint)){

modellist.add(tempmodel);

tempmodel = TimeFormat.getDateAfter(tempmodel, 0, 0, 1, 0, 0, 0);

}

int modelsize = modellist.size();

//班次列表

List shiftlist = ShiftDAO.getShiftlistByDeptid(schedule.getDeptid());

//按照自动排班的日期列表逐日进行

for(int i=0;isize;i++){

int modelNo = getModelNo(i,modelsize);

String modeldate_s = TimeFormat.dateToString("yyyy-MM-dd",(Date)modellist.get(modelNo));

Date linedate = datelist_go.get(i);

for(int j=0;jshiftlist.size();j++){//再按照班次进行

Scheduleline line = new Scheduleline();

Shift shift = (Shift)shiftlist.get(j);

long shiftid = shift.getId();

Scheduleline modelline = SchedulelineDAO.getSchedulelineTrTd(id, shiftid, modeldate_s);

if(modelline!=null){//如果不为空,复制过来进行插入

line.setId(IdCreater.getId("Scheduleline")); //id不复制

line.setDatea(linedate);

line.setMembers(modelline.getMembers());

line.setLeader(modelline.getLeader());

//line.setEndtime(modelline.getEndtime());

//line.setStarttime(modelline.getStarttime());

String datea_string = TimeFormat.dateToString("yyyy-MM-dd", linedate);

String starttime_str = datea_string+" "+TimeFormat.dateToString("HH:mm", shift.getStarttime());

Date nowdaytime = TimeFormat.stringToDate("yyyy-MM-dd", datea_string);

String endStr = shift.getEndstr();

if(endStr.equals("次日")){

nowdaytime = TimeFormat.getDateAfter(nowdaytime, 0, 0, 1, 0, 0, 0);

}

String endtime_str = TimeFormat.dateToString("yyyy-MM-dd", nowdaytime)+" "+TimeFormat.dateToString("HH:mm", shift.getEndtime());

line.setStarttime(TimeFormat.stringToDate("yyyy-MM-dd HH:mm", starttime_str));

line.setEndtime(TimeFormat.stringToDate("yyyy-MM-dd HH:mm", endtime_str));

line.setShiftname(modelline.getShiftname());

line.setScheduleid(modelline.getScheduleid());

line.setShiftid(modelline.getShiftid());

SchedulelineDAO.addScheduleline(line);

}

}

}

newform.setErrormsg("排班成功!");

}

newform.getSchedule().setId_string(id_str);

ActionForward forward = detail(mapping, newform, request, response);

return forward;

}

//计算第i行的排班表应该选择的模板的行号j

private static int getModelNo(int i,int modelsize){

return i%modelsize;

}

//****************************自动排班结束**************************//

补充一下:中间有个TimeFormat方法,贴出来

public class TimeFormat {

//将传入的时间按照指定的格式转化成字符串返回

//注意传入的format_type必须为指定的时间格式,比如"yyyy-MM-dd HH:mm:ss"

//传入的date必须为Date型

public static String dateToString(String format_type,Date time_Date){

if(time_Date==null)return "";

SimpleDateFormat sdf = new SimpleDateFormat(format_type);

String format_time = sdf.format(time_Date);

return format_time;

}

//将传入的字符串转化成指定格式的日期返回

//注意传入的format_type必须为指定的时间格式,比如"yyyy-MM-dd HH:mm:ss"

//传入的time_str必须为符合format_type格式的字符串

public static Date stringToDate(String format_type,String time_Str){

SimpleDateFormat sdf = new SimpleDateFormat(format_type);

if(time_Str.length()format_type.length()){

if(time_Str.length()==4){

time_Str += "-00-00 00:00:00";

}

if(time_Str.length()==7){

time_Str += "-00 00:00:00";

}

if(time_Str.length()==10){

time_Str += " 00:00:00";

}

if(time_Str.length()==13){

time_Str += ":00:00";

}

if(time_Str.length()==16){

time_Str += ":00";

}

}

Date date = new Date();

try{

date = sdf.parse(time_Str);

}catch(Exception e){

e.printStackTrace();

}

return date;

}

//将传入的Date型数据转化成指定格式的Date型返回

//注意传入的format_type必须为指定的时间格式,比如"yyyy-MM-dd HH:mm:ss"

//传入的time_Date必须为Date型时间

public static Date dateToDate(String format_type,Date time_Date){

String format_str = dateToString(format_type,time_Date);

Date format_date = stringToDate(format_type,format_str);

return format_date;

}

public static String getCurrentDate(String format_type){

SimpleDateFormat sdf = new SimpleDateFormat(format_type);

String format_time = sdf.format(new Date());

return format_time;

}

//根据传入的日期取得星期,返回星期的字符串,形如"星期二"

public static String getWeekTimeByDate(Date date){

String week = "";

String[] dayNames = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五","星期六"};

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK)-1;

if(dayOfWeek0){

dayOfWeek=0;

}

week = dayNames[dayOfWeek];

return week;

}

//取得传入日期a年,b月,c天,d小时,e分钟,f秒以后的日期,若想得到以前的,参数为负值即可

public static Date getDateAfter(Date date,int years,int months,int days,int hours,int minutes,int seconds){

Calendar cal=Calendar.getInstance();

cal.setTime(date);

cal.add(Calendar.YEAR, years);

cal.add(Calendar.MONTH, months);

cal.add(Calendar.DATE, days);

cal.add(Calendar.HOUR, hours);

cal.add(Calendar.MINUTE, minutes);

cal.add(Calendar.SECOND, seconds);

date = cal.getTime();

return date;

}

//传入一个date得到该date的月

public static int getMonth(Date date){

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.MONTH)+1;

}

//传入一个date得到该date的月

public static int getDay(Date date){

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.DAY_OF_MONTH);

}

// 传入一个date得到该date的月

public static int getYear(Date date){

Calendar c = Calendar.getInstance();

c.setTime(date);

return c.get(Calendar.YEAR);

}

//取得A时间减去B时间后的毫秒数

public static long getPoorSeconds(Date a,Date b){

Calendar timea = Calendar.getInstance();

Calendar timeb = Calendar.getInstance();

timea.setTime(a);

timeb.setTime(b);

return timea.getTimeInMillis() - timeb.getTimeInMillis();

}

public static void main(String[] args) {

}

}

有关排班的问题(算法问题)

先在excel中a列写入那20个人的名字,a1-a20。

然后在b列b1位置写星期一后,鼠标放在右下角,变成黑十字的时候想下拖四个,正好是星期五(拖到位后记得按ctrl键),然后将周一到周5复制一下,再在b列下面空白出粘贴,这样就可以了。。。。

这个应该属于笨办法,再简单的办法我实在是不知道。。。

有高人知道不??!!

C#实现人员和设备的自动排班

int day = 1; //定义日期

Leader l = null; //定义当前领导

Worker w = null; //定义当前工作人员

while(condition) //自己设定循环条件,比如计划到哪天

{

if(day % 7 == 1) //如果是周一

{

day = 1; //将日期置为1

l = LeaderArray.Next(); //换下一个领导

}

WorkSystem.InsertLeader(l); //将领导插入排版系统

w = WorkerArray.Next(); //换下一个工作人员

WorkSystem.InsertWorker(w); //将工作人员插入排班系统

day++; //下一天

}

以上代码仅仅是我猜想你系统的功能给出的伪代码,具体实现要看你系统了,逻辑上就是判断当前周一,领导换人,否则仍然使用原来的领导,工作人员每天都换。

排班 用回溯算法

static String a[5]; //5个人编号 假设为1 、2、3、4、5

static String alls=a[0]+a[1]+a[2]+a[3]+a[4];

String[] peopleZ1=new String[10]; //存储5个人中选出3个人的所有情况

String[] peopleZ2=mew Strint[10];

static int index=0;

static{

for(int i=0;i4;i++)

for(int j=i+1;j5;j++){

peopleZ2[index]=a[i]+a[j];

peopleZ1[index]=alls.replace(a[i],"").replace(a[j]."");

}

}

//表示第i个班次时选取情况,满足i之前排班中没有人超过8次的情况继续排班

void distriWork(int i,int n,String v){

if(in)输出v

else if(i11){

for(int j=0;jpeopleZ1.length;j++){

if(!(v中包含的某个人编号超过8次))distriWork(i+1,n,v+peopleZ1[j]);

}else{

for(int j=0;jpeopleZ2.length;j++){

if(!(v中包含的某个人编号超过8次))distriWork(i+1,n,v+peopleZ2[j]);

}

}

distriWork(1,14,"");

如何用java实现人员自动排班的问题

应该用不上什么线程,一次性把所有的班都排好

六个元素的数组

两个指针,一个是工作日当值人,一个是周末当值人,初始都是0

从今天开始到指定某一天,譬如年底

int idx_workday =0;

int idx_weekend =0;

ArrayList assignment = new ArrayList();

day = today;

while(day不是年底){

int i;

if (day is workday){

i = idx_workday++;

assignment.add(i);

if (idx_workday 5) idx_workday = 0;

}else{

i = idx_weekend++;

assignment.add(i);

if (idx_weekend 5) idx_weekend= 0;

}

}

output assignment

求个JAVA 人力资源管理系统 源代码和模版界面以及需求分析,求参考

星原人力资源管理系统 结构如下,

产品说明: 人力资源规划 组织管理 招聘管理 人力测评

人事管理

培训管理

考勤管理

薪酬福利

绩效管理

行政事务

员工关系 人力分析和辅助决策

文控管理 工作流

领导查询和员工自助查询

SA8000人权验厂方案

系统概览

一、人力资源规划

◇通过企业发展阶段设置,设定适应各发展期的人力资源管理政策;

◇适应年度培训计划体系、三级培训体系、岗位培训体系、ISO管理培训体系;

◇自动生成培训到课与缺课统计,对比岗位任职与培训需求,为晋升与上岗提供依据;

◇针对ISO体系验证,为繁杂的培训记录及文档管理提供自动生成核对功能,防止漏训或资料的不一致;

◇自定义培训费用项目;

◇提供培训需求调查表,统一管理培训教材,简化教材的不致性与版本混乱;

◇可直接在系统中制作培训通知单;

◇提供培训心得报告;

◇提供培训效果调查表,统一考核管理,加强培训效果,评估成本效益;

◇能对个人、部门的培训成绩及效果进行分析,并输出各种分析报表;

◇简化培训操作;

◇培训规划可根据用户需要直接转入到培训安排中。

返回顶端

二、组织管理

1、组织机构管理

◇提供对集团公司组织管理的支持,自定义组织层级,不限组织层次;

◇对不同时期的组织职能变更进行动态管理;

◇能够导出树状和矩状的组织架构图;

◇可以进行部门合并、部门升降,并有历史记录记载。

2、岗位管理

◇可以对岗位层级关系进行管理,通过设立岗位层次、级别、职系、职类、职位进行人力分析与规划,建立组织架构与权责体系;

◇可以对不同时期的岗位职责进行管理,并有历史记录记载;

◇可以建立在职级、职务、职类体系上的工作分析、含职位工作说明、职务任职资格、

◇工作量评估、权责体系、工作流分析、工资结构与权重、薪点数等管理职能表格;并有历史记录记载;

◇可以对不同时期的岗位任职资格进行管理,并有历史记录记载;

◇可以对内容进行管理,并有历史记录记载;

◇可设计该岗位的职业发展通道,使员工在此岗位上有很好的前景展望;

◇可设计该岗位的不同时期的绩效考评指标(KPI),并有历史记录记载;

◇可以进行岗位的升迁、降级处理,并有历史记录记载;

◇对不同岗位市场成本调查,按岗位制度公司薪酬体系,对各岗位的评估上限与下限值,根据任职资格与个人资料评估薪酬;

◇通过岗位职责分类,控制直接与间接人员数量与成本比例,使管理成本更合理。

3、年度编制计划与编制管理

◇可对各年度各部门岗位进行人员编制管理;

◇与人力资源规划、招聘模块关联,自动产生招聘申请需求及招聘标准;

◇按既定编制招聘人手,判断是否超编。

◇支持各种计划性、临时性、租赁、外包等多种用工招聘模式;

◇按人力资源规划确定各组织人员需求层次,按岗位分析与任职要求制定测评指标;

◇参照人力资源规划需求、组织架构与岗位编制制定出相应的招聘计划;

◇制定对内招聘与晋升计划,激发员工学习与工作能力;

◇按组织规划确认面试者薪酬结构与标准;

◇参照组织管理中岗位规划属性,结合当前人事档案的年龄、藉贯、性别、学历等统计分析报表,确定招聘申请人员标准;

◇记录招聘渠道信息,及相关广告、费用等;

◇招聘关键环节的申报审批功能;

◇从招聘计划开始对每个关键环节详细跟踪,实现动态信息记载;

◇对应聘人员从填写应聘简历到面试、测评录用进行全程跟踪记载;

◇把应聘人员转入到人事档案中并设置此人的状态,很好的与人事档案结合到一起;

◇内部储备人才和外部储备人才进行分别管理;

◇对一段时间内各部门人员需求单的分类统计;

◇对已审批的部门需求单直接转入到招聘安排中;

◇面试通知单可直接在系统中通过邮件的形式发送给面试者;

◇提供通用的报表形式,如录用通知单,招聘通知单等;

◇可直接从系统中生成招聘发布信息,也可直接把招聘需求发送给人才市场;

◇对招聘渠道、招聘成功率、留任率、人均成本等招聘结果进行综合全面的分析;

◇对未审批的招聘计划、已审批的招聘计划、未审批的人员需求单、已审批的人力需求单及时提醒用户;

◇可与人力测评结合使用,对应聘人员的各方面素质进行测试记载。

返回顶端

三、招聘管理

◇支持各种计划性、临时性、租赁、外包等多种用工招聘模式;

◇按人力资源规划确定各组织人员需求层次,按岗位分析与任职要求制定测评指标;

◇参照人力资源规划需求、组织架构与岗位编制制定出相应的招聘计划;

◇制定对内招聘与晋升计划,激发员工学习与工作能力;

◇按组织规划确认面试者薪酬结构与标准;

◇参照组织管理中岗位规划属性,结合当前人事档案的年龄、藉贯、性别、学历等统计分析报表,确定招聘申请人员标准;

◇记录招聘渠道信息,及相关广告、费用等;

◇招聘关键环节的申报审批功能;

◇从招聘计划开始对每个关键环节详细跟踪,实现动态信息记载;

◇对应聘人员从填写应聘简历到面试、测评录用进行全程跟踪记载;

◇把应聘人员转入到人事档案中并设置此人的状态,很好的与人事档案结合到一起;

◇内部储备人才和外部储备人才进行分别管理;

◇对一段时间内各部门人员需求单的分类统计;

◇对已审批的部门需求单直接转入到招聘安排中;

◇面试通知单可直接在系统中通过邮件的形式发送给面试者;

◇提供通用的报表形式,如录用通知单,招聘通知单等;

◇可直接从系统中生成招聘发布信息,也可直接把招聘需求发送给人才市场;

◇对招聘渠道、招聘成功率、留任率、人均成本等招聘结果进行综合全面的分析;

◇对未审批的招聘计划、已审批的招聘计划、未审批的人员需求单、已审批的人力需求单及时提醒用户;

◇可与人力测评结合使用,对应聘人员的各方面素质进行测试记载。

返回顶端

四、人力评测

◇系统支持各种测试模式,自定义测评类别与试题,例如通过导入一般职业适合性测验、心理测试、领导测评类测评试题或工具,对任职指标、智力、语言能力、算术、书写知觉、空间判断能力、形状知觉、协同动作、运动速度、手指灵活度、手灵活度、领导类型、能力、职业兴趣、个性,LPC领导有效性测评、领导与部属关系测量、工作结构测量、职位权力测量等各项指标进行测评;

◇可按测评职位、标准任职资格指标库等自动推荐测评方案、项目、权重等;

◇ 提供测评方式维护;

◇可利用电脑进行人力在线测评,方便控制时间与测评效果;

◇人力测评登记;

◇人力测评查询;

◇ 岗位匹配性分析;

◇情景测试:公文处理测试等;

◇对应各测试类别的测试的方法与题目:所有试题给出总分值、测试目标与功能,合格分、胜任分、优秀分值及否决项;

◇测评项目与职位指标相对应部份自动对比,计算匹配度;

◇ 按各测试项的测试目标、总分值、实得分值,自动分析出各项优秀、合格、不合格层次及总层次;

◇测评结果可以用不同方式查询与设计报表。

返回顶端

五、人事管理

◇提供身份证识别设备供验证身份证真伪,同时将身份证相片及姓名、号码、住址等自动读入系统,减少输入错误、提高效率,自动判断年龄等合法性;

◇预先统计时间点在职、离职等各种人员状态,为生产计划、招聘计划提供依据;

◇提供员工状态管理,了解各类员工比例;

◇通过各种统计报表了解人员各种比例,分析可能存在的同籍贯风险、年龄或学历不合理等,为招聘与调配提供依据;

◇通过统计流失率及离职原因分析,查找人员流失率主因,为行政工作决策提供依据;

◇对个人档案管理增加了对个人的技能档案管理、计生档案管理、岗位职责查询;

◇自动统计员工学习、工作、培训、考核、异动、加薪履历,对比组织管理岗位规划,作为晋升、调动、加薪等依据;

◇个人职业生涯规划;

◇个人离职记录查询,对有多次离职记录人员进行记载跟踪;

◇人事档案中人事动态跟踪,用户可自定义人员状态,并记载各状态下的发生信息。比如可定义离职申请状态、离职已审批状态、已离职状态;

◇人事黑名单管理,对在公司犯有重大错误的人纳入到黑名单中,系统提醒是否录用。

返回顶端

六、培训管理

◇适应年度培训计划体系、三级培训体系、岗位培训体系、ISO管理培训体系;

◇自动生成培训到课与缺课统计,对比岗位任职与培训需求,为晋升与上岗提供依据;

◇针对ISO体系验证,为繁杂的培训记录及文档管理提供自动生成核对功能,防止漏训或资料的不一致;

◇自定义培训费用项目;

◇提供培训需求调查表,统一管理培训教材,简化教材的不致性与版本混乱;

◇可直接在系统中制作培训通知单;

◇提供培训心得报告;

◇提供培训效果调查表,统一考核管理,加强培训效果,评估成本效益;

◇能对个人、部门的培训成绩及效果进行分析,并输出各种分析报表;

◇简化培训操作;

◇培训规划可根据用户需要直接转入到培训安排中。

返回顶端

七、考勤管理

◇丰富的参数设置,适应不同企业班制特殊性;

◇提供了与多种型号IC卡、条码、指纹考勤机数据接口;

◇能处理频繁倒班、调班、停工待料、中途请假等灵活的出勤管理;

◇能处理临时加班,周末加班、节假日加班、班前、班中、班后加班以及通宵加班等各种加班的管理;可根据最大加班管控指标预警,并通过各种加班报表分析加班的必要性,以控制加班成本;与门禁系统结合可规范员工行为,培养员工良好的工作习惯与优秀的公司文化;

◇能处理跨72小时连班作业(跨两天);

◇可根据各项加班最大加班管控指标预警,并通过各种加班报表显示;

◇分析加班的必要性,以控制加班成本与防范违反法规,分析产值加班负荷率;

◇自定义各种假期,如事假、病假、工伤假、调休、年假、累计假等有薪、无薪、半薪假的管理可处理存假自动与请假抵消,各种复杂的调休等;

◇能输出各种请假单、加班单、排班表、班制作休时间;

◇能输出并查询年、月、日及任意时间段任意部门人的出勤情况报表、异常出勤表并进行各种汇总分析;

◇运用了自动找班和多种灵活排班技术,极大地减轻了考勤人员工作量;

◇运用了先进的考勤算法,处理5000人一个月的考勤报表只需3-5分钟,提高了考勤管理的时效性及管理效率,高度开放的二次开发平台,可最大程度调整考勤项目与计算方法;

◇系统支持多用户和网络,通过严格的权限控制技术、使得考勤日常管理(分散和集中)做到随心所欲,实时控制;

◇自定义各类迟到、早退、旷工、加班超时等异常查询逻辑显示颜色,一目了然、处理快捷

◇自定义签卡控制次数,签卡显示以颜色区分;

◇可定义入职或离职当天是否计出勤;

◇提供海量数据处理机制,解决大型企业历史数据累积导致系统性能下降问题;

◇考勤与门禁系统结合分析上班期间外出情况,可规范员工出勤行为;

◇考勤与消费系统结合,使上班时间与就餐时间对应,公司可以视情况确定是否补贴与是否允许就餐;

◇提醒机制:系统提供默认迟到、早退、旷工、超时加班等提醒功能,同时提供自定义提醒项目需求;

◇安全机制:提供加班、请假、签卡、调休、考勤结果审核功能,防止生效后结果被人为更改或因制度改变重算影响历史数据;

◇考勤项目直接汇入工资计算,考勤、工资、消费数据整合;

◇自定义各种考勤明细、汇总报表,加班、缺勤、异常等报表;

◇支持集团性多套帐或验厂用到的多帐套算法。

返回顶端

八、薪酬福利管理

◇可对薪资项目进行分类管理,如:岗位工资、福利、奖金,实现用户自定义设定和自定义计算,适应各种薪资体系与工资计算方式经常变动;

◇解决了一个月多次调薪的计算难题;

◇可按薪资等级或薪点数根据岗位进行设置,并可设定多个调薪方案;

◇支持多个薪酬体系,不同组织、岗位、职级不同的薪资方案的计算方法,可根据岗位设计标准成本与实际薪资对比,部门预算与实际薪资对比;

◇每个月可计算多个帐套;

◇各帐套可支持不同财务周期算法;

◇支持非自然月为财务周期的工资计算方式,财务周期起止日期可支持自定义;

◇帐套间可共用每月录入数据及接口数据;

◇薪资计算可从考勤、绩效导入数据;

◇支持银行报盘,所得税计算与申报;

◇丰富的薪酬福利报表;

◇支持借款扣除;

◇支持自离或旷工多日自动薪资冻结,也支持手动冻结与解冻;

◇对于其客观存在系统的数据完全共享,如计件工资、考勤、考评、奖惩、水电费、就餐资产等数据与本系统实现了无缝联接,实时调用,只要一次录入,不用重复录入或转换。

返回顶端

九、绩效管理

◇系统支持自定义考核模型或工具:排名表、面谈表、组织考核表、KPI、MBO、360度;

◇绩效参数设置:包括绩效指标库管理,绩效指标可以根据职位绩效指标引入绩效考评指标,并可在此基础上进行自定义其它指标库;

◇绩效层次设置:每个绩效层次有相应的绩效变量及职位;

◇在支持量化指标考核同时,也支持关键工作事项等不能量化的考核项目考核与跟踪;

◇绩效考评级别管理,根据绩效考评级别可以进行多层次、多方位的考评,可以更准确的了解考评者的绩效状况,考评级别依赖于考评分类,每个考评级别所需要的考评级别及每个级别所占的比重是不一样的;

◇绩效考评模板管理,个人绩效考评表及组织绩效考评表可在绩效考评模板基础上生成;

◇组织绩效考评包括引入组织、定义考评分类及考评要点、制作考评表,查看考核信息;

◇个人绩效考评根据个人所在的考评层次及考评周期设置考评分类及考评要点,并根据每个考评级别制作考评表,最后根据每个考评级别及考评周期生成综合考评信息;

◇系统支持自定义考评工具及相关考评表格式;

◇按考评分值与权重自动统计考核结果,自动比对标杆;

◇自动提醒针对考核不合格的培训项目;

◇自动对比各期考核结果,跟踪考核项目改善状况;

◇支持对考核者直接评分;

◇支持领导多级点评、修正、审核;

◇考核结果自动应用于晋升、调职、薪资计算、培训等相关功能模块,起到预警提醒作用;

◇考核结果查询支持:绝对分值比较、相对标准比较、客观标准比较;

◇支持排序法,代表人物法、强制正态分布法(预先设定优良中及格差比例)统计方法;

◇支持绩效考核结果申诉,设定提交、受理、处理、结案周期;

◇考核结果可以通过自定义算法,直接应用于薪酬,异动等子系统。

返回顶端

十、行政事务管理

1、会议管理

系统通过对会议室及物品配套、会议室安排排程、会议参会人员与时间核算会议成本。通过会议申请,提前规范会议内容以 提高会议效率,避免管理中的文山会海;同时,提高会议记录管理,对会议决议跟踪,避免会议流于形式,每次会议决议、跟进责任人、进度、结案做自动跟踪,管 理者通过系统查询,跟进工作,保证决议得以执行。

通过会议管理系统,避免诸多企业会而不议、议而不决、决而不行、行而不果的会议怪圈与高昂的会议成本。

2、工伤管理

工伤管理,通过对工伤等级划分,确认各级别对应处理预案。对单个工伤案例每一个社保步骤进度跟踪记录,同时保持对应的文件。可随时产生所有工伤案例进度表,员工离职是可避免工伤未结案带来的风险。

3、宿舍管理

◇对宿舍基本资料、床位床号的设置;

◇可随时查询各宿舍的入住情况及空床位;可自定义按部门,班组等自动建议床位分配;

◇对各宿舍进行物品配置及管理;

◇对住宿安排、变更、退宿进行全面管理;

◇对外宿人员的登记管理;

◇对宿舍水电费价格的设定,水电表的登记、水电费用等的登记、计算;

◇水电等费用的分摊;相关费用与薪资系统的链接,并可直接从工资中扣除;

◇宿舍日常的维修维护、物品租赁的登记管理等。

4、图书管理

用于企业内部文化室(或图书馆)的计算机化管理。可对所有图书、报刊、杂志、传记、专业资料书籍等进行分类登记;对内部员工的借阅、归还进行跟踪管理;对破损、遗失、赔偿等进行登记跟踪管理。

5、资产管理

对人力资源部门通常管理的办公用品、工衣等物品进行分类编码;对办公用品的购进、 分发、领用、归还、赔偿等进行登记跟踪管理;对库存物品可进行盘点操作;对所有数据的分类分析等。与员工离职相关联,保证先退保管资产,后办离职发工资的 手续。在规定时间内重复领用系统自动提示。可核算人均办公费用等管理指标。

6、保险管理

管理企业内部的各类福利保险;自定义保险险种、员工、企业的缴费记录、明细分摊;处理员工参保,停保操作,与系统的工资等其它功能模块相关联进行汇总和查询分析。

7、医疗管理

记录员工入职时及各次体检记录,对在企业内部药品的分发、使用、回收、医药费进行管理;对医疗服务的过程进行跟踪记录;对医疗服务的类型、费用等进行分类、分析等。

8、车辆管理

规范企业的公务用车管理。从申请、批复等环节对公务用车进行有效的管控;对外出路线、逗留时间、维修保养、路桥费、油费等进行有效有据的跟踪记录,从而达到降低费用,提高效用的目的。

返回顶端

十一、员工关系

◇对相关法律法规条款重要性与内容案例解读,可能风险性预估;

◇明确公司规章各项条款与对应措施,量化必要的指标,更好贯彻各项规章;

◇公司公告的发布、公示与保管等,协助达到制度、公告的最大公示性;

◇法律法规、公司规章、公司公告明确责任到相关执行与保管人员,量化必要数据,保留原始凭据体系,以降低公司人力资源风险;

◇需求调查与处理、员工建议、文娱管理,结合公司理念,协助公司文化建设,提高员工满意度,加强公司员工凝聚力;

◇职代会管理、工会管理:建立公司各种会议架构,明确职责。并对公司相关制度决议讨论,对接国家对企业工会、职代会制度要求,有利公司和谐经营,从文化上降低经营风险与推行企业文化理念;

◇员工跟踪:对员工计划事项进行跟进,防止工作漏失;

◇离职员工访谈与跟踪,针对离职原因切实改善管理;

◇合同管理:可对新员工自动产生合同,进行分类型管理,明确各类合同法定事项,保存各类相关原始文本与变更记录,合同外约定附件等;

◇提供合同批次管理可按签订日期分合同批次,避免每日续签合同,也防止漏签或迟签;

◇工伤管理:提供各工伤案的原始文件,处理步骤流程与进度维护。对各种工种鉴定级别做相应的理培事项;

◇证件管理:对各种证件的有无与有效期管理,自动提醒;

◇体检管理:关注员工健康,对各工种员工按法规或公司制度进行体检管理。按周期要求自动提醒需求;

◇文娱管理:对公司文娱计划与执行,相关经费预算与实际应用进行管理;

◇◇对企业内部公告、通知、新闻消息等的登记、发布、跟踪、反馈等进行分类管理与分析;

◇总经理信箱:在公司内部架设一个上下级之间可以快速、直接的沟通渠道。可对信息进行分类管理,并有保密措施。

返回顶端

十二、人力分析和辅助决策

◇包括人力成本分析、组织绩效分析、合理化建议分析、薪资实验分析、薪资分布分析;

◇自定义和输出多种报表和图表,灵活生成和输出各种多维统计报表,分析人力资源的组成、成本和效益,发掘和预测人力资源的发展趋势;

◇系统内置分析型数据仓库,提供在线实时(OLAP)数据统计分析功能;

◇人员供给分析(根据生产情况及现有人员分析);

◇劳动生产率分析。

返回顶端

十三、文档办工流管理

◇支持文档柜管理,保证电子文档与纸质文档保管台帐对应,方便查找;

◇支持文件多级审批与会签;

◇支持文件分类管理,内置常用法律法规、公司制度、通知通告等类别;

◇支持其它子系统调用相关文件;

◇可制定各类别文件对应不同审批流程、管控流程;

◇支持文件号、文件多版本管理;

◇通过文档收发记录,实时查询文件起草、审批、公布、收发、保管履历;

◇支持文件集中备份。

返回顶端

十四、工作流

◇支持针对不同单据而不同职位自定义工作流程;

◇支持自动提醒当前各类需要审批工作流单据;

◇支持工作流程权限公式定义,例如每个职位可审批的请假天数;

◇支持多人会签;

◇支持前后审批人员审批意见是否可见;

◇支持离岗期间指定职位替代,替代时可以按流程指定多人替代,是否可查看本人以前单据审批记录

返回顶端

十五、领导查询和员工自助查询

◇XY-WEB星原人力资源查询系统,采用完全的B/S结构,提高软件的可维护性和可扩充性;

◇提供使用户进行二次开发的通用模块,用户可以方便地扩展软件的功能;

◇提供统一友好的操作界面和丰富的数据管理分析功能;

◇为企业的信息发布交流提供人性化的操作平台,使企业的规章制度、新闻简报、技术交流、公告事项等及时传播,使企业员工能及时了解企业发展动态;

◇改变传统的集中办公方式,扩大办公区域,企业用户可在家中、城市各地甚至世界各个角落通过网络连接随时办公;

◇系统地利用企业积累的信息资源,改进企业的创新能力和快速响应能力,以提高效率;

◇对客户端机器的硬件要求较低,可以在保留原有的软件和硬件的基础上运行新的应用系统,不影响原有资源;

◇基于WEB方式的办公系统只需在服务器上作配置和维护,大大降低了用户用于软件系统维护和升级的难度及费用,使系统更加容易实施。

返回顶端

十六、SA8000人权验厂方案

人权验厂主要是政府部门、欧美客户检查企业执行劳动法的情况,主要表现在员工是否有超时加班和符合当地最低工资标准以及保险福利、安全保护情况。其核心就是人事、考勤和薪酬福利部分。

主持验厂的对象及特点:

◇政府部门(劳动、税务、海关)查厂:除了考勤和工资部门要调整外,人数、身份证和保险也应为关注调整重点。企业与政府保持良好的关系也是重要因素; ◇欧美客户直接验厂:由于不熟悉大陆情况比较容易应对;

◇客户委托第三方验厂:专业从事验厂工作,对我国情况了如指掌,最难应对,既要符合标准,又要处理好关系。

验厂的应对方式:

普遍采用的是针对不同的验厂对象设立多套账和多套制度,不同的方式,费用和效果差别很大。传统手工和纸卡考勤方式 工作量大、费用高主要表现在处理考勤和工资项目以及对员工培训的项目上。为了避免在处理人事考勤工资多套账时耗用大量的人力和物力,我公司结合近千家工厂 一卡通验厂实施经验,总结了多套一卡通验厂实施方案。


文章名称:排班算法代码java,排班规则算法 源码
路径分享:http://myzitong.com/article/hdhido.html