From 4b6c4d5c3d3922baf02fcfa72117f107cd472b1d Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Thu, 21 Sep 2023 15:15:18 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E2=80=9D=E6=B5=8B=E8=AF=95=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/ExportCommonController.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/com/engine/organization/web/ExportCommonController.java b/src/com/engine/organization/web/ExportCommonController.java index 51ad74a6..a004e687 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(request, response); +// 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(); From 7fcee07495fce854a14cdc04dcfff914cfdb8e17 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Fri, 22 Sep 2023 16:30:29 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=83=A8=E9=97=A8=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ExportCommonService.java | 10 ++++ .../service/impl/DepartmentServiceImpl.java | 6 ++- .../service/impl/ExportCommonServiceImpl.java | 51 +++++++++++++++++++ .../web/ExportCommonController.java | 40 +++++++-------- .../wrapper/ExportCommonWrapper.java | 4 ++ 5 files changed, 90 insertions(+), 21 deletions(-) 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..bf3020b5 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -10,12 +10,17 @@ 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.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 +43,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 +212,45 @@ 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); + List compListDTOS = DepartmentBO.buildDeptDTOList(allList); + + // 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 : compListDTOS) { + 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/web/ExportCommonController.java b/src/com/engine/organization/web/ExportCommonController.java index a004e687..775a44f1 100644 --- a/src/com/engine/organization/web/ExportCommonController.java +++ b/src/com/engine/organization/web/ExportCommonController.java @@ -57,26 +57,26 @@ 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(request, response); -// 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(); -// } + @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(); + } 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(); + } } From 481b7dbae9088274ab48f1a834ef6fee7ecadcf5 Mon Sep 17 00:00:00 2001 From: Chengliang <1546584672@qq.com> Date: Wed, 25 Oct 2023 14:08:55 +0800 Subject: [PATCH 3/3] test --- .../service/impl/ExportCommonServiceImpl.java | 17 +++++++++++++++-- .../organization/util/OrganizationDateUtil.java | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java index bf3020b5..117da446 100644 --- a/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java +++ b/src/com/engine/organization/service/impl/ExportCommonServiceImpl.java @@ -15,6 +15,7 @@ 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; @@ -217,7 +218,19 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ String orderSql = PageInfoSortUtil.getSortSql("", " showorder "); List allList = getDepartmentMapper().listAll(orderSql); new DetachUtil(user).filterDepartmentList(allList); - List compListDTOS = DepartmentBO.buildDeptDTOList(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, "部门档案数据"); @@ -237,7 +250,7 @@ public class ExportCommonServiceImpl extends Service implements ExportCommonServ //数据 List> rows = new LinkedList<>(); - for (DepartmentListDTO vo : compListDTOS) { + for (DepartmentListDTO vo : dtoList) { List row = new LinkedList<>(); row.add(vo.getDepartmentName()); row.add(vo.getDepartmentCode()); 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; } }