febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
@@ -1,6 +1,7 @@ package cc.mrbird.febs.server.hr.controller; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -19,6 +20,7 @@ import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import cc.mrbird.febs.common.core.entity.FebsResponse; import cc.mrbird.febs.common.core.entity.QueryRequest; @@ -31,6 +33,7 @@ import cc.mrbird.febs.server.hr.feign.IRemoteUserService; import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService; import cc.mrbird.febs.server.hr.util.PoiExportExcel; import cc.mrbird.febs.server.hr.util.PoiImportExcel; import cn.hutool.core.date.DateUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -38,9 +41,7 @@ import lombok.extern.slf4j.Slf4j; /** * name:EmpBaseInfo * package:cc.mrbird.febs.server.hr.controller * description:控制器 * name:EmpBaseInfo package:cc.mrbird.febs.server.hr.controller description:控制器 * * @author luoyibo * @date 2021-01-30 08:04:50 @@ -64,11 +65,13 @@ public FebsResponse getAllEmpBaseInfos(EmpBaseInfo empBaseinfo) { return new FebsResponse().data(empBaseInfoService.findEmpBaseInfos(empBaseinfo)); } @ApiOperation(value = "人员基本信息翻页列表") @GetMapping("list") @PreAuthorize("hasAuthority('empBaseinfo:list')") public FebsResponse empBaseInfoList(QueryRequest request, EmpBaseInfo empBaseinfo) { Map<String, Object> dataTable = FebsUtil.getDataTable(this.empBaseInfoService.findEmpBaseInfos(request, empBaseinfo)); Map<String, Object> dataTable = FebsUtil .getDataTable(this.empBaseInfoService.findEmpBaseInfos(request, empBaseinfo)); return new FebsResponse().data(dataTable); } @@ -105,7 +108,8 @@ @ApiOperation(value = "人员基本信息逻辑删除") @DeleteMapping("{ids}") @PreAuthorize("hasAuthority('empBaseinfo:delete')") public void logicDeleteEmpBaseInfo(@NotBlank(message = "{required}") @PathVariable("ids") String ids) throws FebsException { public void logicDeleteEmpBaseInfo(@NotBlank(message = "{required}") @PathVariable("ids") String ids) throws FebsException { try { this.empBaseInfoService.logicDelEmpBaseInfo(ids); } catch (Exception e) { @@ -130,6 +134,7 @@ throw new FebsException(message); } } @ApiOperation(value = "基本信息提交") @DeleteMapping("toNormal/{ids}") @PreAuthorize("hasAuthority('empBaseinfo:delete')") @@ -154,6 +159,7 @@ throw new FebsException(message); } } @ApiOperation(value = "员工岗位变更") @PostMapping("jobChange") public void changeEmpJob(EmpJobChange empJobChange) throws FebsException { @@ -180,8 +186,21 @@ boolean result = PoiExportExcel.exportCommonExcel(response, fileName + dateStr, fileName, allList); } @ApiOperation(value = "导出员工") @ApiOperation(value = "导入员工") @PostMapping("importEmp") public void importEmp() throws IOException { public void importEmp(MultipartFile file) throws IOException { InputStream in = null; List<List<Object>> listObject = null; try { if (!file.isEmpty()) { in = file.getInputStream(); listObject = new PoiImportExcel().getListByExcel(in, file.getOriginalFilename()); in.close(); empBaseInfoService.importEmpBaseInfo(listObject); } } catch (Exception e) { log.error("导入员工失败", e); } } } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java
@@ -123,4 +123,10 @@ * @return boolean */ boolean changeEmpJob(EmpJobChange empJobChange); /** * 导入员工 * @param listObject */ void importEmpBaseInfo(List<List<Object>> listObject); } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -335,4 +335,38 @@ mapParams.put("operatorId", operatorId); return empBaseInfoMapper.changeEmpJob(list,mapParams)>0; } /** * 导入员工 * @param listObject */ @Override @Transactional(rollbackFor = Exception.class) public void importEmpBaseInfo(List<List<Object>> listObject) { for (List<Object> list : listObject) { EmpBaseInfo empBaseInfo = new EmpBaseInfo(); empBaseInfo.setEmpId(SequenceUtil.generateId(0L, ModuleCode.HR_EMPLOYEE)); empBaseInfo.setEmpNumb(list.get(0).toString()); List<Dept> depts = CastUtil.castList(redisService.get("depts"), Dept.class); empBaseInfo.setDeptName(list.get(1).toString()); Long deptId=depts.stream().filter(d -> d.getDeptName().equals(list.get(1).toString())).findFirst().get().getDeptId(); empBaseInfo.setDeptId(deptId); empBaseInfo.setJobName(list.get(2).toString()); empBaseInfo.setEmpName(list.get(3).toString()); empBaseInfo.setCertificateNumb(list.get(4).toString()); empBaseInfo.setSex("男".equals(list.get(5).toString())?"1":"0"); if (StringUtils.isNotBlank(list.get(6).toString())) { empBaseInfo.setAge(Integer.valueOf(list.get(6).toString())); } empBaseInfo.setEducation(list.get(7).toString()); empBaseInfo.setNativePlace(list.get(8).toString()); empBaseInfo.setTelePhone(list.get(9).toString()); if (StringUtils.isNotBlank(list.get(10).toString())) { empBaseInfo.setEntryDate(DateUtil.parseDate(list.get(10).toString())); } empBaseInfo.setEmpStatus("0"); this.save(empBaseInfo); } } } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
@@ -29,11 +29,11 @@ * @return * @throws IOException */ public List<List<Object>> getListByExcel(InputStream in, String fileName) throws Exception { public static List<List<Object>> getListByExcel(InputStream in, String fileName) throws Exception { List<List<Object>> list = null; // 创建Excel工作薄 Workbook work = this.getWorkbook(in, fileName); Workbook work = getWorkbook(in, fileName); if (null == work) { throw new Exception("创建Excel工作薄为空!"); } @@ -101,7 +101,7 @@ * @return * @throws Exception */ public Workbook getWorkbook(InputStream inStr, String fileName) throws Exception { public static Workbook getWorkbook(InputStream inStr, String fileName) throws Exception { Workbook wb = null; String fileType = fileName.substring(fileName.lastIndexOf(".")); if (excel2003L.equals(fileType)) { @@ -121,7 +121,7 @@ * @return */ @SuppressWarnings("deprecation") public Object getCellValue(Cell cell) { public static Object getCellValue(Cell cell) { try { Object value = null;