会员管理-其他人员管理-人员管理: 新增导出按钮;

This commit is contained in:
dd3s_206
2026-06-08 17:46:17 +08:00
parent 0440edd289
commit 21ae4889f0
4 changed files with 73 additions and 1 deletions
@@ -34,6 +34,7 @@ import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param; import org.nutz.mvc.annotation.Param;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; 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 @At
@ApiOperation("特别人员管理,查询用户") @ApiOperation("特别人员管理,查询用户")
@SaCheckPermission("staff.special.manage") @SaCheckPermission("staff.special.manage")
@@ -6,6 +6,8 @@ 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.param.SpecialStaffPageForm;
import org.nutz.lang.util.NutMap; import org.nutz.lang.util.NutMap;
import javax.servlet.http.HttpServletResponse;
/** /**
* @version 1.0 * @version 1.0
* @Author zzr * @Author zzr
@@ -35,4 +37,11 @@ public interface SpecialStaffManageService extends BaseService<SpecialStaff> {
* @return * @return
*/ */
NutMap getSpecialStaffUserInfo(String userId); NutMap getSpecialStaffUserInfo(String userId);
/**
* 导出特别人员
* @param pageForm 查询条件
* @param response 响应
*/
void doExport(SpecialStaffPageForm pageForm, HttpServletResponse response);
} }
@@ -1,23 +1,38 @@
package com.budwk.app.zhgh.staffmanage.specialstaff.service.impl; 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 cn.hutool.core.util.StrUtil;
import com.budwk.app.base.constant.RoleConstant; import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination; import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.service.impl.BaseServiceImpl; 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.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.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil; 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.model.SpecialStaff;
import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm; import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm;
import com.budwk.app.zhgh.staffmanage.specialstaff.service.SpecialStaffManageService; 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.Cnd;
import org.nutz.dao.Dao; import org.nutz.dao.Dao;
import org.nutz.dao.Sqls; import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql; import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.util.NutMap; 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 * @version 1.0
* @Author zzr * @Author zzr
@@ -27,12 +42,21 @@ import org.nutz.lang.util.NutMap;
*/ */
@IocBean(args = {"refer:dao"}) @IocBean(args = {"refer:dao"})
public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff> implements SpecialStaffManageService { public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff> implements SpecialStaffManageService {
@Inject
private SysDictService sysDictService;
public SpecialStaffManageServiceImpl(Dao dao) { public SpecialStaffManageServiceImpl(Dao dao) {
super(dao); super(dao);
} }
@Override @Override
public Pagination pageData(SpecialStaffPageForm pageForm) { 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(""" Sql sql = Sqls.create("""
SELECT SELECT
s.*, s.*,
@@ -77,7 +101,7 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff>
cnd.andEX("u.personType", "=", pageForm.getPersonType()); cnd.andEX("u.personType", "=", pageForm.getPersonType());
cnd.andEX("s.specialStaffType", "=", pageForm.getSpecialStaffType()); cnd.andEX("s.specialStaffType", "=", pageForm.getSpecialStaffType());
sql.setCondition(cnd); sql.setCondition(cnd);
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); return sql;
} }
@@ -133,4 +157,29 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff>
dao().execute(sql); dao().execute(sql);
return (NutMap) sql.getResult(); return (NutMap) sql.getResult();
} }
@Override
public void doExport(SpecialStaffPageForm pageForm, HttpServletResponse response) {
List<NutMap> list = listMap(getSql(pageForm));
Map<String, String> 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<ExcelExportEntity> 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);
}
} }
@@ -41,6 +41,7 @@ layout("/layouts/platform.html"){
<el-card shadow="never"> <el-card shadow="never">
<table-tool label="人员列表"> <table-tool label="人员列表">
<el-button size="small" type="primary" @click="personnelAdd">新增人员</el-button> <el-button size="small" type="primary" @click="personnelAdd">新增人员</el-button>
<el-button size="small" type="primary" icon="el-icon-download" @click="doExport">导出</el-button>
</table-tool> </table-tool>
<el-table ref="table" :data="tableData" :size="tableSize" row-key="id" <el-table ref="table" :data="tableData" :size="tableSize" row-key="id"
style="width: 100%" @sort-change="pageOrder"> style="width: 100%" @sort-change="pageOrder">
@@ -157,6 +158,9 @@ layout("/layouts/platform.html"){
this.$refs.addOrModifySpecialStaffRef.getUserInfo() this.$refs.addOrModifySpecialStaffRef.getUserInfo()
}) })
}, },
doExport() {
this.$downLoad(loc() + "/doExport", this.pageForm)
},
flushUnits() { flushUnits() {
this.$set(this.pageForm, "unitId", null) this.$set(this.pageForm, "unitId", null)
this.units = [] this.units = []