JAVA 员工轮询 值班 排班
1.设计一个值班历史纪录表 duty_employee_history(area_id,dept_id) 联合主键,存放已值班过的数据
area_id int(11) NOT NULL 区域
dep_id int(11) NOT NULL 部门
employee_ids varchar(2000) NOT NULL 已值班过的 ,号分隔 格式 ,12,22,3,45, 前后要有逗号 防止 45 匹配456 这样的数据
2.值班表 duty
从值班表中拿到当前部门当前区域 正在值班的employee List dutyEmpIdList (可以存放到Redis)
3. 从duty_history 中拿出 当前排班部门区域的唯一一条数据DutyEmployeeHistory 、 一个部门区域只有一条数据,可以不担心效率问题
DutyEmployeeHistory dutyEmployeeHistory = dutyEmployeeHistoryDao.selectByPrimaryKey(key);
//如果为null 插入一条新的 第一个值班人员从值班人员list中随便拿一个
if(null == dutyEmployeeHistory){
dutyEmployeeHistory = new DutyEmployeeHistory();
dutyEmployeeHistory.setOrgAreaId(areaId);
dutyEmployeeHistory.setDepId(deptId);
dutyEmployeeHistory.setFlowTypeId(flowTypeId);
dutyEmployeeHistory.setEmployeeIds(","+dutyEm