This commit is contained in:
Paidax
2025-09-25 09:10:15 +08:00
parent 5730478c79
commit 5fa9399d76
59 changed files with 1200 additions and 492 deletions
@@ -153,7 +153,7 @@ public class SysUnionController {
Sql sql = Sqls.create("""
SELECT
gh.*,
GROUP_CONCAT( u.username,'(',u.mobile,')' ) AS chairman
GROUP_CONCAT( u.username,'(',u.loginname,')' ) AS chairman
FROM
sys_union gh
LEFT JOIN sys_user_role sur ON sur.unionId = gh.id
@@ -110,7 +110,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
* 检查用户是否符合会员条件
*
* @param userState 用户状态
* @param preparedBy 聘用方式
* @param preparedBy 编制类别
* @param postDoctoralJoinDate 博士后进站时间
* @return 是否符合会员条件
*/
@@ -109,7 +109,7 @@ public class MemberChangeManageController {
throw new BaseException("没有权限,或未设置工会小组");
}
memberCommonService.validateChangeAndSetBasicData(record);
memberCommonService.validateChangeAndSetBasicData(record, changeOrigin);
dao.insertOrUpdate(record);
// 开启流程实例
@@ -0,0 +1,107 @@
package com.budwk.app.zhgh.staffmanage.member.controller.check;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.ManyAddOrRenewUtil;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTask;
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTaskUser;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberCheckPageForm;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCheckTaskService;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ArrayUtils;
import org.nutz.aop.interceptor.ioc.TransAop;
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.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.lang.Lang;
import org.nutz.lang.Strings;
import org.nutz.lang.random.R;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import java.util.List;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTaskController
* @Date 2025/9/24 9:53
* @注释 会员核对任务创建
*/
@Slf4j
@IocBean
@Ok("json")
@At("/platform/member/check/task")
public class MemberCheckTaskController {
@Inject
private Dao dao;
@Inject
private ManyAddOrRenewUtil renewUtil;
@Inject
private MemberCheckTaskService memberCheckTaskService;
@At("")
@Ok("beetl:/platform/zhgh/staffmanage/member/check/task/index.html")
@SaCheckPermission("member.check.task")
public void index() {}
@At
@ApiOperation("页面数据")
@SaCheckPermission("member.check.task")
public Result pageData(MemberCheckPageForm pageForm) {
Sql sql = Sqls.create("select * from member_check_task $condition");
Cnd cnd = Cnd.NEW();
cnd.andEX("`year`", "=", pageForm.getYear());
cnd.andEX("checkTaskId", "=", pageForm.getCheckTaskId());
sql.setCondition(cnd);
Pagination pagination = memberCheckTaskService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
@At
@ApiOperation("添加或修改")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.check.task")
@SLog(tag = "会员核对任务创建", msg = "添加或修改会员核对任务创建:${args[0].taskName}")
public Result doAddOrModify(MemberCheckTask memberCheckTask) {
dao.insertOrUpdate(memberCheckTask);
dao.clear(MemberCheckTaskUser.class, Cnd.where(MemberCheckTaskUser::getCheckTaskId, "=", memberCheckTask.getId()));
List<String> userStates = memberCheckTask.getUserStates();
List<Sys_user> query = dao.query(Sys_user.class, Cnd.where(Sys_user::getUserState, "in", userStates).or(Sys_user::getMember, "=", 1));
List<MemberCheckTaskUser> list = query.stream().map(v -> {
MemberCheckTaskUser memberCheckTaskUser = new MemberCheckTaskUser();
BeanUtil.copyProperties(v, memberCheckTaskUser);
memberCheckTaskUser.setId(R.UU32());
memberCheckTaskUser.setCheckTaskId(memberCheckTask.getId());
memberCheckTaskUser.setUserId(v.getId());
return memberCheckTaskUser;
}).toList();
renewUtil.asyncExecuteFastInsert(list, 200);
return Result.success();
}
}
@@ -0,0 +1,179 @@
package com.budwk.app.zhgh.staffmanage.member.controller.check;
import cn.dev33.satoken.annotation.SaCheckPermission;
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.result.Result;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberCheckPageForm;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCheckTaskService;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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.Lang;
import org.nutz.lang.Strings;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTaskUnionController
* @Date 2025/9/24 11:24
* @注释
*/
@Slf4j
@IocBean
@Ok("json")
@At("/platform/member/checkTask/union")
public class MemberCheckTaskUnionController {
@Inject
private Dao dao;
@Inject
private MemberCheckTaskService memberCheckTaskService;
@At("")
@Ok("beetl:/platform/zhgh/staffmanage/member/check/union/index.html")
@SaCheckPermission("member.checkTask.union")
public void index() {}
@At
@ApiOperation("页面数据")
@SaCheckPermission("member.checkTask.union")
public Result pageData(MemberCheckPageForm pageForm){
Sql sql = Sqls.create("""
SELECT
u.id,
u.loginname,
u.username,
u.sex,
u.birthday,
u.political,
u.joinPartyDate,
u.nation,
u.nativePlace,
u.nationality,
u.idCardType,
u.mobile,
u.education,
u.academicDegree,
u.position,
u.personType,
u.preparedBy,
u.identityType,
u.userState,
u.unionName,
u.unitName,
u.member,
u.postDoctoralJoinDate
FROM
`vw_user` u
$condition
""");
Cnd cnd = getCnd(pageForm);
if (StrUtil.isNotBlank(pageForm.getIsUnit())) {
cnd.and("u.unitId", "true".equals(pageForm.getIsUnit()) ? "is not" : "is", null);
}
if (StrUtil.isNotBlank(pageForm.getIsUnion())) {
cnd.and("u.unionId", "true".equals(pageForm.getIsUnion()) ? "is not" : "is", null);
}
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or("u.username", "like", "%" + pageForm.getSearchKeyword() + "%");
seg.or("u.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
cnd.and(seg);
}
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and(Cnd.exps("u.unionId", "=", SecurityUtil.getUnionId())
.or("u.unionId", "is", null).or("u.unionId", "=", ""));
}
cnd.desc("u.unionName,u.id");
cnd.groupBy("u.id");
sql.setCondition(cnd);
Pagination pagination = memberCheckTaskService.listPage(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
}
public Cnd getCnd(MemberCheckPageForm pageForm) {
Boolean reverseSelection = pageForm.getReverseSelection();
String IN_OR_NIN_OP = reverseSelection ? "NOT IN" : "IN";
String EQ_OR_NEQ_OP = reverseSelection ? "!=" : "=";
//小于等于
String LE_OR_NLE_OP = reverseSelection ? ">=" : "<=";
//大于等于
String GE_OR_NGE_OP = reverseSelection ? "<=" : ">=";
Cnd cnd = Cnd.NEW();
if (StrUtil.isAllNotBlank(pageForm.getPageOrderBy(), pageForm.getPageOrderName())) {
cnd.orderBy(pageForm.getPageOrderName(), "ascending".equalsIgnoreCase(pageForm.getPageOrderBy()) ? "ASC" : "DESC");
}
if (Lang.isNotEmpty(pageForm.getUserTypes())) {
if (pageForm.getUserTypes().contains("工会会员")) {
cnd.and("u.member", EQ_OR_NEQ_OP, true);
}
if (pageForm.getUserTypes().contains("福利会员")) {
cnd.and("u.welfareMember", EQ_OR_NEQ_OP, true);
}
}
if (Lang.isNotEmpty(pageForm.getAge()) && !"0".equals(pageForm.getAge().get(1))) {
if (reverseSelection) {
cnd.andNot("TIMESTAMPDIFF(YEAR, u.birthday, CURDATE())", "between", pageForm.getAge().toArray());
} else {
cnd.and("TIMESTAMPDIFF(YEAR, u.birthday, CURDATE())", "between", pageForm.getAge().toArray());
}
}
if (Strings.isNotBlank(pageForm.getBirthdayStartDate()) && Strings.isNotBlank(pageForm.getBirthdayEndDate())) {
if (reverseSelection) {
cnd.andNot("DATE(u.birthday)", "between", new String[]{pageForm.getBirthdayStartDate(), pageForm.getBirthdayEndDate()});
} else {
cnd.and("DATE(u.birthday)", "between", new String[]{pageForm.getBirthdayStartDate(), pageForm.getBirthdayEndDate()});
}
}
if (Strings.isNotBlank(pageForm.getBirthdayStartDate()) && Strings.isBlank(pageForm.getBirthdayEndDate())) {
cnd.and("DATE(u.birthday)", GE_OR_NGE_OP, pageForm.getBirthdayStartDate());
}
if (Strings.isBlank(pageForm.getBirthdayStartDate()) && Strings.isNotBlank(pageForm.getBirthdayEndDate())) {
cnd.and("DATE(u.birthday)", LE_OR_NLE_OP, pageForm.getBirthdayEndDate());
}
try {
handleField("id", pageForm.getUserInfos(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("unionId", pageForm.getUnionIds(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("unitId", pageForm.getUnitIds(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("personType", pageForm.getPersonTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("preparedBy", pageForm.getPreparedBys(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("userState", pageForm.getUserStates(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("sex", pageForm.getSexTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
} catch (Exception e) {
throw new RuntimeException(e);
}
return cnd;
}
void handleField(String fieldName, Object fieldValue, boolean reverseSelection, String IN_OR_NIN_OP, Cnd cnd) {
if (reverseSelection && Lang.isNotEmpty(fieldValue)) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or("u." + fieldName, "is", null);
seg.or("u." + fieldName, IN_OR_NIN_OP, fieldValue);
cnd.and(seg);
} else {
cnd.andEX("u." + fieldName, IN_OR_NIN_OP, fieldValue);
}
}
}
@@ -36,13 +36,17 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* @version 1.0
@@ -85,34 +89,12 @@ public class MemberBatchMakeController {
unitName,
mobile
from
`user`
`vw_user`
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.and("member", "=", false);
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("username", pageForm.getSearchKeyword());
seg.orLike("loginname", pageForm.getSearchKeyword());
cnd.and(seg);
}
// 权限判断
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or("unionId", "=", SecurityUtil.getUnionId());
seg.or("unionId", "is", null);
seg.or("unionId", "=", "");
cnd.and(seg);
} else {
cnd.andEX("unionId", "=", pageForm.getUnionId());
cnd.andEX("unitId", "=", pageForm.getUnitId());
}
cnd.andEX("userState", "in", pageForm.getUserStates());
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
cnd.andEX("personType", "in", pageForm.getPersonTypes());
pageForm.buildSearch(cnd, "");
sql.setCondition(cnd);
Pagination pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
@@ -126,7 +108,11 @@ public class MemberBatchMakeController {
@SLog(tag = "会员信息", msg = "批量设置会员")
@SaCheckPermission("member.info.batchMake")
public Result batchMake(MemberBatchMakeParam param){
List<String> userIds = param.getUserIds();
List<String> userIds = Optional.ofNullable(param.getUserIds()).orElse(Collections.emptyList())
.stream().filter(StrUtil::isNotBlank).collect(Collectors.toList());
if (Lang.isEmpty(userIds)) {
throw new BaseException("请传递数据");
}
// 查询会员角色
Sys_role role = sysRoleService.getByCode(RoleConstant.MEMBER);
if (role == null) {
@@ -153,7 +139,7 @@ public class MemberBatchMakeController {
@At
@Ok("void")
@SaCheckPermission("member.statistics.comprehensive")
public void doExport(MemberStatisticsPageForm pageForm, HttpServletResponse response){
public void doExport(MemberInfoPageForm pageForm, HttpServletResponse response){
Sql sql = Sqls.create("""
SELECT
id,
@@ -172,33 +158,13 @@ public class MemberBatchMakeController {
""");
Cnd cnd = Cnd.NEW();
cnd.and("member", "=", false);
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.orLike("username", pageForm.getSearchKeyword());
seg.orLike("loginname", pageForm.getSearchKeyword());
cnd.and(seg);
}
// 权限判断
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or("unionId", "=", SecurityUtil.getUnionId());
seg.or("unionId", "is", null);
seg.or("unionId", "=", "");
cnd.and(seg);
} else {
cnd.andEX("unionId", "=", pageForm.getUnionId());
cnd.andEX("unitId", "=", pageForm.getUnitId());
}
cnd.andEX("userState", "in", pageForm.getUserStates());
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
cnd.andEX("personType", "in", pageForm.getPersonTypes());
pageForm.buildSearch(cnd, "u.");
sql.setCondition(cnd);
List<NutMap> list = memberCommonService.listMap(sql);
for (NutMap row : list) {
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
try {
List<ExcelExportEntity> exportEntities = new ArrayList<>();
@@ -207,7 +173,7 @@ public class MemberBatchMakeController {
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
exportEntities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
@@ -67,6 +67,7 @@ public class MemberInfoGroupController {
Pagination<NutMap> pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
for (NutMap row : pagination.getList()) {
row.put("mobile",DesensitizedUtil.mobilePhone(row.getString("mobile")));
row.put("idCard",DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
return Result.success(pagination);
}
@@ -125,9 +126,10 @@ public class MemberInfoGroupController {
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.info.group")
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
public Result importMember(TempFile file) {
public Result importMember(TempFile file, Boolean isFlag) {
try {
NutMap nutMap = memberInfoService.handlingMemberImport(file);
System.out.println(isFlag);
NutMap nutMap = memberInfoService.handlingMemberImport(file, isFlag);
if (Lang.isNotEmpty(nutMap)) {
return Result.success(nutMap);
}
@@ -1,5 +1,9 @@
package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
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.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.DesensitizedUtil;
import com.budwk.app.base.page.Pagination;
@@ -12,12 +16,16 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.nutz.dao.sql.Sql;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;
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.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @version 1.0
@@ -50,6 +58,7 @@ public class MemberComprehensiveController {
Pagination<NutMap> pagination = memberStatisticsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
for (NutMap row : pagination.getList()) {
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
return Result.success(pagination);
}
@@ -63,9 +72,23 @@ public class MemberComprehensiveController {
List<NutMap> list = memberStatisticsService.listMap(sql);
for (NutMap row : list) {
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
row.put("idCard", DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
try {
Workbook workbook = memberInfoService.setHistoryExcelData(list);
Workbook workbook = null;
if (Lang.isNotEmpty(pageForm.getColumns())) {
List<ExcelExportEntity> exportEntities = new ArrayList<>();
pageForm.getColumns().forEach(column -> {
exportEntities.add(new ExcelExportEntity(column.get("label"), column.get("prop"), 20));
});
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
} else {
workbook = memberInfoService.setHistoryExcelData(list);
}
CommonDownloadUtil.download("会员综合统计表.xlsx", workbook, response);
} catch (Exception e) {
e.printStackTrace();
@@ -18,7 +18,7 @@ import org.nutz.dao.interceptor.annotation.PrevInsert;
@Accessors(chain = true)
@Table("member_list_verification_user")
@Comment("会员名单核对事项用户表")
public class MemberListVerificationUser extends MemberApplyRecord {
public class MemberListVerificationUser extends MemberChangeRecord {
@Name
@Comment("ID")
@@ -0,0 +1,72 @@
package com.budwk.app.zhgh.staffmanage.member.models.check;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.util.Date;
import java.util.List;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTask
* @Date 2025/9/24 11:03
* @注释
*/
@Data
@Table
@Comment("会员核对事项表")
@EqualsAndHashCode(callSuper = true)
public class MemberCheckTask extends BaseModel {
@Column
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("年度")
@ColDefine(type = ColType.INT)
private Integer year;
@Column
@Comment("任务名称")
@ColDefine(type = ColType.VARCHAR, width = 20)
private String taskName;
@Column
@Comment("说明")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String description;
@Column
@Comment("开始时间")
@ColDefine(type = ColType.DATETIME)
private Date startTime;
@Column
@Comment("结束时间")
@ColDefine(type = ColType.DATETIME)
private Date endTime;
@Column
@Comment("模式")
@ColDefine(type = ColType.INT)
private Integer taskMode;
@Column
@Comment("在职状态")
@ColDefine(type = ColType.MYSQL_JSON)
private List<String> userStates;
@Column
@Comment("是否开启")
@Default(value = "1")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isEnabled;
}
@@ -0,0 +1,98 @@
package com.budwk.app.zhgh.staffmanage.member.models.check;
import cn.hutool.json.JSONObject;
import com.budwk.app.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
import java.util.List;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTaskUnionFeedback
* @Date 2025/9/24 11:09
* @注释
*/
@Data
@Table
@Comment("核对分工会反馈表")
@EqualsAndHashCode(callSuper = true)
public class MemberCheckTaskUnionFeedback extends BaseModel {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("核对事项Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String checkTaskId;
@Column
@Comment("分工会Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String unionId;
@Column
@Comment("分工会编码")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String unionCode;
@Column
@Comment("分工会名称")
@ColDefine(type = ColType.VARCHAR, width = 100)
private String unionName;
@Column
@Comment("分工会是否已提交")
@ColDefine(type = ColType.BOOLEAN)
@Default("0")
private Boolean branchUnionSubmit;
@Column
@Comment("校工会是否审核")
@ColDefine(type = ColType.BOOLEAN)
@Default("0")
private Boolean schoolUnionAudit;
@Column
@Comment("反馈人Id")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String feedbackUserId;
@Column
@Comment("反馈人姓名")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String feedbackUserName;
@Column
@Comment("反馈人工号")
@ColDefine(type = ColType.VARCHAR, width = 50)
private String feedbackLoginName;
@Column
@Comment("反馈文件")
@ColDefine(type = ColType.MYSQL_JSON)
private List<JSONObject> feedbackFiles;
@Column
@Comment("校工会是否退回")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isRollback;
@Column
@Comment("退回原因")
@ColDefine(type = ColType.VARCHAR, width = 200)
private String rollbackReason;
@Column
@Comment("当前状态")
@ColDefine(type = ColType.VARCHAR, width = 30)
private String status;
}
@@ -0,0 +1,61 @@
package com.budwk.app.zhgh.staffmanage.member.models.check;
import com.budwk.app.base.model.BaseModel;
import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nutz.dao.entity.annotation.*;
import org.nutz.dao.interceptor.annotation.PrevInsert;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTaskUser
* @Date 2025/9/24 11:08
* @注释
*/
@Data
@Table
@Comment("会员核对人表")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class MemberCheckTaskUser extends MemberChangeRecord {
@Name
@Comment("ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
@PrevInsert(uu32 = true)
private String id;
@Column
@Comment("核对事项ID")
@ColDefine(type = ColType.VARCHAR, width = 32)
private String checkTaskId;
@Column
@Default("0")
@Comment("分工会是否已核对")
@ColDefine(type = ColType.BOOLEAN)
private Boolean branchUnionChecked;
@Column
@Default("0")
@Comment("校工会是否已核对")
@ColDefine(type = ColType.BOOLEAN)
private Boolean schoolUnionChecked;
@Column
@Default("0")
@Comment("是否变更")
@ColDefine(type = ColType.BOOLEAN)
private Boolean isChanged;
/**
* 1,校工会拒绝 2,校工会通过
*/
@Column
@Comment("当前状态")
@ColDefine(type = ColType.INT)
private Integer currentState;
}
@@ -34,7 +34,7 @@ public class MemberChangePageForm extends PageForm {
private List<String> userStates;
// 在职状态
@ApiModelProperty("编制类")
@ApiModelProperty("编制类")
private List<String> preparedBys;
// 人员类型
@@ -0,0 +1,78 @@
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
import com.budwk.app.base.param.PageForm;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckPageForm
* @Date 2025/9/24 9:59
* @注释
*/
@Data
@ApiModel("核对参数")
@EqualsAndHashCode(callSuper = true)
public class MemberCheckPageForm extends PageForm {
@ApiModelProperty("核对年份")
private Integer year;
@ApiModelProperty("是否有单位")
private String isUnit;
@ApiModelProperty("是否有工会")
private String isUnion;
@ApiModelProperty("核对任务id")
private String checkTaskId;
// 工会id
@ApiModelProperty("工会id")
private String unionIds;
// 单位id
@ApiModelProperty("单位id")
private String unitIds;
@ApiModelProperty("出生日期开始时间")
private String birthdayStartDate;
@ApiModelProperty("出生日期结束时间")
private String birthdayEndDate;
// 在职状态
@ApiModelProperty("在职状态")
private List<String> userStates;
// 在职状态
@ApiModelProperty("编制类别")
private List<String> preparedBys;
// 人员类型
@ApiModelProperty("人员类型")
private List<String> personTypes;
@ApiModelProperty("年龄区间")
private List<String> age;
@ApiModelProperty("性别")
private List<String> sexTypes;
@ApiModelProperty("人员类型(会员、福利会员之类的)")
private List<String> userTypes;
@ApiModelProperty("是否反选")
private Boolean reverseSelection;
@ApiModelProperty("导出字段")
private String props;
@ApiModelProperty("用户信息查询列表")
private List<String> userInfos;
}
@@ -52,7 +52,7 @@ public class MemberInfoPageForm extends PageForm {
@ApiModelProperty("在职状态")
private String userState;
@ApiModelProperty("编制类")
@ApiModelProperty("编制类")
private String preparedBy;
@ApiModelProperty("人员类型")
@@ -1,10 +1,12 @@
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
import com.budwk.app.base.param.PageForm;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
import java.util.Map;
/**
* @version 1.0
@@ -29,6 +31,9 @@ public class MemberStatisticsPageForm extends PageForm {
private Integer year;
@ApiModelProperty("人员Id")
private List<String> userIds;
private List<String> unionId;
private List<String> unitId;
@@ -59,4 +64,6 @@ public class MemberStatisticsPageForm extends PageForm {
private String memberSearchKeyWord;
@ApiModelProperty("导出的数据")
private List<Map<String, String>> columns;
}
@@ -0,0 +1,14 @@
package com.budwk.app.zhgh.staffmanage.member.service;
import com.budwk.app.base.service.BaseService;
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTaskUser;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTaskService
* @Date 2025/9/24 11:02
* @注释
*/
public interface MemberCheckTaskService extends BaseService<MemberCheckTaskUser> {
}
@@ -64,7 +64,8 @@ public interface MemberInfoService extends BaseService<Sys_user> {
/**
* 导入会员数据处理
* @param file
* @param file 文件
* @param isFlag 是否清空更新
*/
NutMap handlingMemberImport(TempFile file);
NutMap handlingMemberImport(TempFile file, Boolean isFlag);
}
@@ -0,0 +1,23 @@
package com.budwk.app.zhgh.staffmanage.member.service.impl;
import com.budwk.app.base.service.impl.BaseServiceImpl;
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTask;
import com.budwk.app.zhgh.staffmanage.member.models.check.MemberCheckTaskUser;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCheckTaskService;
import org.nutz.dao.Dao;
import org.nutz.ioc.loader.annotation.IocBean;
/**
* @version 1.0
* @Author zzr
* @nameMemberCheckTaskServiceImpl
* @Date 2025/9/24 11:22
* @注释
*/
@IocBean(args = {"refer:dao"})
public class MemberCheckTaskServiceImpl extends BaseServiceImpl<MemberCheckTaskUser> implements MemberCheckTaskService {
public MemberCheckTaskServiceImpl(Dao dao) {
super(dao);
}
}
@@ -5,6 +5,7 @@ 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.util.DesensitizedUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.budwk.app.base.constant.RoleConstant;
@@ -23,6 +24,7 @@ import com.budwk.app.zhgh.staffmanage.member.vo.MemberImportVo;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.ss.usermodel.Workbook;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Chain;
import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
@@ -63,64 +65,49 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
public Sql getSql(MemberInfoPageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
id,
loginname,
username,
sex,
birthday,
mobile,
personType,
userState,
preparedBy,
unionId,
unionName,
unitId,
unitName,
education,
nation,
postDoctoralJoinDate
u.id,
u.loginname,
u.username,
u.sex,
DATE_FORMAT(u.birthday, '%Y-%m-%d') AS birthday,
u.political,
DATE_FORMAT(u.joinPartyDate, '%Y-%m-%d') AS joinPartyDate,
u.nation,
u.nativePlace,
u.nationality,
u.idCardType,
u.mobile,
u.idCard,
u.marriage,
u.education,
u.academicDegree,
u.position,
u.jobCategory,
u.professionalTitle,
u.professionalLevel,
u.employeeSource,
u.administrativeLevel,
u.positionSeries,
u.positionLevel,
u.administrativePositionLevel,
u.arrivalAtSchoolDate,
u.personType,
u.preparedBy,
u.identityType,
u.userState,
u.unionName,
u.unitName,
DATE_FORMAT(u.teachingTime, '%Y-%m-%d') AS teachingTime,
DATE_FORMAT(u.expectedLeaveSchoolDate, '%Y-%m-%d') AS expectedLeaveSchoolDate,
u.member,
DATE_FORMAT(u.postDoctoralJoinDate, '%Y-%m-%d') AS postDoctoralJoinDate
FROM
vw_user
vw_user u
$condition
""");
Cnd cnd = Cnd.NEW();
cnd.andEX("unionId", "=", pageForm.getUnionId());
cnd.andEX("unitId", "=", pageForm.getUnitId());
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
SqlExpressionGroup seg = new SqlExpressionGroup();
seg.or("username", "like", "%" + pageForm.getSearchKeyword() + "%");
seg.or("loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
cnd.and(seg);
}
if (StrUtil.isAllNotBlank(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord())) {
cnd.and(new SqlExpressionGroup().andLike(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord()));
}
if (Lang.isNotEmpty(pageForm.getPersonTypes())) {
cnd.andEX("personType", "in", pageForm.getPersonTypes());
}
if (Lang.isNotEmpty(pageForm.getPreparedBys())) {
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
}
if (Lang.isNotEmpty(pageForm.getUserStates())) {
cnd.andEX("userState", "in", pageForm.getUserStates());
}
cnd.andEX("sex", "=", pageForm.getSex());
cnd.andEX("sex", "in", pageForm.getSexTypes());
cnd.and("member", "=", true);
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("unionId", "=", SecurityUtil.getUnionId());
}
if(StrUtil.isAllBlank(pageForm.getPageOrderName(),pageForm.getPageOrderBy())){
cnd.asc("unionCode").asc("unitCode");
}else{
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
pageForm.buildSearch(cnd, "u.");
sql.setCondition(cnd);
return sql;
}
@@ -237,7 +224,7 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
// exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
exportEntities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
exportEntities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
@@ -255,26 +242,58 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
public void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response) {
Sql sql = getSql(pageForm);
List<NutMap> list = listMap(sql);
Workbook workbook = setHistoryExcelData(list);
for (NutMap row : list) {
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
row.put("idCard",DesensitizedUtil.idCardNum(row.getString("idCard"), 3, 4));
}
Workbook workbook = null;
if (Lang.isNotEmpty(pageForm.getColumns())) {
List<ExcelExportEntity> exportEntities = new ArrayList<>();
pageForm.getColumns().forEach(column -> {
exportEntities.add(new ExcelExportEntity(column.get("label"), column.get("prop"), 20));
});
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF);
workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
} else {
workbook = setHistoryExcelData(list);
}
CommonDownloadUtil.download("会员档案表.xlsx", workbook, response);
}
@Aop(TransAop.READ_COMMITTED)
@Override
public NutMap handlingMemberImport(TempFile file) {
public NutMap handlingMemberImport(TempFile file, Boolean isFlag) {
Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.MEMBER.name()));
Sys_role publicRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.PUBLIC.name()));
List<T> ts = EasyExcelUtil.syncReadModel(file.getFile(), MemberImportVo.class, 0, 1);
List<MemberImportVo> list = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(MemberImportVo.class);
// 如果flag为true,文件里面没有但是系统里面有的会员,需要清空
if (isFlag) {
List<String> loginNameList = list.stream().map(MemberImportVo::getLoginname).toList();
Sql sql = Sqls.create("select id from sys_user where member = 1 and loginname not in (@loginNameList)").setParam("loginNameList", loginNameList);
sql.setCallback(Sqls.callback.strList());
dao().execute(sql);
List<String> userIds = sql.getList(String.class);
if (Lang.isNotEmpty(userIds)) {
dao().clear(Sys_user_role.class, Cnd.where("userId", "in", userIds).and("roleId", "=", memberRole.getId()));
dao().update(Sys_user.class, Chain.make("member", false), Cnd.where("id", "in", userIds));
}
}
// 获取系统用户
Cnd cnd = Cnd.NEW();
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("unionId","=",SecurityUtil.getUnionId());
}
List<Sys_user> dataUserList = dao().query(Sys_user.class, cnd);
Map<String, Sys_user> userMap = dataUserList.stream().collect(Collectors.toMap(Sys_user::getLoginname, v -> v));
List<Sys_unit> unitList = dao().query(Sys_unit.class, Cnd.where("unitLevel", "is not", null).and("unitLevel", "!=", "").groupBy("name"));
List<Sys_unit> unitList = dao().query(Sys_unit.class, Cnd.where("unitTypeCode", "=", "1").groupBy("name"));
//单位名称,单位Id
Map<String, String> unitNameLevelTwoMap = unitList.stream().filter(v -> v.getUnitLevel() == 2).collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId));
@@ -360,9 +379,6 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
if (Lang.isNotEmpty(insertOrUpdateUserList)) {
manyAddOrRenewUtil.asyncExecuteInsertOrUpdate(insertOrUpdateUserList,200);
Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.MEMBER.name()));
Sys_role publicRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", RoleConstant.PUBLIC.name()));
dao().clear(Sys_user_role.class, Cnd.where("roleId","=", memberRole.getId()));
//新增用户赋值普通角色
@@ -372,7 +388,7 @@ public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements
newUserSql.setCallback(Sqls.callback.maps());
dao().execute(newUserSql);
List<NutMap> newUserSqlList = newUserSql.getList(NutMap.class);
List<String> newUserIds = newUserSqlList.stream().map(user -> user.getString("id")).collect(Collectors.toList());
List<String> newUserIds = newUserSqlList.stream().map(user -> user.getString("id")).toList();
List<Sys_user_role> newUserRoles = newUserIds.stream().map(userId -> {
Sys_user_role sysUserRole = new Sys_user_role();
@@ -143,7 +143,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
his.loginname,
his.username,
his.mobile,
his.birthday,
DATE_FORMAT(his.birthday, '%Y-%m-%d') AS birthday,
his.userState,
his.preparedBy,
his.personType,
@@ -85,6 +85,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
}
try {
handleField("id", pageForm.getUserIds(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("unionId", pageForm.getUnionId(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("unitId", pageForm.getUnitId(), reverseSelection, IN_OR_NIN_OP, cnd);
handleField("personType", pageForm.getPersonTypes(), reverseSelection, IN_OR_NIN_OP, cnd);
@@ -120,21 +121,27 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
u.loginname,
u.username,
u.sex,
u.birthday,
DATE_FORMAT(u.birthday, '%Y-%m-%d') AS birthday,
u.political,
u.joinPartyDate,
DATE_FORMAT(u.joinPartyDate, '%Y-%m-%d') AS joinPartyDate,
u.nation,
u.nativePlace,
u.nationality,
u.idCardType,
u.mobile,
u.idCard,
u.marriage,
u.education,
u.academicDegree,
u.technicalTitle,
u.technicalTitleLevel,
u.position,
u.jobCategory,
u.professionalTitle,
u.professionalLevel,
u.employeeSource,
u.administrativeLevel,
u.positionSeries,
u.positionLevel,
u.employeeLevel,
u.administrativePositionLevel,
u.arrivalAtSchoolDate,
u.personType,
u.preparedBy,
@@ -142,8 +149,10 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
u.userState,
u.unionName,
u.unitName,
DATE_FORMAT(u.teachingTime, '%Y-%m-%d') AS teachingTime,
DATE_FORMAT(u.expectedLeaveSchoolDate, '%Y-%m-%d') AS expectedLeaveSchoolDate,
u.member,
u.postDoctoralJoinDate
DATE_FORMAT(u.postDoctoralJoinDate, '%Y-%m-%d') AS postDoctoralJoinDate
FROM
$table
$hisUser
@@ -188,7 +197,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> imple
}
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
cnd.and("u.unionId", "in", SecurityUtil.getUnionId());
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
}
// cnd.desc("u.unitId");
cnd.desc("u.unionName,u.id");
@@ -109,7 +109,7 @@ public class SpecialStaffManageController {
BeanUtil.copyProperties(specialStaffVo, staff);
if (specialStaffVo.getIsManyUnit()!=null && specialStaffVo.getIsManyUnit()) {
// 如果是多单位人员, 更改单位为工会关系
// user.setUnitid(specialStaffVo.getUnionRelationUnitId());
user.setUnitId(specialStaffVo.getUnionRelationUnitId());
// user.setThreeUnitId(specialStaffVo.getUnionRelationThreeUnitId());
// user.setIsManyUnit(true);
dao.updateIgnoreNull(user);
@@ -136,9 +136,7 @@ public class SpecialStaffManageController {
public Result removeSpecialStaff(@Valid String userId) {
SpecialStaff staff = dao.fetch(SpecialStaff.class, Cnd.where("userId", "=", userId));
if (staff.getIsManyUnit()) {
dao.update(Sys_user.class, Chain.make("unitId", staff.getPersonnelRelationUnitId())
.add("threeUnitId", staff.getPersonnelRelationThreeUnitId())
.add("isManyUnit", null), Cnd.where("id", "=", userId));
dao.update(Sys_user.class, Chain.make("unitId", staff.getPersonnelRelationUnitId()), Cnd.where("id", "=", userId));
SysUserPublisher.notify(SysUserEvent.builder().userId(userId).memberChangeType(MemberChangeType.UNIT_CHANGE).build());
}
dao.clear(SpecialStaff.class, Cnd.where("userId", "=", userId));
@@ -88,13 +88,9 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff>
id AS userId,
username,
loginname,
unitid AS personnelRelationUnitId,
unitname AS personnelRelationUnitName,
unionname AS personnelRelationUnionName,
threeUnitId AS personnelRelationThreeUnitId,
threeUnitName AS personnelRelationThreeUnitName,
unionGroupId AS personnelRelationUnionGroupId,
unionGroupName AS personnelRelationUnionGroupName,
unitId AS personnelRelationUnitId,
unitName AS personnelRelationUnitName,
unionName AS personnelRelationUnionName,
userState,
personType,
mobile
@@ -73,7 +73,7 @@ public class WelfareList extends BaseModel{
private String userState;
@Column
@Comment("聘用方式")
@Comment("编制类别")
@ColDefine(type = ColType.VARCHAR)
private String preparedBy;
@@ -46,7 +46,7 @@ public class WelfareFilterUserPageForm extends PageForm {
@ApiModelProperty("人员类型")
private String[] personTypes;
@ApiModelProperty("聘用方式")
@ApiModelProperty("编制类别")
private String[] preparedBys;
@ApiModelProperty("在职状态")
@@ -49,7 +49,7 @@ public class WelfareListPageForm extends PageForm {
@ApiModelProperty("人员类型")
private String[] personTypes;
@ApiModelProperty("聘用方式")
@ApiModelProperty("编制类别")
private String[] preparedBys;
@ApiModelProperty("在职状态")
@@ -598,7 +598,7 @@ public class WelfareListServiceImpl extends BaseServiceImpl<WelfareList> impleme
entities.add(new ExcelExportEntity("性别", "sex", 20));
entities.add(new ExcelExportEntity("出生日期", "birthday", 20));
entities.add(new ExcelExportEntity("人员类型", "personType", 20));
entities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
entities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
entities.add(new ExcelExportEntity("在职状态", "userState", 20));
entities.add(new ExcelExportEntity("所属工会", "welfareUnionName", 20));
entities.add(new ExcelExportEntity("所属单位", "welfareUnitName", 20));
@@ -201,7 +201,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl<WelfareProject
entities.add(new ExcelExportEntity("生日", "birthday", 20));
entities.add(new ExcelExportEntity("在职状态", "userState", 20));
entities.add(new ExcelExportEntity("教职工类别", "personType", 20));
entities.add(new ExcelExportEntity("聘用方式", "preparedBy", 20));
entities.add(new ExcelExportEntity("编制类别", "preparedBy", 20));
entities.add(new ExcelExportEntity("进站时间", "postDoctoralJoinDate", 20));
entities.add(new ExcelExportEntity("单位", "welfareUnitName", 20));
entities.add(new ExcelExportEntity("工会", "welfareUnionName", 20));