获取员工合同信息列表 定时任务
/** * 获取员工合同信息列表 定时任务 * @param * @return */ @Override public boolean getTimerTaskEmployeeContractList() { //获取合同设置信息 EmployeeContractSet contractSet=new EmployeeContractSet(); contractSet.setTenantId(AuthUtil.getTenantId()); List<EmployeeContractSet>setList=list(Condition.getQueryWrapper(contractSet).orderByDesc("times")); EmployeeBasicInformation bean =new EmployeeBasicInformation(); bean.setTenantId(AuthUtil.getTenantId()); bean.setIsDeleted(0); bean.setIsInform("0"); List<EmployeeBasicInformation>list=employeeBasicInformationServiceImpl.list(Condition.getQueryWrapper(bean)); log.info("获取员工信息list========"+list); if(Func.isNotEmpty(setList)&&Func.isNotEmpty(list)){ EmployeeContractSet setInfo=setList.get(0); //合同结束时间 String nowDate=new SimpleDateFormat("yyyy-MM-dd").format(new Date()); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String endTime = df.format(new Date().getTime()+Long.valueOf(setInfo.getContractExpire())*24*60*60*1000); //筛选出合同快到期的人 String realNames="合同"+setInfo.getContractExpire()+"之天内"+endTime+"日之前到期员工姓名:"; Boolean isInform=false; for(EmployeeBasicInformation basicInfo:list){ if(basicInfo.getContractEndDate().compareTo(nowDate)>=0 && basicInfo.getContractEndDate().compareTo(endTime)<=0){ realNames+=deptUserEmployeeUtil.getUserById(basicInfo.getId()).getRealName()+" ";//合同快到期的用户名 //将员工状态改为已经通知 EmployeeBasicInformation information=new EmployeeBasicInformation(); information.setId(basicInfo.getId()); information.setIsInform("1"); employeeBasicInformationServiceImpl.updateById(information); isInform=true; } } realNames.trim();//去掉结尾空格 //开启通知 if(isInform && "0".equals(setInfo.getIsOpen())){//0开启 List<User>weChatIds=new ArrayList<User>(); //获取人事部主管 String deptId=deptUserEmployeeUtil.getDeptId(AuthUtil.getTenantId(),"人力资源部"); String roleId=deptUserEmployeeUtil.getRoleId(AuthUtil.getTenantId(),"人事"); String mangerRoleId=deptUserEmployeeUtil.getRoleId(AuthUtil.getTenantId(),"主管"); if(setInfo.getNotificationPerson().contains("2")){//人事 List<User>personnelUsers=deptUserEmployeeUtil.getUserListByRoleIdAndDeptId(roleId,deptId);//人事角色用户 if(Func.isNotEmpty(personnelUsers)){ for(User usr:personnelUsers){ weChatIds.add(usr); } } } if(setInfo.getNotificationPerson().contains("3")){//人事主管 //根据角色名称获取用户 List<User>userList=deptUserEmployeeUtil.getUserListByRoleIdAndDeptId(mangerRoleId,deptId);//主管 if(Func.isNotEmpty(userList)){ for(User usr:userList){ weChatIds.add(usr); } } } //获取指定接收人id String[]assignNotificationPersonIds=setInfo.getAssignNotificationPersonCode().split(","); if(Func.isNotEmpty(assignNotificationPersonIds)){ for(String id:assignNotificationPersonIds){ if(Func.isNotEmpty(id)){ User user=deptUserEmployeeUtil.getUserById(Long.valueOf(id)); if(Func.isNotEmpty(user)){ weChatIds.add(user); } } } } if(Func.isNotEmpty(weChatIds)){ log.info("进入通知》》》weChatIds==="+weChatIds); for(User uer:weChatIds){ //获取用户的微信id //默认text WeChatSendMsgTextParam text = new WeChatSendMsgTextParam(); text.setTouser(uer.getWeChatId()); text.setContent(realNames); weChatClient.sendTextMsgFlow(String.valueOf(uer.getId()),uer.getRealName(),"",text); } } for(EmployeeBasicInformation basicInfo:list){ if(basicInfo.getContractEndDate().compareTo(nowDate)>=0 && basicInfo.getContractEndDate().compareTo(endTime)<=0){ //将员工状态改为已经通知 EmployeeBasicInformation information=new EmployeeBasicInformation(); information.setId(basicInfo.getId()); information.setIsInform("1"); employeeBasicInformationServiceImpl.updateById(information); } } } } return true; } /** * 获取修改记录信息,保存修改记录信息 * @return */ @Transactional(rollbackFor = Exception.class) public void saveRecordMsg(EmployeeContractSet original,EmployeeContractSet newInfo){ Map<String,Object>isNull=JSONObject.parseObject(JSONObject.toJSONString(original),Map.class); if(!Func.isEmpty(isNull)){ if("0".equals(original.getIsOpen())){ original.setIsOpen("开启"); } if("1".equals(original.getIsOpen())){ original.setIsOpen("关闭"); } log.info("保存修改记录信息original==="+original); String personName=""; if(Func.isNotEmpty(original.getNotificationPerson())){ String[]personList=original.getNotificationPerson().split(","); for (String person:personList){ if("2".equals(person)){ personName+="人事 "; } if("3".equals(person)){ personName+="主管"; } } original.setNotificationPerson(personName); } } Map<String,Object>isNullNew=JSONObject.parseObject(JSONObject.toJSONString(newInfo),Map.class); if(!Func.isEmpty(isNullNew)){ if("0".equals(newInfo.getIsOpen())){ newInfo.setIsOpen("开启"); } if("1".equals(newInfo.getIsOpen())){ newInfo.setIsOpen("关闭"); } String personName=""; if(Func.isNotEmpty(original.getNotificationPerson())){ String[]personList=original.getNotificationPerson().split(","); for (String person:personList){ if("2".equals(person)){ personName+="人事 "; } if("3".equals(person)){ personName+="主管"; } } original.setNotificationPerson(personName); } } String updateTime= new SimpleDateFormat("yyyy-MM-dd HH:mm:SSS").format(new Date()); //将原数据和新数据转换成map Map<String,Object>originalMap= JSONObject.parseObject(JSONObject.toJSONString(original),Map.class); Map<String,Object>newInfoMap=JSONObject.parseObject(JSONObject.toJSONString(newInfo),Map.class); String[] nameList= EmployeeConstant.CONTRACT_SET.split(","); for(String name:nameList){ EmployeeBasicInformationUpdateRecord record=new EmployeeBasicInformationUpdateRecord(); //修改之前的数据 if(Func.isNotEmpty(original)&& Func.isNotEmpty(newInfoMap)){ if(Func.isNotEmpty(newInfoMap.get(name.split(":")[0]))){ record.setPersonName("合同设置"); record.setUpdateItem((name.split(":")[1]));//变更项目 record.setUpdateTime(updateTime);//修改时间 record.setOriginalContent(String.valueOf(originalMap.get(name.split(":")[0])));//原内容 record.setUpdateContent(String.valueOf(newInfoMap.get(name.split(":")[0])));//修改内容 record.setAfterUpdateContent(String.valueOf(newInfoMap.get(name.split(":")[0])));//修改后的内容 record.setUpdatePeople(newInfo.getOperationPerson());//修改人名称 record.setTenantId(AuthUtil.getTenantId());//租户id //将信息插入记录表 updateRecordServiceImpl.save(record); } } } }
public interface EmployeeConstant { String EMPLOYEE_INFO="idCardNumber:身份证号码,entryDate:入职日期,entryMonths:入职月数,becomeFullMemberDate:转正日期,department:入职部门名称,groups:组别," + "groupCode:组编号,position:职位,function:职能(角色),positionRank:职级名称,positionRankCode:职级编号,isMarry:婚否,contractStartDate:合同开始日期," + "contractEndDate:合同结束日期,profession:专业,educationBackground:学历,politicsStatus:政治面貌,schoolOfGraduation:毕业院校,censusRegisterAddress:户籍地址," + "registeredResidenceType:户口类型,temporaryAddress:暂住地址,emergencyContact:紧急联系人,emergencyContactPhone:紧急联系人电话,workingState:在职状态0在职1离职," + "realName:员工姓名,phone:手机,birthday:生日,termContract:合同年限,contractType:合同类型,remark:备注"; String default_password="123456"; String CONTRACT_SET="isOpen:是否开启,notificationPerson:接收人,assignNotificationPerson:指定接收人,contractExpire:合同到期前天数"; }