This commit is contained in:
Paidax
2025-09-02 08:46:56 +08:00
parent 1c805dcd51
commit 1531aea1d6
163 changed files with 16426 additions and 6025 deletions
@@ -90,7 +90,8 @@ public class MemberApplyBranchUnionApprovalController {
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
@@ -133,6 +134,7 @@ public class MemberApplyBranchUnionApprovalController {
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberApplyRecordService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
@@ -1,21 +1,22 @@
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.StrUtil;
import cn.hutool.core.lang.Dict;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.PageUtil;
import com.budwk.app.bpm.enums.BpmProcessInstanceStatusEnum;
import com.budwk.app.bpm.models.BpmProcessInstance;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.flow.entity.ProcessInstance;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
import com.budwk.app.flow.service.FlowCommonService;
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.commons.base.Globals;
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.MemberCommonService;
import io.swagger.annotations.ApiOperation;
import org.nutz.aop.interceptor.ioc.TransAop;
@@ -27,11 +28,12 @@ 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.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;
/**
* 会员申请
@@ -46,6 +48,8 @@ public class MemberApplyController {
@Inject
private FlowEngine flowEngine;
@Inject
private FlowCommonService flowCommonService;
@Inject
private MemberCommonService memberCommonService;
@At("")
@@ -54,85 +58,70 @@ public class MemberApplyController {
public void index() {
}
@At
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/submit/form.html")
@SaCheckPermission("member.apply.submit")
public void form() {
}
@At
@ApiOperation("会员入会申请,我的申请列表")
@ApiOperation("保存申请")
@SaCheckPermission("member.apply.submit")
public Result pageData(MemberApplyPageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
info.id,
info.userName,
info.loginName,
info.unitName,
info.unionName,
info.userState,
info.preparedBy,
info.personType,
info.sign,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId
FROM
member_apply_record info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
MemberApplyPageForm.buildSearch(cnd, pageForm);
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.desc("info.applyDateTime");
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success().addData(pagination);
}
@At
@ApiOperation("删除入会申请")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.apply.submit")
@SLog(tag = "会员入会申请", msg = "删除入会申请id: ${args[0]}")
public Result onDelete(@Valid String id) {
dao.clear(MemberApplyRecord.class, Cnd.where("id", "=", id));
// 流程相关操作
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
@SLog(tag = "会员入会申请", msg = "保存申请,申请人: ${args[0].username}")
public Result save(@Param("data") MemberApplyRecord memberApplyRecord) {
dao.insertOrUpdate(memberApplyRecord);
return Result.success();
}
@At
@ApiOperation("根据申请或修改,查询不同数据")
@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);
@ApiOperation("提交申请")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.apply.submit")
@SLog(tag = "会员入会申请", msg = "提交申请,申请人: ${args[0].username}")
public Result submit(@Param("data") MemberApplyRecord memberApplyRecord){
// 开启流程实例
Dict args = Dict.create();
// 设置流程变量
if ("HMC".equals(Globals.SchoolCode)) {
args.set("origin", "HMC");
memberApplyRecord.setOrigin("HMC");
} else {
args.set("origin", "OTHER");
memberApplyRecord.setOrigin("OTHER");
}
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", id));
return Result.success(user);
dao.insertOrUpdate(memberApplyRecord);
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
args.set(FlowConst.FORM_DATA, memberApplyRecord);
ProcessInstance instance = flowEngine.startProcessInstanceByKey("HYRH", memberApplyRecord.getId(), SecurityUtil.getUserId(), args);
// 自动完成第一个申请任务
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
for (ProcessTask task : doingTaskList) {
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
}
return Result.success();
}
@At
@ApiOperation("重新提交申请")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.apply.submit")
@SLog(tag = "会员入会申请", msg = "重新提交申请,申请人: ${args[0].username}")
public Result submitAgain(@Param("data") MemberApplyRecord memberApplyRecord, @Param("taskId") Long taskId) {
Dict dict = Dict.create();
// 设置流程变量
if ("HMC".equals(Globals.SchoolCode)) {
dict.set("origin", "HMC");
memberApplyRecord.setOrigin("HMC");
} else {
dict.set("origin", "OTHER");
memberApplyRecord.setOrigin("OTHER");
}
dao.insertOrUpdate(memberApplyRecord);
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
flowCommonService.executeTask(dict);
return Result.success();
}
@@ -149,7 +138,6 @@ public class MemberApplyController {
}
@At
@SaCheckPermission("member.apply.submit")
public Result getApplyUserByUnionOperate(@Valid String keyWord){
@@ -173,19 +161,6 @@ public class MemberApplyController {
return Result.success(pagination.getList());
}
/**
* 校验当前申请人是否有未走完的流程,只有等流程走完才能再次申请
* @return
*/
@At
@SaCheckPermission("member.apply.submit")
@ApiOperation("校验当前申请人是否有未走完的流程")
public Result validateApply(){
int count = dao.count(BpmProcessInstance.class, Cnd.where("processInstanceInitiatorId", "=", SecurityUtil.getUserId())
.and("processInstanceStatus", "=", BpmProcessInstanceStatusEnum.RUNNING.name()));
return Result.success().addData(count);
}
/**
* 获取当前登录用户信息,是用来判断当前用户是否是会员
@@ -0,0 +1,140 @@
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.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.PageUtil;
import com.budwk.app.flow.engine.FlowEngine;
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.MemberCommonService;
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.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 javax.validation.Valid;
/**
* 我的申请
* @author fky
*/
@IocBean
@Ok("json:full")
@ApiOperation("会员入会申请,查看")
@At("/platform/member/apply/mine")
public class MemberApplyMineController {
@Inject
private Dao dao;
@Inject
private FlowEngine flowEngine;
@Inject
private MemberCommonService memberCommonService;
@At("")
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/mine/index.html")
@SaCheckPermission("member.apply.mine")
public void index() {
}
@At
@ApiOperation("会员入会申请,我的申请列表")
@SaCheckPermission("member.apply.mine")
public Result pageData(MemberApplyPageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
info.id,
info.userName,
info.loginName,
info.unitName,
info.unionName,
info.userState,
info.preparedBy,
info.personType,
info.sign,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId
FROM
member_apply_record info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
MemberApplyPageForm.buildSearch(cnd, pageForm);
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) {
if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
cnd.and("info.unionId", "=", SecurityUtil.getUnionId());
} else {
cnd.and("info.userId", "=", SecurityUtil.getUserId());
}
}
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.desc("info.applyDateTime");
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success().addData(pagination);
}
@At
@ApiOperation("删除入会申请")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.apply.mine")
@SLog(tag = "会员入会申请", msg = "删除入会申请id: ${args[0]}")
public Result onDelete(@Valid String id) {
dao.clear(MemberApplyRecord.class, Cnd.where("id", "=", id));
// 流程相关操作
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
return Result.success();
}
/**
* 获取申请信息
* @param id
* @return
*/
@At
@ApiOperation("获取申请信息")
@SaCheckPermission(value = {"member.apply.mine", "member.apply.branchUnionApproval", "member.apply.branchUnionApproval"}, mode = SaMode.OR)
public Result findMemberApplyRecord(@Valid String id) {
MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id);
return Result.success().addData(record);
}
}
@@ -85,11 +85,13 @@ public class MemberApplySchoolUnionApprovalController {
info.userState,
info.preparedBy,
info.personType,
info.origin,
info.sign,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
@@ -130,6 +132,7 @@ public class MemberApplySchoolUnionApprovalController {
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberApplyRecordService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success(pagination);
@@ -1,72 +0,0 @@
package com.budwk.app.zhgh.staffmanage.member.controller.apply;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
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.bpm.vo.BpmTaskApprovalRecordVo;
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.MemberCommonService;
import com.budwk.app.zhgh.staffmanage.member.vo.MemberCommonVo;
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.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 javax.validation.Valid;
import java.util.List;
/**
* 我的申请
* @author fky
*/
@IocBean
@Ok("json:full")
@ApiOperation("会员入会申请,查看")
@At("/platform/member/apply/view")
public class MemberApplyViewController {
@Inject
private Dao dao;
@Inject
private BpmService bpmService;
@Inject
private MemberCommonService memberCommonService;
@Inject
private MemberApplyRecordService memberApplyRecordService;
@At("")
@Ok("beetl:/platform/zhgh/staffmanage/member/apply/view/index.html")
@SaCheckPermission("member.apply.submit")
public void index() {
}
/**
* 获取申请信息
* @param id
* @return
*/
@At
@ApiOperation("获取申请信息")
@SaCheckPermission(value = {"member.apply.submit", "member.apply.branchUnionApproval", "member.apply.branchUnionApproval"}, mode = SaMode.OR)
public Result findMemberApplyRecord(@Valid String id) {
MemberApplyRecord record = dao.fetch(MemberApplyRecord.class, id);
return Result.success().addData(record);
}
}
@@ -64,8 +64,6 @@ public class MemberBranchUnionAuditController {
@Inject
private Dao dao;
@Inject
private BpmService bpmService;
@Inject
private CommonService commonService;
@Inject
private MemberCommonService memberCommonService;
@@ -106,7 +104,8 @@ public class MemberBranchUnionAuditController {
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
@@ -115,12 +114,16 @@ public class MemberBranchUnionAuditController {
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariale
t.variable taskVariable,
IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName,
IF(rt.id IS NOT NULL, 1, 0) AS canRevoke
FROM
wf_process_task t
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
LEFT JOIN member_change_record info ON info.id = ins.businessNo
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10
LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10
$condition
""");
Cnd cnd = Cnd.NEW();
@@ -140,21 +143,10 @@ public class MemberBranchUnionAuditController {
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success().addData(pagination);
}
@At
@ApiOperation("分工会审核撤回")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.change.branchUnion.audit")
@SLog(tag = "会员管理-分工会管理", type = "memberBranchUnionManage", msg = "分工会审核撤回")
public Result revoke(@Valid String taskId) {
bpmService.revokeTask(taskId);
return Result.success();
}
}
@@ -2,43 +2,40 @@ package com.budwk.app.zhgh.staffmanage.member.controller.change;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.lang.Dict;
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.base.utils.PageUtil;
import com.budwk.app.bpm.service.BpmService;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.FlowEngine;
import com.budwk.app.flow.entity.ProcessInstance;
import com.budwk.app.flow.entity.ProcessTask;
import com.budwk.app.flow.enums.ProcessSubmitTypeEnum;
import com.budwk.app.flow.service.FlowCommonService;
import com.budwk.app.sys.models.Sys_union;
import com.budwk.app.sys.models.Sys_unit;
import com.budwk.app.sys.models.Sys_user;
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.models.MemberChangeRecord;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
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.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.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import java.util.List;
import java.util.stream.Stream;
@Slf4j
@IocBean
@@ -50,10 +47,12 @@ public class MemberChangeApplyController {
@Inject
private Dao dao;
@Inject
private BpmService bpmService;
private FlowEngine flowEngine;
@Inject
private CommonService commonService;
@Inject
private FlowCommonService flowCommonService;
@Inject
private MemberCommonService memberCommonService;
@At("")
@@ -68,54 +67,59 @@ public class MemberChangeApplyController {
public void form() {
}
@At
@ApiOperation("会员变更申请,我的申请列表")
@SaCheckPermission("member.change.apply")
public Result pageData(MemberChangePageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
info.id,
info.username,
info.loginname,
info.sex,
info.unitName,
info.unionName,
info.userState,
info.preparedBy,
info.personType,
info.changeTypes,
info.applyDateTime,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariale
FROM
member_change_record info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id
AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
pageForm.buildSearch(cnd, "info.");
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.desc("info.applyDateTime");
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
@ApiOperation("保存申请")
@SaCheckPermission("member.apply.submit")
@SLog(tag = "会员变更申请", msg = "保存申请,申请人: ${args[0].username}")
public Result save(@Param("data") MemberChangeRecord memberChangeRecord) {
// 校验是否有变更
memberCommonService.validateChangeAndSetBasicData(memberChangeRecord);
dao.insertOrUpdate(memberChangeRecord);
return Result.success();
}
@At
@ApiOperation("提交申请")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.apply.submit")
@SLog(tag = "会员变更申请", msg = "提交申请,申请人: ${args[0].username}")
public Result submit(@Param("data") MemberChangeRecord memberChangeRecord){
// 校验是否有变更
memberCommonService.validateChangeAndSetBasicData(memberChangeRecord);
dao.insertOrUpdate(memberChangeRecord);
// 开启流程实例
Dict args = Dict.create();
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
args.set(FlowConst.FORM_DATA, memberChangeRecord);
ProcessInstance instance = flowEngine.startProcessInstanceByKey("HYBG", memberChangeRecord.getId(), SecurityUtil.getUserId(), args);
// 自动完成第一个申请任务
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
for (ProcessTask task : doingTaskList) {
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
}
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success().addData(pagination);
return Result.success();
}
@At
@ApiOperation("重新提交申请")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.apply.submit")
@SLog(tag = "会员变更申请", msg = "重新提交申请,申请人: ${args[0].username}")
public Result submitAgain(@Param("data") MemberChangeRecord memberChangeRecord, @Param("taskId") Long taskId) {
// 校验是否有变更
memberCommonService.validateChangeAndSetBasicData(memberChangeRecord);
dao.insertOrUpdate(memberChangeRecord);
Dict dict = Dict.create();
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
flowCommonService.executeTask(dict);
return Result.success();
}
@@ -15,13 +15,17 @@ import com.budwk.app.bpm.models.BpmProcessInstance;
import com.budwk.app.bpm.models.BpmProcessTask;
import com.budwk.app.bpm.param.BpmTaskApprovalParam;
import com.budwk.app.bpm.service.BpmService;
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.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.MemberChangeRecord;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.nutz.aop.interceptor.ioc.TransAop;
import org.nutz.dao.Cnd;
@@ -69,6 +73,7 @@ public class MemberChangeManageController {
@At
@ApiOperation("页面数据")
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
public Result pageData(MemberManagePageForm pageForm){
Sql sql = memberCommonService.getSql(pageForm, "schoolUnion");
@@ -100,8 +105,10 @@ public class MemberChangeManageController {
record.setChangeTypes(changeTypes);
}
boolean schoolRoleBool = AuthUtil.hasRoleOr(RoleConstant.SCHOOL_UNION_CHAIRMAN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name(), RoleConstant.SYSADMIN.name());
record.setApplyDateTime(DateUtil.date());
record.setChangeOrigin("党委会变更");
record.setChangeOrigin(schoolRoleBool ? MemberChangeOrigin.SCHOOL_UNION.name() : MemberChangeOrigin.BRANCH_UNION.name());
dao.insertOrUpdate(record);
bpmService.startSubmitProcessInstance(BpmProcessConstant.MEMBER_CHANGE.name(),
@@ -124,7 +131,7 @@ public class MemberChangeManageController {
bpmService.completeTask(param.getProcessInstanceTaskId(), param.getBpmTaskApprovalTypeEnum(), variables, List.of(SecurityUtil.getUserLoginname()));
// 如果有校工会或者超管的角色,直接审核通过了
if (AuthUtil.hasRoleOr(RoleConstant.SCHOOL_UNION_CHAIRMAN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name(), RoleConstant.SYSADMIN.name())) {
if (schoolRoleBool) {
BpmProcessInstance committeeInstance = dao.fetch(BpmProcessInstance.class, Cnd.where("processInstanceBusinessId", "=", record.getId()));
BpmProcessTask committeeTask = dao.fetch(BpmProcessTask.class, Cnd.where(BpmProcessTask::getProcessInstanceId, "=", committeeInstance.getId())
.desc(BpmProcessTask::getCreatedAt));
@@ -142,4 +149,22 @@ public class MemberChangeManageController {
}
return Result.success();
}
@At
@ApiOperation("获取该人员所有的变更信息")
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
public Result getAllChangeMemberInfo(String userId){
List<NutMap> mapList = memberCommonService.getAllChangeInfo(userId);
if (Lang.isEmpty(mapList)) {
return Result.error("未获取到异动数据");
}
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", userId));
NutMap map = Lang.obj2nutmap(user);
map.put("user",user);
map.put("allChangeInfo", mapList);
return Result.success(map);
}
}
@@ -0,0 +1,159 @@
package com.budwk.app.zhgh.staffmanage.member.controller.change;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.page.Pagination;
import com.budwk.app.base.result.Result;
import com.budwk.app.base.utils.PageUtil;
import com.budwk.app.bpm.service.BpmService;
import com.budwk.app.flow.engine.FlowEngine;
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.MemberChangeRecord;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberChangePageForm;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
import io.swagger.annotations.ApiModel;
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.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.List;
/**
* @version 1.0
* @Author zzr
* @nameMemberChangeMineController
* @Date 2025/2/14 11:13
* @注释
*/
@IocBean
@Ok("json:full")
@ApiModel("会员变更申请查看")
@At("/platform/member/change/mine")
public class MemberChangeMineController {
@Inject
private Dao dao;
@Inject
private FlowEngine flowEngine;
@Inject
private MemberCommonService memberCommonService;
@At("")
@Ok("beetl:/platform/zhgh/staffmanage/member/change/mine/index.html")
@SaCheckPermission("member.change.mine")
public void index() {
}
@At
@ApiOperation("会员变更申请,我的申请列表")
@SaCheckPermission("member.change.mine")
public Result pageData(MemberChangePageForm pageForm) {
Sql sql = Sqls.create("""
SELECT
info.id,
info.username,
info.loginname,
info.sex,
info.unitName,
info.unionName,
info.userState,
info.preparedBy,
info.personType,
info.changeTypes,
info.applyDateTime,
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
t.taskType,
t.performType taskPerformType,
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask' AND taskState in (10,20)) AS startTaskId
FROM
member_change_record info
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = info.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
$condition
""");
Cnd cnd = Cnd.NEW();
pageForm.buildSearch(cnd, "info.");
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name())) {
if (AuthUtil.hasRole(RoleConstant.BRANCH_UNION_CHAIRMAN.name())) {
cnd.and("info.unionId", "=", SecurityUtil.getUnionId());
} else {
cnd.and("info.userId", "=", SecurityUtil.getUserId());
}
}
if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) {
cnd.desc("info.applyDateTime");
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success().addData(pagination);
}
@At
@ApiOperation("个人申请撤回")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.change.mine")
@SLog(tag = "会员变更申请", msg = "撤回申请")
public Result doRevoke(@Valid String id){
// bpmService.revokeApply(id);
return Result.success();
}
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.change.mine")
@SLog(tag = "会员变更申请", msg = "删除变更申请,id: ${args[0]}")
public Result onDelete(@Valid String id){
dao.clear(MemberChangeRecord.class, Cnd.where("id", "=", id));
// 流程相关操作
flowEngine.processInstanceService().deleteProcessInstanceByBusinessKey(id);
return Result.success();
}
@At
@ApiOperation("根据id查询变更记录")
@SaCheckPermission("member.change.mine")
public Result findMemberChangeRecord(String id){
MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id);
NutMap nutMap = Lang.obj2nutmap(record);
List<NutMap> changeInfos = memberCommonService.getChangeInfos(nutMap.getString("id"));
nutMap.put("changeInfos", changeInfos);
return Result.success().addData(nutMap);
}
}
@@ -1,89 +0,0 @@
package com.budwk.app.zhgh.staffmanage.member.controller.change;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.result.Result;
import com.budwk.app.bpm.service.BpmService;
import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord;
import com.budwk.app.zhgh.staffmanage.member.service.MemberCommonService;
import io.swagger.annotations.ApiModel;
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.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.List;
/**
* @version 1.0
* @Author zzr
* @nameMemberChangeMineController
* @Date 2025/2/14 11:13
* @注释
*/
@IocBean
@Ok("json:full")
@ApiModel("会员变更申请查看")
@At("/platform/member/change/view")
public class MemberChangeViewController {
@Inject
private Dao dao;
@Inject
private BpmService bpmService;
@Inject
private MemberCommonService memberCommonService;
@At("")
@Ok("beetl:/platform/zhgh/staffmanage/member/change/view/index.html")
@SaCheckPermission("member.change.apply")
public void index() {
}
@At
@ApiOperation("个人申请撤回")
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.change.apply")
@SLog(tag = "会员变更申请", msg = "撤回申请")
public Result doRevoke(@Valid String id){
bpmService.revokeApply(id);
return Result.success();
}
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("member.change.apply")
@SLog(tag = "会员入会申请", msg = "删除申请")
public Result doDelete(String id){
dao.clear(MemberChangeRecord.class, Cnd.where("id", "=", id));
bpmService.deleteInstance(id);
return Result.success();
}
@At
@ApiOperation("根据id查询变更记录")
@SaCheckPermission("member.change.apply")
public Result findMemberChangeRecord(String id){
MemberChangeRecord record = dao.fetch(MemberChangeRecord.class, id);
NutMap nutMap = Lang.obj2nutmap(record);
List<NutMap> changeInfos = memberCommonService.getChangeInfos(nutMap.getString("id"));
nutMap.put("changeInfos", changeInfos);
return Result.success().addData(nutMap);
}
}
@@ -102,7 +102,8 @@ public class MemberSchoolUnionAuditController {
ins.id AS instanceId,
ins.businessNo,
ins.state instanceState,
ins.variable instanceVariale,
ins.variable instanceVariable,
ins.processDefineId instanceProcessDefineId,
t.id taskId,
t.taskName AS taskKey,
t.displayName taskName,
@@ -111,12 +112,16 @@ public class MemberSchoolUnionAuditController {
t.taskState,
t.finishTime,
t.taskParentId,
t.variable taskVariale
t.variable taskVariable,
IFNULL(GROUP_CONCAT(DISTINCT nt.displayName),'结束') curTaskName,
IF(rt.id IS NOT NULL, 1, 0) AS canRevoke
FROM
wf_process_task t
LEFT JOIN wf_process_instance ins ON ins.id = t.processInstanceId
LEFT JOIN member_change_record info ON info.id = ins.businessNo
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
LEFT JOIN wf_process_task nt ON nt.processInstanceId = ins.id AND nt.taskState = 10
LEFT JOIN wf_process_task rt ON rt.processInstanceId = ins.id AND rt.taskParentId = t.id AND rt.taskState = 10
$condition
""");
Cnd cnd = Cnd.NEW();
@@ -136,6 +141,7 @@ public class MemberSchoolUnionAuditController {
} else {
cnd.orderBy("info." + pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy()));
}
cnd.groupBy("t.id");
sql.setCondition(cnd);
Pagination<NutMap> pagination = memberCommonService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
return Result.success().addData(pagination);
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.staffmanage.member.interceptor;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.FlowInterceptor;
@@ -45,7 +46,8 @@ public class MemberApplyBranchApprovalInterceptor implements FlowInterceptor {
// 判断是否改变了工会关系
View_user user = dao.fetch(View_user.class, Cnd.where("id", "=", record.getUserId()));
if (!ObjectUtil.equals(user.getUnionId(), record.getAllocationUnionId())) {
if (StrUtil.isAllNotBlank(user.getUnionId(), record.getAllocationUnionId())
&& !ObjectUtil.equals(user.getUnionId(), record.getAllocationUnionId())) {
// 去判断特殊人员表里面有没有这些人,有的话先删除再增加
if (dao.count(SpecialStaff.class, Cnd.where("userId", "=", record.getUserId())) > 0) {
dao.clear(SpecialStaff.class, Cnd.where("userId", "=", record.getUserId()));
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.staffmanage.member.interceptor;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.flow.constant.FlowConst;
import com.budwk.app.flow.engine.FlowInterceptor;
import com.budwk.app.flow.engine.core.Execution;
@@ -30,13 +31,16 @@ public class MemberApplySchoolApprovalInterceptor implements FlowInterceptor {
String allocationUnionId = execution.getArgs().getStr(FlowConst.TASK_FORM_DATA_PREFIX + "allocation_unionId");
Dao dao = ServiceContext.find(Dao.class);
dao.update(MemberApplyRecord.class, Chain.make("allocationUnionId", allocationUnionId),
Cnd.where(MemberApplyRecord::getId, "=", record.getId()));
if (StrUtil.isNotBlank(allocationUnionId)) {
dao.update(MemberApplyRecord.class, Chain.make("allocationUnionId", allocationUnionId),
Cnd.where(MemberApplyRecord::getId, "=", record.getId()));
}
// 判断如果是审核通过,并且不是HMC, 去修改用户表的基础数据
boolean submitType = execution.getArgs().getInt("submitType").equals(ProcessSubmitTypeEnum.AGREE.getCode());
boolean submitType = execution.getArgs().getInt(FlowConst.SUBMIT_TYPE).equals(ProcessSubmitTypeEnum.AGREE.getCode());
if (submitType) {
if (!"HMC".equals(record.getOrigin())) {
// 不是HMC,去修改用户表基础数据
Sys_user sysUser = new Sys_user();
BeanUtil.copyProperties(record, sysUser);
sysUser.setId(record.getUserId());
@@ -34,21 +34,18 @@ public class MemberApplyRecord extends BaseModel {
@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;
@@ -60,66 +57,63 @@ public class MemberApplyRecord extends BaseModel {
@Column
@Comment("单位id")
@ColDefine(type = ColType.VARCHAR, width = 32)
@NotBlank(message = "单位id不能为空")
@Size(max = 32)
private String unitId;
@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("工会名称")
@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 = 20)
@Size(max = 20)
private String academicDegree;
@Column
@Comment("职务")
@ColDefine(type = ColType.VARCHAR, width = 50)
@@ -129,35 +123,30 @@ public class MemberApplyRecord extends BaseModel {
@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;
@@ -191,7 +180,6 @@ public class MemberApplyRecord extends BaseModel {
@Column
@Comment("个人简况")
@ColDefine(type = ColType.VARCHAR, customType = "text")
@NotBlank(message = "个人简况不能为空")
private String personalData;
@Column
@@ -80,9 +80,8 @@ public class MemberChangeRecord extends BaseModel {
@Column
@Comment("出生日期")
@ColDefine(type = ColType.VARCHAR, width = 10)
@Size(max = 10)
private String birthday;
@ColDefine(type = ColType.DATE)
private Date birthday;
@Column
@Comment("证件号码")
@@ -4,7 +4,6 @@ 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.views.View_user;
import com.budwk.app.zhgh.staffmanage.member.models.MemberApplyRecord;
import com.budwk.app.zhgh.staffmanage.member.models.MemberChangeRecord;
import com.budwk.app.zhgh.staffmanage.member.param.pageform.MemberManagePageForm;
import org.nutz.dao.sql.Sql;
@@ -94,4 +93,11 @@ public interface MemberCommonService extends BaseService<Sys_user> {
* @param changeList 变更集合
*/
void extractChange(NutMap newMap, NutMap sourceMap, String fieldName, Map<String, String> fieldsMap, List<NutMap> changeList);
/**
* 验证变更信息
* @param record
*/
void validateChangeAndSetBasicData(MemberChangeRecord record);
}
@@ -304,12 +304,13 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
history.setChangeTypes(record.getChangeTypes());
history.setChangeOrigin(record.getChangeOrigin());
// 获取会员角色,加入或退出会员组别,写了之后用处不大,注释了,暂且保留,想优化就把下面注释打开305行与304-348行取消注释
// Sys_role role = sysRoleService.getByCode(RoleConstant.MEMBER);
// 获取会员角色,加入或退出会员组别,写了之后用处不大,注释暂且保留,想优化就把下面注释打开
Sys_role role = sysRoleService.getByCode(RoleConstant.MEMBER);
// 加入会员
if (record.getMember()) {
// int activityCount = dao().count(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1));
// int memberCount = dao().count(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", role.getId()));
// 如果没有会员角色,新增
int memberCount = dao().count(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", role.getId()));
// if (activityCount <= 0) {
// // 取消或加入会员组别
// if (record.getIsJoinActivityMemberScope() != null && record.getIsJoinActivityMemberScope()) {
@@ -320,23 +321,24 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
// dao().insert(scope);
// }
// }
// if (memberCount <= 0) {
// Sys_user_role userRole = new Sys_user_role();
// userRole.setUserId(userId);
// userRole.setRoleId(role.getId());
// dao().insert(userRole);
// }
// // 杭医特有,其他学校请删除
// record.setPreparedBy("会员");
// } else {
if (memberCount <= 0) {
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(userId);
userRole.setRoleId(role.getId());
dao().insert(userRole);
}
// 杭医特有,其他学校请删除
record.setPreparedBy("会员");
} else {
// if (record.getIsExitActivityMemberScope() != null && record.getIsExitActivityMemberScope()) {
// dao().clear(ActivityUserScope.class, Cnd.where("userId", "=", userId).and("groupId", "=", 1));
// }
// dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", Roles.MEMBER));
// // 杭医特有,其他学校请删除
// record.setPreparedBy("教职工");
// }
//
// 非会员取消会员角色
dao().clear(Sys_user_role.class, Cnd.where("userId", "=", userId).and("roleId", "=", role.getId()));
// 杭医特有,其他学校请删除
record.setPreparedBy("教职工");
}
// // 加入福利会员 是否加入福利项目
// if (record.getWelfareMember() && record.getIsJoinWelfareProject() != null && record.getIsJoinWelfareProject()) {
// WelfareList welfareList = new WelfareList();
@@ -349,7 +351,7 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
// welfareList.setPersonType(record.getPersonType());
// welfareList.setWelfareUnitId(record.getUnitId());
// dao().insert(welfareList);
}
// }
// 到此,表明审核通过,需要存储历史数据,并修改用户数据
BeanUtil.copyProperties(record, info);
@@ -480,6 +482,24 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
}
@Override
public void validateChangeAndSetBasicData(MemberChangeRecord record) {
// 校验有没有发生变更
List<NutMap> changeInfos = getChangeInfos(record);
if (Lang.isEmpty(changeInfos)) {
throw new BaseException("未获取到异动数据");
}
View_user user = dao().fetch(View_user.class, Cnd.where("id", "=", record.getUserId()));
// 比较有哪些变更类型
List<String> changeTypes = compareChangeType(record, user);
record.setChangeTypes(changeTypes);
record.setUserId(SecurityUtil.getUserId());
// 变更来源 个人
record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name());
}
private String booleanVerification(Object value) {
// 检查是否为null或空字符串
if (ObjectUtil.isAllEmpty(value, "")) {