yijiusmile
2021-02-19 734e2ad327e241fa40e31ff07329f032de689df1
增加导入员工
4个文件已修改
81 ■■■■ 已修改文件
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/util/PoiImportExcel.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;