Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -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 是否符合会员条件
|
||||
*/
|
||||
|
||||
+1
-1
@@ -109,7 +109,7 @@ public class MemberChangeManageController {
|
||||
throw new BaseException("没有权限,或未设置工会小组");
|
||||
}
|
||||
|
||||
memberCommonService.validateChangeAndSetBasicData(record);
|
||||
memberCommonService.validateChangeAndSetBasicData(record, changeOrigin);
|
||||
dao.insertOrUpdate(record);
|
||||
|
||||
// 开启流程实例
|
||||
|
||||
+107
@@ -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
|
||||
* @name:MemberCheckTaskController
|
||||
* @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();
|
||||
}
|
||||
}
|
||||
+179
@@ -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
|
||||
* @name:MemberCheckTaskUnionController
|
||||
* @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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+15
-49
@@ -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));
|
||||
|
||||
+143
-53
@@ -2,20 +2,38 @@ package com.budwk.app.zhgh.staffmanage.member.controller.info;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
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.PageUtil;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.dayofficework.meeting.model.MeetingInfo;
|
||||
import com.budwk.app.zhgh.dayofficework.meeting.model.MeetingTimePeriodUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
@@ -29,62 +47,134 @@ import org.nutz.mvc.annotation.Ok;
|
||||
@At("/platform/member/info/dataManage")
|
||||
public class MemberDataManageController {
|
||||
|
||||
@At("")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/datamanage/index.html")
|
||||
public void index() {}
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private SysRoleService roleService;
|
||||
|
||||
@At("")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/datamanage/index.html")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("数据管理工具")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname,
|
||||
username,
|
||||
sex,
|
||||
userState,
|
||||
personType,
|
||||
preparedBy,
|
||||
unionName,
|
||||
unitName,
|
||||
mobile
|
||||
from
|
||||
`user`
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("username", pageForm.getSearchKeyword());
|
||||
seg.orLike("loginname", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
@At
|
||||
@ApiOperation("数据管理工具")
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
Sql sql = generateSql(pageForm, Cnd.NEW());
|
||||
Pagination pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
// 权限判断
|
||||
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());
|
||||
}
|
||||
@At
|
||||
@ApiOperation("根据身份证号设置出生日期")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@SLog(tag = "会员管理-数据管理工具", msg = "根据身份证号设置出生日期")
|
||||
public Object setBirthdayByIdCard() {
|
||||
Sql sql = Sqls.create("""
|
||||
UPDATE sys_user
|
||||
SET birthday = STR_TO_DATE(SUBSTRING(idcard, 7, 8), '%Y%m%d')
|
||||
WHERE (birthday IS NULL OR birthday = '') AND length(idcard)=18
|
||||
""");
|
||||
memberInfoService.execute(sql);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
cnd.andEX("userState", "in", pageForm.getUserStates());
|
||||
cnd.andEX("preparedBy", "in", pageForm.getPreparedBys());
|
||||
cnd.andEX("personType", "in", pageForm.getPersonTypes());
|
||||
@At
|
||||
@ApiOperation("批量设置会员")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@SLog(tag = "会员管理-数据管理工具", msg = "批量设置会员")
|
||||
public Object setMemberByCnd(MemberInfoPageForm pageForm, boolean append) {
|
||||
|
||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
} else {
|
||||
cnd.asc("unitcode").asc("loginname");
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return Result.success();
|
||||
}
|
||||
Sys_role sysRole = roleService.getByCode(RoleConstant.MEMBER.name());
|
||||
// 如果是先清空再追加
|
||||
if(!append) {
|
||||
dao.update(Sys_user.class, Chain.make("member", false), Cnd.NEW());
|
||||
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getRoleId, "=", sysRole.getId()));
|
||||
}
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.exps("member", "=", false).or("member", "is", null));
|
||||
Sql sql = generateSql(pageForm, cnd);
|
||||
List<NutMap> listMap = memberInfoService.listMap(sql);
|
||||
List<String> list = listMap.stream().map(o -> o.getString("id")).toList();
|
||||
|
||||
List<Sys_user_role> userRoles = list.stream().map(o -> {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setRoleId(sysRole.getId());
|
||||
userRole.setUserId(o);
|
||||
return userRole;
|
||||
}).toList();
|
||||
|
||||
dao.update(Sys_user.class, Chain.make("member", true), Cnd.where("id", "in", list));
|
||||
dao.insert(userRoles);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("批量设置福利会员")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.dataManage")
|
||||
@SLog(tag = "会员管理-数据管理工具", msg = "批量设置福利会员")
|
||||
public Object setWelfareMemberByCnd(MemberInfoPageForm pageForm, boolean append) {
|
||||
|
||||
// 如果是先清空再追加
|
||||
if(!append) {
|
||||
dao.update(Sys_user.class, Chain.make("welfareMember", false), Cnd.NEW());
|
||||
}
|
||||
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.exps("welfareMember", "=", false).or("welfareMember", "is", null));
|
||||
Sql sql = generateSql(pageForm, cnd);
|
||||
List<NutMap> listMap = memberInfoService.listMap(sql);
|
||||
List<String> list = listMap.stream().map(o -> o.getString("id")).toList();
|
||||
|
||||
dao.update(Sys_user.class, Chain.make("welfareMember", true), Cnd.where("id", "in", list));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
private Sql generateSql(MemberInfoPageForm pageForm, Cnd cnd) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname as loginName,
|
||||
username as userName,
|
||||
sex,
|
||||
userState,
|
||||
personType,
|
||||
preparedBy,
|
||||
unionName,
|
||||
unitName,
|
||||
mobile
|
||||
from
|
||||
`vw_user`
|
||||
$condition
|
||||
""");
|
||||
pageForm.buildSearch(cnd, "");
|
||||
if (StrUtil.isNotBlank(pageForm.getStartLoginNames())) {
|
||||
String[] loginNames = pageForm.getStartLoginNames().split(",");
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (String loginName : loginNames) {
|
||||
seg.orLikeL("loginname", loginName);
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getEndLoginNames())) {
|
||||
String[] loginNames = pageForm.getEndLoginNames().split(",");
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (String loginName : loginNames) {
|
||||
seg.orLikeR("loginname", loginName);
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
||||
+4
-2
@@ -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);
|
||||
}
|
||||
|
||||
+24
-1
@@ -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();
|
||||
|
||||
+1
-1
@@ -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
|
||||
* @name:MemberCheckTask
|
||||
* @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;
|
||||
}
|
||||
+98
@@ -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
|
||||
* @name:MemberCheckTaskUnionFeedback
|
||||
* @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;
|
||||
|
||||
}
|
||||
+61
@@ -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
|
||||
* @name:MemberCheckTaskUser
|
||||
* @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;
|
||||
}
|
||||
+1
-1
@@ -34,7 +34,7 @@ public class MemberChangePageForm extends PageForm {
|
||||
private List<String> userStates;
|
||||
|
||||
// 在职状态
|
||||
@ApiModelProperty("编制类型")
|
||||
@ApiModelProperty("编制类别")
|
||||
private List<String> preparedBys;
|
||||
|
||||
// 人员类型
|
||||
|
||||
+78
@@ -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
|
||||
* @name:MemberCheckPageForm
|
||||
* @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;
|
||||
}
|
||||
+1
-1
@@ -52,7 +52,7 @@ public class MemberInfoPageForm extends PageForm {
|
||||
@ApiModelProperty("在职状态")
|
||||
private String userState;
|
||||
|
||||
@ApiModelProperty("编制类型")
|
||||
@ApiModelProperty("编制类别")
|
||||
private String preparedBy;
|
||||
|
||||
@ApiModelProperty("人员类型")
|
||||
|
||||
+7
@@ -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;
|
||||
}
|
||||
|
||||
+14
@@ -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
|
||||
* @name:MemberCheckTaskService
|
||||
* @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);
|
||||
}
|
||||
|
||||
+23
@@ -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
|
||||
* @name:MemberCheckTaskServiceImpl
|
||||
* @Date 2025/9/24 11:22
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberCheckTaskServiceImpl extends BaseServiceImpl<MemberCheckTaskUser> implements MemberCheckTaskService {
|
||||
|
||||
public MemberCheckTaskServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
}
|
||||
+80
-64
@@ -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();
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+16
-7
@@ -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");
|
||||
|
||||
+2
-4
@@ -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));
|
||||
|
||||
+3
-7
@@ -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));
|
||||
|
||||
+1
-1
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user