bug修复:
1、入会分工会审核:查看详情弹窗将“人员性质”改成“编制类别” 2、会员高级管理添加导出会员名单接口
This commit is contained in:
+8
-3
@@ -49,6 +49,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 java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -176,8 +177,12 @@ public class MemberChangeManageController {
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
public void doExport() {
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@Ok("void")
|
||||
@ApiOperation("导出会员名单")
|
||||
public void doExport(MemberManagePageForm pageForm, HttpServletResponse response) {
|
||||
memberCommonService.assembleExcel(pageForm, response);
|
||||
}
|
||||
}
|
||||
|
||||
+5
-1
@@ -12,6 +12,7 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -59,6 +60,9 @@ public class MemberManagePageForm extends PageForm {
|
||||
//变更来源
|
||||
private List<Integer> changeOrigins;
|
||||
|
||||
//动态列名 json
|
||||
private List<NutMap> columns;
|
||||
|
||||
public static void buildSearch(Cnd cnd, MemberManagePageForm pageForm) {
|
||||
if (cnd == null) {
|
||||
cnd = Cnd.NEW();
|
||||
@@ -90,7 +94,7 @@ public class MemberManagePageForm extends PageForm {
|
||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getChangeDateBefore()) && StrUtil.isNotBlank(pageForm.getChangeDateEnd())) {
|
||||
cnd.and(new Static(String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())));
|
||||
cnd.and(new Static(java.lang.String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())));
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(pageForm.getChangeTypes())) {
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -115,4 +116,11 @@ public interface MemberCommonService extends BaseService<Sys_user> {
|
||||
* @param type 类型: apply or change
|
||||
*/
|
||||
void validateApplyOrChangeIsDoing(String userId, String type);
|
||||
|
||||
/**
|
||||
* 导出会员名单
|
||||
* @param pageForm
|
||||
* @param response
|
||||
*/
|
||||
void assembleExcel(MemberManagePageForm pageForm, HttpServletResponse response);
|
||||
}
|
||||
|
||||
+97
@@ -1,5 +1,9 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.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.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
@@ -10,6 +14,7 @@ import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
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.flow.engine.FlowEngine;
|
||||
import com.budwk.app.flow.entity.ProcessInstance;
|
||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
||||
@@ -20,6 +25,7 @@ import com.budwk.app.sys.services.SysUserService;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.commons.base.Globals;
|
||||
import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
@@ -30,6 +36,8 @@ import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff;
|
||||
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
@@ -42,10 +50,13 @@ import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.json.JsonException;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.random.R;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -566,4 +577,90 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
||||
}
|
||||
return value.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出会员名单
|
||||
* @param pageForm
|
||||
* @param response
|
||||
*/
|
||||
@Override
|
||||
public void assembleExcel(MemberManagePageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.sex,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.mobile,
|
||||
u.unitId,
|
||||
u.unitName,
|
||||
u.unionId,
|
||||
u.unionName,
|
||||
u.birthday,
|
||||
u.manyUnit,
|
||||
CASE WHEN IFNULL(u.member,0)=0 THEN \'否\' WHEN u.member=1 THEN \'是\' ELSE \'未知\' END AS member,
|
||||
u.userState,
|
||||
u.preparedBy,
|
||||
u.personType,
|
||||
CASE WHEN IFNULL(u.welfareMember,0)=0 THEN \'否\' WHEN u.welfareMember=1 THEN \'是\' ELSE \'未知\' END AS welfareMember,
|
||||
u.isModelWorker,
|
||||
his.id hisId,
|
||||
his.changeTypes,
|
||||
his.changeTime
|
||||
FROM
|
||||
vw_user u
|
||||
LEFT JOIN sys_user_history his ON his.loginname = u.loginname
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberManagePageForm.buildSearch(cnd, pageForm);
|
||||
cnd.desc("his.changeTime");
|
||||
cnd.groupBy("u.id");
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> resultListData = this.listMap(sql);
|
||||
try {
|
||||
//转换 “异动类型” 枚举值
|
||||
if (!CollectionUtil.isEmpty(resultListData)) {
|
||||
List<Map<String, Object>> memberChangeType = Globals.EnumMap.get("MemberChangeType");
|
||||
for (NutMap partObj : resultListData) {
|
||||
List<String> changeTypes = Json.fromJsonAsList(String.class, partObj.getString("changeTypes"));
|
||||
String changeTypeNames = changeTypes.stream()
|
||||
.filter(StringUtils::isNotBlank)
|
||||
.map(changeType -> {
|
||||
List<Map<String, Object>> menuList = memberChangeType.stream()
|
||||
.filter(e -> e.get("code").equals(changeType))
|
||||
.collect(Collectors.toList());
|
||||
if (!CollectionUtil.isEmpty(menuList)) {
|
||||
return menuList.stream().map(e -> (String) e.get("changeTypeName")).collect(Collectors.joining(","));
|
||||
} else {
|
||||
return "未知";
|
||||
}
|
||||
}).collect(Collectors.joining("、"));
|
||||
partObj.put("changeTypes", changeTypeNames);
|
||||
}
|
||||
}
|
||||
List<ExcelExportEntity> entityList = new ArrayList<>();
|
||||
ExcelExportEntity no = new ExcelExportEntity("序号", "no", 10);
|
||||
no.setFormat("isAddIndex");
|
||||
entityList.add(no);
|
||||
if (CollectionUtil.isNotEmpty(pageForm.getColumns())) {
|
||||
for (NutMap e : pageForm.getColumns()) {
|
||||
entityList.add(new ExcelExportEntity(e.getString("label"), e.getString("prop"), 40));
|
||||
}
|
||||
}
|
||||
entityList.add(new ExcelExportEntity("更新时间", "changeTime", 20));
|
||||
entityList.add(new ExcelExportEntity("异动类型", "changeTypes", 20));
|
||||
entityList.add(new ExcelExportEntity("会员", "member", 40));
|
||||
entityList.add(new ExcelExportEntity("福利会员", "welfareMember", 40));
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, entityList, resultListData);
|
||||
CommonDownloadUtil.download("会员名单.xlsx", workbook, response);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ layout("/layouts/platform.html"){
|
||||
</el-card>
|
||||
|
||||
<el-card shadow="never" class="mt10">
|
||||
<table-tool label="人员列表(工会小组或分工会提交的变更还需校工会审核哦)">
|
||||
<table-tool label="人员列表(工会小组或分工会提交的变更还需校工会审核)">
|
||||
<el-radio-group @change="doSearch" class="mr5"
|
||||
size="small"
|
||||
v-model="pageForm.isMember">
|
||||
|
||||
@@ -25,7 +25,7 @@ const INFO = {
|
||||
|
||||
<van-cell title="在职状态">{{ viewData.userState }}</van-cell>
|
||||
<van-cell title="教职工类别">{{ viewData.personType }}</van-cell>
|
||||
<van-cell title="人员性质">{{ viewData.preparedBy || '暂无' }}</van-cell>
|
||||
<van-cell title="编制类别">{{ viewData.preparedBy || '暂无' }}</van-cell>
|
||||
|
||||
<template v-if="viewData.loginname === $store.state.user.loginnmae">
|
||||
<van-cell title="家庭成员" class="column-cell">
|
||||
|
||||
Reference in New Issue
Block a user