# Conflicts:
#	src/main/resources/views/platform/zhgh/staffbenefit/excellentRecuperation/activityList/basicForm.js
This commit is contained in:
2025-09-04 09:46:18 +08:00
336 changed files with 28657 additions and 24235 deletions
@@ -0,0 +1,108 @@
package com.budwk.app.sys.listener;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.event.role.RoleEventListener;
import com.budwk.app.base.event.role.RoleEventMsg;
import com.budwk.app.sys.models.Sys_role;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.sys.models.Sys_user_role;
import org.nutz.aop.interceptor.ioc.TransAop;
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 java.util.List;
/**
* @version 1.0
* @Author zzr
* @nameSysRoleEventListener
* @Date 2025/9/3 17:35
* @注释
*/
@IocBean
public class SysRoleEventListener implements RoleEventListener {
@Inject
private Dao dao;
@Override
@Aop(TransAop.READ_COMMITTED)
public void receive(RoleEventMsg message) {
if (ObjectUtil.isAllEmpty(message.getUserIds(), message.getUnitId(), message.getRoleCode())) {
return;
}
switch (message.getOperationType()) {
case RoleEventMsg.ADD_ROLE -> {
addRole(message);
}
case RoleEventMsg.REMOVE_ROLE -> {
removeRole(message);
}
case RoleEventMsg.RENEW_ROLE -> {
removeRole(message);
addRole(message);
}
}
}
/**
* 添加角色
* @param message 订阅消息
*/
private void addRole(RoleEventMsg message) {
Sys_role role = dao.fetch(Sys_role.class, Cnd.where("code", "=", message.getRoleCode()));
if (ObjectUtil.isAllNotEmpty(message.getUserIds(), message.getRoleCode())) {
List<Sys_user_role> roleList = message.getUserIds().stream().map(item -> {
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(item);
userRole.setUnitId(StrUtil.isNotBlank(message.getUnitId()) ? message.getUnitId() : null);
userRole.setRoleId(role.getId());
return userRole;
}).toList();
dao.insert(roleList);
} else if (ObjectUtil.isAllNotEmpty(message.getUnitId(), message.getRoleCode())) {
List<Sys_user> userList = dao.query(Sys_user.class, Cnd.where("unitId", "=", message.getUnitId()));
List<Sys_user_role> roleList = userList.stream().map(item -> {
Sys_user_role userRole = new Sys_user_role();
userRole.setUserId(item.getId());
userRole.setUnitId(item.getUnitId());
userRole.setRoleId(role.getId());
return userRole;
}).toList();
dao.insert(roleList);
}
}
/**
* 删除角色
* @param message 订阅消息
*/
private void removeRole(RoleEventMsg message) {
// 判断传过来的东西
if (ObjectUtil.isAllNotEmpty(message.getUserIds(), message.getUnitId(), message.getRoleCode())) {
dao.clear(Sys_user_role.class,
Cnd.where("userId", "in", message.getUserIds())
.and("unitId", "=", message.getUnitId())
.and("roleCode", "=", message.getRoleCode())
);
} else if (ObjectUtil.isAllNotEmpty(message.getUserIds(), message.getRoleCode())) {
dao.clear(Sys_user_role.class,
Cnd.where("userId", "in", message.getUserIds())
.and("roleCode", "=", message.getRoleCode())
);
} else if (ObjectUtil.isAllNotEmpty(message.getUnitId(), message.getUnitId())) {
dao.clear(Sys_user_role.class,
Cnd.where("unitId", "in", message.getUnitId())
.and("roleCode", "=", message.getRoleCode())
);
}
}
}
@@ -1,7 +1,6 @@
package com.budwk.app.sys.param;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.sys.models.Sys_user_source;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -10,7 +9,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("用户数据拉取分页参数")
public class SysDataUserPullPageForm extends PageForm<Sys_user_source> {
public class SysDataUserPullPageForm extends PageForm {
@ApiModelProperty("拉取日期")
private String pullTime;
@@ -1,7 +1,6 @@
package com.budwk.app.sys.param;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.sys.views.View_user;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -10,7 +9,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("用户数据更新分页参数")
public class SysDataUserUpdatePageForm extends PageForm<View_user> {
public class SysDataUserUpdatePageForm extends PageForm {
@ApiModelProperty("姓名")
private String userName;
@@ -1,7 +1,6 @@
package com.budwk.app.sys.param;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.sys.models.Sys_home_activity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -10,7 +9,7 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel("系统首页活动管理查询参数")
public class SysHomeActivityPageForm extends PageForm<Sys_home_activity> {
public class SysHomeActivityPageForm extends PageForm {
@ApiModelProperty("活动名称")
private String name;
@@ -7,6 +7,8 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.http.HtmlUtil;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.event.role.RoleEventMsg;
import com.budwk.app.base.event.role.RoleEventPublisher;
import com.budwk.app.base.utils.ConditionGroupUtil;
import com.budwk.app.base.utils.PwdUtil;
import com.budwk.app.sys.annotation.DataCenterColumn;
@@ -16,6 +18,7 @@ import com.budwk.app.sys.services.SysDataUserUpdateService;
import com.budwk.app.sys.services.SysDictService;
import com.budwk.app.sys.services.SysRoleService;
import com.budwk.app.sys.services.SysUserService;
import com.budwk.app.zhgh.democratic.proposal.models.ProposalConfig;
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeOrigin;
import com.budwk.app.zhgh.staffmanage.member.constant.MemberChangeType;
import lombok.extern.slf4j.Slf4j;
@@ -161,9 +164,9 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
Map<String, Sys_user> userMap = sysUsers.stream().collect(Collectors.toMap(Sys_user::getLoginname, sysUser -> sysUser));
// 准备数据集合
List<Sys_user> needDoUpdateList = new ArrayList<>();
List<Sys_user> needInitUserList = new ArrayList<>();
List<Sys_user_history> histories = new ArrayList<>();
List<Sys_user> needDoUpdateList = new CopyOnWriteArrayList<>();
List<Sys_user> needInitUserList = new CopyOnWriteArrayList<>();
List<Sys_user_history> histories = new CopyOnWriteArrayList<>();
List<String> addMemberUserIds = Collections.synchronizedList(new ArrayList<>());
List<String> removeMemberUserIds = Collections.synchronizedList(new ArrayList<>());
@@ -380,6 +383,13 @@ public class SysDataUserAllUpdateServiceImpl implements SysDataUserUpdateService
});
}
// 6. 处理其他任务
// 6.1 更新提案的校领导角色,发送订阅
ProposalConfig config = dao.fetch(ProposalConfig.class, Cnd.where("delFlag", "=", false).desc("updatedAt"));
for (String unitId : config.getSchoolLeaderUnitIds()) {
RoleEventPublisher.broadcast(new RoleEventMsg(unitId, RoleConstant.PROPOSAL_BRANCH_SCHOOL_LEADER.name(), RoleEventMsg.RENEW_ROLE));
}
long endTime = System.currentTimeMillis();
log.info("全量更新用户数据完成,耗时: {} 毫秒", (endTime - startTime));