first commit
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.constant;
|
||||
|
||||
import com.budwk.app.base.annotation.DictEnum;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberChangeOrigin
|
||||
* @Date 2024/8/8 9:26
|
||||
* @注释 会员变更来源
|
||||
*/
|
||||
@Getter
|
||||
@DictEnum(key = "MemberChangeOrigin", name = "会员变更来源")
|
||||
@AllArgsConstructor
|
||||
public enum MemberChangeOrigin {
|
||||
|
||||
PERSONAL("个人"),
|
||||
BRANCH_UNION("分工会变更"),
|
||||
BRANCH_UNION_VERIFICATION("分工会名单事项核对"),
|
||||
UNION_GROUP("工会小组变更"),
|
||||
SCHOOL_UNION("校工会变更"),
|
||||
SCHOOL_UNION_VERIFICATION("校工会名单事项核对"),
|
||||
SYSTEM("系统数据更新"),
|
||||
OTHER("其他");
|
||||
|
||||
/**
|
||||
* 避免和枚举类的name冲突
|
||||
*/
|
||||
public final String changeOriginName;
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.constant;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberChangeType
|
||||
* @Date 2024/8/8 9:31
|
||||
* @注释
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum MemberChangeType {
|
||||
|
||||
//变更类型
|
||||
NEW("新入职"),
|
||||
RESTORE("入会"),
|
||||
WITHDRAWAL("退会"),
|
||||
UNIT_CHANGE("单位异动"),
|
||||
BASIC_CHANGE("基本信息异动");
|
||||
|
||||
|
||||
private final String changeTypeName;
|
||||
}
|
||||
+186
@@ -0,0 +1,186 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
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.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyBranchAuditPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberApplyVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 会员入会申请分工会审核
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/apply/branchUnionAudit")
|
||||
@Ok("json:full")
|
||||
public class MemberApplyBranchUnionAuditController {
|
||||
|
||||
@Inject
|
||||
private MemberApplyRecordService memberApplyRecordService;
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/branchunionaudit/index.html")
|
||||
@SaCheckPermission("member.apply.branchUnionAudit")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.apply.branchUnionAudit")
|
||||
public Result pageData(MemberApplyPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
record.id,
|
||||
vu.id AS userId,
|
||||
vu.username,
|
||||
vu.loginname,
|
||||
record.changeType,
|
||||
record.changeTypes,
|
||||
record.changeOrigin,
|
||||
record.applyDateTime,
|
||||
record.unitId,
|
||||
IFNULL(record.unionId, vu.unionid) AS unionId,
|
||||
vu.unionname AS unionName,
|
||||
IFNULL(record.unitName, vu.unitname) AS unitName,
|
||||
IFNULL(record.userState, vu.userState) AS userState,
|
||||
IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy,
|
||||
IFNULL(record.personType, vu.personType) AS personType,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN bpm_process_define define On inst.processDefineId = define.id
|
||||
INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
LEFT JOIN vw_user vu ON vu.id = record.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberApplyPageForm.buildSearch(cnd, pageForm);
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||
}
|
||||
cnd.and("nd.nodeCode","=",20);
|
||||
if (pageForm.getAudit() != null) {
|
||||
if (pageForm.getAudit()) {
|
||||
cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
} else {
|
||||
cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE);
|
||||
}
|
||||
}
|
||||
cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name());
|
||||
cnd.desc("task.createdOn");
|
||||
cnd.groupBy("record.id");
|
||||
sql.setCondition(cnd);
|
||||
Pagination<MemberApplyVo> listPageVO = memberApplyRecordService.listPageVO(pageForm, sql, MemberApplyVo.class);
|
||||
return Result.success(listPageVO);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("会员入会分工会审核")
|
||||
@SaCheckPermission("member.apply.branchUnionAudit")
|
||||
@SLog(tag = "会员管理-会员入会申请-分工会审核", msg = "会员入会审核(分工会)")
|
||||
public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) {
|
||||
approvalParam.getBpmTaskApprovalTypeEnum();
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
|
||||
List<String> assignments = new ArrayList<>();
|
||||
if(approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)){
|
||||
String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_ADMIN);
|
||||
assignments.add(approvalLoginName);
|
||||
}
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, assignments);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分工会审核撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.apply.branchUnionAudit")
|
||||
@SLog(tag = "会员管理-入会申请-分工会撤回", msg = "分工会入会审核撤回")
|
||||
public Result revoke(@Valid String taskId) {
|
||||
bpmService.revokeTask(taskId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取变更信息,审核
|
||||
* @param recordId
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission(value = {"member.apply.branchUnionAudit","member.apply.mine","member.apply.schoolUnionAudit"}, mode = SaMode.OR)
|
||||
public Result findAuditChangeInfo(@Valid String recordId) {
|
||||
Sys_user_history history = memberApplyRecordService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId));
|
||||
MemberApplyRecord record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, recordId);
|
||||
if (ObjectUtil.isAllEmpty(history, record)) {
|
||||
return Result.error("获取变更信息失败");
|
||||
}
|
||||
List<BpmTaskApprovalRecordVo> nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, recordId);
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(record);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckLogin;
|
||||
import cn.hutool.core.util.DesensitizedUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
@IocBean
|
||||
@At("/platform/member/apply/common")
|
||||
@Ok("json:full")
|
||||
public class MemberApplyCommonController {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@At
|
||||
@SaCheckLogin
|
||||
public Result findOne(@Valid String id) {
|
||||
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", id));
|
||||
if (ObjectUtil.isNull(user)) {
|
||||
return Result.error("用户信息不存在");
|
||||
}
|
||||
|
||||
// 系统管理员和学校工会管理员可以查看所有用户
|
||||
if (AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
return Result.success(user);
|
||||
}
|
||||
|
||||
// 分会主席只能查看本分会用户或未分配分会的用户
|
||||
if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name()) && (user.getUnionId().equals(SecurityUtil.getUnionId()) || StrUtil.isBlank(user.getUnionId()))) {
|
||||
user.setIdCard(DesensitizedUtil.idCardNum(user.getIdCard(), 3, 4));
|
||||
user.setMobile(DesensitizedUtil.mobilePhone(user.getMobile()));
|
||||
return Result.success(user);
|
||||
}
|
||||
|
||||
// 分工会操作员同主席权限一致
|
||||
if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_OPERATOR.name()) && (user.getUnionId().equals(SecurityUtil.getUnionId()) || StrUtil.isBlank(user.getUnionId()))) {
|
||||
user.setIdCard(DesensitizedUtil.idCardNum(user.getIdCard(), 3, 4));
|
||||
user.setMobile(DesensitizedUtil.mobilePhone(user.getMobile()));
|
||||
return Result.success(user);
|
||||
}
|
||||
|
||||
// 普通用户只能查看自己的信息
|
||||
if (SecurityUtil.getUserId().equals(user.getId())) {
|
||||
return Result.success(user);
|
||||
}
|
||||
|
||||
return Result.error("没有权限");
|
||||
}
|
||||
|
||||
}
|
||||
+155
@@ -0,0 +1,155 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
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.bpm.service.BpmService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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.Static;
|
||||
import org.nutz.ioc.aop.Aop;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 会员申请
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/apply/submit")
|
||||
@Ok("json:full")
|
||||
public class MemberApplyController {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private BpmService bpmservice;
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/submit/index.html")
|
||||
@SaCheckPermission("member.apply.submit")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission(value = {"member.apply.submit","member.branchUnion.record","member.schoolUnion.record"}, mode = SaMode.OR)
|
||||
public Result findOne(@Valid String id, @Valid Boolean isEdit) {
|
||||
if (isEdit) {
|
||||
MemberApplyRecord record = dao.fetch(MemberApplyRecord.class,id);
|
||||
return Result.success(record);
|
||||
}
|
||||
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", id));
|
||||
return Result.success(user);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("保存入会申请")
|
||||
@SaCheckPermission("member.apply.submit")
|
||||
@SLog(tag = "会员管理-入会申请-保存申请", msg = "保存申请")
|
||||
public Result doSave(MemberApplyRecord record){
|
||||
record.setMember(true);
|
||||
record.setUserId(SecurityUtil.getUserId());
|
||||
record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name());
|
||||
record.setChangeType(MemberChangeType.RESTORE.name());
|
||||
record.setChangeTypes(List.of(MemberChangeType.RESTORE.name()));
|
||||
dao.insertOrUpdate(record);
|
||||
bpmservice.startSaveProcessInstance(BpmProcessConstant.MEMBER_SINGLE_APPLY.name(),
|
||||
"【会员入会申请】" + record.getUsername(), record.getId(), null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 提交申请
|
||||
*/
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("提交入会申请")
|
||||
@SaCheckPermission("member.apply.submit")
|
||||
@SLog(tag = "会员管理-入会申请-提交申请", msg = "提交申请")
|
||||
public Object doSubmit(MemberApplyRecord record) {
|
||||
record.setMember(true);
|
||||
record.setUserId(SecurityUtil.getUserId());
|
||||
record.setChangeType(MemberChangeType.RESTORE.name());
|
||||
record.setChangeTypes(List.of(MemberChangeType.RESTORE.name()));
|
||||
dao.insertOrUpdate(record);
|
||||
//设置分工会审核人
|
||||
List<Sys_user> users = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_CHAIRMAN.name());
|
||||
if (ObjectUtil.isEmpty(users)) {
|
||||
return Result.error("您的分工会没有设置审核人,请联系校工会!");
|
||||
}
|
||||
List<Sys_user> operatorUsers = commonService.findUserInfoByRoleCode("unionId", SecurityUtil.getUnionId(), RoleConstant.BRANCH_UNION_OPERATOR.name());
|
||||
|
||||
List<Sys_user> assignments = Stream.concat(users.stream(), operatorUsers.stream()).distinct().toList();
|
||||
|
||||
bpmservice.startSubmitProcessInstance(BpmProcessConstant.MEMBER_SINGLE_APPLY.name(),
|
||||
"【会员入会申请】" + record.getUsername(), record.getId(), assignments.stream().map(Sys_user::getLoginname).toList(), null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.apply.submit")
|
||||
public Result getApplyUserByUnionOperate(@Valid String keyWord){
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.username AS userName,
|
||||
u.loginname AS loginName,
|
||||
IFNULL(u.unitName,'无单位') AS unitName
|
||||
FROM
|
||||
vw_user u
|
||||
WHERE
|
||||
( u.member = '' OR u.member IS NULL )
|
||||
AND (u.loginname like @keyWord or u.username like @keyWord)
|
||||
$unionSql
|
||||
""").setParam("keyWord", "%" + keyWord + "%");
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
sql.setVar("unionSql", new Static(" and u.unionId = %s".formatted(SecurityUtil.getUnionId())));
|
||||
}
|
||||
Pagination pagination = commonService.listPageMap(1, 20, sql);
|
||||
return Result.success(pagination.getList());
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.apply.submit")
|
||||
public Result findApplyById(String id) {
|
||||
return Result.success(dao.fetch(MemberApplyRecord.class,id));
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.apply.submit")
|
||||
public Result findUserInfo() {
|
||||
return Result.success(dao.fetch(View_user.class, Cnd.where("id", "=", SecurityUtil.getUserId())));
|
||||
}
|
||||
|
||||
}
|
||||
+180
@@ -0,0 +1,180 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
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.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberApplyVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 我的申请
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/apply/mine")
|
||||
@Ok("json:full")
|
||||
public class MemberApplyMineController {
|
||||
|
||||
@Inject
|
||||
private MemberApplyRecordService memberApplyRecordService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/mine/index.html")
|
||||
@SaCheckPermission("member.apply.mine")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.apply.mine")
|
||||
public Result pageData(MemberApplyPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
record.id,
|
||||
vu.id AS userId,
|
||||
vu.username,
|
||||
vu.loginname,
|
||||
record.changeType,
|
||||
record.changeTypes,
|
||||
record.changeOrigin,
|
||||
record.applyDateTime,
|
||||
record.unitId,
|
||||
IFNULL(record.unionId, vu.unionid) AS unionId,
|
||||
vu.unionname AS unionName,
|
||||
IFNULL(record.unitName, vu.unitname) AS unitName,
|
||||
IFNULL(record.userState, vu.userState) AS userState,
|
||||
IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy,
|
||||
IFNULL(record.personType, vu.personType) AS personType,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeCode,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
(
|
||||
SELECT
|
||||
count( 1 ) > 0
|
||||
FROM
|
||||
bpm_process_task
|
||||
WHERE
|
||||
prevTaskId = ( SELECT id FROM bpm_process_task WHERE processInstanceId = inst.id AND processTaskNodeCode IN ( 10, 40, 70 ) ORDER BY createdAt DESC LIMIT 1 )
|
||||
AND taskStatus = 'COMPELTE'
|
||||
) AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN bpm_process_define define On inst.processDefineId = define.id
|
||||
INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
LEFT JOIN vw_user vu ON vu.id = record.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberApplyPageForm.buildSearch(cnd, pageForm);
|
||||
cnd.and("nd.nodeCode", "=", 10);
|
||||
cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name());
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
|
||||
cnd.andEX("vu.unionId","=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.and("vu.id", "=", SecurityUtil.getUserId());
|
||||
}
|
||||
}
|
||||
cnd.desc("record.applyDateTime");
|
||||
sql.setCondition(cnd);
|
||||
Pagination<MemberApplyVo> listPageVO = memberApplyRecordService.listPageVO(pageForm, sql, MemberApplyVo.class);
|
||||
return Result.success(listPageVO);
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("删除会员申请记录")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.apply.mine")
|
||||
@SLog(tag = "会员管理-入会申请-我的申请记录", msg = "删除申请")
|
||||
public Result delete(@Valid String id) {
|
||||
memberApplyRecordService.delete(id);
|
||||
bpmService.deleteInstance(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("个人申请撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.apply.mine")
|
||||
@SLog(tag = "会员管理-入会申请-个人申请撤回", msg = "个人申请撤回")
|
||||
public Result revokeApply(@Valid String id) {
|
||||
bpmService.revokeApply(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取变更信息,审核
|
||||
* @param recordId
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.apply.mine")
|
||||
public Result findAuditChangeInfo(@Valid String recordId) {
|
||||
MemberApplyRecord record = new MemberApplyRecord();
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.exps("recordId", "=", recordId).or("id","=",recordId));
|
||||
if (!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())) {
|
||||
cnd.and("loginname", "=", SecurityUtil.getUserLoginname());
|
||||
record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, Cnd.where("loginname", "=", SecurityUtil.getUserLoginname())
|
||||
.and("id", "=", recordId));
|
||||
} else {
|
||||
record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, recordId);
|
||||
}
|
||||
Sys_user_history history = memberApplyRecordService.dao().fetch(Sys_user_history.class, cnd);
|
||||
|
||||
if (ObjectUtil.isAllEmpty(history, record)) {
|
||||
return Result.error("您暂无权限查询");
|
||||
}
|
||||
List<BpmTaskApprovalRecordVo> nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, recordId);
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(record);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
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.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberApplyPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberApplyVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 会员入会申请校工会审核
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/apply/schoolUnionAudit")
|
||||
@Ok("json:full")
|
||||
public class MemberApplySchoolUnionAuditController {
|
||||
|
||||
@Inject
|
||||
private MemberApplyRecordService memberApplyRecordService;
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/schoolunionaudit/index.html")
|
||||
@SaCheckPermission("member.apply.schoolUnionAudit")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.apply.schoolUnionAudit")
|
||||
public Result pageData(MemberApplyPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
record.id,
|
||||
vu.id AS userId,
|
||||
vu.username,
|
||||
vu.loginname,
|
||||
record.changeType,
|
||||
record.changeTypes,
|
||||
record.changeOrigin,
|
||||
record.applyDateTime,
|
||||
record.unitId,
|
||||
IFNULL(record.unionId, vu.unionid) AS unionId,
|
||||
vu.unionname AS unionName,
|
||||
IFNULL(record.unitName, vu.unitname) AS unitName,
|
||||
IFNULL(record.userState, vu.userState) AS userState,
|
||||
IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy,
|
||||
IFNULL(record.personType, vu.personType) AS personType,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT(nt.id) OVER (PARTITION BY task.id) > 0 AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN bpm_process_define define On inst.processDefineId = define.id
|
||||
INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
LEFT JOIN vw_user vu ON vu.id = record.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberApplyPageForm.buildSearch(cnd, pageForm);
|
||||
if(!AuthUtil.hasRole(RoleConstant.SYSADMIN.name())){
|
||||
cnd.and(new Static("JSON_CONTAINS( task.assignments, '\"%s\"' )".formatted(SecurityUtil.getUserLoginname())));
|
||||
}
|
||||
cnd.and("nd.nodeCode","=",50);
|
||||
if (pageForm.getAudit() != null) {
|
||||
if (pageForm.getAudit()) {
|
||||
cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
} else {
|
||||
cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE);
|
||||
}
|
||||
}
|
||||
cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_SINGLE_APPLY.name());
|
||||
cnd.desc("task.createdOn");
|
||||
// cnd.groupBy("record.id");
|
||||
sql.setCondition(cnd);
|
||||
Pagination<MemberApplyVo> listPageVO = memberApplyRecordService.listPageVO(pageForm, sql, MemberApplyVo.class);
|
||||
return Result.success(listPageVO);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("会员入会校工会审核")
|
||||
@SaCheckPermission("member.apply.branchUnionAudit")
|
||||
@SLog(tag = "会员管理-会员入会申请-校工会审核", msg = "会员入会审核(校工会)")
|
||||
public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) {
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) {
|
||||
MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, Cnd.where("id", "=", approvalParam.getProcessInstanceBusinessId()));
|
||||
memberManageService.compareMemberChangeInfoAndUpdateUser(record);
|
||||
}
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("校工会审核撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.apply.branchUnionAudit")
|
||||
@SLog(tag = "会员管理-入会申请-校工会撤回", msg = "校工会入会审核撤回")
|
||||
public Result revoke(@Valid String taskId) {
|
||||
bpmService.revokeTask(taskId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取变更信息,审核
|
||||
* @param recordId
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission(value = "member.apply.branchUnionAudit")
|
||||
public Result findAuditChangeInfo(@Valid String recordId){
|
||||
Sys_user_history history = memberApplyRecordService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId));
|
||||
MemberApplyRecord record = memberApplyRecordService.dao().fetch(MemberApplyRecord.class, recordId);
|
||||
if (ObjectUtil.isAllEmpty(history, record)) {
|
||||
return Result.error("获取变更信息失败");
|
||||
}
|
||||
List<BpmTaskApprovalRecordVo> nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_SINGLE_APPLY, recordId);
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(record);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.branch;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberBranchUnionManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
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 org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberBranchUnionAuditController
|
||||
* @Date 2024/8/13 8:48
|
||||
* @注释 分工会管理,分工会审核
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/branchUnion/audit")
|
||||
public class MemberBranchUnionAuditController {
|
||||
|
||||
@Inject
|
||||
private MemberBranchUnionManageService memberBranchUnionManageService;
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/branch/audit/index.html")
|
||||
@SaCheckPermission("member.branchUnion.audit")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.audit")
|
||||
public Result pageData(MemberManagePageForm pageForm) {
|
||||
Pagination pageData = memberBranchUnionManageService.getPageData(pageForm);
|
||||
return Result.success(pageData);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分工会审核")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.branchUnion.audit")
|
||||
@SLog(tag = "会员管理-分工会管理", type = "memberBranchUnionManage", msg = "分工会审核")
|
||||
public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) {
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), null, null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分工会审核撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.branchUnion.audit")
|
||||
@SLog(tag = "会员管理-分工会管理", type = "memberBranchUnionManage", msg = "分工会审核撤回")
|
||||
public Result revoke(@Valid String taskId) {
|
||||
bpmService.revokeTask(taskId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取变更信息,审核
|
||||
* @param recordId
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission(value = {"member.branchUnion.audit", "member.schoolUnion.audit"}, mode = SaMode.OR)
|
||||
public Result findAuditChangeInfo(String recordId) {
|
||||
Sys_user_history history = memberBranchUnionManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId));
|
||||
MemberApplyRecord record = memberBranchUnionManageService.dao().fetch(MemberApplyRecord.class, recordId);
|
||||
if (ObjectUtil.isAllEmpty(history, record)) {
|
||||
return Result.error("获取变更信息失败");
|
||||
}
|
||||
List<BpmTaskApprovalRecordVo> nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE, recordId);
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(record);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
}
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.branch;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.RepeatSubmit;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.controllers.open.commons.service.CommonService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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 javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberBranchUnionManageListController
|
||||
* @Date 2024/8/12 14:06
|
||||
* @注释 会员分工会管理
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/branchUnion/manage/list")
|
||||
@Slf4j
|
||||
@Ok("json")
|
||||
public class MemberBranchUnionManageController {
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
@Inject
|
||||
private BpmService bpmservice;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/branch/manage/index.html")
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
@Ok("json:{dateFormat:'yyyy-MM-dd'}")
|
||||
public Result pageData(MemberManagePageForm pageForm) {
|
||||
Sql sql = memberManageService.getSql(pageForm, "branchUnion");
|
||||
Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
@SLog(tag = "添加会员", type = "memberBranchManage", msg = "添加会员")
|
||||
public Result addMember(@Valid MemberApplyRecord record) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
public Result getChangeInfoByUserId(String userId) {
|
||||
return Result.success(memberManageService.getMemberChangeInfoByUserId(userId));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@RepeatSubmit
|
||||
@SLog(tag = "分工会管理-会员管理", type = "MemberBranchManageList", msg = "分工会普通变更")
|
||||
public Result generalMemberChange(@Param("record") MemberApplyRecord record) {
|
||||
try {
|
||||
if (Objects.isNull(record)) {
|
||||
return Result.error("数据获取失败");
|
||||
}
|
||||
Sys_user user = memberManageService.dao().fetch(Sys_user.class, Cnd.where("loginname", "=", record.getLoginname()));
|
||||
record.setUserId(user.getId());
|
||||
if ( record.getEdit() == null || !record.getEdit()) {
|
||||
// 校验是否有变更的字段
|
||||
List<NutMap> changeInfoList = memberManageService.compareMemberChangeInfo(record);
|
||||
// 存储变更的类型
|
||||
List<String> changeTypeList = memberManageService.compareMemberChangeType(changeInfoList, record);
|
||||
// 有字段发生变更会走下面的方法,没有则会抛异常
|
||||
record.setChangeTypes(changeTypeList);
|
||||
record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name());
|
||||
memberManageService.dao().insert(record);
|
||||
} else {
|
||||
record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION.name());
|
||||
memberManageService.dao().updateIgnoreNull(record);
|
||||
}
|
||||
|
||||
String approvalLoginName = commonService.findUserLoginNameByRoleCode(RoleConstant.SCHOOL_UNION_MEMBER_ADMIN);
|
||||
if (StrUtil.isBlank(approvalLoginName)) {
|
||||
throw new BaseException("校工会会员管理员未设置");
|
||||
}
|
||||
bpmservice.startSubmitProcessInstance(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE.name(), "【会员分工会变更】" +record.getUsername(), record.getId(), List.of(approvalLoginName), null);
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
return Result.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.branch;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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 javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberBranchRecordController
|
||||
* @Date 2024/8/13 16:25
|
||||
* @注释 分工会 会员变更记录
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/branchUnion/record")
|
||||
public class MemberBranchUnionRecordController {
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/branch/record/index.html")
|
||||
@SaCheckPermission("member.branchUnion.record")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.record")
|
||||
public Result pageData(MemberManagePageForm pageForm){
|
||||
Pagination pagination = memberManageService.memberHistoryRecords(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.record")
|
||||
public Result findAuditChangeInfo(@Valid String recordId) {
|
||||
Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, recordId);
|
||||
List<NutMap> list = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(list);
|
||||
}
|
||||
}
|
||||
+280
@@ -0,0 +1,280 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.branch.verification;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.RepeatSubmit;
|
||||
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.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_change_info;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
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.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberVerificationBranchUnionFeedbackParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberVerificationGetChangeParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.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 org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberBranchListVerificationController
|
||||
* @Date 2024/8/13 16:22
|
||||
* @注释 分工会 名单核对事项
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/branchUnion/verification/check")
|
||||
public class MemberBranchVerificationCheckController {
|
||||
|
||||
@Inject
|
||||
private MemberListVerificationService memberListVerificationService;
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/branch/verification/check/index.html")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
@ApiOperation("分工会 名单核对事项分页数据")
|
||||
public Result pageData(MemberListVerificationPageForm pageForm) {
|
||||
Pagination pagination = memberListVerificationService.getBranchListVerificationUser(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("获取所有正在进行中的事项")
|
||||
@SaCheckPermission(value = {"member.branchUnion.verification.check", "member.schoolUnion.verification.check"}, mode = SaMode.OR)
|
||||
public Result getVerificationList() {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(),RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("startDate", "<=", DateUtil.now());
|
||||
cnd.and("endDate", ">=", DateUtil.now());
|
||||
cnd.and("isEnabled", "=", true);
|
||||
cnd.desc("releaseDateTime");
|
||||
List<MemberListVerificationProject> list = memberListVerificationService.dao().query(MemberListVerificationProject.class, cnd);
|
||||
List<MemberListVerificationProject> collect = new ArrayList<>();
|
||||
if (ObjectUtil.isNotEmpty(list)) {
|
||||
collect = list.stream().filter(item -> item.getUnionIds().contains(SecurityUtil.getUnionId())).collect(Collectors.toList());
|
||||
}
|
||||
return Result.success(collect);
|
||||
} else {
|
||||
List<MemberListVerificationProject> list = memberListVerificationService.dao().query(MemberListVerificationProject.class, cnd);
|
||||
return Result.success(list);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("分工会 名单核对事项,单个人员变更")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
@SLog(tag = "分工会管理-名单核对事项", type = "branchUnionVerification", msg = "分工会单个人员变更")
|
||||
public Result doCheckMember(@Param("record") MemberApplyRecord record) {
|
||||
if (Objects.isNull(record)) {
|
||||
return Result.error("数据获取失败");
|
||||
}
|
||||
Dao dao = memberManageService.dao();
|
||||
// memberManageService.compareMemberChangeInfoAndUpdateUser(record);
|
||||
// 校验是否有变更的东西
|
||||
memberManageService.compareMemberChangeInfo(record);
|
||||
record.setChangeOrigin(MemberChangeOrigin.BRANCH_UNION_VERIFICATION.name());
|
||||
MemberApplyRecord applyRecord = dao.fetch(MemberApplyRecord.class, Cnd.where("userId", "=", record.getUserId())
|
||||
.and("verificationProjectId", "=", record.getVerificationProjectId()));
|
||||
//查出当前核对事项是否有变更记录,有则修改
|
||||
if (Lang.isNotEmpty(applyRecord)) {
|
||||
record.setId(applyRecord.getId());
|
||||
Sys_user_history history = dao.fetch(Sys_user_history.class, Cnd.where("loginname", "=", applyRecord.getLoginname())
|
||||
.and("recordId", "=", record.getId()));
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
Sys_user user = BeanUtil.copyProperties(history, Sys_user.class);
|
||||
user.setId(record.getUserId());
|
||||
dao.update(user);
|
||||
}
|
||||
}
|
||||
dao.insertOrUpdate(record);
|
||||
dao.update(MemberListVerificationUser.class,
|
||||
Chain.make("isChanged", true).add("branchUnionChecked", true),
|
||||
Cnd.where("userId", "=", record.getUserId())
|
||||
.and("verificationProjectId", "=", record.getVerificationProjectId()));
|
||||
dao.clear(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("分工会 名单核对事项,无误提交")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
@SLog(tag = "分工会管理-名单核对事项", type = "branchUnionVerification", msg = "名单核对事项无误提交")
|
||||
public Result correctSubmission(@Param("data") @Valid MemberVerificationBranchUnionFeedbackParam param) {
|
||||
memberManageService.dao().update(MemberVerificationBranchUnionFeedback.class,
|
||||
Chain.make("isSubmit", true).add("status", "分工会无误提交")
|
||||
.add("welfareJson", param.getWelfareJson()),
|
||||
Cnd.where("verificationProjectId", "=", param.getVerificationProjectId())
|
||||
.and("unionId", "=", SecurityUtil.getUnionId()));
|
||||
|
||||
MemberVerificationBranchUnionFeedback feedback = new MemberVerificationBranchUnionFeedback();
|
||||
BeanUtil.copyProperties(param, feedback);
|
||||
memberListVerificationService.branchUnionCorrectSubmission(feedback);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("分工会 名单核对事项,有误提交")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
@SLog(tag = "分工会管理-名单核对事项", type = "branchUnionVerification", msg = "名单核对事项有误提交")
|
||||
public Result incorrectSubmission(@Param("verificationProjectId") String verificationProjectId) {
|
||||
if (StrUtil.isEmpty(verificationProjectId)) {
|
||||
return Result.error("获取核对事项失败");
|
||||
}
|
||||
memberListVerificationService.branchUnionIncorrectSubmission(verificationProjectId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验当前的提交按钮是否可用;并返回按钮提示信息
|
||||
*
|
||||
* @param verificationProjectId
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
public Result validateSubmitButton(@Valid @Param("verificationProjectId") String verificationProjectId) {
|
||||
MemberVerificationBranchUnionFeedback feedback = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class,
|
||||
Cnd.where("verificationProjectId", "=", verificationProjectId).and("unionId", "=", SecurityUtil.getUnionId()));
|
||||
|
||||
boolean flag = feedback.getBranchUnionSubmitNum() == 0 || feedback.getBranchUnionSubmit();
|
||||
if (!Objects.equals(feedback.getBranchUnionSubmitNum(), feedback.getSchoolUnionSubmitNum())) {
|
||||
flag = false;
|
||||
}
|
||||
|
||||
if (feedback.getIsFeedback()) {
|
||||
flag = false;
|
||||
}
|
||||
|
||||
if (feedback.getIsRollback() != null && feedback.getIsRollback() &&
|
||||
(feedback.getBranchUnionSubmitNum().equals(feedback.getSchoolUnionSubmitNum()))) {
|
||||
flag = true;
|
||||
}
|
||||
|
||||
NutMap map = NutMap.NEW();
|
||||
map.put("buttonStatus", flag);
|
||||
if (feedback.getIsRollback() != null && feedback.getIsRollback() && (feedback.getBranchUnionSubmitNum().equals(feedback.getSchoolUnionSubmitNum()))) {
|
||||
map.put("buttonContent", "校工会退回,请重新提交;退回原因:" + feedback.getRollbackReason());
|
||||
} else {
|
||||
map.put("buttonContent", feedback.getBranchUnionSubmitNum() == 0 ? "如提交:当前为首次提交" : ("如提交:当前为第" + (feedback.getBranchUnionSubmitNum() + 1) + "次提交"));
|
||||
map.put("submitCountContent", feedback.getIsFeedback() ? "已无误提交" : ("有误提交;校工会审核中-第" + feedback.getBranchUnionSubmitNum() + "次提交"));
|
||||
}
|
||||
map.put("isFeedback", feedback.getIsFeedback());
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 撤销变更
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@ApiOperation("分工会 名单核对事项,分工会撤销变更")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
@SLog(tag = "分工会管理-名单核对事项", type = "branchUnionVerification", msg = "分工会撤销变更")
|
||||
public Result branchUnionRevokeChange(@Valid @Param("data") MemberVerificationGetChangeParam param) {
|
||||
memberListVerificationService.revokeChange(param.getUserId(), param.getVerificationProjectId(), "branchUnion");
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分工会 名单核对事项,获取变更记录")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
public Result getVerificationChangeInfo(@Valid @Param("data") MemberVerificationGetChangeParam param) {
|
||||
MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class,
|
||||
Cnd.where("userId", "=", param.getUserId()).and("verificationProjectId", "=", param.getVerificationProjectId()));
|
||||
if (Lang.isNotEmpty(record)) {
|
||||
Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()).desc("changeTime"));
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
return Result.success(memberManageService.compareMemberChangeInfo(history));
|
||||
} else {
|
||||
return Result.success(memberManageService.compareMemberChangeInfo(record));
|
||||
}
|
||||
}
|
||||
return Result.error();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("分工会 名单核对事项,查看反馈结果")
|
||||
@SaCheckPermission(value = {"member.branchUnion.verification.check", "member.schoolUnion.verification.check"}, mode = SaMode.OR)
|
||||
public Result getVerificationFeedback(String verificationProjectId, String unionId) {
|
||||
MemberVerificationBranchUnionFeedback fetch = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class,
|
||||
Cnd.where("verificationProjectId", "=", verificationProjectId).and("unionId", "=", unionId));
|
||||
MemberListVerificationProject verificationProject = memberManageService.dao().fetch(MemberListVerificationProject.class, Cnd.where("id", "=", verificationProjectId));
|
||||
NutMap nutMap = Lang.obj2nutmap(verificationProject);
|
||||
nutMap.put("feedbackDate", DateUtil.format(DateUtil.date(fetch.getUpdatedAt()), "yyyy-MM-dd HH:mm:ss"));
|
||||
nutMap.put("unionName", fetch.getUnionName());
|
||||
nutMap.put("feedbackNum", fetch.getFeedbackNum());
|
||||
nutMap.put("feedbackFiles", fetch.getFeedbackFiles());
|
||||
nutMap.put("welfareJson", fetch.getWelfareJson());
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.branchUnion.verification.check")
|
||||
public void exportExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response) {
|
||||
memberListVerificationService.exportVerificationExcel(pageForm, response, true);
|
||||
}
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
//package com.budwk.app.zhgh.member.controller.change;
|
||||
//
|
||||
//import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
//import com.budwk.app.base.annotation.SLog;
|
||||
//import com.budwk.app.base.page.Pagination;
|
||||
//import com.budwk.app.base.result.Result;
|
||||
//import com.budwk.app.zhgh.member.models.MemberApplyRecord;
|
||||
//import com.budwk.app.zhgh.member.param.MemberManagePageForm;
|
||||
//import com.budwk.app.zhgh.member.service.MemberManageService;
|
||||
//import lombok.extern.slf4j.Slf4j;
|
||||
//import org.nutz.dao.sql.Sql;
|
||||
//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 javax.validation.Valid;
|
||||
//
|
||||
///**
|
||||
// * @version 1.0
|
||||
// * @Author zzr
|
||||
// * @name:MemberChangeManageController
|
||||
// * @Date 2024/8/6 8:39
|
||||
// * @注释
|
||||
// */
|
||||
//@IocBean
|
||||
//@Ok("json")
|
||||
//@At("/platform/member/change/manage")
|
||||
//@Slf4j
|
||||
//public class MemberChangeManageController {
|
||||
//
|
||||
// @Inject
|
||||
// private MemberManageService memberService;
|
||||
//
|
||||
// @At("")
|
||||
// @Ok("beetl:/platform/zhgh/staffmanage/member/change/manage/index.html")
|
||||
// @SaCheckPermission("member.branch.manage")
|
||||
// public void index() {
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @At
|
||||
// @SaCheckPermission("member.branch.manage")
|
||||
// public Result pageData(MemberManagePageForm pageForm) {
|
||||
// Sql sql = memberService.getSql(pageForm,null);
|
||||
// Pagination pagination = memberService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
// return Result.success(pagination);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @At
|
||||
// @SaCheckPermission("member.branch.manage")
|
||||
// public Result getNumData(MemberManagePageForm pageForm) {
|
||||
// NutMap map = memberService.getButtonNum(pageForm);
|
||||
// return Result.success(map);
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
//}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.change;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberChangeRecordsController
|
||||
* @Date 2024/8/8 8:40
|
||||
* @注释
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/change/record")
|
||||
@Slf4j
|
||||
public class MemberChangeRecordController {
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/change/record/index.html")
|
||||
@SaCheckPermission("member.change.record")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.change.record")
|
||||
public Result pageData(MemberManagePageForm pageForm) {
|
||||
Pagination pagination = memberService.memberHistoryRecords(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.config;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberConfigManage
|
||||
* @Date 2024/10/15 9:00
|
||||
* @注释
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/config/manage")
|
||||
public class MemberConfigManage {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/config/manage/index.html")
|
||||
@SaCheckPermission("member.config.manage")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.config.manage")
|
||||
public Result getMemberConfig(){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.info;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_dict;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.entity.Record;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberInfoBoardController
|
||||
* @Date 2024/8/16 14:17
|
||||
* @注释 会员信息 数据看板
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/info/board")
|
||||
public class MemberInfoBoardController {
|
||||
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
|
||||
@Inject
|
||||
private SysDictService sysDictService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/board/index.html")
|
||||
@SaCheckPermission("member.info.board")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 今年和去年的会员数
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Result memberNumber() {
|
||||
int memberNum = memberInfoService.count(Sqls.create("select count(1) from sys_user where member = 1"));
|
||||
int lastYearMemberNum = memberInfoService.count(Sqls.create("select count(1) from member_history where year = year(now()) -1 "));
|
||||
return Result.success(Map.of("memberNum", memberNum, "lastYearMemberNum", lastYearMemberNum));
|
||||
}
|
||||
|
||||
/**
|
||||
* @return 会员增长趋势
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Result growthTrend() {
|
||||
List<Map> result = new ArrayList<>();
|
||||
int year = DateUtil.thisYear();
|
||||
for (int i = year - 5; i < year; i++) {
|
||||
int count = memberInfoService.count(Sqls.create("select count(1) from member_history where year = @year ").setParam("year", year));
|
||||
result.add(Map.of("label", i, "value", count));
|
||||
}
|
||||
result.add(Map.of("label", year, "value", memberInfoService.count(Sqls.create("select count(1) from sys_user where member = 1"))));
|
||||
return Result.success(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return 会员占比
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Result memberPercentage() {
|
||||
List<Sys_dict> memberApplyPersonTypeDictList = sysDictService.getSubListByCode("PERSON_TYPE");
|
||||
List<String> personTypes = memberApplyPersonTypeDictList.stream().map(Sys_dict::getCode).collect(Collectors.toList());
|
||||
int member = memberInfoService.count(Sqls.create("select count(1) from sys_user where member = 1"));
|
||||
int user = memberInfoService.count(Sqls.create("select count(1) from sys_user").setParam("personTypes", personTypes));
|
||||
float result;
|
||||
if (user > 0) {
|
||||
result = (float) member / (float) user;
|
||||
} else {
|
||||
result = 0.0f;
|
||||
}
|
||||
return Result.success(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return 男女占比
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Result memberSexPercentage() {
|
||||
int men = memberInfoService.count(Sqls.create("select count(1) from sys_user where member = 1 and sex = '男' "));
|
||||
int women = memberInfoService.count(Sqls.create("select count(1) from sys_user where member = 1 and sex = '女' "));
|
||||
return Result.success(List.of(Map.of("type", "男", "value", men), Map.of("type", "女", "value", women)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 各工会会员数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Result unionMember() {
|
||||
String str = """
|
||||
SELECT
|
||||
un.name as unionname,
|
||||
un.unionCode,
|
||||
( SELECT count( 1 ) FROM vw_user WHERE member = 1 and unionId = un.id ) `value`
|
||||
FROM
|
||||
sys_union un
|
||||
ORDER BY
|
||||
$order
|
||||
""";
|
||||
List<Record> chartData = memberInfoService.list(Sqls.create(str).setVar("order", "un.unionCode"));
|
||||
List<Record> tableData = memberInfoService.list(Sqls.create(str).setVar("order", "un.unionCode"));
|
||||
return Result.success(Map.of("chartData", chartData, "tableData", tableData));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据人员类型查找会员数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Result personTypeMember() {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
dict.`name`,
|
||||
dict.`code` label,
|
||||
( SELECT COUNT( 1 ) FROM sys_user WHERE member = 1 and personType = dict.`code` ) value
|
||||
FROM
|
||||
sys_dict dict
|
||||
LEFT JOIN sys_dict parent ON dict.parentId = parent.id
|
||||
WHERE
|
||||
parent.`code` = 'USER_PERSON_TYPE'
|
||||
ORDER BY
|
||||
dict.location
|
||||
""");
|
||||
return Result.success(memberInfoService.list(sql));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据在职状态查找会员数
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.info.board")
|
||||
public Object userStateMember() {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
dict.`name`,
|
||||
dict.`code` label,
|
||||
( SELECT COUNT( 1 ) FROM sys_user WHERE member = 1 and userState = dict.`code` ) value
|
||||
FROM
|
||||
sys_dict dict
|
||||
LEFT JOIN sys_dict parent ON dict.parentId = parent.id
|
||||
WHERE
|
||||
parent.`code` = 'USER_STATE'
|
||||
ORDER BY
|
||||
dict.location
|
||||
""");
|
||||
return Result.success(memberInfoService.list(sql));
|
||||
}
|
||||
|
||||
}
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.info;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.DesensitizedUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberHistory;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberImportVo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberGroupInfoController
|
||||
* @Date 2024/8/8 10:06
|
||||
* @注释 会员档案管理
|
||||
*/
|
||||
@At("/platform/member/info/group")
|
||||
@Ok("json:full")
|
||||
@IocBean
|
||||
@Slf4j
|
||||
public class MemberInfoGroupController {
|
||||
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/group/index.html")
|
||||
@SaCheckPermission("member.info.group")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.info.group")
|
||||
@Ok("json:{dateFormat:'yyyy-MM-dd'}")
|
||||
public Result pageData(@Valid @Param("pageForm") MemberInfoPageForm pageForm) {
|
||||
Sql sql = memberInfoService.getSql(pageForm);
|
||||
Pagination<NutMap> pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
for (NutMap row : pagination.getList()) {
|
||||
row.put("mobile",DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||
}
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.info.group")
|
||||
public Result getMemberHistoryNum(@Valid Integer year) {
|
||||
return Result.success(memberInfoService.dao().count(MemberHistory.class, Cnd.where("year", "=", year)));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.info.group")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(type = "memberInfoGroup", tag = "备份会员数据", msg = "备份会员数据")
|
||||
public Result archive(@Valid Integer year) {
|
||||
try {
|
||||
memberInfoService.archiveMember(year);
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.info.group")
|
||||
public void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response) {
|
||||
memberInfoService.exportMember(pageForm, response);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.info.group")
|
||||
public void downloadMemberTemplate(HttpServletResponse response) {
|
||||
try {
|
||||
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
String fileName = URLEncoder.encode("会员导入模版", "UTF-8").replaceAll("\\+", "%20");
|
||||
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
|
||||
EasyExcel.write(response.getOutputStream(), MemberImportVo.class)
|
||||
.sheet("会员导入模版")
|
||||
.doWrite(ArrayList::new);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("导出失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.info.group")
|
||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||
public Result importMember(TempFile file) {
|
||||
try {
|
||||
NutMap nutMap = memberInfoService.handlingMemberImport(file);
|
||||
if (Lang.isNotEmpty(nutMap)) {
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
return Result.success("导入成功");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
}
|
||||
+106
@@ -0,0 +1,106 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.info;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.sys.models.Sys_union;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberInquireHistoryController
|
||||
* @Date 2024/8/8 12:07
|
||||
* @注释 会员历史台账
|
||||
*/
|
||||
@At("/platform/member/info/history")
|
||||
@Ok("json:full")
|
||||
@IocBean
|
||||
public class MemberInfoHistoryController {
|
||||
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/info/history/index.html")
|
||||
@SaCheckPermission("member.info.history")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.info.history")
|
||||
public Result pageData(MemberInfoPageForm pageForm) {
|
||||
Sql sql = memberInfoService.getMemberHistorySql(pageForm);
|
||||
Pagination pagination = memberInfoService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.info.history")
|
||||
@SLog(type = "memberInfoHistory", tag = "会员历史台账", msg = "按分工会导出会员历史台账")
|
||||
public void doExportByUnion(@Valid Integer year, HttpServletResponse response) {
|
||||
List<NutMap> memberHisList = memberInfoService.historyExportByUnionData(year);
|
||||
List<Sys_union> unionList = memberInfoService.dao().query(Sys_union.class, Cnd.NEW());
|
||||
try {
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("content-disposition", "attachment;filename="
|
||||
+ URLEncoder.encode(year + "年度会员.zip", "UTF-8"));
|
||||
ZipOutputStream zipOutputStream = new ZipOutputStream(new BufferedOutputStream(response.getOutputStream()));
|
||||
for (Sys_union union : unionList) {
|
||||
String fileName = union.getUnionCode() + union.getName().replaceAll("/", "、") + "会员表.xlsx";
|
||||
zipOutputStream.putNextEntry(new ZipEntry(fileName));
|
||||
List<NutMap> usersByUnion = memberHisList.stream().filter(v -> Strings.isNotBlank(v.getString("unionId")) && v.getString("unionId").equals(union.getId())).collect(Collectors.toList());
|
||||
Workbook workbook = memberInfoService.setHistoryExcelData(usersByUnion);
|
||||
workbook.write(zipOutputStream);
|
||||
zipOutputStream.closeEntry();
|
||||
response.flushBuffer();
|
||||
}
|
||||
zipOutputStream.flush();
|
||||
zipOutputStream.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.info.history")
|
||||
@SLog(type = "memberInfoHistory", tag = "会员历史台账", msg = "按条件导出会员历史台账")
|
||||
public void doExport(MemberInfoPageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = memberInfoService.getMemberHistorySql(pageForm);
|
||||
List<NutMap> list = memberInfoService.listMap(sql);
|
||||
try {
|
||||
Workbook workbook = memberInfoService.setHistoryExcelData(list);
|
||||
CommonDownloadUtil.download(pageForm.getYear() + "年会员历史台账表.xlsx", workbook, response);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.modelworker;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberModelWorkerPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberModelWorkerService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
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.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberModelWorkerController
|
||||
* @Date 2024/9/25 14:24
|
||||
* @注释
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/modelWorker/manage")
|
||||
public class MemberModelWorkerController {
|
||||
|
||||
@Inject
|
||||
private MemberModelWorkerService memberModelWorkerService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/modelworker/manage/index.html")
|
||||
@SaCheckPermission("member.modelWorker.manage")
|
||||
public void index() {}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.modelWorker.manage")
|
||||
public Result pageData(MemberModelWorkerPageForm pageForm) {
|
||||
Sql sql = memberModelWorkerService.getSql(pageForm);
|
||||
Pagination pagination = memberModelWorkerService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.modelWorker.manage")
|
||||
public Result setModelWorker(String userId) {
|
||||
if (StrUtil.isNotBlank(userId)) {
|
||||
memberModelWorkerService.update(Chain.make("isModelWorker", true), Cnd.where("id", "=", userId));
|
||||
return Result.success();
|
||||
} else {
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 取消劳模身份
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission(value = {"member.modelWorker.manage","member.branchUnion.manage.list","member.schoolUnion.manage.list"}, mode = SaMode.OR)
|
||||
public Result cancelModelWorker(@Param("userIds") String[] userIds) {
|
||||
List<String> list = Arrays.asList(userIds);
|
||||
if (Lang.isNotEmpty(list)) {
|
||||
memberModelWorkerService.update(Chain.make("isModelWorker", false), Cnd.where("id", "in", list));
|
||||
return Result.success();
|
||||
} else {
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.modelWorker.manage")
|
||||
public void doExport(MemberModelWorkerPageForm pageForm, HttpServletResponse response){
|
||||
memberModelWorkerService.doExport(pageForm, response);
|
||||
}
|
||||
}
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.school;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.annotation.RepeatSubmit;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.bpm.enums.BpmTaskApprovalTypeEnum;
|
||||
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberSchoolUnionManageService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
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 org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolUnionAuditController
|
||||
* @Date 2024/8/13 8:49
|
||||
* @注释
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/schoolUnion/audit")
|
||||
public class MemberSchoolUnionAuditController {
|
||||
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@Inject
|
||||
private MemberSchoolUnionManageService memberSchoolUnionManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/school/audit/index.html")
|
||||
@SaCheckPermission("member.schoolUnion.audit")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.audit")
|
||||
public Result pageData(MemberManagePageForm pageForm) {
|
||||
Pagination pageData = memberSchoolUnionManageService.getPageData(pageForm);
|
||||
return Result.success(pageData);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.schoolUnion.audit")
|
||||
@SLog(tag = "会员管理-校工会管理", type = "memberSchoolUnionAudit", msg = "校工会会员审核")
|
||||
public Result approval(@Param("approval") @Valid BpmTaskApprovalParam approvalParam) {
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(approvalParam);
|
||||
if (approvalParam.getBpmTaskApprovalTypeEnum().equals(BpmTaskApprovalTypeEnum.PASS)) {
|
||||
MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, Cnd.where("id", "=", approvalParam.getProcessInstanceBusinessId()));
|
||||
if (StrUtil.isNotEmpty(approvalParam.getApprovalRemark())) {
|
||||
memberManageService.dao().update(MemberApplyRecord.class, Chain.make("remark", approvalParam.getApprovalRemark()), Cnd.where("id", "=", record.getId()));
|
||||
}
|
||||
memberManageService.compareMemberChangeInfoAndUpdateUser(record);
|
||||
}
|
||||
bpmService.completeTask(approvalParam.getProcessInstanceTaskId(), approvalParam.getBpmTaskApprovalTypeEnum(), variables, null);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("校工会审核撤回")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.schoolUnion.audit")
|
||||
@SLog(tag = "会员管理-校工会管理", type = "memberSchoolUnionAudit", msg = "校工会审核撤回")
|
||||
public Result revoke(@Valid String taskId) {
|
||||
bpmService.revokeTask(taskId);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取变更信息,审核
|
||||
* @param recordId
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission(value = {"member.branchUnion.audit", "member.schoolUnion.audit"}, mode = SaMode.OR)
|
||||
public Result findAuditChangeInfo(String recordId) {
|
||||
Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", recordId).or("id","=",recordId));
|
||||
MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class, recordId);
|
||||
if (ObjectUtil.isAllEmpty(history, record)) {
|
||||
return Result.error("获取变更信息失败");
|
||||
}
|
||||
List<BpmTaskApprovalRecordVo> nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE, recordId);
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
List<NutMap> nutMaps = memberManageService.compareMemberChangeInfo(record);
|
||||
return Result.success(NutMap.NEW().addv("changeList", nutMaps).addv("nodeTasks", nodeTasks));
|
||||
}
|
||||
}
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.school;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.annotation.RepeatSubmit;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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 javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolUnionManageController
|
||||
* @Date 2024/8/12 14:06
|
||||
* @注释 会员校工会管理
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/schoolUnion/manage/list")
|
||||
@Slf4j
|
||||
@Ok("json")
|
||||
public class MemberSchoolUnionManageController {
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/school/manage/index.html")
|
||||
@SaCheckPermission("member.schoolUnion.manage.list")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.manage.list")
|
||||
public Result pageData(MemberManagePageForm pageForm){
|
||||
Sql sql = memberManageService.getSql(pageForm, "schoolUnion");
|
||||
Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.manage.list")
|
||||
@SLog(tag = "添加会员", type = "memberBranchManage", msg = "添加会员")
|
||||
public Result addMember(@Valid MemberApplyRecord record) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.manage.list")
|
||||
public Result getChangeInfoByUserId(String userId) {
|
||||
return Result.success(memberManageService.getMemberChangeInfoByUserId(userId));
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@SaCheckPermission("member.branchUnion.manage.list")
|
||||
@SLog(tag = "校工会管理-会员管理", type = "MemberBranchManageList", msg = "校工会普通变更")
|
||||
public Result generalMemberChange(@Param("record") MemberApplyRecord record, @Param("approvalRemark") String approvalRemark){
|
||||
//校工会变更,直接更改
|
||||
try {
|
||||
// 校验是否有变更的字段
|
||||
List<NutMap> changeInfoList = memberManageService.compareMemberChangeInfo(record);
|
||||
// 存储变更的类型
|
||||
List<String> changeTypeList = memberManageService.compareMemberChangeType(changeInfoList, record);
|
||||
record.setChangeTypes(changeTypeList);
|
||||
record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION.name());
|
||||
record.setRemark(approvalRemark);
|
||||
memberManageService.insert(record);
|
||||
memberManageService.compareMemberChangeInfoAndUpdateUser(record);
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return Result.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.school;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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 javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolRecordController
|
||||
* @Date 2024/8/13 16:27
|
||||
* @注释 校工会 会员变更记录
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/schoolUnion/record")
|
||||
public class MemberSchoolUnionRecordController {
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/school/record/index.html")
|
||||
@SaCheckPermission("member.schoolUnion.record")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.record")
|
||||
public Result pageData(MemberManagePageForm pageForm){
|
||||
Pagination pagination = memberManageService.memberHistoryRecords(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.record")
|
||||
public Result findAuditChangeInfo(@Valid String recordId) {
|
||||
Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, recordId);
|
||||
List<NutMap> list = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(list);
|
||||
}
|
||||
}
|
||||
+252
@@ -0,0 +1,252 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.school.verification;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.budwk.app.base.annotation.RepeatSubmit;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.base.utils.EasyExcelUtil;
|
||||
import com.budwk.app.sys.models.Sys_union;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.zhgh.benefit.mode.BenefitUserTemp;
|
||||
import com.budwk.app.zhgh.staffmanage.member.mode.MemberImportTemp;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationProjectParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService;
|
||||
import com.budwk.app.zhgh.welfare.mode.WelfareUserTemp;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
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.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.AdaptBy;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
import org.nutz.mvc.upload.UploadAdaptor;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationController
|
||||
* @Date 2024/8/5 13:37
|
||||
* @注释 会员名单核对事项
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/member/schoolUnion/verification/manage")
|
||||
@Ok("json")
|
||||
@Slf4j
|
||||
public class MemberListVerificationController {
|
||||
|
||||
@Inject
|
||||
private SysDictService sysDictService;
|
||||
|
||||
@Inject
|
||||
private MemberListVerificationService memberListVerificationService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/school/verification/manage/index.html")
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result pageData(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = Sqls.create("select * from member_list_verification_project $condition");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and(Cnd.likeEX("projectName",pageForm.getSearchKeyword()));
|
||||
cnd.andEX("YEAR(applyDate)", "=", pageForm.getProjectYear());
|
||||
cnd.desc("applyDate");
|
||||
sql.setCondition(cnd);
|
||||
Pagination pagination = memberListVerificationService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result getUserPageData(MemberListVerificationPageForm pageForm) {
|
||||
Pagination pagination = memberListVerificationService.getUserPageData(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取该项目中的选择人员
|
||||
*
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result getShowSelectionUsers(@Param("data") MemberListVerificationPageForm pageForm) {
|
||||
Pagination pagination = memberListVerificationService.getShowSelectionUsers(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("修改校工会事项名单的选择人员")
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
@SLog(type = "verificationManage", tag = "校工会名单事项管理", msg = "修改校工会事项名单的选择人员")
|
||||
public Result modifySelection(@Valid @Param("list") MemberListVerificationParam param) {
|
||||
try {
|
||||
memberListVerificationService.modifySelection(param);
|
||||
return Result.success();
|
||||
} catch (RuntimeException e) {
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用于前端表格回显选中数据框
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result getSelectionUser(@Valid @Param("id") String id) {
|
||||
NutMap map = NutMap.NEW();
|
||||
//获取更改字段名,回显表头勾选框
|
||||
MemberListVerificationProject project = memberListVerificationService.dao().fetch(MemberListVerificationProject.class, id);
|
||||
List<String> renewFields = project.getRenewFields();
|
||||
map.put("renewFields", renewFields);
|
||||
return Result.success(map);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
@SLog(type = "verificationManage", tag = "校工会名单事项管理", msg = "新增/修改核对事项")
|
||||
public Result insertOrUpdate(@Valid @Param("data") MemberListVerificationProjectParam param) {
|
||||
try {
|
||||
memberListVerificationService.insertOrUpdateVerificationProject(param);
|
||||
return Result.success();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return Result.error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result releaseVerificationProject(String verificationProjectId) {
|
||||
memberListVerificationService.dao().update(MemberListVerificationProject.class,
|
||||
Chain.make("isEnabled", true).add("releaseDateTime", DateUtil.now()),
|
||||
Cnd.where("id", "=", verificationProjectId));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result closeVerificationProject(String verificationProjectId) {
|
||||
memberListVerificationService.dao().update(MemberListVerificationProject.class,
|
||||
Chain.make("isEnabled", false), Cnd.where("id", "=", verificationProjectId));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result removeVerificationProject(String verificationProjectId) {
|
||||
Dao dao = memberListVerificationService.dao();
|
||||
dao.clear(MemberListVerificationProject.class, Cnd.where("id", "=", verificationProjectId));
|
||||
dao.clear(MemberApplyRecord.class, Cnd.where("verificationProjectId", "=", verificationProjectId));
|
||||
dao.clear(MemberListVerificationUser.class, Cnd.where("verificationProjectId", "=", verificationProjectId));
|
||||
dao.clear(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", verificationProjectId));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result findOne(String verificationProjectId) {
|
||||
MemberListVerificationProject project = memberListVerificationService.dao().fetch(MemberListVerificationProject.class, Cnd.where("id", "=", verificationProjectId));
|
||||
NutMap nutMap = Lang.obj2nutmap(project);
|
||||
List<String> unionIds = project.getUnionIds();
|
||||
List<Sys_union> unionList = memberListVerificationService.dao().query(Sys_union.class, Cnd.where("id", "in", unionIds));
|
||||
String string = unionList.stream().map(Sys_union::getName).collect(Collectors.joining(","));
|
||||
nutMap.put("unionNames", string);
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public Result removeMemberVerificationUserById(String id){
|
||||
memberListVerificationService.dao().delete(MemberListVerificationUser.class, id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
public void downloadImport(HttpServletResponse response) {
|
||||
try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();){
|
||||
EasyExcel.write(byteArrayOutputStream, MemberImportTemp.class)
|
||||
.sheet("预选人员导入模版")
|
||||
.doWrite(ArrayList::new);
|
||||
CommonDownloadUtil.download("预选人员导入模版.xlsx",byteArrayOutputStream.toByteArray() ,response);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.manage")
|
||||
@AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"})
|
||||
public Result doImport(TempFile file, String verificationProjectId){
|
||||
List<T> ts = EasyExcelUtil.syncReadModel(file.getFile(), BenefitUserTemp.class, 0, 1);
|
||||
List<MemberImportTemp> tempList = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(MemberImportTemp.class);
|
||||
List<String> loginNameList = tempList.stream().map(MemberImportTemp::getLoginName).toList();
|
||||
|
||||
MemberListVerificationPageForm pageForm = new MemberListVerificationPageForm();
|
||||
pageForm.setQueryLoginNames(loginNameList);
|
||||
pageForm.setVerificationProjectId(verificationProjectId);
|
||||
pageForm.setPageNumber(1);
|
||||
pageForm.setPageSize(100000);
|
||||
Pagination userPageData = memberListVerificationService.getUserPageData(pageForm);
|
||||
return Result.success(userPageData);
|
||||
}
|
||||
}
|
||||
+370
@@ -0,0 +1,370 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.school.verification;
|
||||
|
||||
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.bean.BeanUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.annotation.RepeatSubmit;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_change_info;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberSchoolVerificationSubmitParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberVerificationGetChangeParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
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.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 javax.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolListVerificationController
|
||||
* @Date 2024/8/13 16:23
|
||||
* @注释 校工会,名单核对事项
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/member/schoolUnion/verification/check")
|
||||
public class MemberSchoolVerificationCheckController {
|
||||
|
||||
@Inject
|
||||
private MemberListVerificationService memberListVerificationService;
|
||||
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/school/verification/check/index.html")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public Result pageData(MemberListVerificationPageForm pageForm) {
|
||||
List<NutMap> mapList = memberListVerificationService.getSchoolListVerificationUnion(pageForm);
|
||||
return Result.success(mapList);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public Result getCheckedMemberByUnionId(MemberListVerificationPageForm pageForm) {
|
||||
Pagination pagination = memberListVerificationService.getSchoolListVerificationUser(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public Result getVerificationChangeInfo(@Valid @Param("data") MemberVerificationGetChangeParam param) {
|
||||
MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class,
|
||||
Cnd.where("userId", "=", param.getUserId()).and("verificationProjectId", "=", param.getVerificationProjectId()));
|
||||
if (Lang.isNotEmpty(record)) {
|
||||
Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()).desc("changeTime"));
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
return Result.success(memberManageService.compareMemberChangeInfo(history));
|
||||
} else {
|
||||
return Result.success(memberManageService.compareMemberChangeInfo(record));
|
||||
}
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校工会审核名单核对事项中的单个人员,
|
||||
* 通过:更新人员信息和名单核对人员库,新增一条历史信息
|
||||
* 不通过:返回分工会重新核对
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
@SLog(type = "member", tag = "名单核对事项", msg = "校工会审核")
|
||||
public Result doHandle(@Valid @Param("data") MemberVerificationGetChangeParam param) {
|
||||
// 判断校工会审核该用户是通过还是拒绝
|
||||
Chain chain = Chain.make("schoolUnionChecked", true);
|
||||
chain.add("verificationOption", param.getOption());
|
||||
|
||||
MemberApplyRecord record = memberManageService.dao().fetch(MemberApplyRecord.class,
|
||||
Cnd.where("userId", "=", param.getUserId())
|
||||
.and("verificationProjectId", "=", param.getVerificationProjectId()));
|
||||
|
||||
if (param.getFlag()) {
|
||||
chain.add("currentState", 2);
|
||||
memberManageService.compareMemberChangeInfoAndUpdateUser(record);
|
||||
} else {
|
||||
chain.add("currentState", 1);
|
||||
memberManageService.update(record);
|
||||
}
|
||||
memberManageService.dao().update(MemberListVerificationUser.class, chain,
|
||||
Cnd.where("userId", "=", param.getUserId()).and("verificationProjectId", "=", param.getVerificationProjectId()));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
@SLog(type = "member", tag = "名单核对事项", msg = "校工会提交")
|
||||
public Result schoolVerificationSubmit(@Valid @Param("data") MemberSchoolVerificationSubmitParam param) {
|
||||
MemberVerificationBranchUnionFeedback fetch = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class,
|
||||
Cnd.where("verificationProjectId", "=", param.getVerificationProjectId())
|
||||
.and("unionId", "=", param.getUnionId()));
|
||||
fetch.setSchoolUnionSubmit(true);
|
||||
fetch.setSchoolUnionSubmitNum(fetch.getSchoolUnionSubmitNum() + 1);
|
||||
fetch.setStatus("待分工会重新提交");
|
||||
// 更新反馈表的数据,校工会提交置为true
|
||||
memberManageService.dao().update(fetch);
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("unionId", "=", param.getUnionId());
|
||||
cnd.and("verificationProjectId", "=", param.getVerificationProjectId());
|
||||
|
||||
memberManageService.dao().update(MemberListVerificationUser.class,
|
||||
Chain.make("branchUnionChecked", false).add("schoolUnionChecked", true),
|
||||
cnd);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public void exportExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response) {
|
||||
memberListVerificationService.exportVerificationExcel(pageForm, response, false);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public Result getChangeTypeUserPageData(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = memberListVerificationService.getChangeTypeUserSql(pageForm);
|
||||
Pagination pagination = memberManageService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public void exportChangeTypeUserByUnionIdExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = memberListVerificationService.getChangeTypeUserSql(pageForm);
|
||||
List<NutMap> list = memberManageService.listMap(sql);
|
||||
List<ExcelExportEntity> excelExportEntities = memberListVerificationService.buildExportEntities();
|
||||
NutMap nutMap = list.stream().findFirst().orElse(NutMap.NEW());
|
||||
String labelName = "";
|
||||
switch (pageForm.getChangeType()) {
|
||||
case "userState" -> {
|
||||
labelName = "在职状态变更列表";
|
||||
excelExportEntities.add(new ExcelExportEntity("原在职状态", "oldUserState", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("新在职状态", "newUserState", 20));
|
||||
}
|
||||
case "restore" -> labelName = "入会人员列表";
|
||||
case "withdrawal" -> labelName = "退会人员列表";
|
||||
case "member" -> labelName = "最终会员列表";
|
||||
case "welfareMember" -> labelName = "最终福利会员列表";
|
||||
}
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelExportEntities, list);
|
||||
CommonDownloadUtil.download(nutMap.getString("unionName") + labelName + ".xlsx", workbook, response);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public void exportAllChangeTypeUserExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response){
|
||||
MemberListVerificationProject project = memberManageService.dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId());
|
||||
Sql sql = memberListVerificationService.getChangeTypeUserSql(pageForm);
|
||||
List<NutMap> list = memberManageService.listMap(sql);
|
||||
List<ExcelExportEntity> excelExportEntities = memberListVerificationService.buildExportEntities();
|
||||
String labelName = "";
|
||||
switch (pageForm.getChangeType()) {
|
||||
case "userState" -> {
|
||||
labelName = "在职状态变更列表";
|
||||
excelExportEntities.add(new ExcelExportEntity("原在职状态", "oldUserState", 20));
|
||||
excelExportEntities.add(new ExcelExportEntity("新在职状态", "newUserState", 20));
|
||||
}
|
||||
case "restore" -> labelName = "入会人员列表";
|
||||
case "withdrawal" -> labelName = "退会人员列表";
|
||||
case "member" -> labelName = "最终会员列表";
|
||||
case "welfareMember" -> labelName = "最终福利会员列表";
|
||||
}
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, excelExportEntities, list);
|
||||
CommonDownloadUtil.download( project.getProjectName() + labelName + ".xlsx", workbook, response);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("校工会 名单核对事项,单个人员变更")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
@SLog(tag = "校工会管理-名单核对事项", type = "schoolUnionVerification", msg = "校工会单个人员变更")
|
||||
public Result doCheckMember(@Param("record") MemberApplyRecord record){
|
||||
if (Objects.isNull(record)) {
|
||||
return Result.error("数据获取失败");
|
||||
}
|
||||
Dao dao = memberManageService.dao();
|
||||
record.setChangeOrigin(MemberChangeOrigin.SCHOOL_UNION_VERIFICATION.name());
|
||||
MemberApplyRecord applyRecord = dao.fetch(MemberApplyRecord.class, Cnd.where("userId", "=", record.getUserId())
|
||||
.and("verificationProjectId", "=", record.getVerificationProjectId()));
|
||||
// 如果之前有变更,删除之前记录
|
||||
if (Lang.isNotEmpty(applyRecord)) {
|
||||
record.setId(applyRecord.getId());
|
||||
Sys_user_history history = dao.fetch(Sys_user_history.class, Cnd.where("loginname", "=", applyRecord.getLoginname())
|
||||
.and("recordId", "=", record.getId()));
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
Sys_user user = BeanUtil.copyProperties(history, Sys_user.class);
|
||||
user.setId(record.getUserId());
|
||||
dao.update(user);
|
||||
dao.clear(Sys_user_change_info.class, Cnd.where("userHistoryId", "=", history.getId()));
|
||||
}
|
||||
}
|
||||
dao.insertOrUpdate(record);
|
||||
dao.update(MemberListVerificationUser.class,
|
||||
Chain.make("isChanged", true).add("branchUnionChecked", true),
|
||||
Cnd.where("userId", "=", record.getUserId())
|
||||
.and("verificationProjectId", "=", record.getVerificationProjectId()));
|
||||
dao.clear(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()));
|
||||
|
||||
memberManageService.compareMemberChangeInfoAndUpdateUser(record);
|
||||
|
||||
dao.update(MemberListVerificationUser.class,
|
||||
Chain.make("schoolUnionChecked", true).add("currentState", 2),
|
||||
Cnd.where("userId", "=", record.getUserId())
|
||||
.and("verificationProjectId", "=", record.getVerificationProjectId()));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@RepeatSubmit
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("校工会 名单核对事项,退回分工会无误提交")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
@SLog(tag = "校工会管理-名单核对事项", type = "schoolUnionVerification", msg = "退回分工会无误提交")
|
||||
public Result doRollback(@Valid @Param("id") String id,
|
||||
@Valid @Param("rollbackReason") String rollbackReason){
|
||||
MemberVerificationBranchUnionFeedback feedback = memberManageService.dao().fetch(MemberVerificationBranchUnionFeedback.class,
|
||||
Cnd.where("id", "=", id));
|
||||
feedback.setIsRollback(true);
|
||||
feedback.setRollbackReason(rollbackReason);
|
||||
feedback.setSchoolUnionSubmitNum(feedback.getSchoolUnionSubmitNum() + 1);
|
||||
feedback.setStatus("校工会退回");
|
||||
memberManageService.dao().update(feedback);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public void doExportByPageDataForExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response){
|
||||
MemberListVerificationProject project = memberManageService.dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId());
|
||||
List<NutMap> mapList = memberListVerificationService.getSchoolListVerificationUnion(pageForm);
|
||||
mapList.forEach(v-> {
|
||||
v.put("branchUnionSubmit" ,v.getBoolean("branchUnionSubmit") ? "已提交" : "未提交");
|
||||
v.put("isFeedback" ,v.getBoolean("isFeedback") ? "已反馈" : "未反馈");
|
||||
});
|
||||
|
||||
// excel表格数据
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("工会名称", "unionName", 30));
|
||||
exportEntities.add(new ExcelExportEntity("需核对人数", "allNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("变更总人数", "sex", 20));
|
||||
exportEntities.add(new ExcelExportEntity("在职状态变更数", "userStateNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("入会人数", "restoreNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("退会人数", "withdrawalNum", 30));
|
||||
exportEntities.add(new ExcelExportEntity("最终会员数", "lastMemberNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("最终福利会员数", "lastWelfareMemberNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("分工会提交次数", "branchUnionSubmitNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("分工会提交状态", "branchUnionSubmit", 20));
|
||||
exportEntities.add(new ExcelExportEntity("反馈状态", "isFeedback", 15));
|
||||
exportEntities.add(new ExcelExportEntity("当前状态", "status", 15));
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, mapList);
|
||||
CommonDownloadUtil.download( project.getProjectName() + "分工会核对数据.xlsx", workbook, response);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public Result getWelfareUserInfo(@Valid String projectId) {
|
||||
NutMap nutMap = memberListVerificationService.welfareUserInfo(projectId);
|
||||
return Result.success(nutMap);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.schoolUnion.verification.check")
|
||||
public void welfareChooseNumExport(@Valid String projectId, HttpServletResponse response){
|
||||
NutMap nutMap = memberListVerificationService.welfareUserInfo(projectId);
|
||||
|
||||
if (Lang.isNotEmpty(nutMap)) {
|
||||
// 构建excel表格数据
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
ExcelExportEntity no = new ExcelExportEntity("序号", "no", 10);
|
||||
no.setFormat("isAddIndex");
|
||||
exportEntities.add(no);
|
||||
|
||||
List<String> tableHeader = nutMap.getAsList("tableHeader", String.class);
|
||||
for (String name : tableHeader) {
|
||||
exportEntities.add(new ExcelExportEntity(name, name, 30));
|
||||
}
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, nutMap.getAsList("tableData", NutMap.class));
|
||||
CommonDownloadUtil.download("分工会福利上报数据.xlsx", workbook, response);
|
||||
}
|
||||
}
|
||||
}
|
||||
+86
@@ -0,0 +1,86 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
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 javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberAnalysisController
|
||||
* @Date 2024/8/8 16:08
|
||||
* @注释 会员分析
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@At("/platform/member/statistics/analysis")
|
||||
public class MemberAnalysisController {
|
||||
|
||||
@Inject
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/statistics/analysis/index.html")
|
||||
@SaCheckPermission("member.statistics.analysis")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.statistics.analysis")
|
||||
public Result pageData(@Param(value = "queryId") String queryId,
|
||||
@Param(value = "queryType") String queryType,
|
||||
@Param(value = "currentYear") Integer currentYear) {
|
||||
List<NutMap> list = new ArrayList<>();
|
||||
if ("fgh".equals(queryType)) {
|
||||
list = memberStatisticsService.getUnionAnalysisData(queryId, currentYear);
|
||||
} else {
|
||||
list = memberStatisticsService.getUnitAnalysisData(queryId, currentYear);
|
||||
}
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.statistics.analysis")
|
||||
public void doExport(@Param("queryType") String queryType, @Param("currentYear") String currentYear,
|
||||
@Param("queryId") String queryId, HttpServletResponse response) {
|
||||
List<NutMap> list = new ArrayList<>();
|
||||
if ("union".equals(queryType)) {
|
||||
list = memberStatisticsService.getUnionAnalysisData(queryId, Integer.valueOf(currentYear));
|
||||
} else {
|
||||
list = memberStatisticsService.getUnitAnalysisData(queryId, Integer.valueOf(currentYear));
|
||||
}
|
||||
NutMap sumMap = NutMap.NEW();
|
||||
sumMap.put("union".equals(queryType) ? "unionName" : "unitName", "合计");
|
||||
sumMap.put("lastYearMemberNum", list.stream().mapToInt(v -> v.getInt("lastYearMemberNum")).sum());
|
||||
sumMap.put("newMemberNum", list.stream().mapToInt(v -> v.getInt("newMemberNum")).sum());
|
||||
sumMap.put("newResetMemberNum", list.stream().mapToInt(v -> v.getInt("newResetMemberNum")).sum());
|
||||
sumMap.put("memberUnitChangeNumOut", list.stream().mapToInt(v -> v.getInt("memberUnitChangeNumOut")).sum());
|
||||
sumMap.put("reduceOtherNum", list.stream().mapToInt(v -> v.getInt("reduceOtherNum")).sum());
|
||||
sumMap.put("currentYearMemberNum", list.stream().mapToInt(v -> v.getInt("currentYearMemberNum")).sum());
|
||||
|
||||
list.add(sumMap);
|
||||
try {
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("会员信息.xlsx").getBytes("utf-8"), "ISO8859-1"));
|
||||
Workbook workbook = memberStatisticsService.exportAnalysisExcel(list, queryType);
|
||||
workbook.write(response.getOutputStream());
|
||||
workbook.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.DesensitizedUtil;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService;
|
||||
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.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberComprehensiveController
|
||||
* @Date 2024/8/8 14:45
|
||||
* @注释 综合统计
|
||||
*/
|
||||
@At("/platform/member/statistics/comprehensive")
|
||||
@Ok("json:full")
|
||||
@IocBean
|
||||
public class MemberComprehensiveController {
|
||||
|
||||
@Inject
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
|
||||
@Inject
|
||||
private MemberInfoService memberInfoService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/statistics/comprehensive/index.html")
|
||||
@SaCheckPermission("member.statistics.comprehensive")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.statistics.comprehensive")
|
||||
public Result pageData(MemberStatisticsPageForm pageForm) {
|
||||
Sql sql = memberStatisticsService.getComprehensiveSql(pageForm);
|
||||
Pagination<NutMap> pagination = memberStatisticsService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
for (NutMap row : pagination.getList()) {
|
||||
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||
}
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.statistics.comprehensive")
|
||||
public void doExport(MemberStatisticsPageForm pageForm, HttpServletResponse response){
|
||||
Sql sql = memberStatisticsService.getComprehensiveSql(pageForm);
|
||||
List<NutMap> list = memberStatisticsService.listMap(sql);
|
||||
for (NutMap row : list) {
|
||||
row.put("mobile", DesensitizedUtil.mobilePhone(row.getString("mobile")));
|
||||
}
|
||||
try {
|
||||
Workbook workbook = memberInfoService.setHistoryExcelData(list);
|
||||
CommonDownloadUtil.download("会员综合统计表.xlsx", workbook, response);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.controller.statistics;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
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 javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSummaryController
|
||||
* @Date 2024/8/9 9:32
|
||||
* @注释 会员按性别年龄汇总统计
|
||||
*/
|
||||
@At("/platform/member/statistics/summary")
|
||||
@Ok("json:full")
|
||||
@IocBean
|
||||
public class MemberSummaryController {
|
||||
|
||||
@Inject
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/member/statistics/summary/index.html")
|
||||
@SaCheckPermission("member.statistics.summary")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("member.statistics.summary")
|
||||
public Result pageData(@Param("queryId") String queryId, @Param("queryType") String queryType,
|
||||
@Param("currentYear") Integer currentYear) {
|
||||
List<NutMap> list = new ArrayList<>();
|
||||
if ("fgh".equals(queryType)) {
|
||||
list = memberStatisticsService.getUnionStatisticsData(queryId, currentYear);
|
||||
} else {
|
||||
list = memberStatisticsService.getUnitStatisticsData(queryId, currentYear);
|
||||
}
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("member.statistics.summary")
|
||||
public void doExport(@Param("queryId") String queryId, @Param("queryType") String queryType,
|
||||
@Param("currentYear") Integer currentYear, HttpServletResponse response) {
|
||||
List<NutMap> list = new ArrayList<>();
|
||||
if ("union".equals(queryType)) {
|
||||
list = memberStatisticsService.getUnionStatisticsData(queryId, currentYear);
|
||||
} else {
|
||||
list = memberStatisticsService.getUnitStatisticsData(queryId, currentYear);
|
||||
}
|
||||
NutMap map = NutMap.NEW();
|
||||
map.put("union".equals(queryType) ? "unionName" : "unitName", "合计");
|
||||
map.put("totalNumber", list.stream().mapToInt(v -> v.getInt("TotalNumber")).sum());
|
||||
map.put("maleMember", list.stream().mapToInt(v -> v.getInt("maleMember")).sum());
|
||||
map.put("femaleMember", list.stream().mapToInt(v -> v.getInt("femaleMember")).sum());
|
||||
map.put("smallForty", list.stream().mapToInt(v -> v.getInt("smallForty")).sum());
|
||||
map.put("smallFifty", list.stream().mapToInt(v -> v.getInt("smallFifty")).sum());
|
||||
map.put("smallFiftyFive", list.stream().mapToInt(v -> v.getInt("smallFiftyFive")).sum());
|
||||
map.put("smallFiftyFive2", list.stream().mapToInt(v -> v.getInt("smallFiftyFive2")).sum());
|
||||
try {
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("会员性别统计.xlsx").getBytes("utf-8"), "ISO8859-1"));
|
||||
Workbook workbook = memberStatisticsService.exportStatisticsExcel(list, queryType);
|
||||
workbook.write(response.getOutputStream());
|
||||
workbook.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.h5controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:H5MemberApplyController
|
||||
* @Date 2024/11/12 14:46
|
||||
* @注释
|
||||
*/
|
||||
@IocBean
|
||||
@Ok("json:full")
|
||||
@Api("h5会员入会")
|
||||
@At("/platform/h5/member/apply")
|
||||
public class H5MemberApplyController {
|
||||
|
||||
@At("/submit")
|
||||
@Ok("beetl:/platform/zhghh5/staffmanage/member/apply/submit/index.html")
|
||||
@SaCheckPermission("h5.member.apply.submit")
|
||||
public void submit() {
|
||||
}
|
||||
|
||||
@At("/mine")
|
||||
@Ok("beetl:/platform/zhghh5/staffmanage/member/apply/mine/index.html")
|
||||
@SaCheckPermission("h5.member.apply.mine")
|
||||
public void mine() {
|
||||
}
|
||||
|
||||
@At("/branch")
|
||||
@Ok("beetl:/platform/zhghh5/staffmanage/member/apply/branch/index.html")
|
||||
@SaCheckPermission("h5.member.apply.branch")
|
||||
public void branch() {
|
||||
}
|
||||
|
||||
@At("/school")
|
||||
@Ok("beetl:/platform/zhghh5/staffmanage/member/apply/school/index.html")
|
||||
@SaCheckPermission("h5.member.apply.school")
|
||||
public void school() {
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.h5controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:H5MemberBoardController
|
||||
* @Date 2024/9/26 16:54
|
||||
* @注释
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/h5/member/board")
|
||||
@Ok("json:full")
|
||||
@Api("h5会员查询")
|
||||
public class H5MemberBoardController {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/staffmanage/member/board/index.html")
|
||||
@SaCheckPermission("h5.member.query")
|
||||
public void index() {
|
||||
}
|
||||
}
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.h5controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:H5MemberQueryController
|
||||
* @Date 2024/9/26 16:54
|
||||
* @注释
|
||||
*/
|
||||
@IocBean
|
||||
@At("/platform/h5/member/query")
|
||||
@Ok("json:full")
|
||||
@Api("h5会员查询")
|
||||
public class H5MemberQueryController {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/staffmanage/member/query/index.html")
|
||||
@SaCheckPermission("h5.member.query")
|
||||
public void index() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.mode;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
|
||||
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberImportTemp
|
||||
* @Date 2025/2/24 10:55
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
@ContentRowHeight(20) // 内容行高
|
||||
@HeadRowHeight(20) // 表头行高
|
||||
@ColumnWidth(25) //列宽
|
||||
public class MemberImportTemp {
|
||||
|
||||
@ExcelProperty("工号")
|
||||
private String loginName;
|
||||
|
||||
@ExcelProperty("姓名")
|
||||
private String userName;
|
||||
}
|
||||
@@ -0,0 +1,250 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.models;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import com.budwk.app.sys.annotation.DataCenterColumn;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员申请记录
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Table("member_apply_record")
|
||||
@Comment("会员申请记录")
|
||||
public class MemberApplyRecord 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)
|
||||
@NotBlank(message = "用户不能为空")
|
||||
@Size(max = 32)
|
||||
private String userId;
|
||||
|
||||
@Column
|
||||
@Comment("姓名")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@NotBlank(message = "姓名不能为空")
|
||||
@Size(max = 100)
|
||||
private String username;
|
||||
|
||||
@Column
|
||||
@Comment("工号")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@NotBlank(message = "工号不能为空")
|
||||
@Size(max = 100)
|
||||
private String loginname;
|
||||
|
||||
@Column
|
||||
@Comment("单位id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@NotBlank(message = "单位id不能为空")
|
||||
@Size(max = 32)
|
||||
private String unitId;
|
||||
|
||||
@Column
|
||||
@Comment("变更单位id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Size(max = 32)
|
||||
private String changeUnitId;
|
||||
|
||||
@Column
|
||||
@Comment("单位名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||
@NotBlank(message = "单位名称不能为空")
|
||||
@Size(max = 200)
|
||||
private String unitName;
|
||||
|
||||
@Column
|
||||
@Comment("工会id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@NotBlank(message = "工会id不能为空")
|
||||
@Size(max = 32)
|
||||
private String unionId;
|
||||
|
||||
@Column
|
||||
@Comment("变更工会id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Size(max = 32)
|
||||
private String changeUnionId;
|
||||
|
||||
@Column
|
||||
@Comment("工会名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@NotBlank(message = "工会名称不能为空")
|
||||
@Size(max = 50)
|
||||
private String unionName;
|
||||
|
||||
@Column
|
||||
@Comment("性别")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 10)
|
||||
@NotBlank(message = "性别不能为空")
|
||||
@Size(max = 10)
|
||||
private String sex;
|
||||
|
||||
@Column
|
||||
@Comment("证件号码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 30)
|
||||
@NotBlank(message = "证件号码不能为空")
|
||||
@Size(max = 30)
|
||||
private String idCard;
|
||||
|
||||
@Column
|
||||
@Comment("民族")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
@NotBlank(message = "民族不能为空")
|
||||
@Size(max = 20)
|
||||
private String nation;
|
||||
|
||||
@Column
|
||||
@Comment("政治面貌")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@NotBlank(message = "政治面貌不能为空")
|
||||
@Size(max = 100)
|
||||
private String political;
|
||||
|
||||
@Column
|
||||
@Comment("学历")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
@NotBlank(message = "学历不能为空")
|
||||
@Size(max = 20)
|
||||
private String education;
|
||||
|
||||
@Column
|
||||
@Comment("党政职务")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@NotBlank(message = "党政职务不能为空")
|
||||
@Size(max = 50)
|
||||
private String governmentPosition;
|
||||
|
||||
@Column
|
||||
@Comment("在职状态")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@NotBlank(message = "在职状态不能为空")
|
||||
@Size(max = 50)
|
||||
private String userState;
|
||||
|
||||
@Column
|
||||
@Comment("人事编制")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@NotBlank(message = "人事编制不能为空")
|
||||
@Size(max = 50)
|
||||
private String preparedBy;
|
||||
|
||||
@Column
|
||||
@Comment("人员类别")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
@NotBlank(message = "人员类别不能为空")
|
||||
@Size(max = 50)
|
||||
private String personType;
|
||||
|
||||
@Column
|
||||
@Comment("手机号码")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@NotBlank(message = "手机号码不能为空")
|
||||
@Size(max = 32)
|
||||
private String mobile;
|
||||
|
||||
@Column
|
||||
@Comment("电子邮箱")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
@NotBlank(message = "电子邮箱不能为空")
|
||||
@Size(max = 255)
|
||||
private String email;
|
||||
|
||||
@Column
|
||||
@Comment("是否愿意加入大病互助基金会")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default(value = "0")
|
||||
@NotNull(message = "愿意加入大病互助基金会不能为空")
|
||||
private Boolean wantJoinLoveMutualAidAssociation;
|
||||
|
||||
@Column
|
||||
@Comment("会员状态")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default(value = "0")
|
||||
private Boolean member;
|
||||
|
||||
@Column
|
||||
@Comment("福利会员状态")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default(value = "0")
|
||||
private Boolean welfareMember;
|
||||
|
||||
@Column
|
||||
@Comment("家庭主要成员及其工作单位")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> families;
|
||||
|
||||
@Column
|
||||
@Comment("博士后进站时间")
|
||||
@ColDefine(type = ColType.DATE)
|
||||
private Date postDoctoralJoinDate;
|
||||
|
||||
@Column
|
||||
@Comment("个人简况")
|
||||
@ColDefine(type = ColType.VARCHAR, customType = "text")
|
||||
@NotBlank(message = "个人简况不能为空")
|
||||
private String personalData;
|
||||
|
||||
@Column
|
||||
@Comment("备注")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
private String notes;
|
||||
|
||||
@Column
|
||||
@Comment("变更类型")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 20)
|
||||
private String changeType;
|
||||
|
||||
@Column
|
||||
@Comment("变更类型集合")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<String> changeTypes;
|
||||
|
||||
@Column
|
||||
@Comment("变更来源")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 50)
|
||||
private String changeOrigin;
|
||||
|
||||
@Column
|
||||
@Comment("申请时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
@PrevInsert(now = true)
|
||||
private Date applyDateTime;
|
||||
|
||||
@Column
|
||||
@Comment("名单事项核对Id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String verificationProjectId;
|
||||
|
||||
private Boolean edit;
|
||||
|
||||
@Column
|
||||
@Comment("详细变更记录")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String changeInfos;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("详细变更记录")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
private String remark;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.models;
|
||||
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberHistory
|
||||
* @Date 2024/8/8 11:18
|
||||
* @注释 历史会员表
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@Data
|
||||
@Table("member_history")
|
||||
public class MemberHistory extends Sys_user {
|
||||
|
||||
@Column
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("年度")
|
||||
@ColDefine(type = ColType.INT, width = 4)
|
||||
private Integer year;
|
||||
|
||||
@Column
|
||||
@Comment("用户ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String userId;
|
||||
}
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.models;
|
||||
|
||||
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 javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationProject
|
||||
* @Date 2024/8/5 11:54
|
||||
* @注释 名单核对事项项目表
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Table("member_list_verification_project")
|
||||
@Comment("名单核对事项项目表")
|
||||
public class MemberListVerificationProject extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@PrevInsert(uu32 = true)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("名单核对事项名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
@NotBlank(message = "名单核对事项名称不能为空")
|
||||
@Size(max = 100)
|
||||
private String projectName;
|
||||
|
||||
@Column
|
||||
@Comment("名单核对事项内容及要求")
|
||||
@ColDefine(type = ColType.TEXT)
|
||||
@NotBlank(message = "名单核对事项内容及要求不能为空")
|
||||
private String content;
|
||||
|
||||
@Column
|
||||
@Comment("名单核对事项发布时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date releaseDateTime;
|
||||
|
||||
@Column
|
||||
@Comment("开始时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date startDate;
|
||||
|
||||
@Column
|
||||
@Comment("结束时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
private Date endDate;
|
||||
|
||||
@Column
|
||||
@Comment("推送分工会id")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<String> unionIds;
|
||||
|
||||
@Column
|
||||
@Comment("更新字段")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<String> renewFields;
|
||||
|
||||
@Column
|
||||
@Comment("附件")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> files;
|
||||
|
||||
@Column
|
||||
@Comment("是否需要反馈")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default(value = "1")
|
||||
@NotNull(message = "是否需要反馈不能为空")
|
||||
private Boolean isNeedFeedback;
|
||||
|
||||
@Column
|
||||
@Comment("是否需要反馈附件")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default(value = "1")
|
||||
@NotNull(message = "是否需要反馈附件不能为空")
|
||||
private Boolean isNeedFeedbackFile;
|
||||
|
||||
@Column
|
||||
@Comment("创建时间")
|
||||
@ColDefine(type = ColType.DATETIME)
|
||||
@PrevInsert(now = true)
|
||||
private Date applyDate;
|
||||
|
||||
@Column
|
||||
@Comment("是否开启")
|
||||
@Default(value = "1")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
private Boolean isEnabled;
|
||||
|
||||
@Column
|
||||
@Comment("福利")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> welfareJson;
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.models;
|
||||
|
||||
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:MemberListVerification
|
||||
* @Date 2024/8/5 11:51
|
||||
* @注释 会员名单核对事项用户表
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
@Table("member_list_verification_user")
|
||||
@Comment("会员名单核对事项用户表")
|
||||
public class MemberListVerificationUser extends MemberApplyRecord {
|
||||
|
||||
@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 verificationProjectId;
|
||||
|
||||
@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;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("名单事项审核意见")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||
private String verificationOption;
|
||||
}
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.models;
|
||||
|
||||
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:MemberVerificationBranchUnionFaceback
|
||||
* @Date 2024/8/16 9:49
|
||||
* @注释 名单核对事项,分工会反馈
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Table
|
||||
@Comment("名单核对事项,分工会反馈表")
|
||||
public class MemberVerificationBranchUnionFeedback 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 verificationProjectId;
|
||||
|
||||
@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 isFeedback;
|
||||
|
||||
@Column
|
||||
@Comment("分工会是否已提交")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default("0")
|
||||
private Boolean branchUnionSubmit;
|
||||
|
||||
@Column
|
||||
@Comment("分工会已提交次数")
|
||||
@ColDefine(type = ColType.INT)
|
||||
@Default("0")
|
||||
private Integer branchUnionSubmitNum;
|
||||
|
||||
@Column
|
||||
@Comment("校工会是否已提交")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default("0")
|
||||
private Boolean schoolUnionSubmit;
|
||||
|
||||
@Column
|
||||
@Comment("校工会已提交次数")
|
||||
@ColDefine(type = ColType.INT)
|
||||
@Default("0")
|
||||
private Integer schoolUnionSubmitNum;
|
||||
|
||||
@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.INT)
|
||||
private Integer feedbackNum;
|
||||
|
||||
@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;
|
||||
|
||||
@Column
|
||||
@Comment("分工会上报福利选择情况")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> welfareJson;
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberInfoPageForm
|
||||
* @Date 2024/8/8 10:08
|
||||
* @注释 会员信息page
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MemberInfoPageForm extends PageForm {
|
||||
|
||||
private Integer year;
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String threeUnitId;
|
||||
|
||||
private String unionGroupId;
|
||||
|
||||
private String userState;
|
||||
|
||||
private String preparedBy;
|
||||
|
||||
private String personType;
|
||||
|
||||
private List<String> personTypes;
|
||||
|
||||
private List<String> preparedBys;
|
||||
|
||||
private List<String> userStates;
|
||||
|
||||
private String sex;
|
||||
|
||||
private List<String> sexTypes;
|
||||
|
||||
private Integer memberStatus;
|
||||
|
||||
private String position;
|
||||
|
||||
private String jobTitle;
|
||||
|
||||
private String memberSearchName;
|
||||
|
||||
private String memberSearchKeyWord;
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationParma
|
||||
* @Date 2024/8/14 15:28
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
public class MemberListVerificationParam {
|
||||
|
||||
@NotBlank(message = "名单核对事项id不能为空")
|
||||
private String verificationProjectId;
|
||||
|
||||
@NotNull(message = "用户数据读取失败")
|
||||
private List<String> selectUserIds;
|
||||
|
||||
@NotNull(message = "更改字段获取失败")
|
||||
private List<String> renewFields;
|
||||
|
||||
private Boolean checkCanSubmission;
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param;
|
||||
|
||||
import lombok.Data;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationParam
|
||||
* @Date 2024/8/6 9:23
|
||||
* @注释 名单核对事项新增参数验证
|
||||
*/
|
||||
@Data
|
||||
public class MemberListVerificationProjectParam {
|
||||
|
||||
private String id;
|
||||
|
||||
@NotBlank(message = "事项名称不能为空")
|
||||
private String projectName;
|
||||
|
||||
@NotBlank(message = "内容及要求不能为空")
|
||||
private String content;
|
||||
|
||||
@NotEmpty(message = "推送分工会不能为空")
|
||||
private List<String> unionIds;
|
||||
|
||||
@NotNull(message = "开始时间不能为空")
|
||||
private Date startDate;
|
||||
|
||||
@NotNull(message = "结束时间不能为空")
|
||||
private Date endDate;
|
||||
|
||||
@NotNull(message = "是否需要反馈不能为空")
|
||||
private Boolean isNeedFeedback;
|
||||
|
||||
@NotNull(message = "是否需要反馈附件不能为空")
|
||||
private Boolean isNeedFeedbackFile;
|
||||
|
||||
private List<JSONObject> welfareJson;
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolVerificationSubmitParam
|
||||
* @Date 2024/9/13 15:29
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
public class MemberSchoolVerificationSubmitParam {
|
||||
|
||||
@NotBlank(message = "未获取到核对事项")
|
||||
private String verificationProjectId;
|
||||
|
||||
@NotBlank(message = "未获取到所属工会")
|
||||
private String unionId;
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberVerificationBranchUnionFeedbackParam
|
||||
* @Date 2024/9/10 11:29
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
public class MemberVerificationBranchUnionFeedbackParam {
|
||||
|
||||
@NotBlank(message = "核对事项不能为空")
|
||||
private String verificationProjectId;
|
||||
|
||||
@NotNull(message = "反馈人数不能为空")
|
||||
private Integer feedbackNum;
|
||||
|
||||
private List<JSONObject> feedbackFiles;
|
||||
|
||||
private List<JSONObject> welfareJson;
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberVerificationGetChangeParam
|
||||
* @Date 2024/9/5 15:37
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
public class MemberVerificationGetChangeParam {
|
||||
|
||||
@NotBlank(message = "未获取到名单核对事项")
|
||||
private String verificationProjectId;
|
||||
|
||||
@NotBlank(message = "未获取到用户")
|
||||
private String userId;
|
||||
|
||||
private Boolean flag;
|
||||
|
||||
private String option;
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 会员入会分工会审核
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MemberApplyBranchAuditPageForm extends PageForm {
|
||||
|
||||
private Boolean audit;
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberApplyPageForm
|
||||
* @Date 2024/11/11 11:09
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MemberApplyPageForm extends PageForm<MemberApplyRecord> {
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String userState;
|
||||
|
||||
private String personType;
|
||||
|
||||
private String preparedBy;
|
||||
|
||||
public static void buildSearch(Cnd cnd, MemberApplyPageForm pageForm) {
|
||||
if (cnd == null) {
|
||||
cnd = Cnd.NEW();
|
||||
}
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("vu.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("vu.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.andEX("vu.unionId","=",pageForm.getUnionId());
|
||||
cnd.andEX("vu.unitId","=",pageForm.getUnitId());
|
||||
cnd.andEX("vu.userState","=",pageForm.getUserState());
|
||||
cnd.andEX("vu.personType","=",pageForm.getPersonType());
|
||||
cnd.andEX("vu.preparedBy","=",pageForm.getPreparedBy());
|
||||
}
|
||||
}
|
||||
+133
@@ -0,0 +1,133 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationPageForm
|
||||
* @Date 2024/8/13 16:33
|
||||
* @注释
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@ApiModel("名单事项公共查询数据")
|
||||
public class MemberListVerificationPageForm extends PageForm {
|
||||
|
||||
@ApiModelProperty("项目年份")
|
||||
private String projectYear;
|
||||
|
||||
@ApiModelProperty("工会id")
|
||||
private String unionId;
|
||||
|
||||
@ApiModelProperty("单位id")
|
||||
private String unitId;
|
||||
|
||||
@ApiModelProperty("人员类型")
|
||||
private String personType;
|
||||
|
||||
@ApiModelProperty("在职状态")
|
||||
private String userState;
|
||||
|
||||
@ApiModelProperty("人事编制")
|
||||
private String preparedBy;
|
||||
|
||||
@ApiModelProperty("变更类型")
|
||||
private String changeType;
|
||||
|
||||
@ApiModelProperty("名单核对事项id")
|
||||
private String verificationProjectId;
|
||||
|
||||
@ApiModelProperty("校工会核对")
|
||||
private String schoolUnionChecked;
|
||||
|
||||
@ApiModelProperty("是否会员")
|
||||
private Integer isMember;
|
||||
|
||||
@ApiModelProperty("是否福利会员")
|
||||
private Integer isWelfareMember;
|
||||
|
||||
@ApiModelProperty("福利项目id")
|
||||
private String welfareProjectId;
|
||||
|
||||
@ApiModelProperty("是否发放福利")
|
||||
private Integer isGrantWelfare;
|
||||
|
||||
@ApiModelProperty("退休日期开始时间")
|
||||
private Date retireStartDate;
|
||||
|
||||
@ApiModelProperty("退休日期结束时间")
|
||||
private Date retireEndDate;
|
||||
|
||||
@ApiModelProperty("批量选择人员id")
|
||||
private List<String> selectUserIds;
|
||||
|
||||
@ApiModelProperty("导入查询的工号")
|
||||
private List<String> queryLoginNames;
|
||||
|
||||
@ApiModelProperty("性别")
|
||||
private String sex;
|
||||
|
||||
|
||||
public static void buildSearch(Cnd cnd, MemberListVerificationPageForm pageForm){
|
||||
if (cnd == null) {
|
||||
cnd = Cnd.NEW();
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("list.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("list.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.andEX("list.unionId","=",pageForm.getUnionId());
|
||||
cnd.andEX("list.unitId","=",pageForm.getUnitId());
|
||||
cnd.andEX("list.userState","=",pageForm.getUserState());
|
||||
cnd.andEX("list.personType","=",pageForm.getPersonType());
|
||||
cnd.andEX("list.preparedBy","=",pageForm.getPreparedBy());
|
||||
cnd.andEX("list.verificationProjectId","=",pageForm.getVerificationProjectId());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 单表查询
|
||||
* @param cnd
|
||||
* @param pageForm
|
||||
*/
|
||||
public static void buildSearchBySingleTable(Cnd cnd, MemberListVerificationPageForm pageForm) {
|
||||
if (cnd == null){
|
||||
cnd = Cnd.NEW();
|
||||
}
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("u.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("u.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("u.userState", "=", pageForm.getUserState());
|
||||
cnd.andEX("u.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||
if (pageForm.getIsMember() != null && !pageForm.getIsMember().equals(3)) {
|
||||
cnd.and("u.member", "=", pageForm.getIsMember());
|
||||
}
|
||||
|
||||
if (pageForm.getIsWelfareMember() != null && !pageForm.getIsWelfareMember().equals(3)) {
|
||||
cnd.and("u.welfareMember", "=", pageForm.getIsWelfareMember());
|
||||
}
|
||||
|
||||
cnd.andEX("u.sex","=",pageForm.getSex());
|
||||
}
|
||||
}
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.bpm.enums.BpmProcessTaskStatusEnum;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.lang.Lang;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberChangePageForm
|
||||
* @Date 2024/8/6 8:56
|
||||
* @注释
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MemberManagePageForm extends PageForm {
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String sex;
|
||||
|
||||
private String personType;
|
||||
|
||||
private String preparedBy;
|
||||
|
||||
private String userState;
|
||||
|
||||
private String changeType;
|
||||
|
||||
//变更状态数组
|
||||
private List<String> changeTypes;
|
||||
|
||||
//是否变更
|
||||
private Integer changed;
|
||||
|
||||
private Integer isMember;
|
||||
|
||||
private Integer isWelfareMember;
|
||||
|
||||
//变更开始时间
|
||||
private String changeDateBefore;
|
||||
|
||||
//变更结束时间
|
||||
private String changeDateEnd;
|
||||
|
||||
//变更来源
|
||||
private List<Integer> changeOrigins;
|
||||
|
||||
public static void buildSearch(Cnd cnd, MemberManagePageForm pageForm) {
|
||||
if (cnd == null) {
|
||||
cnd = Cnd.NEW();
|
||||
}
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("u.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("u.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.andEX("u.member", "=", pageForm.getIsMember());
|
||||
cnd.andEX("u.welfareMember", "=", pageForm.getIsWelfareMember());
|
||||
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("u.userState", "=", pageForm.getUserState());
|
||||
cnd.andEX("u.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("u.sex", "=", pageForm.getSex());
|
||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getChangeDateBefore()) && StrUtil.isNotBlank(pageForm.getChangeDateEnd())) {
|
||||
cnd.and(new Static(String.format("Date(his.changeTime) >= '%s' and Date(his.changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())));
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(pageForm.getChangeTypes())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (String type : pageForm.getChangeTypes()) {
|
||||
seg.or(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(type)));
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
if (pageForm.getChanged() != null) {
|
||||
if (pageForm.getChanged() == 1) {
|
||||
cnd.and(new Static("his.changeTime is not null"));
|
||||
} else if (pageForm.getChanged() == 2) {
|
||||
cnd.desc("his.changeTime");
|
||||
} else {
|
||||
cnd.and(new Static("his.changeTime is null"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 审核查询
|
||||
* @param cnd
|
||||
* @param pageForm
|
||||
*/
|
||||
public static void buildAuditSearch(Cnd cnd, MemberManagePageForm pageForm){
|
||||
if (cnd == null) {
|
||||
cnd = Cnd.NEW();
|
||||
}
|
||||
if (pageForm.getAudit() != null) {
|
||||
if (pageForm.getAudit()) {
|
||||
cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.COMPLETE);
|
||||
} else {
|
||||
cnd.and("task.taskStatus", "=", BpmProcessTaskStatusEnum.ACTIVE);
|
||||
}
|
||||
}
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("record.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("record.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
cnd.andEX("vu.unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("record.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("record.userState", "=", pageForm.getUserState());
|
||||
cnd.andEX("record.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("record.personType", "=", pageForm.getPersonType());
|
||||
|
||||
cnd.groupBy("record.id,task.id");
|
||||
}
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberModelWorkerPageForm
|
||||
* @Date 2024/9/25 16:56
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MemberModelWorkerPageForm extends PageForm {
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String userState;
|
||||
|
||||
private String preparedBy;
|
||||
|
||||
private String personType;
|
||||
|
||||
private String memberState;
|
||||
|
||||
private String welfareMemberState;
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.param.pageform;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberStatisticsPageForm
|
||||
* @Date 2024/8/8 14:49
|
||||
* @注释
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class MemberStatisticsPageForm extends PageForm {
|
||||
|
||||
private String isUnit;
|
||||
|
||||
private String isUnion;
|
||||
|
||||
private String searchType;
|
||||
|
||||
private String startDate;
|
||||
|
||||
private String endDate;
|
||||
|
||||
private Integer year;
|
||||
|
||||
private List<String> unionId;
|
||||
|
||||
private List<String> unitId;
|
||||
|
||||
private List<String> unionGroupId;
|
||||
|
||||
private List<String> personTypes;
|
||||
|
||||
private List<String> preparedBys;
|
||||
|
||||
private List<String> userStates;
|
||||
|
||||
private List<String> memberStatus;
|
||||
|
||||
private String campus;
|
||||
|
||||
private List<String> memberTypes;
|
||||
|
||||
private List<String> sexTypes;
|
||||
|
||||
private List<String> roleIds;
|
||||
|
||||
private List<String> age;
|
||||
|
||||
private Boolean reverseSelection;
|
||||
|
||||
private String memberSearchName;
|
||||
|
||||
private String memberSearchKeyWord;
|
||||
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
|
||||
/**
|
||||
* 会员申请记录
|
||||
*/
|
||||
public interface MemberApplyRecordService extends BaseService<MemberApplyRecord> {
|
||||
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberBranchUnionManageService
|
||||
* @Date 2024/8/13 11:20
|
||||
* @注释 会员管理-分工会管理
|
||||
*/
|
||||
public interface MemberBranchUnionManageService extends BaseService<Sys_user> {
|
||||
|
||||
Pagination getPageData(MemberManagePageForm pageForm);
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberInfoPageForm;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberChangeService
|
||||
* @Date 2024/8/8 10:13
|
||||
* @注释
|
||||
*/
|
||||
public interface MemberInfoService extends BaseService<Sys_user> {
|
||||
|
||||
/**
|
||||
* 获取查询Sql
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Sql getSql(MemberInfoPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 获取会员历史
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Sql getMemberHistorySql(MemberInfoPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 备份会员
|
||||
* @param year
|
||||
*/
|
||||
void archiveMember(Integer year);
|
||||
|
||||
/**
|
||||
* 导出会员sql
|
||||
* @param year
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> historyExportByUnionData(Integer year);
|
||||
|
||||
/**
|
||||
* 设置Excel表格数据
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
Workbook setHistoryExcelData(List<NutMap> list);
|
||||
|
||||
/**
|
||||
* 会员档案管理导出会员
|
||||
* @param pageForm
|
||||
* @param response
|
||||
*/
|
||||
void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response);
|
||||
|
||||
|
||||
/**
|
||||
* 导入会员数据处理
|
||||
* @param file
|
||||
*/
|
||||
NutMap handlingMemberImport(TempFile file);
|
||||
}
|
||||
+115
@@ -0,0 +1,115 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationProjectParam;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationService
|
||||
* @Date 2024/8/5 16:27
|
||||
* @注释 名单事项
|
||||
*/
|
||||
public interface MemberListVerificationService extends BaseService<MemberListVerificationUser> {
|
||||
|
||||
/**
|
||||
* 获取核对事项的成员列表
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Pagination getUserPageData(MemberListVerificationPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 获取显示选择人员数据
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Pagination getShowSelectionUsers(MemberListVerificationPageForm pageForm);
|
||||
|
||||
|
||||
/**
|
||||
* 修改或新增名单核对事项
|
||||
* @param param
|
||||
*/
|
||||
void insertOrUpdateVerificationProject(MemberListVerificationProjectParam param);
|
||||
|
||||
/**
|
||||
* 修改选择人员
|
||||
* @param param
|
||||
*/
|
||||
void modifySelection(MemberListVerificationParam param);
|
||||
|
||||
|
||||
/**
|
||||
* 获取分工会核对列表
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Pagination getBranchListVerificationUser(MemberListVerificationPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 校工会查看所有分工会列表数据,查看是否已提交,变更数量
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getSchoolListVerificationUnion(MemberListVerificationPageForm pageForm);
|
||||
|
||||
|
||||
/**
|
||||
* 校工会根据分工会查看提交的变更人员
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Pagination getSchoolListVerificationUser(MemberListVerificationPageForm pageForm);
|
||||
|
||||
|
||||
/**
|
||||
* 分工会无误提交反馈;流程结束
|
||||
* @param feedback
|
||||
*/
|
||||
void branchUnionCorrectSubmission(MemberVerificationBranchUnionFeedback feedback);
|
||||
|
||||
/**
|
||||
* 分工会有误提交,执行流程之外的逻辑
|
||||
* @param verificationProjectId
|
||||
*/
|
||||
void branchUnionIncorrectSubmission(String verificationProjectId);
|
||||
|
||||
|
||||
/**
|
||||
* 撤销变更
|
||||
* @param userId
|
||||
* @param verificationProjectId
|
||||
* @param type 撤销的类型;分工会:branchUnion;校工会:schoolUnion
|
||||
*/
|
||||
void revokeChange(String userId, String verificationProjectId, String type);
|
||||
|
||||
|
||||
/**
|
||||
* 导出名单核对事项数据
|
||||
* @param pageForm
|
||||
* @param response
|
||||
* @param isUnion 是否是分工会导出
|
||||
*/
|
||||
void exportVerificationExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response, Boolean isUnion);
|
||||
|
||||
|
||||
Sql getChangeTypeUserSql(MemberListVerificationPageForm pageForm);
|
||||
|
||||
|
||||
List<ExcelExportEntity> buildExportEntities();
|
||||
|
||||
|
||||
NutMap welfareUserInfo(String verificationProjectId);
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberService
|
||||
* @Date 2024/8/6 10:42
|
||||
* @注释
|
||||
*/
|
||||
public interface MemberManageService extends BaseService<Sys_user> {
|
||||
|
||||
/**
|
||||
* 多条件查询Sql
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Sql getSql(MemberManagePageForm pageForm, String queryType);
|
||||
|
||||
/**
|
||||
* 获取会员、非会员、变更、未变更的人数
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
NutMap getButtonNum(MemberManagePageForm pageForm);
|
||||
|
||||
/**
|
||||
* 会员变更记录
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Pagination memberHistoryRecords(MemberManagePageForm pageForm);
|
||||
|
||||
/**
|
||||
* 根据用户id获取会员变更信息(时间线),所有的变更记录
|
||||
* @param userId 用户id
|
||||
* @return List<NutMap>
|
||||
*/
|
||||
List<NutMap> getMemberChangeInfoByUserId(String userId);
|
||||
|
||||
/**
|
||||
* 会员变更信息对比
|
||||
* @param current 当前数据
|
||||
* @param previous 上一条数据
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> compareChange(Sys_user_history current, Sys_user_history previous, Set<String> allowChangeFieldNames, Map<String, String> dictMap);
|
||||
|
||||
List<NutMap> compareMemberChangeInfo(Sys_user_history history);
|
||||
|
||||
/**
|
||||
* 校验是否有变更
|
||||
* @param record
|
||||
*/
|
||||
List<NutMap> compareMemberChangeInfo(MemberApplyRecord record);
|
||||
|
||||
/**
|
||||
* 获取变更类型
|
||||
* @param changeList 变更记录
|
||||
* @return
|
||||
*/
|
||||
List<String> compareMemberChangeType(List<NutMap> changeList, MemberApplyRecord record);
|
||||
|
||||
|
||||
/**
|
||||
* 会员变更信息对比 并更新数据
|
||||
* @param record
|
||||
*/
|
||||
void compareMemberChangeInfoAndUpdateUser(MemberApplyRecord record);
|
||||
|
||||
|
||||
/**
|
||||
* 比较两个对象,并记录变更的字段工具
|
||||
*
|
||||
* @param newMap 新数据
|
||||
* @param sourceMap 原数据
|
||||
* @param fieldsMap 变更字段
|
||||
* @param changeList 变更集合
|
||||
*/
|
||||
void extractChange(NutMap newMap, NutMap sourceMap, String fieldName, Map<String, String> fieldsMap, List<NutMap> changeList);
|
||||
|
||||
/**
|
||||
* 获取会员变更信息,memberApplyRecord表中名单核对事项人员与sys_user表中人员对比
|
||||
* @param userId
|
||||
* @param verificationProjectId
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getLastTimeMemberChangeInfoByUserId(String userId, String verificationProjectId);
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberModelWorkerPageForm;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberModelWorkerService
|
||||
* @Date 2024/9/25 17:01
|
||||
* @注释
|
||||
*/
|
||||
public interface MemberModelWorkerService extends BaseService<Sys_user> {
|
||||
|
||||
Sql getSql(MemberModelWorkerPageForm pageForm);
|
||||
|
||||
void doExport(MemberModelWorkerPageForm pageForm, HttpServletResponse response);
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolUnionManageService
|
||||
* @Date 2024/8/13 15:33
|
||||
* @注释
|
||||
*/
|
||||
public interface MemberSchoolUnionManageService extends BaseService<Sys_user> {
|
||||
|
||||
Pagination getPageData(MemberManagePageForm pageForm);
|
||||
}
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service;
|
||||
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberStatisticsService
|
||||
* @Date 2024/8/8 14:55
|
||||
* @注释
|
||||
*/
|
||||
public interface MemberStatisticsService extends BaseService<Sys_user> {
|
||||
|
||||
/**
|
||||
* 获取查询条件
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Cnd getCnd(MemberStatisticsPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 获取综合统计sql
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Sql getComprehensiveSql(MemberStatisticsPageForm pageForm);
|
||||
|
||||
|
||||
/**
|
||||
* 获取工会分析数据
|
||||
* @param unionId 工会id
|
||||
* @param currentYear 所属年度
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getUnionAnalysisData(String unionId, Integer currentYear);
|
||||
|
||||
|
||||
/**
|
||||
* 获取单位分析数据
|
||||
* @param unitId 单位id
|
||||
* @param currentYear 所属年度
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getUnitAnalysisData(String unitId, Integer currentYear);
|
||||
|
||||
/**
|
||||
* 导出分析数据
|
||||
* @param list
|
||||
* @param queryType 工会还是单位
|
||||
* @return
|
||||
*/
|
||||
Workbook exportAnalysisExcel(List<NutMap> list, String queryType);
|
||||
|
||||
/**
|
||||
* 获取工会统计数据
|
||||
* @param unionId 工会id
|
||||
* @param currentYear
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getUnionStatisticsData(String unionId, Integer currentYear);
|
||||
|
||||
/**
|
||||
* 获取单位统计数据
|
||||
* @param unitId 单位id
|
||||
* @param currentYear
|
||||
* @return
|
||||
*/
|
||||
List<NutMap> getUnitStatisticsData(String unitId, Integer currentYear);
|
||||
|
||||
/**
|
||||
* 导出统计数据
|
||||
* @param list
|
||||
* @param queryType 工会还是单位
|
||||
* @return
|
||||
*/
|
||||
Workbook exportStatisticsExcel(List<NutMap> list, String queryType);
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
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.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberApplyRecordService;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberApplyRecordServiceImpl extends BaseServiceImpl<MemberApplyRecord> implements MemberApplyRecordService {
|
||||
|
||||
public MemberApplyRecordServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
}
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberBranchUnionManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberChangeAuditVo;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberBranchUnionManageServiceImpl
|
||||
* @Date 2024/8/13 11:22
|
||||
* @注释 会员管理 分工会管理
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberBranchUnionManageServiceImpl extends BaseServiceImpl<Sys_user> implements MemberBranchUnionManageService {
|
||||
public MemberBranchUnionManageServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Pagination getPageData(MemberManagePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
record.id,
|
||||
record.userId,
|
||||
record.username,
|
||||
record.loginname,
|
||||
record.changeType,
|
||||
record.changeTypes,
|
||||
record.changeOrigin,
|
||||
record.applyDateTime,
|
||||
record.unitId,
|
||||
IFNULL(record.unionId, vu.unionid) AS unionId,
|
||||
vu.unionname AS unionName,
|
||||
IFNULL(record.unitName, vu.unitname) AS unitName,
|
||||
IFNULL(record.userState, vu.userState) AS userState,
|
||||
IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy,
|
||||
IFNULL(record.personType, vu.personType) AS personType,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeCode,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN bpm_process_define define On inst.processDefineId = define.id
|
||||
INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
LEFT JOIN vw_user vu ON vu.id = record.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberManagePageForm.buildAuditSearch(cnd, pageForm);
|
||||
cnd.and("nd.nodeCode", "=", 10);
|
||||
cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE.name());
|
||||
cnd.and("vu.unionId","=", SecurityUtil.getUnionId());
|
||||
cnd.desc("record.applyDateTime");
|
||||
sql.setCondition(cnd);
|
||||
return listPageVO(pageForm, sql, MemberChangeAuditVo.class);
|
||||
}
|
||||
}
|
||||
+428
@@ -0,0 +1,428 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.*;
|
||||
import com.budwk.app.sys.models.Sys_role;
|
||||
import com.budwk.app.sys.models.Sys_unit;
|
||||
import com.budwk.app.sys.models.Sys_user_role;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberHistory;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberInfoPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberInfoService;
|
||||
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.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.Lang;
|
||||
import org.nutz.lang.random.R;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.upload.TempFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberInfoServiceImpl
|
||||
* @Date 2024/8/8 10:15
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberInfoServiceImpl extends BaseServiceImpl<Sys_user> implements MemberInfoService {
|
||||
|
||||
@Inject
|
||||
private ManyAddOrRenewUtil manyAddOrRenewUtil;
|
||||
|
||||
public MemberInfoServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
FROM
|
||||
vw_user
|
||||
$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()));
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Sql getMemberHistorySql(MemberInfoPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mh.id,
|
||||
mh.loginname,
|
||||
mh.username,
|
||||
mh.sex,
|
||||
mh.mobile,
|
||||
mh.birthday,
|
||||
mh.personType,
|
||||
mh.userState,
|
||||
mh.preparedBy,
|
||||
u.unionId,
|
||||
u.unionName,
|
||||
u.unitName,
|
||||
mh.member
|
||||
FROM
|
||||
`member_history` mh
|
||||
INNER JOIN `vw_user` u ON u.id = mh.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("u.unionId","=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("u.unionId","=", pageForm.getUnionId());
|
||||
}
|
||||
cnd.andEX("mh.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("mh.`year`", "=", pageForm.getYear());
|
||||
cnd.andEX("mh.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("mh.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("mh.userState", "=", pageForm.getUserState());
|
||||
if (StrUtil.isAllNotBlank(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord())) {
|
||||
cnd.and(new SqlExpressionGroup().andLike("u." + pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord()));
|
||||
}
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("mh.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("mh.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.groupBy("u.id");
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
/**
|
||||
* 备份会员
|
||||
*
|
||||
* @param year
|
||||
*/
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void archiveMember(Integer year) throws RuntimeException{
|
||||
dao().clear(MemberHistory.class, Cnd.where("`year`", "=", year));
|
||||
List<Sys_user> userList = dao().query(Sys_user.class, Cnd.where("member", "=", true));
|
||||
|
||||
List<MemberHistory> memberHistories = userList.stream()
|
||||
.map(user -> {
|
||||
MemberHistory memberHistory = new MemberHistory();
|
||||
memberHistory.setUserId(user.getId());
|
||||
memberHistory.setId(R.UU32());
|
||||
memberHistory.setYear(year);
|
||||
BeanUtil.copyProperties(user, memberHistory);
|
||||
return memberHistory;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
manyAddOrRenewUtil.asyncExecuteFastInsert(memberHistories, null);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NutMap> historyExportByUnionData(Integer year) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
mh.id,
|
||||
mh.loginname,
|
||||
mh.username,
|
||||
mh.sex,
|
||||
mh.mobile,
|
||||
mh.birthday,
|
||||
mh.personType,
|
||||
mh.preparedBy,
|
||||
mh.userState,
|
||||
u.unionId,
|
||||
u.unionName,
|
||||
u.unitName,
|
||||
mh.member
|
||||
FROM
|
||||
`member_history` mh
|
||||
INNER JOIN `vw_user` u ON u.id = mh.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("mh.`year`", "=", year);
|
||||
cnd.groupBy("u.id");
|
||||
sql.setCondition(cnd);
|
||||
return listMap(sql);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Workbook setHistoryExcelData(List<NutMap> list) {
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginname", 20));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "username", 20));
|
||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
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("人员类型", "personType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
||||
// exportEntities.add(new ExcelExportEntity("来校年月", "comeSchoolDate", 30));
|
||||
// exportEntities.add(new ExcelExportEntity("所在科室", "threeUnitName", 20));
|
||||
// exportEntities.add(new ExcelExportEntity("工会小组", "unionGroupName", 30));
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
return ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void exportMember(MemberInfoPageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = getSql(pageForm);
|
||||
List<NutMap> list = listMap(sql);
|
||||
Workbook workbook = setHistoryExcelData(list);
|
||||
CommonDownloadUtil.download("会员档案表.xlsx", workbook, response);
|
||||
}
|
||||
|
||||
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@Override
|
||||
public NutMap handlingMemberImport(TempFile file) {
|
||||
List<T> ts = EasyExcelUtil.syncReadModel(file.getFile(), MemberImportVo.class, 0, 1);
|
||||
List<MemberImportVo> list = JSONUtil.parseArray(JSONUtil.toJsonStr(ts)).toList(MemberImportVo.class);
|
||||
|
||||
// 获取系统用户
|
||||
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"));
|
||||
|
||||
//单位名称,单位Id
|
||||
Map<String, String> unitNameLevelTwoMap = unitList.stream().filter(v -> v.getUnitLevel() == 2).collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId));
|
||||
//单位编号,单位Id
|
||||
Map<String, String> unitCodeMap = unitList.stream().collect(Collectors.toMap(Sys_unit::getUnitcode, Sys_unit::getId));
|
||||
|
||||
//系统中没有,新增
|
||||
List<String> needInsertUser = new ArrayList<>();
|
||||
|
||||
List<Sys_user> insertOrUpdateUserList = new ArrayList<>();
|
||||
|
||||
//返回错误记录
|
||||
List<MemberImportVo> errorInfos = new ArrayList<>();
|
||||
|
||||
for (MemberImportVo v : list) {
|
||||
if (StrUtil.isNotBlank(v.getLoginname())) {
|
||||
v.setLoginname(v.getLoginname().trim());
|
||||
} else {
|
||||
v.setErrorInfo("工号不能为空!");
|
||||
continue;
|
||||
}
|
||||
|
||||
String unitId = getUnitId(unitCodeMap, unitNameLevelTwoMap, v.getUnitCode(), v.getUnitName());
|
||||
if (StrUtil.isBlank(unitId)) {
|
||||
v.setErrorInfo("单位编号或单位名称有误,请确保其准确!");
|
||||
errorInfos.add(v);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Map<String, String> unitNameLevelThreeMap = unitList.stream().filter(item -> item.getParentId().equals(unitId) && item.getUnitLevel() == 3).collect(Collectors.toMap(Sys_unit::getName, Sys_unit::getId));
|
||||
// // 获取三级单位ID
|
||||
// String threeUnitId = getUnitId(unitCodeMap, unitNameLevelThreeMap, v.getThreeUnitCode(), v.getThreeUnitName());
|
||||
// if (threeUnitId == null) {
|
||||
// String threeUnitNames = unitList.stream().filter(x -> x.getParentId().equals(unitId)).map(Sys_unit::getName).collect(Collectors.joining(";"));
|
||||
// v.setErrorInfo("科室编号或科室名称有误,请确保其准确!【" + threeUnitNames + "】");
|
||||
// errorInfos.add(v);
|
||||
// continue;
|
||||
// }
|
||||
|
||||
if (StrUtil.isBlank(v.getIsMember())) {
|
||||
v.setErrorInfo("是否会员不能为空,请填写是或否");
|
||||
errorInfos.add(v);
|
||||
continue;
|
||||
}
|
||||
|
||||
//判断是否在系统中
|
||||
Sys_user user = userMap.get(v.getLoginname());
|
||||
|
||||
//初始化用户
|
||||
if (user == null) {
|
||||
user = new Sys_user();
|
||||
//重新设置
|
||||
user.setId(R.UU32());
|
||||
user.setSalt(R.UU32());
|
||||
user.setPassword(PwdUtil.getPassword(PwdUtil.generate(12),user.getSalt()));
|
||||
user.setLoginCount(0);
|
||||
needInsertUser.add(user.getLoginname());
|
||||
}
|
||||
//设置excel列的数据
|
||||
user.setUsername(v.getUsername());
|
||||
if (StrUtil.isNotBlank(v.getSex())) {
|
||||
user.setSex(v.getSex());
|
||||
}
|
||||
if (StrUtil.isNotBlank(v.getMobile())) {
|
||||
user.setMobile(v.getMobile());
|
||||
}
|
||||
if (StrUtil.isNotBlank(v.getIdCard())) {
|
||||
user.setIdCard(v.getIdCard());
|
||||
}
|
||||
if (StrUtil.isNotBlank(v.getUserState())) {
|
||||
user.setUserState(v.getUserState());
|
||||
}
|
||||
if (StrUtil.isNotBlank(v.getPersonType())) {
|
||||
user.setPersonType(v.getPersonType());
|
||||
}
|
||||
user.setUnitId(unitId);
|
||||
// user.setThreeUnitId(threeUnitId);
|
||||
user.setMember("是".equals(v.getIsMember()));
|
||||
insertOrUpdateUserList.add(user);
|
||||
}
|
||||
|
||||
|
||||
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()));
|
||||
|
||||
//新增用户赋值普通角色
|
||||
if (Lang.isNotEmpty(needInsertUser)) {
|
||||
Sql newUserSql = Sqls.create("select id from sys_user where loginname in (@needInsertUser)");
|
||||
newUserSql.setParam("needInsertUser", needInsertUser);
|
||||
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<Sys_user_role> newUserRoles = newUserIds.stream().map(userId -> {
|
||||
Sys_user_role sysUserRole = new Sys_user_role();
|
||||
sysUserRole.setUserId(userId);
|
||||
sysUserRole.setRoleId(publicRole.getId());
|
||||
return sysUserRole;
|
||||
}).collect(Collectors.toList());
|
||||
manyAddOrRenewUtil.asyncExecuteInsert(newUserRoles,200);
|
||||
}
|
||||
|
||||
//根据用户表的member添加会员角色
|
||||
Sql memberUserSql = Sqls.create("select id from sys_user where member = 1");
|
||||
memberUserSql.setCallback(Sqls.callback.maps());
|
||||
dao().execute(memberUserSql);
|
||||
List<NutMap> memberUserSqlList = memberUserSql.getList(NutMap.class);
|
||||
List<String> memberUserIds = memberUserSqlList.stream().map(user -> user.getString("id")).toList();
|
||||
|
||||
List<Sys_user_role> memberUserRoles = memberUserIds.stream().map(userId -> {
|
||||
Sys_user_role sysUserRole = new Sys_user_role();
|
||||
sysUserRole.setUserId(userId);
|
||||
sysUserRole.setRoleId(memberRole.getId());
|
||||
return sysUserRole;
|
||||
}).toList();
|
||||
manyAddOrRenewUtil.asyncExecuteInsert(memberUserRoles,200);
|
||||
}
|
||||
|
||||
//如果有错误数据就返回给前端
|
||||
if (Lang.isNotEmpty(errorInfos)) {
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
nutMap.setv("totalCount", list.size());
|
||||
nutMap.setv("successCount", Math.max(list.size() - errorInfos.size(), 0));
|
||||
nutMap.setv("errorCount", errorInfos.size());
|
||||
nutMap.setv("errorList", errorInfos.stream().map(v -> {
|
||||
return NutMap.NEW().addv("工号", v.getLoginname()).addv("姓名", v.getUsername()).addv("错误原因", v.getErrorInfo());
|
||||
}).collect(Collectors.toList()));
|
||||
return nutMap;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public String getUnitId(Map<String, String> codeMap, Map<String, String> nameMap, String code, String name) {
|
||||
if (StrUtil.isNotBlank(code) && StrUtil.isNotBlank(name) || (StrUtil.isNotBlank(code) && StrUtil.isBlank(name))) {
|
||||
return codeMap.get(code);
|
||||
} else if (StrUtil.isBlank(code) && StrUtil.isNotBlank(name)) {
|
||||
return nameMap.get(name);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
+588
@@ -0,0 +1,588 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.CommonDownloadUtil;
|
||||
import com.budwk.app.base.utils.ManyAddOrRenewUtil;
|
||||
import com.budwk.app.sys.models.*;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationProject;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberListVerificationUser;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberVerificationBranchUnionFeedback;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberListVerificationPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.MemberListVerificationProjectParam;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberListVerificationService;
|
||||
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;
|
||||
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.random.R;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberListVerificationServiceImpl
|
||||
* @Date 2024/8/5 16:31
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberListVerificationServiceImpl extends BaseServiceImpl<MemberListVerificationUser> implements MemberListVerificationService {
|
||||
public MemberListVerificationServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Inject
|
||||
private SysDictService sysDictService;
|
||||
|
||||
@Inject
|
||||
private ManyAddOrRenewUtil manyAddOrRenewUtil;
|
||||
|
||||
@Override
|
||||
public Pagination getUserPageData(MemberListVerificationPageForm pageForm) {
|
||||
MemberListVerificationProject project = dao().fetch(MemberListVerificationProject.class, pageForm.getVerificationProjectId());
|
||||
List<Sys_dict> dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD");
|
||||
//如果变更的字段中没有包含工会名称或单位名称,那就手动添加
|
||||
Set<String> dictCodes = dictList.stream().map(v->{
|
||||
return "u." + v.getCode();
|
||||
}).collect(Collectors.toSet());
|
||||
dictCodes.add("u.id");
|
||||
dictCodes.add("u.loginname");
|
||||
if (dictCodes.stream().anyMatch(v -> !List.of("unionName", "unitName").contains(v))) {
|
||||
dictCodes.add("u.unionName");
|
||||
dictCodes.add("u.unitName");
|
||||
}
|
||||
String string = String.join(",", dictCodes);
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
$selectColumns
|
||||
FROM
|
||||
vw_user u
|
||||
LEFT JOIN welfare_list wl ON u.id = wl.userId
|
||||
$condition
|
||||
""");
|
||||
sql.setVar("selectColumns", string);
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (StrUtil.isNotBlank(pageForm.getUnionId())) {
|
||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||
} else {
|
||||
cnd.and("u.unionId", "in", project.getUnionIds());
|
||||
}
|
||||
MemberListVerificationPageForm.buildSearchBySingleTable(cnd, pageForm);
|
||||
if (StrUtil.isNotBlank(pageForm.getWelfareProjectId())) {
|
||||
if (pageForm.getIsGrantWelfare() != null) {
|
||||
if (pageForm.getIsGrantWelfare() == 1) {
|
||||
cnd.and("wl.projectId", "=", pageForm.getWelfareProjectId());
|
||||
} else {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("wl.projectId", "is", null);
|
||||
seg.or("wl.projectId", "=", "");
|
||||
cnd.and(seg);
|
||||
}
|
||||
} else {
|
||||
cnd.and("wl.projectId", "=", pageForm.getWelfareProjectId());
|
||||
}
|
||||
}
|
||||
|
||||
if (ObjectUtil.isAllNotEmpty(pageForm.getRetireStartDate(), pageForm.getRetireEndDate())) {
|
||||
cnd.and("u.retireDate", ">=", pageForm.getRetireStartDate());
|
||||
cnd.and("u.retireDate", "<=", pageForm.getRetireEndDate());
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(pageForm.getQueryLoginNames())) {
|
||||
cnd.and("u.loginname", "in", pageForm.getQueryLoginNames());
|
||||
}
|
||||
|
||||
cnd.and("u.id", "not in", "select userId from member_list_verification_user where verificationProjectId = '%s'".formatted(pageForm.getVerificationProjectId()));
|
||||
cnd.asc("u.unionCode");
|
||||
cnd.asc("u.id");
|
||||
// cnd.andEX("u.verificationProjectId","=",pageForm.getVerificationProjectId());
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取显示选择人员数据
|
||||
*
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Pagination getShowSelectionUsers(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
select u.id,u.userId,u.username,u.loginname,u.sex,u.mobile,u.unitName,u.unionName,u.userState,u.personType,u.preparedBy
|
||||
from member_list_verification_user u $condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("u.verificationProjectId", "=", pageForm.getVerificationProjectId());
|
||||
cnd.desc("u.isChanged");
|
||||
cnd.asc("u.unionName");
|
||||
MemberListVerificationPageForm.buildSearchBySingleTable(cnd, pageForm);
|
||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||
if (StrUtil.isNotBlank(pageForm.getSchoolUnionChecked())) {
|
||||
cnd.and("u.schoolUnionChecked", "=", "1".equals(pageForm.getSchoolUnionChecked()) ? 1 : 0);
|
||||
}
|
||||
cnd.desc("u.id");
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改或新增名单核对事项
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
@Override
|
||||
public void insertOrUpdateVerificationProject(MemberListVerificationProjectParam param) {
|
||||
MemberListVerificationProject project = new MemberListVerificationProject();
|
||||
BeanUtil.copyProperties(param, project);
|
||||
|
||||
if (StrUtil.isBlank(param.getId())) {
|
||||
//如果是新增,新增项目后,再插入代分工会反馈表
|
||||
dao().insert(project);
|
||||
} else {
|
||||
//校验该项目是否是开启状态
|
||||
int count = dao().count(MemberListVerificationProject.class, Cnd.where("isEnabled", "=", true).and("id","=",param.getId()));
|
||||
if (count > 0) {
|
||||
throw new BaseException("当前核对事项为开启状态,请将状态设为关闭后再进行修改");
|
||||
}
|
||||
dao().updateIgnoreNull(project);
|
||||
//unionIds会随时变化, 先删除再插入
|
||||
// dao().clear(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", param.getId()));
|
||||
}
|
||||
|
||||
List<MemberVerificationBranchUnionFeedback> oldBranchUnionFeedbacks = dao().query(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", param.getId()));
|
||||
Map<String, MemberVerificationBranchUnionFeedback> oldBranchUnionFeedbackMap = oldBranchUnionFeedbacks.stream().collect(Collectors.toMap(v -> v.getUnionId(), v -> v));
|
||||
|
||||
|
||||
//需要核对的分工会id,这些工会会随时更改,修改项目时先删除再新增
|
||||
List<String> unionIds = project.getUnionIds();
|
||||
List<Sys_union> unionList = dao().query(Sys_union.class, Cnd.where("id", "in", unionIds));
|
||||
|
||||
List<MemberVerificationBranchUnionFeedback> feedbackList = unionList.stream().map(v -> {
|
||||
MemberVerificationBranchUnionFeedback feedback = new MemberVerificationBranchUnionFeedback();
|
||||
if (oldBranchUnionFeedbackMap.containsKey(v.getId())) {
|
||||
MemberVerificationBranchUnionFeedback oldBranchUnionFeedback = oldBranchUnionFeedbackMap.get(v.getId());
|
||||
BeanUtil.copyProperties(oldBranchUnionFeedback,feedback);
|
||||
}else{
|
||||
feedback.setId(R.UU32());
|
||||
feedback.setStatus("待分工会核对");
|
||||
}
|
||||
feedback.setUnionId(v.getId());
|
||||
feedback.setUnionCode(v.getUnionCode());
|
||||
feedback.setUnionName(v.getName());
|
||||
feedback.setVerificationProjectId(project.getId());
|
||||
return feedback;
|
||||
}).toList();
|
||||
dao().insertOrUpdate(feedbackList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改选择人员
|
||||
*
|
||||
* @param param
|
||||
*/
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@Override
|
||||
public void modifySelection(MemberListVerificationParam param) {
|
||||
String verificationProjectId = param.getVerificationProjectId();
|
||||
// 设置新的核对字段
|
||||
dao().update(MemberListVerificationProject.class, Chain.make("renewFields", param.getRenewFields()),
|
||||
Cnd.where("id", "=", verificationProjectId));
|
||||
// 先清空再删除
|
||||
// dao().clear(MemberListVerificationUser.class, Cnd.where("verificationProjectId", "=", param.getVerificationProjectId()));
|
||||
List<View_user> userList = dao().query(View_user.class, Cnd.where("id", "in", param.getSelectUserIds()));
|
||||
List<MemberListVerificationUser> list = BeanUtil.copyToList(userList, MemberListVerificationUser.class);
|
||||
list.forEach(v -> {
|
||||
v.setUserId(v.getId());
|
||||
v.setId(R.UU32());
|
||||
v.setVerificationProjectId(verificationProjectId);
|
||||
});
|
||||
manyAddOrRenewUtil.asyncExecuteFastInsert(list, null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取分工会核对列表
|
||||
*
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Pagination getBranchListVerificationUser(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = Sqls.create("select u.* from member_list_verification_user u $condition");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberListVerificationPageForm.buildSearchBySingleTable(cnd, pageForm);
|
||||
// if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("u.unionId","=",SecurityUtil.getUnionId());
|
||||
// }
|
||||
cnd.and("u.verificationProjectId", "=", pageForm.getVerificationProjectId());
|
||||
cnd.desc("u.currentState");
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取各分工会的核对列表
|
||||
*
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<NutMap> getSchoolListVerificationUnion(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
feed.*,
|
||||
SUM(CASE WHEN u.isChanged = 1 THEN 1 ELSE 0 END) AS changeNum,
|
||||
COUNT(u.id) AS allNum
|
||||
FROM
|
||||
member_verification_branch_union_feedback feed
|
||||
LEFT JOIN member_apply_record record ON feed.unionId = record.unionId AND record.verificationProjectId = @verificationProjectId
|
||||
LEFT JOIN member_list_verification_user u ON feed.unionId = u.unionId AND u.verificationProjectId = @verificationProjectId
|
||||
$condition
|
||||
""");
|
||||
sql.setParam("verificationProjectId", pageForm.getVerificationProjectId());
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("feed.unionId", "=", pageForm.getUnionId());
|
||||
cnd.and("feed.verificationProjectId", "=", pageForm.getVerificationProjectId());
|
||||
// cnd.and("feed.branchUnionSubmit", "=", true);
|
||||
cnd.asc("feed.unionCode");
|
||||
cnd.groupBy("feed.unionId");
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = listMap(sql);
|
||||
|
||||
Sql recordSql = Sqls.create("""
|
||||
SELECT
|
||||
lu.unionId,
|
||||
IF( u.userState = lu.userState, FALSE, TRUE ) AS userStateChange,
|
||||
record.changeType,
|
||||
u.member,
|
||||
u.welfareMember
|
||||
FROM
|
||||
member_list_verification_user lu
|
||||
LEFT JOIN member_apply_record record ON lu.userId = record.userId and record.verificationProjectId = @projectId
|
||||
LEFT JOIN sys_user u ON u.id = lu.userId
|
||||
WHERE
|
||||
lu.verificationProjectId = @projectId AND lu.unionId is not null
|
||||
""").setParam("projectId", pageForm.getVerificationProjectId());
|
||||
List<NutMap> recordList = listMap(recordSql);
|
||||
|
||||
Map<String, List<NutMap>> unionIdMap = recordList.stream().collect(Collectors.groupingBy(v-> v.getString("unionId")));
|
||||
|
||||
list.forEach(v -> {
|
||||
if (unionIdMap.containsKey(v.getString("unionId"))){
|
||||
List<NutMap> mapList = unionIdMap.get(v.getString("unionId"));
|
||||
long userStateChange = mapList.stream().filter(item -> item.getBoolean("userStateChange")).count();
|
||||
v.put("userStateNum", userStateChange);
|
||||
v.put("restoreNum", mapList.stream().filter(item -> StrUtil.isNotBlank(item.getString("changeType")) && item.getString("changeType").equals(MemberChangeType.RESTORE.name())).count());
|
||||
v.put("withdrawalNum", mapList.stream().filter(item -> StrUtil.isNotBlank(item.getString("changeType")) && item.getString("changeType").equals(MemberChangeType.WITHDRAWAL.name())).count());
|
||||
v.put("lastMemberNum", mapList.stream().filter(item -> item.getBoolean("member")).count());
|
||||
v.put("lastWelfareMemberNum", mapList.stream().filter(item -> item.getBoolean("welfareMember")).count());
|
||||
}
|
||||
});
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination getSchoolListVerificationUser(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
select id,userId,username,loginname,sex,mobile,unitName,unionName,userState,preparedBy,
|
||||
personType,branchUnionChecked,schoolUnionChecked,isChanged,currentState
|
||||
from member_list_verification_user u $condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("u.verificationProjectId", "=", pageForm.getVerificationProjectId());
|
||||
MemberListVerificationPageForm.buildSearchBySingleTable(cnd, pageForm);
|
||||
cnd.and("u.unionId", "=", pageForm.getUnionId());
|
||||
if (StrUtil.isNotBlank(pageForm.getSchoolUnionChecked())) {
|
||||
if ("1".equals(pageForm.getSchoolUnionChecked())) {
|
||||
cnd.and("u.schoolUnionChecked", "=", true);
|
||||
} else if ("2".equals(pageForm.getSchoolUnionChecked())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("u.schoolUnionChecked", "=", false);
|
||||
seg.or("u.schoolUnionChecked", "is", null);
|
||||
cnd.and(seg);
|
||||
}
|
||||
}
|
||||
// cnd.and("u.branchUnionChecked","=",true);
|
||||
cnd.desc("u.isChanged");
|
||||
cnd.asc("u.unionName");
|
||||
cnd.desc("u.id");
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分工会无误提交反馈;流程结束
|
||||
*
|
||||
* @param feedback
|
||||
*/
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void branchUnionCorrectSubmission(MemberVerificationBranchUnionFeedback feedback) {
|
||||
MemberVerificationBranchUnionFeedback fetch = dao().fetch(MemberVerificationBranchUnionFeedback.class,
|
||||
Cnd.where("verificationProjectId", "=", feedback.getVerificationProjectId())
|
||||
.and("unionId", "=", SecurityUtil.getUnionId()));
|
||||
fetch.setFeedbackNum(feedback.getFeedbackNum());
|
||||
fetch.setFeedbackFiles(feedback.getFeedbackFiles());
|
||||
fetch.setFeedbackUserId(SecurityUtil.getUserId());
|
||||
fetch.setFeedbackUserName(SecurityUtil.getUserUsername());
|
||||
fetch.setFeedbackLoginName(SecurityUtil.getUserLoginname());
|
||||
fetch.setIsFeedback(true);
|
||||
fetch.setBranchUnionSubmit(true);
|
||||
fetch.setBranchUnionSubmitNum(fetch.getBranchUnionSubmitNum() + 1);
|
||||
dao().updateIgnoreNull(fetch);
|
||||
|
||||
Chain chain = Chain.make("branchUnionChecked", true);
|
||||
dao().update(MemberListVerificationUser.class, chain, Cnd.where("verificationProjectId","=", feedback.getVerificationProjectId())
|
||||
.and("unionId","=",SecurityUtil.getUnionId()));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分工会有误提交
|
||||
* @param verificationProjectId
|
||||
*/
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void branchUnionIncorrectSubmission(String verificationProjectId) {
|
||||
MemberVerificationBranchUnionFeedback fetch = dao().fetch(MemberVerificationBranchUnionFeedback.class,
|
||||
Cnd.where("verificationProjectId", "=", verificationProjectId)
|
||||
.and("unionId", "=", SecurityUtil.getUnionId()));
|
||||
fetch.setBranchUnionSubmit(true);
|
||||
fetch.setStatus("有误提交,待校工会审核");
|
||||
fetch.setBranchUnionSubmitNum(fetch.getBranchUnionSubmitNum() + 1);
|
||||
fetch.setIsFeedback(false);
|
||||
dao().updateIgnoreNull(fetch);
|
||||
|
||||
Chain chain = Chain.make("branchUnionChecked", true);
|
||||
chain.add("schoolUnionChecked", false);
|
||||
dao().update(MemberListVerificationUser.class, chain, Cnd.where("verificationProjectId","=", verificationProjectId)
|
||||
.and("unionId","=",SecurityUtil.getUnionId()));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void revokeChange(String userId, String verificationProjectId, String type) {
|
||||
MemberApplyRecord record = dao().fetch(MemberApplyRecord.class, Cnd.where("userId", "=", userId)
|
||||
.and("verificationProjectId", "=", verificationProjectId));
|
||||
if (record != null) {
|
||||
dao().delete(MemberApplyRecord.class, record.getId());
|
||||
|
||||
Sys_user_history history = dao().fetch(Sys_user_history.class, Cnd.where("recordId", "=", record.getId()));
|
||||
if (Lang.isNotEmpty(history)) {
|
||||
Sys_user user = BeanUtil.copyProperties(history, Sys_user.class);
|
||||
user.setId(record.getUserId());
|
||||
dao().update(user);
|
||||
dao().clear(Sys_user_change_info.class, Cnd.where("userHistoryId", "=", history.getId()));
|
||||
}
|
||||
}
|
||||
// dao().clear(MemberApplyRecord.class, Cnd.where("userId","=",userId)
|
||||
// .and("verificationProjectId","=",verificationProjectId));
|
||||
if ("branchUnion".equals(type)) {
|
||||
Chain chain = Chain.make("branchUnionChecked",false);
|
||||
chain.add("isChanged",false);
|
||||
dao().update(MemberListVerificationUser.class, chain, Cnd.where("userId","=",userId)
|
||||
.and("verificationProjectId","=",verificationProjectId));
|
||||
} else if ("schoolUnion".equals(type)) {
|
||||
Chain chain = Chain.make("schoolUnion",false);
|
||||
dao().update(MemberListVerificationUser.class, chain, Cnd.where("userId","=",userId)
|
||||
.and("verificationProjectId","=",verificationProjectId));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出名单核对数据
|
||||
* @param pageForm
|
||||
* @param response
|
||||
* @param isUnion 是否是分工会导出
|
||||
*/
|
||||
@Override
|
||||
public void exportVerificationExcel(MemberListVerificationPageForm pageForm, HttpServletResponse response, Boolean isUnion) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.username,
|
||||
u.loginname,
|
||||
u.unitName,
|
||||
u.unionName,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
u.userState,
|
||||
u.preparedBy,
|
||||
u.personType,
|
||||
IF
|
||||
( u.member = 1, '是', '否' ) AS member,
|
||||
IF
|
||||
( u.welfareMember = 1, '是', '否' ) AS welfareMember,
|
||||
info.changeInfosStr
|
||||
FROM
|
||||
`member_list_verification_user` AS list
|
||||
LEFT JOIN `vw_user` u ON list.userId = u.id
|
||||
LEFT JOIN `member_apply_record` record ON record.verificationProjectId = list.verificationProjectId AND record.userId = list.userId
|
||||
LEFT JOIN sys_user_history history ON history.recordId = record.id
|
||||
LEFT JOIN sys_user_change_info info ON info.userHistoryId = history.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("list.verificationProjectId", "=", pageForm.getVerificationProjectId());
|
||||
if (isUnion) {
|
||||
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||
}
|
||||
MemberListVerificationPageForm.buildSearchBySingleTable(cnd,pageForm);
|
||||
cnd.desc("info.changeTime");
|
||||
cnd.asc("u.unitId");
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = listMap(sql);
|
||||
|
||||
List<ExcelExportEntity> exportEntities = buildExportEntities();
|
||||
exportEntities.add(new ExcelExportEntity("变更信息", "changeInfosStr", 40));
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
CommonDownloadUtil.download("名单事项核对记录.xlsx", workbook, response);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Sql getChangeTypeUserSql(MemberListVerificationPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
u.userState,
|
||||
u.preparedBy,
|
||||
u.personType,
|
||||
lu.unionName,
|
||||
$columns
|
||||
lu.unitName,
|
||||
IF
|
||||
( u.member = 1, '是', '否' ) AS member,
|
||||
IF
|
||||
( u.welfareMember = 1, '是', '否' ) AS welfareMember
|
||||
FROM
|
||||
member_list_verification_user lu
|
||||
LEFT JOIN member_apply_record record ON record.userId = lu.userId and record.verificationProjectId = @projectId
|
||||
LEFT JOIN sys_user u ON u.id = lu.userId
|
||||
$condition
|
||||
""").setParam("projectId", pageForm.getVerificationProjectId());
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberListVerificationPageForm.buildSearchBySingleTable(cnd, pageForm);
|
||||
cnd.andEX("lu.unionId","=",pageForm.getUnionId());
|
||||
cnd.and("lu.verificationProjectId", "=", pageForm.getVerificationProjectId());
|
||||
switch (pageForm.getChangeType()) {
|
||||
case "userState" -> {
|
||||
cnd.and(new Static("u.userState != lu.userState"));
|
||||
sql.setVar("columns", "u.userState AS newUserState, lu.userState AS oldUserState,");
|
||||
}
|
||||
case "restore" -> cnd.and("record.changeType", "=", MemberChangeType.RESTORE.name());
|
||||
case "withdrawal" -> cnd.and("record.changeType", "=", MemberChangeType.WITHDRAWAL.name());
|
||||
case "member" -> cnd.and("u.member", "=", true);
|
||||
case "welfareMember" -> cnd.and("u.welfareMember", "=", true);
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<ExcelExportEntity> buildExportEntities() {
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginname", 20));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "username", 20));
|
||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||
exportEntities.add(new ExcelExportEntity("人事编制", "preparedBy", 20));
|
||||
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("是否会员", "member", 15));
|
||||
exportEntities.add(new ExcelExportEntity("是否福利会员", "welfareMember", 15));
|
||||
return exportEntities;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NutMap welfareUserInfo(String verificationProjectId) {
|
||||
List<MemberVerificationBranchUnionFeedback> list = dao().query(MemberVerificationBranchUnionFeedback.class, Cnd.where("verificationProjectId", "=", verificationProjectId));
|
||||
|
||||
MemberVerificationBranchUnionFeedback branchUnionFeedback = list.stream().filter(v -> v.getWelfareJson() != null).findFirst().orElse(new MemberVerificationBranchUnionFeedback());
|
||||
if (Lang.isNotEmpty(branchUnionFeedback)) {
|
||||
// 生成表头数据
|
||||
List<JSONObject> welfareJson = branchUnionFeedback.getWelfareJson();
|
||||
List<String> stringList = new ArrayList<>(welfareJson.stream().map(v -> v.getStr("welfareName")).toList());
|
||||
|
||||
List<NutMap> mapList = new ArrayList<>();
|
||||
|
||||
// 表结构
|
||||
list.forEach(v-> {
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
nutMap.put("工会名称", v.getUnionName());
|
||||
List<JSONObject> json = v.getWelfareJson();
|
||||
if (Lang.isNotEmpty(json)) {
|
||||
stringList.forEach(welfareName-> {
|
||||
JSONObject jsonObject = json.stream().filter(w -> w.getStr("welfareName").equals(welfareName)).findFirst().orElse(new JSONObject());
|
||||
if (Lang.isNotEmpty(jsonObject)) {
|
||||
nutMap.put(welfareName, jsonObject.getInt("chooseNumber"));
|
||||
} else {
|
||||
nutMap.put(welfareName, 0);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
stringList.forEach(welfareName-> {
|
||||
nutMap.put(welfareName, 0);
|
||||
});
|
||||
}
|
||||
mapList.add(nutMap);
|
||||
});
|
||||
stringList.add(0, "工会名称");
|
||||
NutMap map = NutMap.NEW();
|
||||
map.put("tableData", mapList);
|
||||
map.put("tableHeader", stringList);
|
||||
return map;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
+530
@@ -0,0 +1,530 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HtmlUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.exception.BaseException;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.sys.models.*;
|
||||
import com.budwk.app.sys.services.SysDictService;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
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.Daos;
|
||||
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.json.Json;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberServiceImpl
|
||||
* @Date 2024/8/6 10:43
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
@Slf4j
|
||||
public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implements MemberManageService {
|
||||
|
||||
@Inject
|
||||
private SysDictService sysDictService;
|
||||
|
||||
public MemberManageServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(MemberManagePageForm pageForm, String queryType) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
u.id,
|
||||
u.sex,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.mobile,
|
||||
u.unitId,
|
||||
u.unitName,
|
||||
u.unionId,
|
||||
u.unionName,
|
||||
u.birthday,
|
||||
u.manyUnit,
|
||||
u.member,
|
||||
u.userState,
|
||||
u.preparedBy,
|
||||
u.personType,
|
||||
u.welfareMember,
|
||||
u.isModelWorker,
|
||||
u.wantJoinLoveMutualAidAssociation,
|
||||
his.id hisId,
|
||||
his.changeTypes,
|
||||
his.changeTime
|
||||
FROM
|
||||
vw_user u
|
||||
LEFT JOIN sys_user_history his ON his.loginname = u.loginname
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberManagePageForm.buildSearch(cnd, pageForm);
|
||||
cnd.desc("his.changeTime");
|
||||
cnd.groupBy("u.id");
|
||||
if ("branchUnion".equals(queryType)) {
|
||||
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NutMap getButtonNum(MemberManagePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
(sum( CASE WHEN his.changeTypes IS NOT NULL THEN 1 ELSE 0 END )) as 'changeNum',
|
||||
(sum( CASE WHEN his.changeTypes IS NULL THEN 1 ELSE 0 END )) as 'notChangeNum',
|
||||
count(u.id) as 'userSumNum',
|
||||
(sum( CASE WHEN u.member = 1 THEN 1 ELSE 0 END )) as 'memberNum',
|
||||
(sum( CASE WHEN u.member != 1 THEN 1 ELSE 0 END )) as 'notMemberNum'
|
||||
FROM
|
||||
vw_user u
|
||||
LEFT JOIN sys_user_history his ON his.loginname = u.loginname
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberManagePageForm.buildSearch(cnd,pageForm);
|
||||
sql.setCondition(cnd);
|
||||
cnd.desc("his.changeTime");
|
||||
cnd.groupBy("u.id");
|
||||
return (NutMap) Daos.query(dao(), sql.toString(), Sqls.callback.map());
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Pagination memberHistoryRecords(MemberManagePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
his.id,
|
||||
his.changeTime,
|
||||
his.loginname,
|
||||
his.username,
|
||||
his.mobile,
|
||||
his.birthday,
|
||||
his.userState,
|
||||
his.preparedBy,
|
||||
his.personType,
|
||||
his.sex,
|
||||
his.changeTypes,
|
||||
his.changeOrigin,
|
||||
his.changeReason,
|
||||
his.remark,
|
||||
gh.`name` AS unionName,
|
||||
unit.`name` AS unitName,
|
||||
u.id AS userId
|
||||
FROM
|
||||
`sys_user_history` his
|
||||
LEFT JOIN sys_user u ON u.loginname = his.loginname
|
||||
LEFT JOIN sys_unit unit ON unit.id = u.unitid
|
||||
LEFT JOIN sys_union gh ON gh.id = unit.unionId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("gh.id", "=", pageForm.getUnionId());
|
||||
cnd.andEX("his.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("his.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("his.userState", "=", pageForm.getUserState());
|
||||
if (StrUtil.isNotBlank(pageForm.getChangeType())){
|
||||
cnd.and(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(pageForm.getChangeType())));
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(pageForm.getChangeTypes())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (String type : pageForm.getChangeTypes()) {
|
||||
seg.or(new Static("JSON_CONTAINS(his.changeTypes, JSON_ARRAY('%s'), '$')".formatted(type)));
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(pageForm.getChangeOrigins())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
for (Integer c : pageForm.getChangeOrigins()) {
|
||||
seg.orEquals("his.changeOrigin", c);
|
||||
}
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("his.loginname", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
seg.or("his.username", "like", "%" + pageForm.getSearchKeyword() + "%");
|
||||
cnd.and(seg);
|
||||
}
|
||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), pageForm.getPageOrderBy());
|
||||
} else {
|
||||
cnd.desc("his.changeTime");
|
||||
}
|
||||
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.andEX("his.unionId", "=", SecurityUtil.getUnionId());
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户id获取用户变更信息
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<NutMap> getMemberChangeInfoByUserId(String userId) {
|
||||
Sys_user user = dao().fetch(Sys_user.class, userId);
|
||||
Sys_user_history history = new Sys_user_history();
|
||||
//获取当前用户信息
|
||||
BeanUtil.copyProperties(user, history);
|
||||
history.setChangeTime(new Date());
|
||||
//获取用户变更信息
|
||||
List<Sys_user_history> userHistories = dao().query(Sys_user_history.class, Cnd.where("loginname", "=", user.getLoginname()));
|
||||
userHistories.add(history);
|
||||
//按时间排序
|
||||
CollectionUtil.sort(userHistories, Comparator.comparing(Sys_user_history::getChangeTime).reversed());
|
||||
|
||||
//获取允许变更的字段
|
||||
List<Sys_dict> dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD");
|
||||
Set<String> allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet());
|
||||
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName));
|
||||
|
||||
List<NutMap> resultList = new ArrayList<>();
|
||||
for (int i = 1; i < userHistories.size(); i++) {
|
||||
Sys_user_history current = userHistories.get(i);
|
||||
Sys_user_history previous = userHistories.get(i - 1);
|
||||
NutMap nutMap = compareAndRecordChange(current, previous, allowChangeFieldNames, dictMap);
|
||||
resultList.add(nutMap);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 比较两个对象,并记录变更的字段
|
||||
*
|
||||
* @param current 当前数据
|
||||
* @param previous 上一次的数据
|
||||
* @param allowChangeFieldNames 允许变更的字段名
|
||||
* @param dictMap 字典数据
|
||||
* @return NutMap
|
||||
*/
|
||||
public NutMap compareAndRecordChange(Sys_user_history current, Sys_user_history previous, Set<String> allowChangeFieldNames, Map<String, String> dictMap) {
|
||||
NutMap nutMap = NutMap.NEW();
|
||||
if (StrUtil.isNotBlank(current.getChangeOrigin())) {
|
||||
String title = MemberChangeOrigin.valueOf(MemberChangeOrigin.class , current.getChangeOrigin()).changeOriginName;
|
||||
nutMap.put("title", title + "(" + DateUtil.format(current.getChangeTime(), "yyyy-MM-dd HH:mm:ss") + ")");
|
||||
} else {
|
||||
nutMap.put("title", DateUtil.format(current.getChangeTime(), "yyyy-MM-dd HH:mm:ss"));
|
||||
}
|
||||
nutMap.put("remark", current.getRemark());
|
||||
|
||||
nutMap.put("changeTime", DateUtil.format(current.getChangeTime(), "yyyy-MM-dd HH:mm:ss"));
|
||||
List<NutMap> changeList = new ArrayList<>();
|
||||
|
||||
NutMap currentMap = Lang.obj2nutmap(current);
|
||||
NutMap previousMap = Lang.obj2nutmap(previous);
|
||||
|
||||
for (String fieldName : allowChangeFieldNames) {
|
||||
extractChange(currentMap, previousMap, fieldName, dictMap, changeList);
|
||||
}
|
||||
nutMap.put("changeList", changeList);
|
||||
return nutMap;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 比较两个对象,并记录变更的字段
|
||||
*
|
||||
* @param current 当前数据
|
||||
* @param previous 上一次的数据
|
||||
* @param allowChangeFieldNames 允许变更的字段名
|
||||
* @param dictMap 字典数据
|
||||
* @return NutMap
|
||||
*/
|
||||
@Override
|
||||
public List<NutMap> compareChange(Sys_user_history current, Sys_user_history previous, Set<String> allowChangeFieldNames, Map<String, String> dictMap) {
|
||||
List<NutMap> changeList = new ArrayList<>();
|
||||
NutMap currentMap = Lang.obj2nutmap(current);
|
||||
NutMap previousMap = Lang.obj2nutmap(previous);
|
||||
|
||||
for (String fieldName : allowChangeFieldNames) {
|
||||
extractChange(currentMap, previousMap, fieldName, dictMap, changeList);
|
||||
}
|
||||
return changeList;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 校验是否有变更
|
||||
* @param
|
||||
*/
|
||||
@Override
|
||||
public List<NutMap> compareMemberChangeInfo(Sys_user_history history) {
|
||||
List<NutMap> infos = history.getChangeInfos();
|
||||
if (ObjectUtil.isEmpty(infos)) {
|
||||
throw new BaseException("获取变更记录失败");
|
||||
}
|
||||
return infos;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验是否有变更
|
||||
* @param record
|
||||
*/
|
||||
@Override
|
||||
public List<NutMap> compareMemberChangeInfo(MemberApplyRecord record) {
|
||||
if (ObjectUtil.isEmpty(record) || ObjectUtil.isEmpty(record.getLoginname())) {
|
||||
throw new BaseException("未获取到变更记录");
|
||||
}
|
||||
|
||||
NutMap previousMap = NutMap.NEW();
|
||||
|
||||
View_user user = dao().fetch(View_user.class, Cnd.where("loginname", "=", record.getLoginname()));
|
||||
previousMap = Lang.obj2nutmap(user);
|
||||
|
||||
//获取允许变更的字段
|
||||
List<Sys_dict> dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD");
|
||||
Set<String> allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet());
|
||||
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName));
|
||||
|
||||
List<NutMap> changeList = new ArrayList<>();
|
||||
|
||||
NutMap currentMap = Lang.obj2nutmap(record);
|
||||
|
||||
for (String fieldName : allowChangeFieldNames) {
|
||||
extractChange(currentMap, previousMap, fieldName, dictMap, changeList);
|
||||
}
|
||||
if (Lang.isEmpty(changeList)) {
|
||||
throw new BaseException("未获取到变更数据,请核对是否修改了数据");
|
||||
}
|
||||
return changeList;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<String> compareMemberChangeType(List<NutMap> changeList, MemberApplyRecord record) {
|
||||
if (Lang.isEmpty(changeList)) {
|
||||
return null;
|
||||
}
|
||||
List<String> changeTypes = new ArrayList<>();
|
||||
// 有单位发生变化的记录数据
|
||||
long unitChangeCount = changeList.stream().filter(item -> item != null && "unitId".equals(item.get("fieldName"))).count();
|
||||
if (unitChangeCount > 0) {
|
||||
// 有单位的变化,表明是单位变更
|
||||
changeTypes.add(MemberChangeType.UNIT_CHANGE.name());
|
||||
// 如果有非单位变更,表明是基本信息变更
|
||||
long nonUnitChangeCount = changeList.size() - unitChangeCount;
|
||||
if (nonUnitChangeCount > 0) {
|
||||
changeTypes.add(MemberChangeType.BASIC_CHANGE.name());
|
||||
}
|
||||
} else {
|
||||
// 没有单位的变化,表明是基本信息变更
|
||||
changeTypes.add(MemberChangeType.BASIC_CHANGE.name());
|
||||
}
|
||||
|
||||
// record中是否存在前端传递过来的变更状态,(入会/退会)
|
||||
String changeType = record.getChangeType();
|
||||
if (StrUtil.isNotBlank(changeType)) {
|
||||
changeTypes.add(changeType);
|
||||
}
|
||||
|
||||
return changeTypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* 比较会员信息变更记录,并保存历史数据
|
||||
*
|
||||
* @param record 传递的记录
|
||||
* @return
|
||||
*/
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@Override
|
||||
public void compareMemberChangeInfoAndUpdateUser(MemberApplyRecord record) {
|
||||
List<NutMap> changeList = compareMemberChangeInfo(record);
|
||||
|
||||
View_user user = dao().fetch(View_user.class, Cnd.where("loginname", "=", record.getLoginname()));
|
||||
Sys_user_history history = new Sys_user_history();
|
||||
// 存储变更记录
|
||||
if (ObjectUtil.isNotEmpty(changeList)) {
|
||||
// 将当前的用户数据(user)记录成历史数据
|
||||
BeanUtil.copyProperties(user, history);
|
||||
|
||||
if (Lang.isNotEmpty(record.getChangeTypes())) {
|
||||
history.setChangeTypes(record.getChangeTypes());
|
||||
} else {
|
||||
List<String> changeTypes = this.compareMemberChangeType(changeList, record);
|
||||
history.setChangeTypes(changeTypes);
|
||||
}
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(history) && ObjectUtil.isNotEmpty(history.getLoginname())) {
|
||||
Date nowDate = new Date();
|
||||
history.setRecordId(record.getId());
|
||||
history.setChangeTime(nowDate);
|
||||
history.setUnionId(user.getUnionId());
|
||||
history.setUnionName(user.getUnionName());
|
||||
history.setChangeOrigin(StrUtil.isNotBlank(record.getChangeOrigin()) ? record.getChangeOrigin() : MemberChangeOrigin.SCHOOL_UNION.name());
|
||||
history.setChangeReason(record.getNotes());
|
||||
history.setRemark(record.getRemark());
|
||||
// 到此,表明审核通过,需要存储历史数据,并修改用户数据
|
||||
Chain chain = Chain.make("unitPath", null);
|
||||
|
||||
changeList.forEach(v -> {
|
||||
if ("unitId".equals(v.getString("fieldName"))) {
|
||||
chain.add(v.getString("fieldName"), record.getUnitId());
|
||||
} else {
|
||||
chain.add(v.getString("fieldName"), v.getString("newValue"));
|
||||
}
|
||||
});
|
||||
chain.add("member", record.getMember());
|
||||
chain.add("welfareMember", record.getWelfareMember());
|
||||
|
||||
Sys_role memberRole = dao().fetch(Sys_role.class, Cnd.where("`code`", "=", "MEMBER"));
|
||||
dao().clear(Sys_user_role.class, Cnd.where("userId", "=", user.getId()).and("roleId","=", memberRole.getId()));
|
||||
if (record.getMember()) {
|
||||
Sys_user_role userRole = new Sys_user_role();
|
||||
userRole.setRoleId(memberRole.getId());
|
||||
userRole.setUserId(user.getId());
|
||||
dao().insert(userRole);
|
||||
}
|
||||
|
||||
AtomicBoolean isRetire = new AtomicBoolean(false);
|
||||
String changeInfos = changeList.stream().map(v -> {
|
||||
if ("userState".equals(v.getString("fieldName")) && "退休".equals(v.getString("newValue"))) {
|
||||
isRetire.set(true);
|
||||
chain.add("retireDate", DateUtil.date());
|
||||
}
|
||||
return "(变更字段:" + v.getString("name") + ",变更前:" + HtmlUtil.cleanHtmlTag(v.getString("value","")) + ",变更后:" + HtmlUtil.cleanHtmlTag(v.getString("newValue","")) + ")";
|
||||
}).collect(Collectors.joining(";"));
|
||||
record.setChangeInfos(changeInfos);
|
||||
|
||||
history.setChangeInfos(changeList);
|
||||
history.setChangeInfosStr(changeInfos);
|
||||
dao().insert(history);
|
||||
|
||||
dao().update(Sys_user.class, chain, Cnd.where("loginname", "=", record.getLoginname()));
|
||||
} else {
|
||||
throw new BaseException("未获取到变更数据,请核对是否修改了数据");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NutMap> getLastTimeMemberChangeInfoByUserId(String userId, String verificationProjectId) {
|
||||
MemberApplyRecord record = dao().fetch(MemberApplyRecord.class, Cnd.where("userId", "=", userId)
|
||||
.and("verificationProjectId","=",verificationProjectId));
|
||||
if (ObjectUtil.isEmpty(record) || ObjectUtil.isEmpty(record.getLoginname())) {
|
||||
throw new NullPointerException("数据获取失败");
|
||||
}
|
||||
View_user user = dao().fetch(View_user.class, Cnd.where("loginname", "=", record.getLoginname()));
|
||||
|
||||
//获取允许变更的字段
|
||||
List<Sys_dict> dictList = sysDictService.getSubListByCode("MEMBER_ALLOW_CHANGES_FIELD");
|
||||
Set<String> allowChangeFieldNames = dictList.stream().map(Sys_dict::getCode).collect(Collectors.toSet());
|
||||
Map<String, String> dictMap = dictList.stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName));
|
||||
|
||||
List<NutMap> changeList = new ArrayList<>();
|
||||
|
||||
NutMap currentMap = Lang.obj2nutmap(record);
|
||||
NutMap previousMap = Lang.obj2nutmap(user);
|
||||
|
||||
for (String fieldName : allowChangeFieldNames) {
|
||||
extractChange(currentMap, previousMap, fieldName, dictMap, changeList);
|
||||
}
|
||||
return changeList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 比较两个对象,并记录变更的字段工具
|
||||
*
|
||||
* @param current 当前数据
|
||||
* @param previous 上一次的数据
|
||||
* @param dictMap 字典数据
|
||||
* @param changeList 变更集合
|
||||
*/
|
||||
@Override
|
||||
public void extractChange(NutMap current, NutMap previous, String fieldName, Map<String, String> dictMap, List<NutMap> changeList) {
|
||||
try {
|
||||
Object currentValue = this.booleanVerification(current.get(fieldName));
|
||||
Object previousValue = this.booleanVerification(previous.get(fieldName));
|
||||
|
||||
if (!ObjectUtil.equals(currentValue, previousValue)) {
|
||||
String name = dictMap.getOrDefault(fieldName, fieldName);
|
||||
if ("unitId".equals(fieldName)) {
|
||||
List<Sys_unit> unitList = dao().query(Sys_unit.class, Cnd.where("id", "in", List.of(previousValue, currentValue)));
|
||||
Object finalPreviousValue = previousValue;
|
||||
previousValue = unitList.stream().filter(v->v.getId().equals(String.valueOf(finalPreviousValue))).findFirst().orElse(new Sys_unit()).getName();
|
||||
Object finalCurrentValue = currentValue;
|
||||
currentValue = unitList.stream().filter(v->v.getId().equals(String.valueOf(finalCurrentValue))).findFirst().orElse(new Sys_unit()).getName();
|
||||
} else if ("families".equals(fieldName)) {
|
||||
return;
|
||||
}
|
||||
changeList.add(NutMap.NEW()
|
||||
.setv("fieldName", fieldName)
|
||||
.setv("name", name)
|
||||
.setv("value", previousValue)
|
||||
.setv("newValue", currentValue));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("Error while extracting and comparing changes for field: {}", fieldName, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private String booleanVerification(Object value) {
|
||||
// 检查是否为null或空字符串
|
||||
if (ObjectUtil.isAllEmpty(value, "")) {
|
||||
return "无数据";
|
||||
}
|
||||
// 处理布尔值
|
||||
if (value instanceof Boolean) {
|
||||
return ((Boolean) value) ? "是" : "否";
|
||||
}
|
||||
// 处理数值类型
|
||||
if (value instanceof Number && List.of(0, 1).contains((Integer) value)) {
|
||||
return ((Number) value).intValue() != 0 ? "是" : "否";
|
||||
}
|
||||
// 其他对象,返回其字符串表示
|
||||
if (value instanceof Date) {
|
||||
return DateUtil.format((Date) value, "yyyy-MM-dd");
|
||||
}
|
||||
return value.toString();
|
||||
}
|
||||
}
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
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.param.pageform.MemberModelWorkerPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberModelWorkerService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
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.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberModelWorkerServiceImpl
|
||||
* @Date 2024/9/25 17:29
|
||||
* @注释
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberModelWorkerServiceImpl extends BaseServiceImpl<Sys_user> implements MemberModelWorkerService {
|
||||
|
||||
public MemberModelWorkerServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Sql getSql(MemberModelWorkerPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname,
|
||||
username,
|
||||
sex,
|
||||
member,
|
||||
welfareMember,
|
||||
personType,
|
||||
userState,
|
||||
unionCode,
|
||||
unionName,
|
||||
unionId,
|
||||
unitName,
|
||||
unitCode,
|
||||
unitId,
|
||||
mobile,
|
||||
birthday,
|
||||
isModelWorker,
|
||||
modelWorkerFiles
|
||||
from
|
||||
`vw_user`
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("isModelWorker","=",true);
|
||||
if (!AuthUtil.hasRoleOr("SYSADMIN", "SCHOOL_UNION_ADMIN")) {
|
||||
cnd.and("unionId", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("unionId", "=", pageForm.getUnionId());
|
||||
}
|
||||
|
||||
cnd.andEX("unitId", "=", pageForm.getUnitId());
|
||||
if (StrUtil.isAllNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("username", pageForm.getSearchKeyword());
|
||||
seg.orLike("loginname", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
cnd.andEX("userState", "=", pageForm.getUserState());
|
||||
cnd.andEX("personType", "=", pageForm.getPersonType());
|
||||
if (StrUtil.isNotBlank(pageForm.getMemberState())) {
|
||||
cnd.andEX("member", "=", "true".equals(pageForm.getMemberState()));
|
||||
}
|
||||
if (StrUtil.isNotBlank(pageForm.getWelfareMemberState())) {
|
||||
cnd.andEX("welfareMember", "=", "true".equals(pageForm.getWelfareMemberState()));
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void doExport(MemberModelWorkerPageForm pageForm, HttpServletResponse response) {
|
||||
Sql sql = getSql(pageForm);
|
||||
List<NutMap> list = listMap(sql);
|
||||
int size = list.size();
|
||||
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginname", 20));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "username", 20));
|
||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
exportEntities.add(new ExcelExportEntity("联系电话", "mobile", 20));
|
||||
exportEntities.add(new ExcelExportEntity("身份证号", "idCard", 30));
|
||||
exportEntities.add(new ExcelExportEntity("在职状态", "userState", 20));
|
||||
exportEntities.add(new ExcelExportEntity("人员类型", "personType", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属工会", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所属单位", "unitName", 30));
|
||||
exportEntities.add(new ExcelExportEntity("是否为正式会员", "member", 10));
|
||||
exportEntities.add(new ExcelExportEntity("是否为福利会员", "welfareMember", 10));
|
||||
exportEntities.add(new ExcelExportEntity("劳模材料", "modelWorkerFiles", 20));
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
Sheet sheet = workbook.getSheetAt(0);
|
||||
|
||||
int linkColumnIndex = exportEntities.size();
|
||||
CreationHelper helper = workbook.getCreationHelper();
|
||||
ClientAnchor anchor = helper.createClientAnchor();
|
||||
|
||||
for (int rowIndex = 1; rowIndex <= size; rowIndex++) {
|
||||
|
||||
|
||||
|
||||
|
||||
Row row = sheet.getRow(rowIndex);
|
||||
Cell cell = row.createCell(linkColumnIndex);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// CommonDownloadUtil
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberSchoolUnionManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.vo.MemberChangeAuditVo;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberSchoolUnionManageServiceImpl
|
||||
* @Date 2024/8/13 15:33
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberSchoolUnionManageServiceImpl extends BaseServiceImpl<Sys_user> implements MemberSchoolUnionManageService {
|
||||
public MemberSchoolUnionManageServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination getPageData(MemberManagePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
record.id,
|
||||
record.userId,
|
||||
record.username,
|
||||
record.loginname,
|
||||
record.changeType,
|
||||
record.changeTypes,
|
||||
record.changeOrigin,
|
||||
record.applyDateTime,
|
||||
record.unitId,
|
||||
IFNULL(record.unionId, vu.unionid) AS unionId,
|
||||
vu.unionname AS unionName,
|
||||
IFNULL(record.unitName, vu.unitname) AS unitName,
|
||||
IFNULL(record.userState, vu.userState) AS userState,
|
||||
IFNULL(record.preparedBy, vu.preparedBy) AS preparedBy,
|
||||
IFNULL(record.personType, vu.personType) AS personType,
|
||||
inst.id processInstanceId,
|
||||
inst.processInstanceNodeId,
|
||||
inst.processInstanceNodeCode,
|
||||
inst.processInstanceNodeName,
|
||||
inst.processInstanceTaskIds,
|
||||
inst.processInstanceStatus,
|
||||
task.id processInstanceTaskId,
|
||||
task.taskStatus processInstanceTaskStatus,
|
||||
COUNT( nt.id ) OVER ( PARTITION BY task.id ) > 0 AS nextTaskIsComplete
|
||||
FROM
|
||||
bpm_process_task task
|
||||
INNER JOIN bpm_process_node_define nd ON nd.id = task.processTaskNodeId
|
||||
INNER JOIN bpm_process_instance inst ON inst.id = task.processInstanceId
|
||||
INNER JOIN bpm_process_define define On inst.processDefineId = define.id
|
||||
INNER JOIN member_apply_record record ON record.id = inst.processInstanceBusinessId
|
||||
LEFT JOIN bpm_process_task nt ON nt.prevTaskId = task.id AND nt.taskStatus = 'COMPLETE'
|
||||
LEFT JOIN vw_user vu ON vu.id = record.userId
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
MemberManagePageForm.buildAuditSearch(cnd, pageForm);
|
||||
cnd.and("nd.nodeCode", "=", 20);
|
||||
cnd.and("define.`code`", "=", BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE.name());
|
||||
cnd.desc("record.applyDateTime");
|
||||
sql.setCondition(cnd);
|
||||
return listPageVO(pageForm, sql, MemberChangeAuditVo.class);
|
||||
}
|
||||
}
|
||||
+402
@@ -0,0 +1,402 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.service.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberStatisticsPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberStatisticsService;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
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.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberStatisticsServiceImpl
|
||||
* @Date 2024/8/8 14:55
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class MemberStatisticsServiceImpl extends BaseServiceImpl<Sys_user> implements MemberStatisticsService {
|
||||
|
||||
public MemberStatisticsServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Cnd getCnd(MemberStatisticsPageForm 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(), pageForm.getPageOrderBy().equalsIgnoreCase("ascending") ? "ASC" : "DESC");
|
||||
}
|
||||
|
||||
if (Lang.isNotEmpty(pageForm.getAge()) && !"0".equals(pageForm.getAge().get(0)) && !"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.getStartDate()) && Strings.isNotBlank(pageForm.getEndDate())) {
|
||||
if (reverseSelection) {
|
||||
cnd.andNot("DATE(u.birthday)", "between", new String[]{pageForm.getStartDate(), pageForm.getEndDate()});
|
||||
} else {
|
||||
cnd.and("DATE(u.birthday)", "between", new String[]{pageForm.getStartDate(), pageForm.getEndDate()});
|
||||
}
|
||||
}
|
||||
|
||||
if (Strings.isNotBlank(pageForm.getStartDate()) && Strings.isBlank(pageForm.getEndDate())) {
|
||||
cnd.and("DATE(u.birthday)", GE_OR_NGE_OP, pageForm.getStartDate());
|
||||
}
|
||||
|
||||
if (Strings.isBlank(pageForm.getStartDate()) && Strings.isNotBlank(pageForm.getEndDate())) {
|
||||
cnd.and("DATE(u.birthday)", LE_OR_NLE_OP, pageForm.getEndDate());
|
||||
}
|
||||
|
||||
try {
|
||||
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);
|
||||
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);
|
||||
cnd.andEX("sur.roleId", IN_OR_NIN_OP, pageForm.getRoleIds());
|
||||
} 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Sql getComprehensiveSql(MemberStatisticsPageForm pageForm) {
|
||||
int yyyy = Calendar.getInstance().get(Calendar.YEAR);
|
||||
Cnd cnd = getCnd(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.technicalTitle,
|
||||
u.technicalTitleLevel,
|
||||
u.position,
|
||||
u.positionLevel,
|
||||
u.employeeLevel,
|
||||
u.arrivalAtSchoolDate,
|
||||
u.personType,
|
||||
u.preparedBy,
|
||||
u.identityType,
|
||||
u.userState,
|
||||
u.unionName,
|
||||
u.unitName,
|
||||
u.member,
|
||||
u.postDoctoralJoinDate
|
||||
FROM
|
||||
$table
|
||||
$hisUser
|
||||
LEFT JOIN sys_user_role sur ON sur.userid = u.id
|
||||
$condition
|
||||
""");
|
||||
if (pageForm.getYear() == yyyy) {
|
||||
sql.setVar("table", "vw_user u");
|
||||
} else {
|
||||
sql.setVar("table", "member_history his");
|
||||
sql.setVar("hisUser", " LEFT JOIN vw_user u ON u.id = his.userId ");
|
||||
cnd.and("his.year", "=", pageForm.getYear());
|
||||
}
|
||||
|
||||
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.getSearchType()) && !"all".equals(pageForm.getSearchType())) {
|
||||
if ("member".equals(pageForm.getSearchType())) {
|
||||
cnd.and("u.member", "=", true);
|
||||
} else {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.or("u.member", "=", false);
|
||||
seg.or("u.member", "is", null);
|
||||
cnd.and(seg);
|
||||
}
|
||||
}
|
||||
|
||||
if (StrUtil.isAllNotBlank(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord())) {
|
||||
cnd.and(new SqlExpressionGroup().andLike(pageForm.getMemberSearchName(), pageForm.getMemberSearchKeyWord()));
|
||||
}
|
||||
|
||||
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("u.unionId", "in", SecurityUtil.getUnionId());
|
||||
}
|
||||
// cnd.desc("u.unitId");
|
||||
cnd.desc("u.unionName,u.id");
|
||||
cnd.groupBy("u.id");
|
||||
sql.setCondition(cnd);
|
||||
return sql;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUnionAnalysisData(String queryId, Integer currentYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
gh.id,
|
||||
gh.unionCode,
|
||||
gh.`name` as unionName,
|
||||
( SELECT count( 1 ) FROM member_history his LEFT JOIN vw_user u on u.id = his.userId WHERE his.`year` = @lastYear AND u.unionId = gh.id ) AS lastYearMemberNum,
|
||||
( SELECT count( 1 ) FROM member_apply_record WHERE changeUnionId is not null AND unionId = gh.id AND unionId != changeUnionId AND YEAR ( applyDateTime ) = @currentYear ) AS memberUnitChangeNumIn,
|
||||
( SELECT count( 1 ) FROM member_apply_record WHERE changeUnionId is not null AND changeUnionId = gh.id AND unionId != changeUnionId AND YEAR ( applyDateTime ) = @currentYear ) AS memberUnitChangeNumOut,
|
||||
( SELECT count( 1 ) FROM sys_user_history his LEFT JOIN `vw_user` u ON u.loginname = his.loginname WHERE JSON_CONTAINS(his.changeTypes, '["NEW", "RESTORE"]', '$') AND u.unionId = gh.id AND YEAR ( his.changeTime ) = @currentYear ) AS newResetMemberNum,
|
||||
( SELECT count( 1 ) FROM sys_user_history his LEFT JOIN `vw_user` u ON u.loginname = his.loginname WHERE JSON_CONTAINS(his.changeTypes, '["WITHDRAWAL"]', '$') AND u.unionId = gh.id AND YEAR ( his.changeTime ) = @currentYear ) AS reduceOtherNum,
|
||||
( SELECT count( 1 ) FROM $table where member = 1 and unionId = gh.id) as currentYearMemberNum
|
||||
FROM
|
||||
sys_union gh
|
||||
$condition
|
||||
""");
|
||||
sql.setParam("lastYear", currentYear - 1);
|
||||
sql.setParam("currentYear", currentYear);
|
||||
sql.setVar("table", ((Integer) DateUtil.thisYear()).equals(currentYear) ? "`vw_user`" : "member_history");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("gh.id", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("gh.id", "=", queryId);
|
||||
}
|
||||
cnd.groupBy("gh.id, gh.unionCode, gh.name");
|
||||
cnd.asc("gh.unionCode");
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = listMap(sql);
|
||||
list.forEach(v -> {
|
||||
v.put("newMemberNum", NumberUtil.parseInt(v.getString("memberUnitChangeNumIn"),0) + NumberUtil.parseInt(v.getString("newResetMemberNum"),0));
|
||||
v.put("reduceMemberNum", NumberUtil.parseInt(v.getString("memberUnitChangeNumOut"),0) + NumberUtil.parseInt(v.getString("reduceOtherNum")));
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUnitAnalysisData(String queryId, Integer currentYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
dw.id,
|
||||
dw.unitcode as unitCode,
|
||||
dw.`name` as unitName,
|
||||
( SELECT count( 1 ) FROM member_history WHERE `year` = @lastYear AND unitId = dw.id ) AS lastYearMemberNum,
|
||||
( SELECT count( 1 ) FROM member_apply_record WHERE changeUnitId is not null AND unitId = dw.id AND unitId != changeUnitId AND YEAR ( applyDateTime ) = @currentYear ) AS memberUnitChangeNumIn,
|
||||
( SELECT count( 1 ) FROM member_apply_record WHERE changeUnitId is not null AND changeUnitId = dw.id AND unitId != changeUnitId AND YEAR ( applyDateTime ) = @currentYear ) AS memberUnitChangeNumOut,
|
||||
( SELECT count( 1 ) FROM sys_user_history his LEFT JOIN vw_user u ON u.loginname = his.loginname WHERE JSON_CONTAINS(his.changeTypes, '["NEW", "RESTORE"]', '$') AND u.unitId = dw.id AND YEAR ( his.changeTime ) = @currentYear ) AS newResetMemberNum,
|
||||
( SELECT count( 1 ) FROM sys_user_history his LEFT JOIN vw_user u ON u.loginname = his.loginname WHERE JSON_CONTAINS(his.changeTypes, '["WITHDRAWAL"]', '$') AND u.unitId = dw.id AND YEAR ( his.changeTime ) = @currentYear ) AS reduceOtherNum,
|
||||
( SELECT count( 1 ) from vw_user where member = 1 and unitId = dw.id) as currentYearMemberNum
|
||||
FROM
|
||||
sys_unit dw
|
||||
$condition
|
||||
""");
|
||||
sql.setParam("lastYear", currentYear - 1);
|
||||
sql.setParam("currentYear", currentYear);
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.and("dw.unitLevel", "=", 2);
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("dw.unionId", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("dw.id", "=", queryId);
|
||||
}
|
||||
cnd.groupBy("dw.id", "dw.unitcode", "dw.name");
|
||||
cnd.asc("dw.unitcode");
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = listMap(sql);
|
||||
list.forEach(v -> {
|
||||
v.put("newMemberNum", v.getInt("memberUnitChangeNumIn") + v.getInt("newResetMemberNum"));
|
||||
v.put("reduceMemberNum", v.getInt("memberUnitChangeNumOut") + v.getInt("reduceOtherNum"));
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Workbook exportAnalysisExcel(List<NutMap> list, String queryType) {
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
if ("union".equals(queryType)) {
|
||||
exportEntities.add(new ExcelExportEntity("工会名称", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("工会编码", "unionCode", 20));
|
||||
} else {
|
||||
exportEntities.add(new ExcelExportEntity("单位名称", "unitName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("单位编码", "unitCode", 20));
|
||||
}
|
||||
exportEntities.add(new ExcelExportEntity("年初数量", "lastYearMemberNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("新增人数", "newMemberNum", 30));
|
||||
exportEntities.add(new ExcelExportEntity("新入职、入会人数", "newResetMemberNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("减少人数", "reduceMemberNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("校内转出", "memberUnitChangeNumOut", 20));
|
||||
exportEntities.add(new ExcelExportEntity("退会人数", "reduceOtherNum", 20));
|
||||
exportEntities.add(new ExcelExportEntity("当前数量", "currentYearMemberNum", 30));
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
exportParams.setHeight((short) 10);
|
||||
return ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUnionStatisticsData(String unionId, Integer currentYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
un.id,
|
||||
un.unionCode,
|
||||
un.`name` AS unionName,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 40 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallForty,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 41 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 50 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFifty,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 51 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 55 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFiftyFive,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) > 55 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFiftyFive2,
|
||||
COUNT(*) AS totalNumber,
|
||||
SUM(CASE WHEN sex = '男' $personCnd $yearCnd THEN 1 ELSE 0 END) AS maleMember,
|
||||
SUM(CASE WHEN sex = '女' $personCnd $yearCnd THEN 1 ELSE 0 END) AS femaleMember
|
||||
FROM
|
||||
sys_union un
|
||||
JOIN $table u ON u.unionId = un.id AND u.member = 1
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("un.id", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("un.id", "=", unionId);
|
||||
}
|
||||
if (DateUtil.thisYear() == currentYear) {
|
||||
sql.setVar("table", new Static("vw_user"));
|
||||
// sql.setVar("abbr", new Static("u"));
|
||||
} else {
|
||||
sql.setVar("table", new Static("member_history"));
|
||||
sql.setVar("yearCnd", new Static(" AND u.`year` = %d".formatted(currentYear)));
|
||||
// sql.setVar("abbr", new Static("his"));
|
||||
}
|
||||
cnd.groupBy("un.id", "un.unionCode", "un.name");
|
||||
cnd.asc("un.unionCode");
|
||||
sql.setCondition(cnd);
|
||||
return listMap(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NutMap> getUnitStatisticsData(String unitId, Integer currentYear) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
un.id,
|
||||
un.unitcode AS unitCode,
|
||||
un.`name` AS unitName,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 40 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallForty,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 41 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 50 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFifty,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) >= 51 AND TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) <= 55 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFiftyFive,
|
||||
SUM(CASE WHEN TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) > 55 $personCnd $yearCnd THEN 1 ELSE 0 END) AS smallFiftyFive2,
|
||||
COUNT(*) AS totalNumber,
|
||||
SUM(CASE WHEN sex = '男' $personCnd $yearCnd THEN 1 ELSE 0 END) AS maleMember,
|
||||
SUM(CASE WHEN sex = '女' $personCnd $yearCnd THEN 1 ELSE 0 END) AS femaleMember
|
||||
FROM
|
||||
sys_unit un
|
||||
JOIN $table u ON u.unitId = un.id AND u.member = 1
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("un.unionId", "=", SecurityUtil.getUnionId());
|
||||
} else {
|
||||
cnd.andEX("un.id", "=", unitId);
|
||||
}
|
||||
if (DateUtil.thisYear() == currentYear) {
|
||||
sql.setVar("table", new Static("vw_user"));
|
||||
} else {
|
||||
sql.setVar("table", new Static("member_history"));
|
||||
sql.setVar("yearCnd", new Static(" AND u.`year` = %d".formatted(currentYear)));
|
||||
}
|
||||
cnd.and("un.unitLevel", "=", 2);
|
||||
cnd.groupBy("un.id", "un.unitcode", "un.name");
|
||||
cnd.asc("un.unitcode");
|
||||
sql.setCondition(cnd);
|
||||
return listMap(sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Workbook exportStatisticsExcel(List<NutMap> list, String queryType) {
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
if ("union".equals(queryType)) {
|
||||
exportEntities.add(new ExcelExportEntity("工会名称", "unionName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("工会编码", "unionCode", 20));
|
||||
} else {
|
||||
exportEntities.add(new ExcelExportEntity("单位名称", "unitName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("单位编码", "unitCode", 20));
|
||||
}
|
||||
exportEntities.add(new ExcelExportEntity("总人数", "totalNumber", 20));
|
||||
exportEntities.add(new ExcelExportEntity("男会员", "maleMember", 20));
|
||||
exportEntities.add(new ExcelExportEntity("女会员", "femaleMember", 20));
|
||||
exportEntities.add(new ExcelExportEntity("小于等于40岁会员", "smallForty", 20));
|
||||
exportEntities.add(new ExcelExportEntity("40-50", "smallFifty", 20));
|
||||
exportEntities.add(new ExcelExportEntity("50-55", "smallFiftyFive", 20));
|
||||
exportEntities.add(new ExcelExportEntity("大于55", "smallFiftyFive2", 20));
|
||||
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
exportParams.setHeight((short) 10);
|
||||
return ExcelExportUtil.exportExcel(exportParams, exportEntities, list);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.vo;
|
||||
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalVo;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberApplyVo
|
||||
* @Date 2024/11/11 11:08
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MemberApplyVo extends BpmTaskApprovalVo {
|
||||
|
||||
private String id;
|
||||
private String userId;
|
||||
private String username;
|
||||
private String loginname;
|
||||
private String unitId;
|
||||
private String changeUnitId;
|
||||
private String unitName;
|
||||
private String unionId;
|
||||
private String changeUnionId;
|
||||
private String unionName;
|
||||
private String sex;
|
||||
private String idCard;
|
||||
private String nation;
|
||||
private String political;
|
||||
private String education;
|
||||
private String governmentPosition;
|
||||
private String userState;
|
||||
private String personType;
|
||||
private String mobile;
|
||||
private String email;
|
||||
private Boolean wantJoinLoveMutualAidAssociation;
|
||||
private Boolean member;
|
||||
private Boolean welfareMember;
|
||||
private String families;
|
||||
private String personalData;
|
||||
private String notes;
|
||||
private String changeType;
|
||||
private List<String> changeTypes;
|
||||
private String changeOrigin;
|
||||
private Date applyDateTime;
|
||||
private String verificationProjectId;
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.vo;
|
||||
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalVo;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberChangeAuditPageVo
|
||||
* @Date 2024/10/23 18:02
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class MemberChangeAuditVo extends BpmTaskApprovalVo {
|
||||
|
||||
private String id;
|
||||
private String userId;
|
||||
private String username;
|
||||
private String loginname;
|
||||
private String unitId;
|
||||
private String changeUnitId;
|
||||
private String unitName;
|
||||
private String unionId;
|
||||
private String changeUnionId;
|
||||
private String unionName;
|
||||
private String sex;
|
||||
private String idCard;
|
||||
private String nation;
|
||||
private String political;
|
||||
private String education;
|
||||
private String governmentPosition;
|
||||
private String userState;
|
||||
private String personType;
|
||||
private String mobile;
|
||||
private String email;
|
||||
private Boolean wantJoinLoveMutualAidAssociation;
|
||||
private Boolean member;
|
||||
private Boolean welfareMember;
|
||||
private String families;
|
||||
private String personalData;
|
||||
private String notes;
|
||||
private String changeType;
|
||||
private List<String> changeTypes;
|
||||
private String changeOrigin;
|
||||
private Date applyDateTime;
|
||||
private String verificationProjectId;
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.budwk.app.zhgh.staffmanage.member.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.write.style.ColumnWidth;
|
||||
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
|
||||
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:MemberImportVo
|
||||
* @Date 2024/10/14 11:48
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode
|
||||
@ContentRowHeight(20) // 内容行高
|
||||
@HeadRowHeight(20) // 表头行高
|
||||
@ColumnWidth(25) //列宽
|
||||
public class MemberImportVo {
|
||||
|
||||
@ExcelProperty("工号")
|
||||
private String loginname;
|
||||
|
||||
@ExcelProperty("姓名")
|
||||
private String username;
|
||||
|
||||
@ExcelProperty("性别")
|
||||
private String sex;
|
||||
|
||||
@ExcelProperty("联系方式")
|
||||
private String mobile;
|
||||
|
||||
@ExcelProperty("身份证号")
|
||||
private String idCard;
|
||||
|
||||
@ExcelProperty("在职状态")
|
||||
private String userState;
|
||||
|
||||
@ExcelProperty("人员类型")
|
||||
private String personType;
|
||||
|
||||
@ExcelProperty("单位编号")
|
||||
private String unitCode;
|
||||
|
||||
@ExcelProperty("单位名称")
|
||||
private String unitName;
|
||||
|
||||
// @ExcelProperty("科室编号")
|
||||
// private String threeUnitCode;
|
||||
//
|
||||
// @ExcelProperty("科室名称")
|
||||
// private String threeUnitName;
|
||||
|
||||
@ExcelProperty("是否会员")
|
||||
private String isMember;
|
||||
|
||||
@ExcelIgnore
|
||||
private String errorInfo;
|
||||
|
||||
}
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
package com.budwk.app.zhgh.staffmanage.sourcechange.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.constant.BpmProcessConstant;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.bpm.service.BpmService;
|
||||
import com.budwk.app.bpm.vo.BpmTaskApprovalRecordVo;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import com.budwk.app.sys.services.SysUserService;
|
||||
import com.budwk.app.zhgh.staffmanage.member.service.MemberManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.sourcechange.param.SourceChangePageForm;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Cnd;
|
||||
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.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.validation.Valid;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SourceChangeManageController
|
||||
* @Date 2024/11/21 10:22
|
||||
* @注释 人员异动查看
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/sourcechange/manage")
|
||||
public class SourceChangeManageController {
|
||||
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
@Inject
|
||||
private SysUserService sysUserService;
|
||||
@Inject
|
||||
private MemberManageService memberManageService;
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/sourcechange/manage/index.html")
|
||||
@SaCheckPermission("staff.sourcechange.manage")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("人员管理,人员变更信息查看")
|
||||
@SaCheckPermission("staff.sourcechange.manage")
|
||||
public Result pageData(SourceChangePageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
his.id,
|
||||
his.loginname,
|
||||
his.username,
|
||||
u.sex,
|
||||
u.unitName,
|
||||
u.unionName,
|
||||
his.userState,
|
||||
his.personType,
|
||||
his.preparedBy,
|
||||
his.changeTime,
|
||||
his.changeTypes,
|
||||
his.changeOrigin,
|
||||
his.remark,
|
||||
u.id AS userId
|
||||
FROM
|
||||
sys_user_history his
|
||||
LEFT JOIN vw_user u ON his.loginname = u.loginname
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if(StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("u.username",pageForm.getSearchKeyword());
|
||||
seg.orLike("u.loginname",pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
}
|
||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("u.sex", "=", pageForm.getSex());
|
||||
cnd.andEX("his.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("his.preparedBy", "=", pageForm.getPreparedBy());
|
||||
cnd.andEX("his.userState", "=", pageForm.getUserState());
|
||||
// cnd.andEX("his.changeType", "=", pageForm.getChangeType());
|
||||
cnd.andEX("his.changeOrigin", "=", pageForm.getChangeOrigins());
|
||||
|
||||
if (StrUtil.isNotBlank(pageForm.getChangeType())) {
|
||||
cnd.and(new Static("JSON_CONTAINS(his.changeTypes, JSON_QUOTE('%s'), '$')".formatted(pageForm.getChangeType())));
|
||||
}
|
||||
|
||||
if (StrUtil.isAllNotBlank(pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())) {
|
||||
cnd.and(new Static(String.format("Date(changeTime) >= '%s' and Date(changeTime) <= '%s'", pageForm.getChangeDateBefore(), pageForm.getChangeDateEnd())));
|
||||
} else {
|
||||
cnd.and("Date(changeTime)", "=", DateUtil.today());
|
||||
}
|
||||
cnd.desc("changeTime");
|
||||
sql.setCondition(cnd);
|
||||
return Result.success(sysUserService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql));
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("人员管理,人员全部变更信息查看")
|
||||
@SaCheckPermission("staff.sourcechange.manage")
|
||||
public Result getChangeInfoByUserId(String userId) {
|
||||
return Result.success(memberManageService.getMemberChangeInfoByUserId(userId));
|
||||
}
|
||||
|
||||
@At
|
||||
@ApiOperation("人员管理,人员当前变更信息查看")
|
||||
@SaCheckPermission("staff.sourcechange.manage")
|
||||
public Result findAuditChangeInfo(@Valid String recordId) {
|
||||
Sys_user_history history = memberManageService.dao().fetch(Sys_user_history.class, recordId);
|
||||
List<BpmTaskApprovalRecordVo> nodeTasks = new ArrayList<>();
|
||||
try {
|
||||
nodeTasks = bpmService.getNodeTasks(BpmProcessConstant.MEMBER_BRANCH_UNION_CHANGE, recordId);
|
||||
} catch (Exception e) {
|
||||
log.error("FIND_AUDIT_CHANGE_INFO BY BpmTaskApprovalRecordVo error:{}", e.getMessage());
|
||||
}
|
||||
|
||||
List<NutMap> list = memberManageService.compareMemberChangeInfo(history);
|
||||
return Result.success(NutMap.NEW().addv("changeList", list).addv("nodeTasks", nodeTasks).addv("remark", history.getRemark()));
|
||||
}
|
||||
}
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
package com.budwk.app.zhgh.staffmanage.sourcechange.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.sys.models.Sys_user_history;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SourceChangePageForm
|
||||
* @Date 2024/11/21 10:24
|
||||
* @注释
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class SourceChangePageForm extends PageForm<Sys_user_history> {
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String sex;
|
||||
|
||||
private String personType;
|
||||
|
||||
private String preparedBy;
|
||||
|
||||
private String userState;
|
||||
|
||||
private String changeType;
|
||||
|
||||
//变更状态数组
|
||||
private List<String> changeTypes;
|
||||
|
||||
//是否变更
|
||||
private Integer changed;
|
||||
|
||||
private Integer isMember;
|
||||
|
||||
//变更开始时间
|
||||
private String changeDateBefore;
|
||||
|
||||
//变更结束时间
|
||||
private String changeDateEnd;
|
||||
|
||||
//变更来源
|
||||
private List<Integer> changeOrigins;
|
||||
}
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
package com.budwk.app.zhgh.staffmanage.specialstaff.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.event.user.SysUserEvent;
|
||||
import com.budwk.app.base.event.user.SysUserPublisher;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.services.SysRoleService;
|
||||
import com.budwk.app.sys.services.SysUserService;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.service.SpecialStaffManageService;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.vo.SpecialStaffVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
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.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.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SpecialStaffManageController
|
||||
* @Date 2024/10/25 9:03
|
||||
* @注释 特殊人员管理
|
||||
*/
|
||||
@Slf4j
|
||||
@IocBean
|
||||
@Ok("json")
|
||||
@At("/platform/staff/special/manage")
|
||||
public class SpecialStaffManageController {
|
||||
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private SpecialStaffManageService specialStaffManageService;
|
||||
@Inject
|
||||
private SysRoleService sysRoleService;
|
||||
@Inject
|
||||
private SysUserService sysUserService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/staffmanage/specialstaff/manage/index.html")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("人员管理特别人员管理")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
public Result pageData(SpecialStaffPageForm pageForm) {
|
||||
Pagination pagination = specialStaffManageService.pageData(pageForm);
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("特别人员管理,获取人事关系用户信息")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
public Result getUserInfo(String userId) {
|
||||
NutMap userInfo = specialStaffManageService.getUserInfo(userId);
|
||||
return Result.success(userInfo);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("特别人员管理,获取特殊人员用户信息")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
public Result getSpecialStaffUserInfo(String userId) {
|
||||
NutMap specialStaffUserInfo = specialStaffManageService.getSpecialStaffUserInfo(userId);
|
||||
return Result.success(specialStaffUserInfo);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("特别人员管理,新增特别人员")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
public Result addSpecialStaff(@Param("data") SpecialStaffVo specialStaffVo) {
|
||||
SpecialStaff staff = new SpecialStaff();
|
||||
Sys_user user = dao.fetch(Sys_user.class, specialStaffVo.getUserId());
|
||||
boolean isNotify = false;
|
||||
View_user viewUser = dao.fetch(View_user.class, Cnd.where("id", "=", specialStaffVo.getUserId()));
|
||||
SpecialStaff specialStaff = dao.fetch(SpecialStaff.class, Cnd.where("userId", "=", specialStaffVo.getUserId()));
|
||||
if (Lang.isNotEmpty(specialStaff)) {
|
||||
staff = specialStaff;
|
||||
}
|
||||
BeanUtil.copyProperties(specialStaffVo, staff);
|
||||
if (specialStaffVo.getIsManyUnit()!=null && specialStaffVo.getIsManyUnit()) {
|
||||
|
||||
if (!user.getUnitId().equals(specialStaffVo.getUnionRelationUnitId())) {
|
||||
isNotify = true;
|
||||
}
|
||||
// 如果是多单位人员, 更改单位为工会关系
|
||||
user.setUnitId(specialStaffVo.getUnionRelationUnitId());
|
||||
dao.updateIgnoreNull(user);
|
||||
|
||||
staff.setIsManyUnit(true);
|
||||
staff.setPersonnelRelationUnitName(viewUser.getUnitName());
|
||||
staff.setPersonnelRelationUnionName(viewUser.getUnionName());
|
||||
}
|
||||
staff.setUserId(user.getId());
|
||||
dao.insertOrUpdate(staff);
|
||||
sysRoleService.clearCache();
|
||||
sysUserService.clearCache();
|
||||
|
||||
if (isNotify) {
|
||||
SysUserPublisher.notify(SysUserEvent.builder().userId(user.getId()).memberChangeType(MemberChangeType.UNIT_CHANGE).build());
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@ApiOperation("特别人员管理,删除特别人员")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
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()), Cnd.where("id", "=", userId));
|
||||
SysUserPublisher.notify(SysUserEvent.builder().userId(userId).memberChangeType(MemberChangeType.UNIT_CHANGE).build());
|
||||
}
|
||||
dao.clear(SpecialStaff.class, Cnd.where("userId", "=", userId));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ApiOperation("特别人员管理,查询用户")
|
||||
@SaCheckPermission("staff.special.manage")
|
||||
public Result queryUser(String keyWord) {
|
||||
Sql sql = Sqls.create("""
|
||||
select id,username,loginname,unitId,unitName,unionId,unionName from `vw_user` $condition limit 0,10
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.where("id", "not in", "(select userId from special_staff)");
|
||||
if (StrUtil.isNotBlank(keyWord)) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("username", keyWord);
|
||||
seg.orLike("loginname", keyWord);
|
||||
cnd.and(seg);
|
||||
}
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = specialStaffManageService.listMap(sql);
|
||||
return Result.success(list);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.budwk.app.zhgh.staffmanage.specialstaff.model;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SpecialStaff
|
||||
* @Date 2024/10/25 9:05
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@Comment("特别人员")
|
||||
@Table("special_staff")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SpecialStaff extends BaseModel {
|
||||
|
||||
@Name
|
||||
@Comment("ID")
|
||||
@PrevInsert(uu32 = true)
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String id;
|
||||
|
||||
@Column
|
||||
@Comment("组员对应的用户id")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String userId;
|
||||
|
||||
@Column
|
||||
@Comment("人事关系部门")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String personnelRelationUnitId;
|
||||
|
||||
@Column
|
||||
@Comment("人事关系部门名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String personnelRelationUnitName;
|
||||
|
||||
@Column
|
||||
@Comment("人事关系工会名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String personnelRelationUnionName;
|
||||
|
||||
@Column
|
||||
@Comment("人事关系三级单位")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String personnelRelationThreeUnitId;
|
||||
|
||||
@Column
|
||||
@Comment("人事关系三级单位")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String personnelRelationThreeUnitName;
|
||||
|
||||
@Column
|
||||
@Comment("人事关系工会小组名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String personnelRelationUnionGroupName;
|
||||
|
||||
@Column
|
||||
@Comment("工会关系部门")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unionRelationUnitId;
|
||||
|
||||
@Column
|
||||
@Comment("工会关系三级单位")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unionRelationThreeUnitId;
|
||||
|
||||
@Column
|
||||
@Comment("工会关系小组名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 100)
|
||||
private String unionRelationUnionGroupName;
|
||||
|
||||
@Column
|
||||
@Comment("特殊人员类型")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default("0")
|
||||
private Boolean isManyUnit;
|
||||
|
||||
@Column
|
||||
@Comment("特殊人员类型")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String specialStaffType;
|
||||
|
||||
@Column
|
||||
@Comment("特殊人员备注")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 200)
|
||||
private String specialStaffRemark;
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.budwk.app.zhgh.staffmanage.specialstaff.param;
|
||||
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SpecialStaffPageForm
|
||||
* @Date 2024/10/25 9:31
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SpecialStaffPageForm extends PageForm<SpecialStaff> {
|
||||
|
||||
private String unionId;
|
||||
|
||||
private String unitId;
|
||||
|
||||
private String unionGroupId;
|
||||
|
||||
private String threeUnitId;
|
||||
|
||||
private String personType;
|
||||
|
||||
private String userState;
|
||||
|
||||
private String specialStaffType;
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package com.budwk.app.zhgh.staffmanage.specialstaff.service;
|
||||
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SpecialStaffManageService
|
||||
* @Date 2024/10/25 9:42
|
||||
* @注释
|
||||
*/
|
||||
public interface SpecialStaffManageService extends BaseService<SpecialStaff> {
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
* @param pageForm
|
||||
* @return
|
||||
*/
|
||||
Pagination pageData(SpecialStaffPageForm pageForm);
|
||||
|
||||
/**
|
||||
* 获取用户信息(人事关系)
|
||||
* @param userId 用户id
|
||||
* @return
|
||||
*/
|
||||
NutMap getUserInfo(String userId);
|
||||
|
||||
/**
|
||||
* 获取用户信息(特殊人员)
|
||||
* @param userId 用户id
|
||||
* @return
|
||||
*/
|
||||
NutMap getSpecialStaffUserInfo(String userId);
|
||||
}
|
||||
+136
@@ -0,0 +1,136 @@
|
||||
package com.budwk.app.zhgh.staffmanage.specialstaff.service.impl;
|
||||
|
||||
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.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.utils.PageUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.model.SpecialStaff;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.param.SpecialStaffPageForm;
|
||||
import com.budwk.app.zhgh.staffmanage.specialstaff.service.SpecialStaffManageService;
|
||||
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.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SpecialStaffManageServiceImpl
|
||||
* @Date 2024/10/25 9:43
|
||||
* @注释
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
public class SpecialStaffManageServiceImpl extends BaseServiceImpl<SpecialStaff> implements SpecialStaffManageService {
|
||||
public SpecialStaffManageServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pagination pageData(SpecialStaffPageForm pageForm) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
s.*,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.sex,
|
||||
u.member,
|
||||
u.welfareMember,
|
||||
u.personType,
|
||||
u.userState,
|
||||
u.unitName AS unionRelationUnitName,
|
||||
u.unionName AS unionRelationUnionName,
|
||||
u.mobile,
|
||||
u.birthday
|
||||
FROM
|
||||
`special_staff` s
|
||||
LEFT JOIN `vw_user` u ON s.userId = u.id
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
|
||||
cnd.and("u.unionId", "=", SecurityUtil.getUnionId());
|
||||
}
|
||||
if (StrUtil.isNotBlank(pageForm.getSearchKeyword())) {
|
||||
SqlExpressionGroup seg = new SqlExpressionGroup();
|
||||
seg.orLike("u.username", pageForm.getSearchKeyword());
|
||||
seg.orLike("u.loginname", pageForm.getSearchKeyword());
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
if (StrUtil.isAllNotBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
|
||||
cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
|
||||
} else {
|
||||
cnd.asc("u.unitCode");
|
||||
cnd.asc("u.loginname");
|
||||
}
|
||||
|
||||
cnd.andEX("u.unionId", "=", pageForm.getUnionId());
|
||||
cnd.andEX("u.unitId", "=", pageForm.getUnitId());
|
||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("u.userState", "=", pageForm.getUserState());
|
||||
cnd.andEX("u.personType", "=", pageForm.getPersonType());
|
||||
cnd.andEX("s.specialStaffType", "=", pageForm.getSpecialStaffType());
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NutMap getUserInfo(String userId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id AS userId,
|
||||
username,
|
||||
loginname,
|
||||
unitId AS personnelRelationUnitId,
|
||||
unitName AS personnelRelationUnitName,
|
||||
unionName AS personnelRelationUnionName,
|
||||
userState,
|
||||
personType,
|
||||
mobile
|
||||
FROM
|
||||
`vw_user`
|
||||
WHERE
|
||||
id = @userId
|
||||
""");
|
||||
sql.setParam("userId", userId);
|
||||
sql.setCallback(Sqls.callback.map());
|
||||
dao().execute(sql);
|
||||
return (NutMap) sql.getResult();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public NutMap getSpecialStaffUserInfo(String userId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
s.*,
|
||||
u.loginname,
|
||||
u.username,
|
||||
u.sex,
|
||||
u.member,
|
||||
u.welfareMember,
|
||||
u.personType,
|
||||
u.userState,
|
||||
u.unitName AS unionRelationUnitName,
|
||||
u.unionName AS unionRelationUnionName,
|
||||
u.mobile,
|
||||
u.birthday
|
||||
FROM
|
||||
`special_staff` s
|
||||
LEFT JOIN `vw_user` u ON s.userId = u.id
|
||||
WHERE
|
||||
s.userId=@userId
|
||||
""");
|
||||
sql.setParam("userId", userId);
|
||||
sql.setCallback(Sqls.callback.map());
|
||||
dao().execute(sql);
|
||||
return (NutMap) sql.getResult();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.budwk.app.zhgh.staffmanage.specialstaff.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @version 1.0
|
||||
* @Author zzr
|
||||
* @name:SpecialStaffVo
|
||||
* @Date 2024/10/25 9:36
|
||||
* @注释
|
||||
*/
|
||||
@Data
|
||||
public class SpecialStaffVo {
|
||||
|
||||
private String id;
|
||||
private String userId;
|
||||
private String personnelRelationUnitId;
|
||||
private String personnelRelationUnitName;
|
||||
private String personnelRelationUnionName;
|
||||
private String personnelRelationThreeUnitId;
|
||||
private String personnelRelationThreeUnitName;
|
||||
private String personnelRelationUnionGroupName;
|
||||
private String unionRelationUnitId;
|
||||
private String unionRelationThreeUnitId;
|
||||
private String unionRelationUnionGroupName;
|
||||
private Boolean isManyUnit;
|
||||
private String specialStaffType;
|
||||
private String specialStaffRemark;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user