diff --git a/src/main/java/com/budwk/app/sys/controller/SysUnionController.java b/src/main/java/com/budwk/app/sys/controller/SysUnionController.java index 91fd02a0..58039b32 100644 --- a/src/main/java/com/budwk/app/sys/controller/SysUnionController.java +++ b/src/main/java/com/budwk/app/sys/controller/SysUnionController.java @@ -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 diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java index ddb53f1a..e5f4c871 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUserAllUpdateServiceImpl.java @@ -110,7 +110,7 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService * 检查用户是否符合会员条件 * * @param userState 用户状态 - * @param preparedBy 聘用方式 + * @param preparedBy 编制类别 * @param postDoctoralJoinDate 博士后进站时间 * @return 是否符合会员条件 */ diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java index 7d66228a..8fa0fb31 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/change/MemberChangeManageController.java @@ -109,7 +109,7 @@ public class MemberChangeManageController { throw new BaseException("没有权限,或未设置工会小组"); } - memberCommonService.validateChangeAndSetBasicData(record); + memberCommonService.validateChangeAndSetBasicData(record, changeOrigin); dao.insertOrUpdate(record); // 开启流程实例 diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/check/MemberCheckTaskController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/check/MemberCheckTaskController.java new file mode 100644 index 00000000..0b92f4d6 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/check/MemberCheckTaskController.java @@ -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 userStates = memberCheckTask.getUserStates(); + + List query = dao.query(Sys_user.class, Cnd.where(Sys_user::getUserState, "in", userStates).or(Sys_user::getMember, "=", 1)); + List 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(); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/check/MemberCheckTaskUnionController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/check/MemberCheckTaskUnionController.java new file mode 100644 index 00000000..83c19acf --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/check/MemberCheckTaskUnionController.java @@ -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); + } + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java index 28fcdc41..ce3069e5 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberBatchMakeController.java @@ -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 userIds = param.getUserIds(); + List 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 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 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)); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberDataManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberDataManageController.java index 13b622ca..6bf53f7d 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberDataManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberDataManageController.java @@ -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 listMap = memberInfoService.listMap(sql); + List list = listMap.stream().map(o -> o.getString("id")).toList(); + + List 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 listMap = memberInfoService.listMap(sql); + List 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; + } } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberInfoGroupController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberInfoGroupController.java index f48ad45e..3ff2d154 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberInfoGroupController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/info/MemberInfoGroupController.java @@ -67,6 +67,7 @@ public class MemberInfoGroupController { Pagination 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); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java index 7d08614f..3d37b7eb 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/controller/statistics/MemberComprehensiveController.java @@ -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 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 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 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(); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberListVerificationUser.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberListVerificationUser.java index 6a983b0b..05bc1d08 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberListVerificationUser.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/MemberListVerificationUser.java @@ -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") diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTask.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTask.java new file mode 100644 index 00000000..78c9a9d0 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTask.java @@ -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 userStates; + + @Column + @Comment("是否开启") + @Default(value = "1") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isEnabled; +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTaskUnionFeedback.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTaskUnionFeedback.java new file mode 100644 index 00000000..038fd9d3 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTaskUnionFeedback.java @@ -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 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; + +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTaskUser.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTaskUser.java new file mode 100644 index 00000000..fe635512 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/models/check/MemberCheckTaskUser.java @@ -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; +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java index 7e095f10..8e6ab7fc 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberChangePageForm.java @@ -34,7 +34,7 @@ public class MemberChangePageForm extends PageForm { private List userStates; // 在职状态 - @ApiModelProperty("编制类型") + @ApiModelProperty("编制类别") private List preparedBys; // 人员类型 diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberCheckPageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberCheckPageForm.java new file mode 100644 index 00000000..f2ec7347 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberCheckPageForm.java @@ -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 userStates; + + // 在职状态 + @ApiModelProperty("编制类别") + private List preparedBys; + + // 人员类型 + @ApiModelProperty("人员类型") + private List personTypes; + + @ApiModelProperty("年龄区间") + private List age; + + @ApiModelProperty("性别") + private List sexTypes; + + @ApiModelProperty("人员类型(会员、福利会员之类的)") + private List userTypes; + + @ApiModelProperty("是否反选") + private Boolean reverseSelection; + + @ApiModelProperty("导出字段") + private String props; + + @ApiModelProperty("用户信息查询列表") + private List userInfos; +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberInfoPageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberInfoPageForm.java index 2bc9f7ca..d957c110 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberInfoPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberInfoPageForm.java @@ -52,7 +52,7 @@ public class MemberInfoPageForm extends PageForm { @ApiModelProperty("在职状态") private String userState; - @ApiModelProperty("编制类型") + @ApiModelProperty("编制类别") private String preparedBy; @ApiModelProperty("人员类型") diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberStatisticsPageForm.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberStatisticsPageForm.java index 860d8b47..f78660f3 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberStatisticsPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/param/pageform/MemberStatisticsPageForm.java @@ -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 userIds; + private List unionId; private List unitId; @@ -59,4 +64,6 @@ public class MemberStatisticsPageForm extends PageForm { private String memberSearchKeyWord; + @ApiModelProperty("导出的数据") + private List> columns; } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCheckTaskService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCheckTaskService.java new file mode 100644 index 00000000..0465349d --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberCheckTaskService.java @@ -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 { +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberInfoService.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberInfoService.java index 64f9c99b..9b76e766 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberInfoService.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/MemberInfoService.java @@ -64,7 +64,8 @@ public interface MemberInfoService extends BaseService { /** * 导入会员数据处理 - * @param file + * @param file 文件 + * @param isFlag 是否清空更新 */ - NutMap handlingMemberImport(TempFile file); + NutMap handlingMemberImport(TempFile file, Boolean isFlag); } diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCheckTaskServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCheckTaskServiceImpl.java new file mode 100644 index 00000000..063d0f39 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberCheckTaskServiceImpl.java @@ -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 implements MemberCheckTaskService { + + public MemberCheckTaskServiceImpl(Dao dao) { + super(dao); + } +} diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java index c2dd3c17..1b296775 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberInfoServiceImpl.java @@ -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 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 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 implements public void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response) { Sql sql = getSql(pageForm); List 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 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 ts = EasyExcelUtil.syncReadModel(file.getFile(), MemberImportVo.class, 0, 1); List list = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(MemberImportVo.class); + // 如果flag为true,文件里面没有但是系统里面有的会员,需要清空 + if (isFlag) { + List 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 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 dataUserList = dao().query(Sys_user.class, cnd); Map userMap = dataUserList.stream().collect(Collectors.toMap(Sys_user::getLoginname, v -> v)); - List unitList = dao().query(Sys_unit.class, Cnd.where("unitLevel", "is not", null).and("unitLevel", "!=", "").groupBy("name")); + List unitList = dao().query(Sys_unit.class, Cnd.where("unitTypeCode", "=", "1").groupBy("name")); //单位名称,单位Id Map 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 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 implements newUserSql.setCallback(Sqls.callback.maps()); dao().execute(newUserSql); List newUserSqlList = newUserSql.getList(NutMap.class); - List newUserIds = newUserSqlList.stream().map(user -> user.getString("id")).collect(Collectors.toList()); + List newUserIds = newUserSqlList.stream().map(user -> user.getString("id")).toList(); List newUserRoles = newUserIds.stream().map(userId -> { Sys_user_role sysUserRole = new Sys_user_role(); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java index 2300aeff..68760ab6 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberManageServiceImpl.java @@ -143,7 +143,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl implement his.loginname, his.username, his.mobile, - his.birthday, + DATE_FORMAT(his.birthday, '%Y-%m-%d') AS birthday, his.userState, his.preparedBy, his.personType, diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java index 9b3379f0..86751219 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/member/service/impl/MemberStatisticsServiceImpl.java @@ -85,6 +85,7 @@ public class MemberStatisticsServiceImpl extends BaseServiceImpl 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 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 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 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"); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java index bae54621..97da8c74 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/controller/SpecialStaffManageController.java @@ -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)); diff --git a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java index 4be5c541..d8fb2c7c 100644 --- a/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/staffmanage/specialstaff/service/impl/SpecialStaffManageServiceImpl.java @@ -88,13 +88,9 @@ public class SpecialStaffManageServiceImpl extends BaseServiceImpl 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 diff --git a/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareList.java b/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareList.java index 2eaf9303..74ebcc60 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareList.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/model/WelfareList.java @@ -73,7 +73,7 @@ public class WelfareList extends BaseModel{ private String userState; @Column - @Comment("聘用方式") + @Comment("编制类别") @ColDefine(type = ColType.VARCHAR) private String preparedBy; diff --git a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareFilterUserPageForm.java b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareFilterUserPageForm.java index 1bd27b0f..d107d9d7 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareFilterUserPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareFilterUserPageForm.java @@ -46,7 +46,7 @@ public class WelfareFilterUserPageForm extends PageForm { @ApiModelProperty("人员类型") private String[] personTypes; - @ApiModelProperty("聘用方式") + @ApiModelProperty("编制类别") private String[] preparedBys; @ApiModelProperty("在职状态") diff --git a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java index f16777e7..f2d3fb54 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/param/WelfareListPageForm.java @@ -49,7 +49,7 @@ public class WelfareListPageForm extends PageForm { @ApiModelProperty("人员类型") private String[] personTypes; - @ApiModelProperty("聘用方式") + @ApiModelProperty("编制类别") private String[] preparedBys; @ApiModelProperty("在职状态") diff --git a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java index af802def..0006a127 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareListServiceImpl.java @@ -598,7 +598,7 @@ public class WelfareListServiceImpl extends BaseServiceImpl 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)); diff --git a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareStatisticsServiceImpl.java b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareStatisticsServiceImpl.java index b77c57c9..c0fbd1fa 100644 --- a/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareStatisticsServiceImpl.java +++ b/src/main/java/com/budwk/app/zhgh/welfare/service/impl/WelfareStatisticsServiceImpl.java @@ -201,7 +201,7 @@ public class WelfareStatisticsServiceImpl extends BaseServiceImpl {{ viewData.identityType }} - {{ viewData.preparedBy }} + {{ viewData.preparedBy }} {{ viewData.personType }} {{ viewData.userState }} diff --git a/src/main/resources/static/components/plugins/sysImport/index.vue b/src/main/resources/static/components/plugins/sysImport/index.vue index 22ce571a..dd63436e 100644 --- a/src/main/resources/static/components/plugins/sysImport/index.vue +++ b/src/main/resources/static/components/plugins/sysImport/index.vue @@ -128,7 +128,8 @@ module.exports = { const loading = this.$loading({ lock: true, text: "正在导入中,请稍后...", - spinner: "el-icon-loading" + spinner: "el-icon-loading", + background: "rgba(0, 0, 0, 0.7)" }) this.$axios.post(this.post_url, data).then((res) => { loading.close() diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/branchunionapproval/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/branchunionapproval/index.html index 65f8fdaf..99fe4df0 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/branchunionapproval/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/branchunionapproval/index.html @@ -102,7 +102,7 @@ layout("/layouts/platform.html"){ { prop: "loginName", label: "工号", sortable: true }, { prop: "userName", label: "姓名", sortable: true }, { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, + { prop: "preparedBy", label: "编制类别", sortable: true }, { prop: "personType", label: "人员类型", sortable: true }, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/mine/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/mine/index.html index fe5d9de7..bd44a09b 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/mine/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/mine/index.html @@ -85,7 +85,7 @@ layout("/layouts/platform.html"){ { prop: "loginName", label: "工号", sortable: true }, { prop: "userName", label: "姓名", sortable: true }, { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, + { prop: "preparedBy", label: "编制类别", sortable: true }, { prop: "personType", label: "人员类型", sortable: true }, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/schoolunionapproval/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/schoolunionapproval/index.html index 62d644ab..5574d957 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/apply/schoolunionapproval/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/apply/schoolunionapproval/index.html @@ -120,7 +120,7 @@ layout("/layouts/platform.html"){ { prop: "loginName", label: "工号", sortable: true }, { prop: "userName", label: "姓名", sortable: true }, { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, + { prop: "preparedBy", label: "编制类别", sortable: true }, { prop: "personType", label: "人员类型", sortable: true }, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/branch/verification/check/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/branch/verification/check/index.html index 6ada9754..b2967c33 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/branch/verification/check/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/branch/verification/check/index.html @@ -42,8 +42,8 @@ layout("/layouts/platform.html"){ - - + + @@ -245,7 +245,7 @@ layout("/layouts/platform.html"){ { prop: "username", label: "姓名", sortable: true }, { prop: "sex", label: "性别", sortable: true, width: "100px" }, { prop: "userState", label: "在职状态", sortable: true }, - // {prop: "preparedBy", label: "聘用方式", sortable: true}, + // {prop: "preparedBy", label: "编制类别", sortable: true}, // {prop: 'personType', label: '人员类型', sortable: true}, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/commonQuery.js b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/commonQuery.js index 294c1623..ee629f27 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/commonQuery.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/commonQuery.js @@ -32,6 +32,7 @@ const COMMON_QUERY = { `, + store, mixins: [initTableMixins], data() { return{ diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/info.js b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/info.js index 1a2190fd..e51960dc 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/info.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/info.js @@ -50,28 +50,30 @@ const INFO = { - - - - - - - - - - - - - - - -
- 无数据 -
+ diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js index 33f6b71d..61c7158c 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/common/memberChange.js @@ -139,7 +139,7 @@ const MEMBER_CHANGE = { :disabled="allowFields('userState')" style="width: 100%"> - + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html index 17ea896e..3021e518 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/manage/index.html @@ -255,11 +255,15 @@ layout("/layouts/platform.html"){ }, async doSubmit(data) { - const resp = this.$axios.post("/platform/member/change/manage/doSubmitChange", data) + const loading = createLoading('正在提交中') + const resp = await this.$axios.post("/platform/member/change/manage/doSubmitChange", data) + loading.close() if (resp.code === 0) { this.$message.success(resp.msg) this.$refs.guava.index() this.pageData() + } else { + this.$message.error(resp.msg) } }, getChangeTypes(changeTypes){ diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html index 206c7218..865dc682 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/change/record/index.html @@ -62,7 +62,7 @@ layout("/layouts/platform.html"){ - @@ -88,7 +88,7 @@ layout("/layouts/platform.html"){ label="操作" width="100px" fixed="right"> diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js index c568a971..dfcc6d8e 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageQuery.js @@ -27,8 +27,8 @@ const MEMBER_MANAGE_QUERY = { - - + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js b/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js index 36ac2dc7..db64c741 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/common/manage/memberManageTable.js @@ -154,7 +154,7 @@ const MEMBER_MANAGE_TABLE = { { prop: "sex", label: "性别", sortable: true, width: "100px" }, { prop: "birthday", label: "出生年月", sortable: true }, { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, + { prop: "preparedBy", label: "编制类别", sortable: true }, { prop: "personType", label: "人员类型", sortable: true }, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true } diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html index 118376a3..0febc61f 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/info/batchmake/index.html @@ -8,8 +8,14 @@ layout("/layouts/platform.html"){ - - + + 导出 + 批量设置为会员 + + + + + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/info/history/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/info/history/index.html index 313a5f52..fd67f9ff 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/info/history/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/info/history/index.html @@ -43,10 +43,10 @@ layout("/layouts/platform.html"){ - + @@ -120,7 +120,7 @@ layout("/layouts/platform.html"){ { prop: "sex", label: "性别" }, { prop: "mobile", label: "联系电话" }, { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, + { prop: "preparedBy", label: "编制类别", sortable: true }, { prop: "personType", label: "人员类型", sortable: true }, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true } diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/schoolViewAndHandle.js b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/schoolViewAndHandle.js index 4e5e6b3c..9317c4bd 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/schoolViewAndHandle.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/schoolViewAndHandle.js @@ -19,8 +19,8 @@ const SCHOOL_VIEW_AND_HANDLE = { - - + @@ -140,7 +140,7 @@ const SCHOOL_VIEW_AND_HANDLE = { { label: "工号", prop: "loginname" }, { label: "性别", prop: "sex" }, { label: "在职状态", prop: "userState" }, - { label: "聘用方式", prop: "preparedBy" }, + { label: "编制类别", prop: "preparedBy" }, { label: "人员类型", prop: "personType" }, { label: "所属单位", prop: "unitName" }, { label: "是否变更", prop: "isChanged" }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/viewChangeTypeUser.js b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/viewChangeTypeUser.js index f01a0f08..f95ccaca 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/viewChangeTypeUser.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/check/viewChangeTypeUser.js @@ -17,8 +17,8 @@ const VIEW_CHANGE_TYPE_USER = { - - + @@ -76,7 +76,7 @@ const VIEW_CHANGE_TYPE_USER = { { prop: "loginname", label: "工号", sortable: true }, { prop: "username", label: "姓名", sortable: true }, { prop: "userState", label: "在职状态", sortable: true }, - { prop: "preparedBy", label: "聘用方式", sortable: true }, + { prop: "preparedBy", label: "编制类别", sortable: true }, { prop: "personType", label: "人员类型", sortable: true }, { prop: "unionName", label: "所属工会", sortable: true }, { prop: "unitName", label: "所属单位", sortable: true }, diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationSetUserList.js b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationSetUserList.js index f91e9825..3d6fb8f6 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationSetUserList.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationSetUserList.js @@ -32,8 +32,8 @@ const VERIFICATION_SET_USER_LIST = { - - + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationShowSelectionUsers.js b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationShowSelectionUsers.js index 28c77f90..8a1b4c5a 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationShowSelectionUsers.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/school/verification/manage/verificationShowSelectionUsers.js @@ -26,8 +26,8 @@ const VERIFICATION_SHOW_SELECTION_USERS = { - - + @@ -43,7 +43,7 @@ const VERIFICATION_SHOW_SELECTION_USERS = { - + diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/index.html b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/index.html index e818a7c0..2798cd3b 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/index.html +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/index.html @@ -47,7 +47,39 @@ layout("/layouts/platform.html"){ - 导出 + 导出 + + + + +
+ 全选 + 反选 +
+ + + + {{ f.label }} + + + + + + 列设置 + +
@@ -83,7 +118,7 @@ layout("/layouts/platform.html"){
- + @@ -114,20 +149,38 @@ layout("/layouts/platform.html"){ units: [], childrenData: {}, tableColumns: [ - { prop: "loginname", label: "工号", fixed: "left" }, - { prop: "username", label: "姓名", fixed: "left" }, - { prop: "sex", label: "性别" }, + { prop: "loginname", label: "工号", width: 120, fixed: "left"}, + { prop: "username", label: "姓名", width: 120, fixed: "left" }, + { prop: "sex", label: "性别", width: 120}, { prop: "birthday", label: "出生年月", width: 120, sortable: true }, - { prop: "mobile", label: "联系电话" }, + { prop: "nationality", label: "国籍", width: 120, sortable: true, checked: 0 }, + { prop: "nation", label: "民族", width: 120, sortable: true}, + { prop: "mobile", label: "联系电话", width: 120 }, + { prop: "political", label: "政治面貌", width: 120, sortable: true}, { prop: "userState", label: "在职状态", width: 120, sortable: true }, { prop: "personType", label: "教职工类别", width: 120, sortable: true }, - { prop: "preparedBy", label: "聘用方式", width: 120, sortable: true }, - { prop: "postDoctoralJoinDate", label: "进站时间", sortable: true }, - { prop: "identityType", label: "身份类型", width: 120, sortable: true }, + { prop: "preparedBy", label: "编制类别", width: 120, sortable: true }, + { prop: "postDoctoralJoinDate", label: "进站时间", sortable: true, checked: 0 }, { prop: "unionName", label: "所属工会", width: 120, sortable: true }, { prop: "unitName", label: "所属单位", width: 120, sortable: true }, - { prop: "arrivalAtSchoolDate", label: "来校年月", width: 120, sortable: true } - ] + { prop: "idCardType", label: "证件类型", width: 120, sortable: true, checked: 0 }, + { prop: "idCard", label: "证件号码", width: 120, sortable: true, checked: 0 }, + { prop: "marriage", label: "婚姻状况", width: 120, sortable: true, checked: 0 }, + { prop: "jobCategory", label: "岗位类别", width: 120, sortable: true, checked: 0 }, + + { prop: "professionalTitle", label: "职称", width: 120, sortable: true, checked: 0 }, + { prop: "professionalLevel", label: "职级", width: 120, sortable: true, checked: 0 }, + { prop: "employeeSource", label: "职工来源", width: 120, sortable: true, checked: 0 }, + { prop: "administrativeLevel", label: "行政级别(管理岗位)", width: 120, sortable: true, checked: 0 }, + { prop: "positionSeries", label: "岗位系列", width: 120, sortable: true, checked: 0 }, + { prop: "positionLevel", label: "岗级", width: 120, sortable: true, checked: 0 }, + { prop: "administrativePositionLevel", label: "行政岗级", width: 120, sortable: true, checked: 0 }, + { prop: "arrivalAtSchoolDate", label: "来校时间", width: 120, sortable: true, checked: 0 }, + { prop: "teachingTime", label: "从教年月", width: 120, sortable: true, checked: 0 }, + { prop: "expectedLeaveSchoolDate", label: "预计/最后离校时间", width: 120, sortable: true, checked: 0 }, + ], + + checkedFields: [] } }, components: { @@ -142,12 +195,17 @@ layout("/layouts/platform.html"){ }, doExport() { const pageForm = clone(this.pageForm) + pageForm.userIds = JSON.stringify(this.pageForm.userIds) pageForm.unionId = JSON.stringify(this.pageForm.unionId) pageForm.unitId = JSON.stringify(this.pageForm.unitId) pageForm.sexTypes = JSON.stringify(this.pageForm.sexTypes) pageForm.memberTypes = JSON.stringify(this.pageForm.memberTypes) pageForm.personTypes = JSON.stringify(this.pageForm.personTypes) pageForm.userStates = JSON.stringify(this.pageForm.userStates) + const data = this.tableColumns.filter(item => this.checkedFields.includes(item.prop)).map(item => { + return {prop: item.prop, label: item.label} + }) + pageForm.columns = JSON.stringify(data) this.$downLoad("/platform/member/statistics/comprehensive/doExport", pageForm) }, search(pageForm) { @@ -159,6 +217,7 @@ layout("/layouts/platform.html"){ }, pageData() { const pageForm = clone(this.pageForm) + pageForm.userIds = JSON.stringify(this.pageForm.userIds) pageForm.age = JSON.stringify(this.pageForm.age) pageForm.unionId = JSON.stringify(this.pageForm.unionId) pageForm.unitId = JSON.stringify(this.pageForm.unitId) @@ -188,7 +247,22 @@ layout("/layouts/platform.html"){ this.$message.error(res.msg) } }) + }, + checkAll() { + this.checkedFields = this.tableColumns.map(c => c.prop); + }, + invertCheck() { + const all = this.tableColumns.map(c => c.prop); + this.checkedFields = all.filter(p => !this.checkedFields.includes(p)); } + }, + computed: { + showColumns() { + return this.tableColumns.filter(c => this.checkedFields.includes(c.prop)); + } + }, + mounted() { + this.checkedFields = this.tableColumns.filter(c => c.checked !== 0).map(c => c.prop); } }) diff --git a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js index ee3d2542..95714f3d 100644 --- a/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js +++ b/src/main/resources/views/platform/zhgh/staffmanage/member/statistics/comprehensive/queryForm.js @@ -1,59 +1,27 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { template: /*language=HTML*/ ` - - 年  度: - - - - - - 本年 - - - + 姓名/工号: - - - - - - - - - - - 所属工会: - - - - - - 所属单位: - - - - - + + + - + 性别: @@ -69,6 +37,31 @@ const MEMBER_STATISTICS_COMPREHENSIVE_QUERY_FORM = { + + 在职状态: + + + 人员类型: - - 在职状态: -
- + @@ -179,35 +166,6 @@ layout("/layouts/platform.html"){ - - @@ -366,38 +324,18 @@ layout("/layouts/platform.html"){ } }, unionRelationUnitChange(v) { - this.$set(this.formData, 'unionRelationThreeUnitId', null) - this.$set(this.formData, 'unionRelationUnionGroupName', null) - this.threeUnits = [] - if (v) { - this.getThreeUnits(v) - } const unit = this.units.find((item) => item.id === v) if (unit) { this.$set(this.formData, "unionRelationUnitId", unit.id) this.$set(this.formData, "unionRelationUnitName", unit.name) - this.$set(this.formData, "unionRelationUnionId", unit.unionid) - this.$set(this.formData, "unionRelationUnionName", unit.unionname) + this.$set(this.formData, "unionRelationUnionId", unit.unionId) + this.$set(this.formData, "unionRelationUnionName", unit.unionName) } else { this.$set(this.formData, "unionRelationUnionId", null) this.$set(this.formData, "unionRelationUnionName", null) } }, - unionRelationThreeUnitChange(val) { - if (val) { - const threeUnit = this.threeUnits.find(v => v.id === val) - const groupName = threeUnit.groupname ? threeUnit.groupname : null - this.$set(this.formData, 'unionRelationThreeUnitId', threeUnit.id) - this.$set(this.formData, 'unionRelationThreeUnitName', threeUnit.name) - this.$set(this.formData, 'unionRelationUnionGroupId', threeUnit.uniongroupid) - this.$set(this.formData, 'unionRelationUnionGroupName', groupName) - } else { - this.$set(this.formData, 'unionRelationUnionGroupName', null) - } - }, - async getThreeUnits(val) { - this.threeUnits = await threeUnitsByUnionGroupOrUnitId(val) - }, + queryUser(keyWord, flag = true) { if (!keyWord) { return @@ -428,7 +366,7 @@ layout("/layouts/platform.html"){ this.$set(this.pageForm, "unitId", null) this.units = [] if (this.pageForm.unionId) { - this.unions = await getUnions() + this.units = this.$businessTool.listUnit(this.pageForm.unionId) } }, async initData() { @@ -436,13 +374,10 @@ layout("/layouts/platform.html"){ this.specialStaffTypeList = data }) this.unionRelationUnionOptions = await this.$businessTool.listUnion() - this.$businessTool.listUnit().then((data) => { - this.units = data - }) + this.units = await this.$businessTool.listUnit() }, }, async created() { - // this.isThreeUnit = await getConfigKey('isThreeUnit') === 'true' this.initData() this.pageData() }, diff --git a/src/main/resources/views/platform/zhgh/welfare/projectMange/filterUser.js b/src/main/resources/views/platform/zhgh/welfare/projectMange/filterUser.js index aa1a8143..e5c63299 100644 --- a/src/main/resources/views/platform/zhgh/welfare/projectMange/filterUser.js +++ b/src/main/resources/views/platform/zhgh/welfare/projectMange/filterUser.js @@ -84,7 +84,7 @@ const filterUser = { v-model="pageForm.personTypes"> - + - + - +