这是一个名为iHRM System的人力资源管理系统的源代码压缩文件,包含员工信息管理、招聘流程管理和绩效考核等功能模块。
```java
@RequestMapping(value=/user/import,method = RequestMethod.POST)
public Result importUser(@RequestParam(name=file) MultipartFile file) throws Exception {
//1.解析Excel
Workbook wb = new XSSFWorkbook(file.getInputStream());
Sheet sheet = wb.getSheetAt(0);
List list = new ArrayList<>();
System.out.println(sheet.getLastRowNum());
for (int rowNum = 1; rowNum <= sheet.getLastRowNum();rowNum++) {
Row row = sheet.getRow(rowNum);
Object [] values = new Object[row.getLastCellNum()];
for(int cellNum=0;cellNum< row.getLastCellNum(); cellNum ++) {
Cell cell = row.getCell(cellNum);
Object value = getCellValue(cell);
values[cellNum] = value;
}
User user = new User(values);
list.add(user);
}
userService.saveAll(list,companyId,companyName);
return new Result(ResultCode.SUCCESS);
}
public void saveAll(List list ,String companyId,String companyName){
for (User user : list) {
//默认密码
user.setPassword(new Md5Hash(123456,user.getMobile(),3).toString());
String id = idWorker.nextId()+;
user.setCompanyId(companyId);
user.setCompanyName(companyName);
user.setLevel(user);
user.setId(id);
Department department = departmentFeignClient.findByCode(user.getDepartmentId(), companyId);
if(department != null) {
user.setDepartmentId(department.getId());
user.setDepartmentName(department.getName());
}
userDao.save(user);
}
}
public void save(User user){
String id = idWorker.nextId()+;
String password = new Md5Hash(123456,user.getMobile(),3).toString();
user.setLevel(user);
user.setPassword(password);
user.setId(id);
userDao.save(user);
}
public static Object getCellValue(Cell cell) {
CellType cellType = cell.getCellType();
Object value = null;
switch (cellType){
case STRING:
value = cell.getStringCellValue();
break;
case BOOLEAN:
value = cell.getBooleanCellValue();
break;
case NUMERIC:
if(DateUtil.isCellDateFormatted(cell)){
//日期格式
value = cell.getDateCellValue();
}else{
//数字
value = cell.getNumericCellValue();
}
break;
case FORMULA:
value = cell.getCellFormula();
break;
}
return value;
}
```