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.Ok;
|
||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -176,8 +177,12 @@ public class MemberChangeManageController {
|
|||||||
return Result.success(map);
|
return Result.success(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At
|
||||||
public void doExport() {
|
@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.SqlExpressionGroup;
|
||||||
import org.nutz.dao.util.cri.Static;
|
import org.nutz.dao.util.cri.Static;
|
||||||
import org.nutz.lang.Lang;
|
import org.nutz.lang.Lang;
|
||||||
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -59,6 +60,9 @@ public class MemberManagePageForm extends PageForm {
|
|||||||
//变更来源
|
//变更来源
|
||||||
private List<Integer> changeOrigins;
|
private List<Integer> changeOrigins;
|
||||||
|
|
||||||
|
//动态列名 json
|
||||||
|
private List<NutMap> columns;
|
||||||
|
|
||||||
public static void buildSearch(Cnd cnd, MemberManagePageForm pageForm) {
|
public static void buildSearch(Cnd cnd, MemberManagePageForm pageForm) {
|
||||||
if (cnd == null) {
|
if (cnd == null) {
|
||||||
cnd = Cnd.NEW();
|
cnd = Cnd.NEW();
|
||||||
@@ -90,7 +94,7 @@ public class MemberManagePageForm extends PageForm {
|
|||||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||||
|
|
||||||
if (StrUtil.isNotBlank(pageForm.getChangeDateBefore()) && StrUtil.isNotBlank(pageForm.getChangeDateEnd())) {
|
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())) {
|
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.dao.sql.Sql;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -115,4 +116,11 @@ public interface MemberCommonService extends BaseService<Sys_user> {
|
|||||||
* @param type 类型: apply or change
|
* @param type 类型: apply or change
|
||||||
*/
|
*/
|
||||||
void validateApplyOrChangeIsDoing(String userId, String type);
|
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;
|
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.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.date.DateUtil;
|
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.exception.BaseException;
|
||||||
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.flow.engine.FlowEngine;
|
import com.budwk.app.flow.engine.FlowEngine;
|
||||||
import com.budwk.app.flow.entity.ProcessInstance;
|
import com.budwk.app.flow.entity.ProcessInstance;
|
||||||
import com.budwk.app.flow.enums.ProcessTaskStateEnum;
|
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.sys.views.View_user;
|
||||||
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.web.commons.base.Globals;
|
||||||
import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope;
|
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.MemberChangeOrigin;
|
||||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
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.staffmanage.specialstaff.model.SpecialStaff;
|
||||||
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
import com.budwk.app.zhgh.welfare.model.WelfareList;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
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.aop.interceptor.ioc.TransAop;
|
||||||
import org.nutz.dao.Chain;
|
import org.nutz.dao.Chain;
|
||||||
import org.nutz.dao.Cnd;
|
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.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
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.Lang;
|
||||||
import org.nutz.lang.random.R;
|
import org.nutz.lang.random.R;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -566,4 +577,90 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
|||||||
}
|
}
|
||||||
return value.toString();
|
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>
|
||||||
|
|
||||||
<el-card shadow="never" class="mt10">
|
<el-card shadow="never" class="mt10">
|
||||||
<table-tool label="人员列表(工会小组或分工会提交的变更还需校工会审核哦)">
|
<table-tool label="人员列表(工会小组或分工会提交的变更还需校工会审核)">
|
||||||
<el-radio-group @change="doSearch" class="mr5"
|
<el-radio-group @change="doSearch" class="mr5"
|
||||||
size="small"
|
size="small"
|
||||||
v-model="pageForm.isMember">
|
v-model="pageForm.isMember">
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ const INFO = {
|
|||||||
|
|
||||||
<van-cell title="在职状态">{{ viewData.userState }}</van-cell>
|
<van-cell title="在职状态">{{ viewData.userState }}</van-cell>
|
||||||
<van-cell title="教职工类别">{{ viewData.personType }}</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">
|
<template v-if="viewData.loginname === $store.state.user.loginnmae">
|
||||||
<van-cell title="家庭成员" class="column-cell">
|
<van-cell title="家庭成员" class="column-cell">
|
||||||
|
|||||||
Reference in New Issue
Block a user