| | |
| | | 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; |
| | | import java.util.Map; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotBlank; |
| | | |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | 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.server.hr.entity.EmpBaseInfo; |
| | | import cc.mrbird.febs.server.hr.feign.IRemoteDeptService; |
| | | import cc.mrbird.febs.server.hr.feign.IRemoteUserService; |
| | | import cc.mrbird.febs.server.hr.service.IEmpBaseInfoService; |
| | | import cc.mrbird.febs.common.core.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.core.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.core.exception.FebsException; |
| | | import cc.mrbird.febs.common.core.utils.FebsUtil; |
| | | import cc.mrbird.febs.server.hr.entity.EmpBaseInfo; |
| | | import cc.mrbird.febs.server.hr.entity.EmpDimissionLog; |
| | | import cc.mrbird.febs.server.hr.entity.EmpJobChange; |
| | | import cc.mrbird.febs.server.hr.feign.IRemoteDeptService; |
| | | 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; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotBlank; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * 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 |
| | |
| | | @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 |
| | | @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("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 = "人员基本信息增加") |
| | | @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 = "人员基本信息增加") |
| | | @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 |
| | | @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 = "人员基本信息物理删除") |
| | | @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 = "人员基本信息逻辑删除") |
| | | @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("{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 = "人员基本信息修改") |
| | | @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 = "人员基本信息修改") |
| | | @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(); |
| | | empBaseinfo.setDelFlag(0); |
| | | List<EmpBaseInfo> exportList = empBaseInfoService.findEmpBaseInfos(empBaseinfo); |
| | | List<Map<String, Object>> listMapDicItem = new ArrayList(); |
| | | List<Map<String, Object>> allList = PoiExportExcel.getDataList(exportField, exportList, listMapDicItem); |
| | | String fileName = "在职员工列表"; |
| | | Date currentDate = new Date(); |
| | | String dateStr = DateUtil.formatDate(currentDate); |
| | | boolean result = PoiExportExcel.exportCommonExcel(response, fileName + dateStr, fileName, allList); |
| | | } |
| | | |
| | | @ApiOperation(value = "导入员工") |
| | | @PostMapping("importEmp") |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | } |