diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java index 157ffc6..7f2a39d 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java @@ -34,6 +34,7 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.List; @@ -148,6 +149,15 @@ public class SpecialStaffManageController { } + @At + @Ok("void") + @ApiOperation("特别人员管理,导出特别人员") + @SaCheckPermission("staff.special.manage") + public void doExport(SpecialStaffPageForm pageForm, HttpServletResponse response) { + specialStaffManageService.doExport(pageForm, response); + } + + @At @ApiOperation("特别人员管理,查询用户") @SaCheckPermission("staff.special.manage") diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java index b9f0a4a..22f90c3 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/SpecialStaffManageService.java @@ -6,6 +6,8 @@ import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff; import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm; import org.nutz.lang.util.NutMap; +import javax.servlet.http.HttpServletResponse; + /** * @version 1.0 * @Author zzr @@ -35,4 +37,11 @@ public interface SpecialStaffManageService extends BaseService { * @return */ NutMap getSpecialStaffUserInfo(String userId); + + /** + * 导出特别人员 + * @param pageForm 查询条件 + * @param response 响应 + */ + void doExport(SpecialStaffPageForm pageForm, HttpServletResponse response); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java index 39060be..6c2eb91 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java @@ -1,23 +1,38 @@ package com.budwk.app.zhgh.staffmanage.specialstaff.service.impl; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.util.StrUtil; import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.page.Pagination; import com.budwk.app.base.service.impl.BaseServiceImpl; +import com.budwk.app.base.utils.CommonDownloadUtil; import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.sys.models.Sys_dict; +import com.budwk.app.sys.services.SysDictService; import com.budwk.app.web.commons.auth.utils.AuthUtil; import com.budwk.app.web.commons.auth.utils.SecurityUtil; import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff; import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm; import com.budwk.app.zhgh.staffmanage.specialstaff.service.SpecialStaffManageService; +import org.apache.poi.ss.usermodel.Workbook; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * @version 1.0 * @Author zzr @@ -27,12 +42,21 @@ import org.nutz.lang.util.NutMap; */ @IocBean(args = {"refer:dao"}) public class SpecialStaffManageServiceImpl extends BaseServiceImpl implements SpecialStaffManageService { + + @Inject + private SysDictService sysDictService; + public SpecialStaffManageServiceImpl(Dao dao) { super(dao); } @Override public Pagination pageData(SpecialStaffPageForm pageForm) { + Sql sql = getSql(pageForm); + return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + } + + private Sql getSql(SpecialStaffPageForm pageForm) { Sql sql = Sqls.create(""" SELECT s.*, @@ -77,7 +101,7 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl cnd.andEX("u.personType", "=", pageForm.getPersonType()); cnd.andEX("s.specialStaffType", "=", pageForm.getSpecialStaffType()); sql.setCondition(cnd); - return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return sql; } @@ -133,4 +157,29 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl dao().execute(sql); return (NutMap) sql.getResult(); } + + @Override + public void doExport(SpecialStaffPageForm pageForm, HttpServletResponse response) { + List list = listMap(getSql(pageForm)); + Map specialStaffTypeMap = sysDictService.getSubListByCode("SPECIAL_STAFF_TYPE") + .stream() + .collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); + list.forEach(row -> row.put("specialStaffType", specialStaffTypeMap.getOrDefault(row.getString("specialStaffType"), row.getString("specialStaffType")))); + + List exportEntities = new ArrayList<>(); + exportEntities.add(new ExcelExportEntity("工号", "loginname", 20)); + exportEntities.add(new ExcelExportEntity("姓名", "username", 20)); + exportEntities.add(new ExcelExportEntity("性别", "sex", 20)); + exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20)); + exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20)); + exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20)); + exportEntities.add(new ExcelExportEntity("所属工会", "personnelRelationUnionName", 20)); + exportEntities.add(new ExcelExportEntity("所属单位", "personnelRelationUnitName", 30)); + exportEntities.add(new ExcelExportEntity("特别人员类型", "specialStaffType", 20)); + + ExportParams exportParams = new ExportParams(); + exportParams.setType(ExcelType.XSSF); + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list); + CommonDownloadUtil.download("特别人员名单.xlsx", workbook, response); + } } diff --git a/src/main/resources/views/platform/zhgh/staffmanage/specialstaff/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/specialstaff/manage/index.html index f6711ae..0d202eb 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/specialstaff/manage/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/specialstaff/manage/index.html @@ -41,6 +41,7 @@ layout("/layouts/platform.html"){ 新增人员 + 导出 @@ -157,6 +158,9 @@ layout("/layouts/platform.html"){ this.$refs.addOrModifySpecialStaffRef.getUserInfo() }) }, + doExport() { + this.$downLoad(loc() + "/doExport", this.pageForm) + }, flushUnits() { this.$set(this.pageForm, "unitId", null) this.units = []