diff --git a/src/com/engine/organization/service/ExportCommonService.java b/src/com/engine/organization/service/ExportCommonService.java index 19270ebe..017af981 100644 --- a/src/com/engine/organization/service/ExportCommonService.java +++ b/src/com/engine/organization/service/ExportCommonService.java @@ -31,4 +31,14 @@ public interface ExportCommonService { * @return */ XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response, String ids); + + + /** + * @Description: 部门管理页面全部导出 + * @Author: liang.cheng + * @Date: 2023/9/21 3:43 PM + * @param: [] + * @return: org.apache.poi.xssf.usermodel.XSSFWorkbook + */ + XSSFWorkbook departmentExport(); } diff --git a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java index 44e2e894..285088fa 100644 --- a/src/com/engine/organization/service/impl/DepartmentServiceImpl.java +++ b/src/com/engine/organization/service/impl/DepartmentServiceImpl.java @@ -243,7 +243,11 @@ public class DepartmentServiceImpl extends Service implements DepartmentService @Override public Map> getHasRight() { - return MenuBtn.getDatasNoBtnColum(); + MenuBtn.builder().isBatch("1").isTop("1").menuFun("new").menuIcon("icon-coms-New-Flow").menuName("新增").type("BTN_Addnew").build(); + Map> datasNoBtnColum = MenuBtn.getDatasNoBtnColum(); + datasNoBtnColum.get("topMenu").add(MenuBtn.builder().isBatch("0").isTop("1").menuFun("export").menuIcon("icon-coms-export").menuName("全部导出").type("BTN_Export").build()); + datasNoBtnColum.get("rightMenu").add(MenuBtn.builder().isBatch("0").isTop("0").menuFun("export").menuIcon("icon-coms-export").menuName("全部导出").type("BTN_Export").build()); + return datasNoBtnColum; } @Override diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java index d1134adf..117da446 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -10,12 +10,18 @@ import com.cloudstore.eccom.pc.table.WeaTableColumn; import com.cloudstore.eccom.result.WeaResultMsg; import com.engine.core.impl.Service; import com.engine.organization.component.OrganizationWeaTable; +import com.engine.organization.entity.department.bo.DepartmentBO; +import com.engine.organization.entity.department.dto.DepartmentListDTO; +import com.engine.organization.entity.department.po.DepartmentPO; import com.engine.organization.entity.hrmresource.po.SearchTemplatePO; import com.engine.organization.entity.hrmresource.vo.HrmResourceVO; +import com.engine.organization.mapper.comp.CompMapper; +import com.engine.organization.mapper.department.DepartmentMapper; import com.engine.organization.mapper.resource.HrmResourceMapper; import com.engine.organization.mapper.resource.ResourceMapper; import com.engine.organization.service.ExportCommonService; import com.engine.organization.util.HrmI18nUtil; +import com.engine.organization.util.PageInfoSortUtil; import com.engine.organization.util.db.MapperProxyFactory; import com.engine.organization.util.detach.DetachUtil; import com.engine.organization.util.excel.ExcelUtil; @@ -38,6 +44,12 @@ import java.util.stream.Collectors; **/ public class ExportCommonServiceImpl extends Service implements ExportCommonService { + + private static DepartmentMapper getDepartmentMapper() { + return MapperProxyFactory.getProxy(DepartmentMapper.class); + } + + @Override public XSSFWorkbook resourceExport(List ids) { @@ -201,5 +213,57 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ return ExcelUtil.genWorkbookV2(excelSheetData, sheetName); } + @Override + public XSSFWorkbook departmentExport() { + String orderSql = PageInfoSortUtil.getSortSql("", " showorder "); + List allList = getDepartmentMapper().listAll(orderSql); + new DetachUtil(user).filterDepartmentList(allList); + Map poMaps = allList.stream().collect(Collectors.toMap(DepartmentPO::getId, item -> item)); + List dtoList = allList.stream().map(e -> + DepartmentListDTO + .builder() + .id(e.getId()) + .departmentMark(e.getDepartmentMark()) + .departmentName(e.getDepartmentName()) + .departmentCode(e.getDepartmentCode()) + .subCompanyName(0 == e.getSubCompanyId1() ? "" : MapperProxyFactory.getProxy(CompMapper.class).listById(e.getSubCompanyId1()).getSubCompanyName()) + .supDepName(null == poMaps.get(e.getSupDepId()) ? "" : poMaps.get(e.getSupDepId()).getDepartmentName()) + .bmfzr(DepartmentBO.getEmployeeNameById(e.getId())) + .canceled(null == e.getCanceled() ? 0 : e.getCanceled()) + .build()).collect(Collectors.toList()); + + // 1.工作簿名称 + String sheetName = HrmI18nUtil.getI18nLabel(85368, "部门档案数据"); + // 2.表头(后面动态获取) + List> excelSheetData = new ArrayList<>(); + + String[] header = { + HrmI18nUtil.getI18nLabel( -93270, "部门名称"), + HrmI18nUtil.getI18nLabel( -93272, "编号"), + HrmI18nUtil.getI18nLabel( -93274, "部门简称"), + HrmI18nUtil.getI18nLabel( -93275, "所属分部"), + HrmI18nUtil.getI18nLabel( -93278, "上级部门"), + HrmI18nUtil.getI18nLabel( -93279, "部门负责人"), + HrmI18nUtil.getI18nLabel( -93280, "启用状态") + }; + excelSheetData.add(Arrays.asList(header)); + + //数据 + List> rows = new LinkedList<>(); + for (DepartmentListDTO vo : dtoList) { + List row = new LinkedList<>(); + row.add(vo.getDepartmentName()); + row.add(vo.getDepartmentCode()); + row.add(vo.getDepartmentMark()); + row.add(vo.getSubCompanyName()); + row.add(vo.getSupDepName()); + row.add(vo.getBmfzr()); + row.add(vo.getCanceled() == 0 ? "启用" : "未启用"); + rows.add(row); + } + excelSheetData.addAll(rows); + return ExcelUtil.genWorkbookV2(excelSheetData, sheetName); + } + } diff --git a/src/com/engine/organization/util/OrganizationDateUtil.java b/src/com/engine/organization/util/OrganizationDateUtil.java index c430cb24..da57c62d 100644 --- a/src/com/engine/organization/util/OrganizationDateUtil.java +++ b/src/com/engine/organization/util/OrganizationDateUtil.java @@ -90,7 +90,7 @@ public class OrganizationDateUtil { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(FORMYEAR_PATTERN); return simpleDateFormat.format(localDate); } catch (Exception e) { - log.warn("格式化年份错误", e); + log.warn("格式化日期错误", e); return StringUtils.EMPTY; } } diff --git a/src/com/engine/organization/web/ExportCommonController.java b/src/com/engine/organization/web/ExportCommonController.java index 51ad74a6..775a44f1 100644 --- a/src/com/engine/organization/web/ExportCommonController.java +++ b/src/com/engine/organization/web/ExportCommonController.java @@ -57,6 +57,31 @@ public class ExportCommonController { } + @GET + @Path("/department/export") + @Produces(MediaType.APPLICATION_OCTET_STREAM) + public Response departmentExport(@Context HttpServletRequest request, @Context HttpServletResponse response) { + User user = HrmUserVarify.getUser(request, response); + XSSFWorkbook workbook = getExportCommonWrapper(user).departmentExport(); + String time = LocalDate.now().toString(); + String fileName = "部门导出" + time; + try { + fileName = URLEncoder.encode(fileName + ".xlsx", "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + StreamingOutput output = outputStream -> { + workbook.write(outputStream); + outputStream.flush(); + }; + response.setContentType("application/octet-stream"); + return Response.ok(output).header("Content-disposition", "attachment;filename=" + fileName).header("Cache-Control", "no-cache").build(); + } + + + + + private HrmResourceSearchParam buildResourceParam(HttpServletRequest request) { HrmResourceSearchParam param = new HrmResourceSearchParam(); diff --git a/src/com/engine/organization/wrapper/ExportCommonWrapper.java b/src/com/engine/organization/wrapper/ExportCommonWrapper.java index ba7d65dc..fab42ddc 100644 --- a/src/com/engine/organization/wrapper/ExportCommonWrapper.java +++ b/src/com/engine/organization/wrapper/ExportCommonWrapper.java @@ -30,4 +30,8 @@ public class ExportCommonWrapper extends Service { public XSSFWorkbook resourceExport(HttpServletRequest request, HttpServletResponse response, String ids) { return getExportCommonService(user).resourceExport(request, response, ids); } + + public XSSFWorkbook departmentExport() { + return getExportCommonService(user).departmentExport(); + } }