From 734e2ad327e241fa40e31ff07329f032de689df1 Mon Sep 17 00:00:00 2001
From: yijiusmile <253281376@qq.com>
Date: 星期五, 19 二月 2021 01:26:07 +0800
Subject: [PATCH] 增加导入员工
---
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java | 6 +
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java | 245 ++++++++++++++++++++++++++----------------------
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java | 34 ++++++
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java | 8
4 files changed, 176 insertions(+), 117 deletions(-)
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
index 3c11c43..c3625a7 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
+++ b/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
@@ -54,119 +55,124 @@
@RequiredArgsConstructor
public class EmpBaseInfoController {
- private final IEmpBaseInfoService empBaseInfoService;
- private final IRemoteUserService remoteUserService;
- private final IRemoteDeptService remoteDeptService;
+ private final IEmpBaseInfoService empBaseInfoService;
+ private final IRemoteUserService remoteUserService;
+ private final IRemoteDeptService remoteDeptService;
- @ApiOperation(value = "人员基本信息无翻页列表")
- @GetMapping
- @PreAuthorize("hasAuthority('empBaseinfo:list')")
- 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));
- return new FebsResponse().data(dataTable);
- }
+ @ApiOperation(value = "人员基本信息无翻页列表")
+ @GetMapping
+ @PreAuthorize("hasAuthority('empBaseinfo:list')")
+ public FebsResponse getAllEmpBaseInfos(EmpBaseInfo empBaseinfo) {
+ return new FebsResponse().data(empBaseInfoService.findEmpBaseInfos(empBaseinfo));
+ }
- @ApiOperation(value = "人员基本信息增加")
- @PostMapping
- @PreAuthorize("hasAuthority('empBaseinfo:add')")
- public void addEmpBaseInfo(@Valid EmpBaseInfo empBaseinfo) throws FebsException {
- if(this.empBaseInfoService.verifyEmpNumb(empBaseinfo)){
- throw new FebsException("已存在此员工编号");
- }
- try {
- //EmpBaseInfo tempInfo = this.empBaseInfoService.
- this.empBaseInfoService.createEmpBaseInfo(empBaseinfo);
- } catch (Exception e) {
- String message = "新增员工基本信息失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
+ @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));
+ return new FebsResponse().data(dataTable);
+ }
- @ApiOperation(value = "人员基本信息物理删除")
- @DeleteMapping
- @PreAuthorize("hasAuthority('empBaseinfo:delete')")
- public void deleteEmpBaseInfo(EmpBaseInfo empBaseinfo) throws FebsException {
- try {
- this.empBaseInfoService.deleteEmpBaseInfo(empBaseinfo);
- } catch (Exception e) {
- String message = "删除员工基本信息失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
+ @ApiOperation(value = "人员基本信息增加")
+ @PostMapping
+ @PreAuthorize("hasAuthority('empBaseinfo:add')")
+ public void addEmpBaseInfo(@Valid EmpBaseInfo empBaseinfo) throws FebsException {
+ if (this.empBaseInfoService.verifyEmpNumb(empBaseinfo)) {
+ throw new FebsException("已存在此员工编号");
+ }
+ try {
+ // EmpBaseInfo tempInfo = this.empBaseInfoService.
+ this.empBaseInfoService.createEmpBaseInfo(empBaseinfo);
+ } catch (Exception e) {
+ String message = "新增员工基本信息失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
- @ApiOperation(value = "人员基本信息逻辑删除")
- @DeleteMapping("{ids}")
- @PreAuthorize("hasAuthority('empBaseinfo:delete')")
- public void logicDeleteEmpBaseInfo(@NotBlank(message = "{required}") @PathVariable("ids") String ids) throws FebsException {
- try {
- this.empBaseInfoService.logicDelEmpBaseInfo(ids);
- } catch (Exception e) {
- String message = "逻辑员工基本信息删除失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
+ @ApiOperation(value = "人员基本信息物理删除")
+ @DeleteMapping
+ @PreAuthorize("hasAuthority('empBaseinfo:delete')")
+ public void deleteEmpBaseInfo(EmpBaseInfo empBaseinfo) throws FebsException {
+ try {
+ this.empBaseInfoService.deleteEmpBaseInfo(empBaseinfo);
+ } catch (Exception e) {
+ String message = "删除员工基本信息失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
- @ApiOperation(value = "人员基本信息修改")
- @PutMapping
- @PreAuthorize("hasAuthority('empBaseinfo:update')")
- public void updateEmpBaseInfo(@Valid EmpBaseInfo empBaseinfo) throws FebsException {
- if(this.empBaseInfoService.verifyEmpNumb(empBaseinfo)){
- throw new FebsException("已存在此员工编号:" + empBaseinfo.getEmpNumb());
- }
- try {
- this.empBaseInfoService.updateEmpBaseInfo(empBaseinfo);
- } catch (Exception e) {
- String message = "修改失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
- @ApiOperation(value = "基本信息提交")
- @DeleteMapping("toNormal/{ids}")
- @PreAuthorize("hasAuthority('empBaseinfo:delete')")
- public void momentToNormal(@NotBlank(message = "{required}") @PathVariable("ids") String ids) throws FebsException {
- try {
- this.empBaseInfoService.momentToNormal(ids);
- } catch (Exception e) {
- String message = "基本信息提交失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
+ @ApiOperation(value = "人员基本信息逻辑删除")
+ @DeleteMapping("{ids}")
+ @PreAuthorize("hasAuthority('empBaseinfo:delete')")
+ public void logicDeleteEmpBaseInfo(@NotBlank(message = "{required}") @PathVariable("ids") String ids)
+ throws FebsException {
+ try {
+ this.empBaseInfoService.logicDelEmpBaseInfo(ids);
+ } catch (Exception e) {
+ String message = "逻辑员工基本信息删除失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
- @ApiOperation(value = "关闭员工档案")
- @PostMapping("dimission")
- public void dimissionEmp(EmpDimissionLog empDimissionLog) throws FebsException {
- try {
- this.empBaseInfoService.closeEmpArchives(empDimissionLog);
- } catch (Exception e) {
- String message = "关闭员工档案失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
- @ApiOperation(value = "员工岗位变更")
- @PostMapping("jobChange")
- public void changeEmpJob(EmpJobChange empJobChange) throws FebsException {
- try {
- this.empBaseInfoService.changeEmpJob(empJobChange);
- } catch (Exception e) {
- String message = "员工调岗保存失败";
- log.error(message, e);
- throw new FebsException(message);
- }
- }
-
- @ApiOperation(value = "导出员工")
+ @ApiOperation(value = "人员基本信息修改")
+ @PutMapping
+ @PreAuthorize("hasAuthority('empBaseinfo:update')")
+ public void updateEmpBaseInfo(@Valid EmpBaseInfo empBaseinfo) throws FebsException {
+ if (this.empBaseInfoService.verifyEmpNumb(empBaseinfo)) {
+ throw new FebsException("已存在此员工编号:" + empBaseinfo.getEmpNumb());
+ }
+ try {
+ this.empBaseInfoService.updateEmpBaseInfo(empBaseinfo);
+ } catch (Exception e) {
+ String message = "修改失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
+
+ @ApiOperation(value = "基本信息提交")
+ @DeleteMapping("toNormal/{ids}")
+ @PreAuthorize("hasAuthority('empBaseinfo:delete')")
+ public void momentToNormal(@NotBlank(message = "{required}") @PathVariable("ids") String ids) throws FebsException {
+ try {
+ this.empBaseInfoService.momentToNormal(ids);
+ } catch (Exception e) {
+ String message = "基本信息提交失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
+
+ @ApiOperation(value = "关闭员工档案")
+ @PostMapping("dimission")
+ public void dimissionEmp(EmpDimissionLog empDimissionLog) throws FebsException {
+ try {
+ this.empBaseInfoService.closeEmpArchives(empDimissionLog);
+ } catch (Exception e) {
+ String message = "关闭员工档案失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
+
+ @ApiOperation(value = "员工岗位变更")
+ @PostMapping("jobChange")
+ public void changeEmpJob(EmpJobChange empJobChange) throws FebsException {
+ try {
+ this.empBaseInfoService.changeEmpJob(empJobChange);
+ } catch (Exception e) {
+ String message = "员工调岗保存失败";
+ log.error(message, e);
+ throw new FebsException(message);
+ }
+ }
+
+ @ApiOperation(value = "导出员工")
@PostMapping("export")
public void export(QueryRequest request, HttpServletResponse response, String exportField) throws IOException {
EmpBaseInfo empBaseinfo = new EmpBaseInfo();
@@ -179,9 +185,22 @@
String dateStr = DateUtil.formatDate(currentDate);
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);
+ }
+
}
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java
index 9300cbe..9ee818f 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java
+++ b/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);
}
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
index 567e977..b886cd2 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
+++ b/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);
+ }
+
+ }
}
\ No newline at end of file
diff --git a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java b/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
index 3f5b6e7..f73ff68 100644
--- a/febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java
+++ b/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;
--
Gitblit v1.8.0