| | |
| | | package cc.mrbird.febs.server.hr.controller; |
| | | |
| | | import cc.mrbird.febs.common.core.entity.system.Dept; |
| | | import cc.mrbird.febs.common.core.entity.system.SystemUser; |
| | | 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.entity.system.DicItem; |
| | | import cc.mrbird.febs.common.core.exception.FebsException; |
| | | import cc.mrbird.febs.common.core.utils.FebsUtil; |
| | | import cc.mrbird.febs.server.hr.annotation.ControllerEndpoint; |
| | | 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.IRemoteDicItemService; |
| | | import cc.mrbird.febs.server.hr.service.*; |
| | | import cc.mrbird.febs.server.hr.util.PoiExportExcel; |
| | | import cc.mrbird.febs.server.hr.util.PoiImportExcel; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.wuwenze.poi.ExcelKit; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotBlank; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | public class EmpBaseInfoController { |
| | | |
| | | private final IEmpBaseInfoService empBaseInfoService; |
| | | private final IRemoteUserService remoteUserService; |
| | | private final IRemoteDeptService remoteDeptService; |
| | | private final IEmpWorkExperienceService empWorkExperienceService; |
| | | private final IEmpPhysicalExamService empPhysicalExamService; |
| | | private final IEmpContractInfoService empContractInfoService; |
| | | private final IEmpDimissionAttendService empDimissionAttendService; |
| | | private final IEmpLeaveInfoService empLeaveInfoService; |
| | | private final IEmpResignService empResignService; |
| | | private final IEmpUnemploymentService empUnemploymentService; |
| | | private final IEmpInsuranceService empInsuranceService; |
| | | private final IEmpAccidentCasesService empAccidentCasesService; |
| | | private final IEmpOccupationalService empOccupationalService; |
| | | private final IEmpLaborTroubleService empLaborTroubleService; |
| | | private final IEmpBadRecordService empBadRecordService; |
| | | private final IEmpRemarkinfoService empRemarkinfoService; |
| | | private final IRemoteDicItemService dicItemService; |
| | | |
| | | @ApiOperation(value = "人员基本信息无翻页列表") |
| | | @GetMapping |
| | |
| | | return new FebsResponse().data(dataTable); |
| | | } |
| | | |
| | | @ApiOperation(value = "智搜人员基本信息翻页列表") |
| | | @GetMapping("zslist") |
| | | @PreAuthorize("hasAuthority('empBaseinfo:list')") |
| | | public FebsResponse empBaseInfoZsList(QueryRequest request, EmpBaseInfo empBaseinfo) { |
| | | Map<String, Object> dataTable = FebsUtil.getDataTable(this.empBaseInfoService.findZsEmpBaseInfos(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("已存在此员工编号:" + empBaseinfo.getEmpNumb()); |
| | | } |
| | | try { |
| | | this.empBaseInfoService.createEmpBaseInfo(empBaseinfo); |
| | | } catch (Exception e) { |
| | |
| | | @ApiOperation(value = "人员基本信息逻辑删除") |
| | | @DeleteMapping("{ids}") |
| | | @PreAuthorize("hasAuthority('empBaseinfo:delete')") |
| | | public void logicDeleteEmpBaseInfo(@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) { |
| | |
| | | @ApiOperation(value = "人员基本信息修改") |
| | | @PutMapping |
| | | @PreAuthorize("hasAuthority('empBaseinfo:update')") |
| | | public void updateEmpBaseInfo(EmpBaseInfo empBaseinfo) throws FebsException { |
| | | 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) { |
| | |
| | | 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); |
| | | } |
| | | } |
| | | @GetMapping("options") |
| | | public FebsResponse roles() { |
| | | QueryWrapper<EmpBaseInfo> wrapper=new QueryWrapper(); |
| | | wrapper.eq("empStatus",0); |
| | | wrapper.eq("delFlag",0); |
| | | wrapper.orderByDesc("createTime"); |
| | | List<EmpBaseInfo> allRoles = empBaseInfoService.list(wrapper); |
| | | return new FebsResponse().data(allRoles); |
| | | } |
| | | |
| | | // @GetMapping("user/list") |
| | | // public FebsResponse getRemoteUserList(QueryRequest request, SystemUser user) { |
| | | // return remoteUserService.userList(request, user); |
| | | // } |
| | | // @GetMapping("dept/list") |
| | | // public List<Dept> getRemoteDeptList(Dept dept) { |
| | | // return remoteDeptService.selectAllDept(dept); |
| | | // } |
| | | @ApiOperation(value = "导出员工") |
| | | @RequestMapping(value = "export",method= RequestMethod.POST) |
| | | @ControllerEndpoint(operation = "导出用户数据", exceptionMessage = "导出Excel失败") |
| | | public void export(QueryRequest request, EmpBaseInfo empBaseinfo, HttpServletResponse response) throws IOException { |
| | | request.setPageSize(this.empBaseInfoService.count()); |
| | | List<EmpBaseInfo> records = this.empBaseInfoService.findZsEmpBaseInfos(request, empBaseinfo).getRecords(); |
| | | ExcelKit.$Export(EmpBaseInfo.class, response).downXlsx(records, false); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出员工") |
| | | @RequestMapping(value = "exportWithField",method= RequestMethod.POST) |
| | | @ControllerEndpoint(operation = "导出用户数据", exceptionMessage = "导出Excel失败") |
| | | public void exportWithField(QueryRequest request, HttpServletResponse response, String exportField,EmpBaseInfo empBaseinfo) throws IOException { |
| | | request.setPageSize(25535); |
| | | request.setPageNum(1); |
| | | List<EmpBaseInfo> exportList = this.empBaseInfoService.findZsEmpBaseInfos(request, empBaseinfo).getRecords(); |
| | | List<Map<String, Object>> listMapDicItem = new ArrayList(); |
| | | List<Map<String, Object>> allList = PoiExportExcel.getDataList(exportField, exportList, null); |
| | | String fileName = "员工列表"; |
| | | Date currentDate = new Date(); |
| | | String dateStr = DateUtil.formatDate(currentDate); |
| | | boolean result = PoiExportExcel.exportCommonExcel(response, fileName + dateStr, fileName, allList); |
| | | } |
| | | |
| | | @ApiOperation(value = "导出员工") |
| | | @RequestMapping(value = "exportEmpAll",method= RequestMethod.POST) |
| | | @ControllerEndpoint(operation = "导出用户数据", exceptionMessage = "导出Excel失败") |
| | | public void exportEmpAll(HttpServletResponse response,EmpBaseInfo empBaseinfo) throws IOException { |
| | | this.empBaseInfoService.exportEmpAll(response,empBaseinfo); |
| | | } |
| | | |
| | | @ApiOperation(value = "导入员工") |
| | | @PostMapping("importEmp") |
| | | public FebsResponse importEmp(MultipartFile file) { |
| | | InputStream in; |
| | | List<List<List<Object>>> listObject; |
| | | List<String> returnList = new ArrayList<>(); |
| | | List<DicItem> dicItems = dicItemService.getAllDicitemsAll(); |
| | | try { |
| | | if (!file.isEmpty()) { |
| | | in = file.getInputStream(); |
| | | listObject = PoiImportExcel.getMulitListByExcel(in, file.getOriginalFilename()); |
| | | in.close(); |
| | | empBaseInfoService.importEmpBaseInfo(listObject.get(0),returnList,dicItems); |
| | | empWorkExperienceService.importEmpWorkExperience(listObject.get(1),returnList); |
| | | empPhysicalExamService.importEmpPhysicalExam(listObject.get(2),returnList,dicItems); |
| | | empContractInfoService.importEmpContractInfo(listObject.get(3),returnList,dicItems); |
| | | empDimissionAttendService.importEmpDimissionAttend(listObject.get(4),returnList); |
| | | empLeaveInfoService.importEmpLeaveInfo(listObject.get(5),returnList); |
| | | empResignService.importEmpResign(listObject.get(6),returnList); |
| | | empUnemploymentService.importEmpUnemployment(listObject.get(7),returnList); |
| | | empInsuranceService.importEmpInsurance(listObject.get(8),returnList,dicItems); |
| | | empAccidentCasesService.importEmpAccidentCases(listObject.get(9),returnList); |
| | | empOccupationalService.importEmpOccupational(listObject.get(10),returnList); |
| | | empLaborTroubleService.importEmpLaborTrouble(listObject.get(11),returnList,dicItems); |
| | | empBadRecordService.importEmpBadRecord(listObject.get(12),returnList); |
| | | empRemarkinfoService.importEmpRemarkInfo(listObject.get(13),returnList); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("导入员工", e); |
| | | } |
| | | return new FebsResponse().data(returnList); |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | } |
| | | |
| | | @GetMapping("image/{empId}") |
| | | public void getImage(@PathVariable String empId, HttpServletResponse response) throws FebsException { |
| | | try { |
| | | this.empBaseInfoService.getImage(empId,response); |
| | | } catch (Exception e) { |
| | | String message = "获取员工图片异常"; |
| | | log.error(message, e); |
| | | throw new FebsException(message); |
| | | } |
| | | |
| | | } |
| | | |
| | | @ApiOperation(value = "在职人员基本信息增加") |
| | | @PostMapping("addInEmp") |
| | | @PreAuthorize("hasAuthority('empBaseinfo:add')") |
| | | public FebsResponse addInEmpBaseInfo(@Valid EmpBaseInfo empBaseinfo) throws FebsException { |
| | | try { |
| | | return new FebsResponse().data(empBaseInfoService.addInEmpBaseInfo(empBaseinfo)); |
| | | } catch (Exception e) { |
| | | String message = "新增员工基本信息失败"; |
| | | log.error(message, e); |
| | | throw new FebsException(message); |
| | | } |
| | | } |
| | | } |