commit
This commit is contained in:
+2
-1
@@ -244,7 +244,8 @@ public class ActivityBasicUnionController {
|
||||
|
||||
@At
|
||||
public Result branchUnionPartUnitTransferData(String unionId) {
|
||||
List<ActivityBasicUnit> units = dao.query(ActivityBasicUnit.class, Cnd.where("unitLevel", "=", 2).asc("unitcode"));
|
||||
// List<ActivityBasicUnit> units = dao.query(ActivityBasicUnit.class, Cnd.where("unitLevel", "=", 2).asc("unitcode"));
|
||||
List<ActivityBasicUnit> units = dao.query(ActivityBasicUnit.class, Cnd.where("unitTypeCode", "=", "1").asc("unitcode"));
|
||||
List<String> selectUnitIds = units.stream().filter(unit -> StrUtil.isNotBlank(unit.getUnionId()) && unit.getUnionId().equals(unionId)).map(ActivityBasicUnit::getId).toList();
|
||||
NutMap transferData = NutMap.NEW().addv("selectUnitIds", selectUnitIds).addv("allUnits", units);
|
||||
return Result.success(transferData);
|
||||
|
||||
+2
-1
@@ -169,7 +169,8 @@ public class TeacherCongressDelegationController {
|
||||
seg.orEX("id", "not in", unitIds);
|
||||
seg.orEX("id", "in", selectUnitIds);
|
||||
|
||||
Cnd cnd = Cnd.where("unitLevel", "=", 2);
|
||||
// Cnd cnd = Cnd.where("unitLevel", "=", 2);
|
||||
Cnd cnd = Cnd.where("unitTypeCode", "=", "1");
|
||||
if (!seg.isEmpty()) {
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
+2
-1
@@ -174,7 +174,8 @@ public class WorkerCongressDelegationController {
|
||||
seg.orEX("id", "not in", unitIds);
|
||||
seg.orEX("id", "in", selectUnitIds);
|
||||
|
||||
Cnd cnd = Cnd.where("unitLevel", "=", 2);
|
||||
// Cnd cnd = Cnd.where("unitLevel", "=", 2);
|
||||
Cnd cnd = Cnd.where("unitTypeCode", "=", "1");
|
||||
if (!seg.isEmpty()) {
|
||||
cnd.and(seg);
|
||||
}
|
||||
|
||||
+35
-13
@@ -17,20 +17,42 @@ import lombok.Getter;
|
||||
public enum MemberChangeType {
|
||||
|
||||
//变更类型
|
||||
NEW("新入职"),
|
||||
RESTORE("入会"),
|
||||
WITHDRAWAL("退会"),
|
||||
WORK("在职"),
|
||||
LEAVE_SCHOOL("离校"),
|
||||
RETIRE("退休"),
|
||||
RESIGN("辞职"),
|
||||
OUT("调出"),
|
||||
LEAVE_OFFICE("离职"),
|
||||
OTHER("其他减员"),
|
||||
UNIT_CHANGE("单位异动"),
|
||||
UNION_CHANGE("工会关系异动"),
|
||||
BASIC_CHANGE("基本信息异动");
|
||||
NEW("NEW", "新入职"),
|
||||
RESTORE("RESTORE", "入会"),
|
||||
WITHDRAWAL("WITHDRAWAL", "退会"),
|
||||
|
||||
ONLINE("ONLINE", "在岗"),
|
||||
FLEX("FLEX", "柔性"),
|
||||
SECONDED("SECONDED", "借调挂职"),
|
||||
REMOTE_POST("REMOTE_POST", "异地任职"),
|
||||
REHIRE_INNER("REHIRE_INNER", "内退返岗"),
|
||||
|
||||
SHORT_TRIP("SHORT_TRIP", "短期公差"),
|
||||
DOMESTIC_MEET("DOMESTIC_MEET", "境内会务"),
|
||||
QUARANTINE("QUARANTINE", "疫期隔离"),
|
||||
SICK_LEAVE("SICK_LEAVE", "病假"),
|
||||
PERSONAL_LEAVE("PERSONAL_LEAVE", "事假"),
|
||||
NURSING_LEAVE("NURSING_LEAVE", "哺乳假"),
|
||||
|
||||
MATERNITY("MATERNITY", "产假"),
|
||||
LONG_SICK("LONG_SICK", "长病假"),
|
||||
ABROAD_PUB("ABROAD_PUB", "公派出国"),
|
||||
STUDY_DOMESTIC("STUDY_DOMESTIC", "国内进修"),
|
||||
STUDY_ABROAD("STUDY_ABROAD", "境外留学"),
|
||||
OFF_JOB_START("OFF_JOB_START", "离岗创业"),
|
||||
INNER_RETIRE("INNER_RETIRE", "内部退养"),
|
||||
|
||||
EXTEND("EXTEND", "延聘"),
|
||||
REHIRE_SCH("REHIRE_SCH", "学校返聘"),
|
||||
REHIRE_DEPT("REHIRE_DEPT", "部门返聘"),
|
||||
|
||||
OFFLINE("OFFLINE", "不在岗"),
|
||||
|
||||
UNIT_CHANGE("UNIT_CHANGE", "单位异动"),
|
||||
UNION_CHANGE("UNION_CHANGE", "工会关系异动"),
|
||||
BASIC_CHANGE("BASIC_CHANGE", "基本信息异动");
|
||||
|
||||
|
||||
private final String code;
|
||||
private final String changeTypeName;
|
||||
}
|
||||
|
||||
+2
@@ -92,6 +92,7 @@ public class MemberChangeApplyController {
|
||||
|
||||
// 开启流程实例
|
||||
Dict args = Dict.create();
|
||||
args.set("origin", "personType");
|
||||
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
|
||||
args.set(FlowConst.FORM_DATA, memberChangeRecord);
|
||||
ProcessInstance instance = flowEngine.startProcessInstanceByKey("HYBG", memberChangeRecord.getId(), SecurityUtil.getUserId(), args);
|
||||
@@ -116,6 +117,7 @@ public class MemberChangeApplyController {
|
||||
dao.insertOrUpdate(memberChangeRecord);
|
||||
|
||||
Dict dict = Dict.create();
|
||||
dict.set("origin", "personType");
|
||||
dict.set(FlowConst.PROCESS_TASK_ID_KEY, taskId);
|
||||
dict.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.RE_APPLY.getCode());
|
||||
flowCommonService.executeTask(dict);
|
||||
|
||||
+35
-49
@@ -4,10 +4,12 @@ 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.lang.Dict;
|
||||
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.enums.BpmTaskApprovalTypeEnum;
|
||||
@@ -15,6 +17,11 @@ 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.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.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
@@ -59,7 +66,7 @@ public class MemberChangeManageController {
|
||||
@Inject
|
||||
private Dao dao;
|
||||
@Inject
|
||||
private BpmService bpmService;
|
||||
private FlowEngine flowEngine;
|
||||
@Inject
|
||||
private CommonService commonService;
|
||||
@Inject
|
||||
@@ -87,65 +94,44 @@ public class MemberChangeManageController {
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "会员高级管理-会员变更", msg = "分工会/校工会会员管理员提交变更")
|
||||
@SaCheckPermission(value = {"member.change.mange", "staff.member.change.mange"}, mode = SaMode.OR)
|
||||
public Result doSubmitChange(@Param("record") MemberChangeRecord record, @Param("approvalRemark") String approvalRemark){
|
||||
public Result doSubmitChange(MemberChangeRecord record){
|
||||
// 检验是否有变更
|
||||
if (Lang.isEmpty(record)) {
|
||||
return Result.error("未获取到异动数据");
|
||||
}
|
||||
List<NutMap> changeInfos = memberCommonService.getChangeInfos(record);
|
||||
if (Lang.isEmpty(changeInfos)) {
|
||||
return Result.error("未校验到变更数据,请确认数据是否存在变更");
|
||||
}
|
||||
|
||||
if (Lang.isEmpty(record.getChangeTypes())) {
|
||||
record.setChangeTypes(List.of(MemberChangeType.BASIC_CHANGE.name()));
|
||||
} else {
|
||||
List<String> changeTypes = record.getChangeTypes();
|
||||
changeTypes.add(MemberChangeType.BASIC_CHANGE.name());
|
||||
record.setChangeTypes(changeTypes);
|
||||
}
|
||||
|
||||
boolean schoolRoleBool = AuthUtil.hasRoleOr(RoleConstant.SCHOOL_UNION_CHAIRMAN.name(), RoleConstant.SCHOOL_UNION_MEMBER_ADMIN.name(), RoleConstant.SYSADMIN.name());
|
||||
boolean branchRoleBool = AuthUtil.hasRoleOr(RoleConstant.BRANCH_UNION_CHAIRMAN.name(), RoleConstant.BRANCH_UNION_OPERATOR.name());
|
||||
|
||||
record.setApplyDateTime(DateUtil.date());
|
||||
record.setChangeOrigin(schoolRoleBool ? MemberChangeOrigin.SCHOOL_UNION.name() : MemberChangeOrigin.BRANCH_UNION.name());
|
||||
// 变更类型
|
||||
MemberChangeOrigin changeOrigin = schoolRoleBool ? MemberChangeOrigin.SCHOOL_UNION : branchRoleBool ? MemberChangeOrigin.BRANCH_UNION : null;
|
||||
|
||||
if (changeOrigin == null) {
|
||||
throw new BaseException("没有权限,或未设置工会小组");
|
||||
}
|
||||
|
||||
memberCommonService.validateChangeAndSetBasicData(record);
|
||||
dao.insertOrUpdate(record);
|
||||
|
||||
bpmService.startSubmitProcessInstance(BpmProcessConstant.MEMBER_CHANGE.name(),
|
||||
"【会员变更】" + record.getUsername(), record.getId(), List.of(SecurityUtil.getUserLoginname()), null);
|
||||
|
||||
// 有这个菜单权限的,那就是默认分工会审核通过了
|
||||
BpmProcessInstance instance = dao.fetch(BpmProcessInstance.class, Cnd.where("processInstanceBusinessId", "=", record.getId()));
|
||||
BpmProcessTask task = dao.fetch(BpmProcessTask.class, Cnd.where(BpmProcessTask::getProcessInstanceId, "=", instance.getId())
|
||||
.desc(BpmProcessTask::getCreatedAt));
|
||||
BpmTaskApprovalParam param = new BpmTaskApprovalParam();
|
||||
param.setProcessInstanceId(instance.getId());
|
||||
param.setProcessInstanceBusinessId(record.getId());
|
||||
param.setProcessInstanceTaskId(task.getId());
|
||||
param.setBpmTaskApprovalType(BpmTaskApprovalTypeEnum.PASS.name());
|
||||
param.setBpmTaskApprovalTypeEnum(BpmTaskApprovalTypeEnum.PASS);
|
||||
param.setApprovalOpinion("分工会审核通过");
|
||||
// 表示分工会审核通过
|
||||
param.getBpmTaskApprovalTypeEnum();
|
||||
Map<String, Object> variables = BeanUtil.beanToMap(param);
|
||||
bpmService.completeTask(param.getProcessInstanceTaskId(), param.getBpmTaskApprovalTypeEnum(), variables, List.of(SecurityUtil.getUserLoginname()));
|
||||
|
||||
// 如果有校工会或者超管的角色,直接审核通过了
|
||||
// 开启流程实例
|
||||
Dict args = Dict.create();
|
||||
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));
|
||||
args.set("origin", "schoolUnion");
|
||||
} else {
|
||||
args.set("origin", "branchUnion");
|
||||
}
|
||||
args.set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.APPLY.getCode());
|
||||
args.set(FlowConst.FORM_DATA, record);
|
||||
ProcessInstance instance = flowEngine.startProcessInstanceByKey("HYBG", record.getId(), SecurityUtil.getUserId(), args);
|
||||
|
||||
BpmTaskApprovalParam committeeParam = new BpmTaskApprovalParam();
|
||||
committeeParam.setProcessInstanceId(committeeInstance.getId());
|
||||
committeeParam.setProcessInstanceBusinessId(record.getId());
|
||||
committeeParam.setProcessInstanceTaskId(committeeTask.getId());
|
||||
committeeParam.setBpmTaskApprovalType(BpmTaskApprovalTypeEnum.PASS.name());
|
||||
committeeParam.setBpmTaskApprovalTypeEnum(BpmTaskApprovalTypeEnum.PASS);
|
||||
committeeParam.setApprovalOpinion("校工会审核通过");
|
||||
// 自动完成第一个申请任务
|
||||
List<ProcessTask> doingTaskList = flowEngine.processTaskService().getDoingTaskList(instance.getId(), null);
|
||||
for (ProcessTask task : doingTaskList) {
|
||||
flowEngine.executeProcessTask(task.getId(), SecurityUtil.getUserId(), args);
|
||||
}
|
||||
|
||||
memberCommonService.compareChangeInfoAndUpdateMember(committeeParam.getProcessInstanceBusinessId());
|
||||
bpmService.completeTask(committeeParam.getProcessInstanceTaskId(), committeeParam.getBpmTaskApprovalTypeEnum(), null, null);
|
||||
// 如果是管理员的话,直接完成变更,修改变更记录
|
||||
if (schoolRoleBool) {
|
||||
memberCommonService.compareChangeInfoAndUpdateMember(record);
|
||||
}
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
+1
-1
@@ -86,7 +86,7 @@ public class MemberInfoBoardController {
|
||||
@At
|
||||
@SaCheckPermission(value = {"member.info.board", "h5.member.info.board"}, mode = SaMode.OR)
|
||||
public Result memberPercentage() {
|
||||
List<Sys_dict> memberApplyPersonTypeDictList = sysDictService.getSubListByCode("PERSON_TYPE");
|
||||
List<Sys_dict> memberApplyPersonTypeDictList = sysDictService.getSubListByCode("USER_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));
|
||||
|
||||
@@ -4,6 +4,7 @@ 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.constant.MemberChangeOrigin;
|
||||
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;
|
||||
@@ -100,4 +101,10 @@ public interface MemberCommonService extends BaseService<Sys_user> {
|
||||
* @param record
|
||||
*/
|
||||
void validateChangeAndSetBasicData(MemberChangeRecord record);
|
||||
|
||||
/**
|
||||
* 验证变更信息
|
||||
* @param record
|
||||
*/
|
||||
void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin);
|
||||
}
|
||||
|
||||
+11
-3
@@ -484,6 +484,13 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
||||
|
||||
@Override
|
||||
public void validateChangeAndSetBasicData(MemberChangeRecord record) {
|
||||
// 不传递 MemberChangeOrigin 默认个人变更
|
||||
validateChangeAndSetBasicData(record, MemberChangeOrigin.PERSONAL);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void validateChangeAndSetBasicData(MemberChangeRecord record, MemberChangeOrigin origin) {
|
||||
// 校验有没有发生变更
|
||||
List<NutMap> changeInfos = getChangeInfos(record);
|
||||
if (Lang.isEmpty(changeInfos)) {
|
||||
@@ -495,9 +502,10 @@ public class MemberManageServiceImpl extends BaseServiceImpl<Sys_user> implement
|
||||
List<String> changeTypes = compareChangeType(record, user);
|
||||
|
||||
record.setChangeTypes(changeTypes);
|
||||
record.setUserId(SecurityUtil.getUserId());
|
||||
// 变更来源 个人
|
||||
record.setChangeOrigin(MemberChangeOrigin.PERSONAL.name());
|
||||
record.setUserId(user.getId());
|
||||
// 变更来源
|
||||
record.setChangeOrigin(origin != null ? origin.name() : MemberChangeOrigin.PERSONAL.name());
|
||||
record.setApplyDateTime(DateUtil.date());
|
||||
}
|
||||
|
||||
private String booleanVerification(Object value) {
|
||||
|
||||
Reference in New Issue
Block a user