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

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.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")
@@ -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<SpecialStaff> {
* @return
*/
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;
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<SpecialStaff> 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<SpecialStaff>
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<SpecialStaff>
dao().execute(sql);
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">
<table-tool label="人员列表">
<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>
<el-table ref="table" :data="tableData" :size="tableSize" row-key="id"
style="width: 100%" @sort-change="pageOrder">
@@ -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 = []