febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/controller/EmpBaseInfoController.java
@@ -1,24 +1,42 @@ package cc.mrbird.febs.server.hr.controller; 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 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.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.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.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; import lombok.extern.slf4j.Slf4j; /** * name:EmpBaseInfo @@ -52,6 +70,14 @@ @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("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); } @@ -126,4 +152,36 @@ } } @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); } } } febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/IEmpBaseInfoService.java
@@ -29,6 +29,16 @@ * @return IPage<EmpBaseinfo> */ IPage<EmpBaseInfo> findEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo); /** *智搜 查询(分页) * * @param request QueryRequest * @param empBaseInfo empBaseinfo * @return IPage<EmpBaseinfo> */ IPage<EmpBaseInfo> findZsEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo); /** * 查询(所有) febs-server/febs-server-hr/src/main/java/cc/mrbird/febs/server/hr/service/impl/EmpBaseInfoServiceImpl.java
@@ -152,6 +152,98 @@ iPage.setRecords(list); return iPage; } @Override public IPage<EmpBaseInfo> findZsEmpBaseInfos(QueryRequest request, EmpBaseInfo empBaseInfo) { LambdaQueryWrapper<EmpBaseInfo> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(EmpBaseInfo::getDelFlag, empBaseInfo.getDelFlag()); if (StringUtils.isNotBlank(empBaseInfo.getEmpNumb())) { queryWrapper.like(EmpBaseInfo::getEmpNumb, empBaseInfo.getEmpNumb()); } if (StringUtils.isNotBlank(empBaseInfo.getEmpName())) { queryWrapper.like(EmpBaseInfo::getEmpName, empBaseInfo.getEmpName()); } if (StringUtils.isNotBlank(empBaseInfo.getCertificateNumb())) { queryWrapper.like(EmpBaseInfo::getCertificateNumb, empBaseInfo.getCertificateNumb()); } if (StringUtils.isNotBlank(empBaseInfo.getDeptName())) { queryWrapper.like(EmpBaseInfo::getDeptName, empBaseInfo.getDeptName()); } if (StringUtils.isNotBlank(empBaseInfo.getEntryDateStr())) { queryWrapper.between(EmpBaseInfo::getEntryDate, empBaseInfo.getEntryDateStr().split(",")[0], empBaseInfo.getEntryDateStr().split(",")[1]); } if (StringUtils.isNotBlank(empBaseInfo.getDimissionDateStr())) { queryWrapper.between(EmpBaseInfo::getDimissionDate, empBaseInfo.getDimissionDateStr().split(",")[0], empBaseInfo.getDimissionDateStr().split(",")[1]); } if (StringUtils.isNotBlank(empBaseInfo.getSex())) { queryWrapper.in(EmpBaseInfo::getSex, empBaseInfo.getSex().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getEducation())) { queryWrapper.in(EmpBaseInfo::getEducation, empBaseInfo.getEducation().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getPolitics())) { queryWrapper.in(EmpBaseInfo::getPolitics, empBaseInfo.getPolitics().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getAgeStr())) { String[] ages=empBaseInfo.getAgeStr().split(","); for (int i = 0; i < ages.length; i++) { String ageBtn=ages[i]; queryWrapper.between(EmpBaseInfo::getAge, ageBtn.split("-")[0], ageBtn.split("-")[1]); } } if (StringUtils.isNotBlank(empBaseInfo.getArchivesStatus())) { queryWrapper.in(EmpBaseInfo::getArchivesStatus, empBaseInfo.getArchivesStatus().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getInsuranceType())) { queryWrapper.in(EmpBaseInfo::getInsuranceType, empBaseInfo.getInsuranceType().split(",")); } if (StringUtils.isNotBlank(empBaseInfo.getEmpStatus())) { queryWrapper.in(EmpBaseInfo::getEmpStatus, empBaseInfo.getEmpStatus().split(",")); } Page<EmpBaseInfo> page = new Page<>(request.getPageNum(), request.getPageSize()); IPage<EmpBaseInfo> iPage = this.page(page, queryWrapper); //设置部门 List<EmpBaseInfo> list = setDeptName(iPage.getRecords()); List<DicItem> dicItems = CastUtil.castList(redisService.get("dicItems"), DicItem.class); list.forEach(p -> { p.setSexName("1".equals(p.getSex()) ? "男" : "女"); p.setEmpTypeName("1".equals(p.getEmpType()) ? "正式工" : "临时工"); p.setInsuranceTypeName("1".equals(p.getInsuranceType()) ? "(深户)五险一档" : "(非深户)五险一档"); p.setArchivesStatusName("0".equals(p.getArchivesStatus()) ? "未移交" : "已移交"); // 设置民族 p.setNationName(dicItems.stream() .filter(k -> DicCode.NATION.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getNation())) .findFirst() .map(DicItem::getDicItemName) .orElse("汉族")); // 设置政治面貌 p.setPoliticsName(dicItems.stream() .filter(k -> DicCode.PLITICAL.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getPolitics())) .findFirst() .map(DicItem::getDicItemName) .orElse("群众")); // 设置婚姻状况 p.setMarriageName(dicItems.stream() .filter(k -> DicCode.MARRIAGE.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getMarriage())) .findFirst() .map(DicItem::getDicItemName) .orElse("未婚")); // 设置学历 p.setEducationName(dicItems.stream() .filter(k -> DicCode.EDUCATION.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getEducation())) .findFirst() .map(DicItem::getDicItemName) .orElse("无学历")); // 设置籍贯 p.setNativePlaceName(dicItems.stream() .filter(k -> DicCode.NATIVEPLACE.equals(k.getDicCode()) && k.getDicItemCode().equals(p.getNativePlace())) .findFirst() .map(DicItem::getDicItemName) .orElse("未知")); }); iPage.setRecords(list); return iPage; } @Override public List<EmpBaseInfo> findEmpBaseInfos(EmpBaseInfo empBaseInfo) {