对页面敏感信息进行了数据脱敏处理,给学生学籍异动模块增加了政治面貌选项和给八个学院的书记推送企业微信
This commit is contained in:
@@ -143,6 +143,16 @@ public class RtStuDisqualification extends BaseEntity {
|
||||
@Excel(name = "籍贯")
|
||||
private String jg;
|
||||
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
@ApiModelProperty("政治面貌")
|
||||
@TableField("political_status")
|
||||
@Excel(name = "政治面貌")
|
||||
private String politicalStatus;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 市/县
|
||||
*/
|
||||
|
||||
@@ -148,6 +148,14 @@ private static final long serialVersionUID=1L;
|
||||
@Excel(name = "籍贯")
|
||||
private String jg;
|
||||
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
@ApiModelProperty("政治面貌")
|
||||
@TableField("political_status")
|
||||
@Excel(name = "政治面貌")
|
||||
private String politicalStatus;
|
||||
|
||||
/**
|
||||
* 市/县
|
||||
*/
|
||||
|
||||
@@ -147,6 +147,14 @@ public class RtStuQuitSchool extends BaseEntity {
|
||||
@Excel(name = "籍贯")
|
||||
private String jg;
|
||||
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
@ApiModelProperty("政治面貌")
|
||||
@TableField("political_status")
|
||||
@Excel(name = "政治面貌")
|
||||
private String politicalStatus;
|
||||
|
||||
/**
|
||||
* 市/县
|
||||
*/
|
||||
|
||||
@@ -139,6 +139,14 @@ public class RtStuReentrySchool extends BaseEntity {
|
||||
@Excel(name = "籍贯")
|
||||
private String jg;
|
||||
|
||||
/**
|
||||
* 政治面貌
|
||||
*/
|
||||
@ApiModelProperty("政治面貌")
|
||||
@TableField("political_status")
|
||||
@Excel(name = "政治面貌")
|
||||
private String politicalStatus;
|
||||
|
||||
/**
|
||||
* 市/县
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package com.srs.routine.domain.vo;
|
||||
|
||||
import com.srs.common.annotation.Sensitive;
|
||||
import com.srs.common.enums.DesensitizedType;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -35,12 +37,14 @@ public class StuLeaveApplicationDetailsVo implements Serializable {
|
||||
private String className;
|
||||
|
||||
@ApiModelProperty("联系电话")
|
||||
@Sensitive(desensitizedType = DesensitizedType.PHONE)
|
||||
private String phoneNumber;
|
||||
|
||||
@ApiModelProperty("父亲姓名")
|
||||
private String fatherName;
|
||||
|
||||
@ApiModelProperty("父亲联系电话")
|
||||
@Sensitive(desensitizedType = DesensitizedType.PHONE)
|
||||
private String fatherRelation;
|
||||
|
||||
@ApiModelProperty("请假事由")
|
||||
|
||||
@@ -68,6 +68,7 @@ public interface NotificationManagementMapper extends BaseMapper<NotificationMan
|
||||
List<SrsGrade> selectGradeList();
|
||||
|
||||
/**
|
||||
*
|
||||
* 根据年级ID列表查询学生用户ID
|
||||
*
|
||||
* @param gradeIds 年级ID列表
|
||||
|
||||
@@ -214,7 +214,6 @@ public class NotificationManagementServiceImpl extends ServiceImpl<NotificationM
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -246,6 +245,7 @@ public class NotificationManagementServiceImpl extends ServiceImpl<NotificationM
|
||||
String toUser = String.join("|", batch);
|
||||
// 调用企业微信发送消息方法
|
||||
weChatUtil.sendTextMessage(toUser, content);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,10 +7,12 @@ import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.dto.ProcessResultDto;
|
||||
import com.srs.common.utils.DateUtils;
|
||||
import com.srs.common.utils.SecurityUtils;
|
||||
import com.srs.common.utils.WeChatUtil;
|
||||
import com.srs.flowable.service.IFlowDefinitionService;
|
||||
import com.srs.routine.domain.RtStuDisqualification;
|
||||
import com.srs.routine.mapper.RtStuDisqualificationMapper;
|
||||
import com.srs.routine.service.IRtStuDisqualificationService;
|
||||
import com.srs.system.mapper.SysUserMapper;
|
||||
import com.srs.system.service.ISysUserService;
|
||||
import org.flowable.engine.IdentityService;
|
||||
import org.flowable.engine.TaskService;
|
||||
@@ -21,6 +23,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 给予学生退学申请Service业务层处理
|
||||
@@ -36,6 +39,12 @@ public class RtStuDisqualificationServiceImpl extends ServiceImpl<RtStuDisqualif
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
private SysUserMapper sysUserMapper;
|
||||
|
||||
@Autowired
|
||||
public WeChatUtil weChatUtil;
|
||||
|
||||
/**
|
||||
* 查询给予学生退学申请
|
||||
*
|
||||
@@ -193,12 +202,52 @@ public class RtStuDisqualificationServiceImpl extends ServiceImpl<RtStuDisqualif
|
||||
.list();
|
||||
// 保存审核结果到任务变量中
|
||||
variables.put("approved", true);
|
||||
|
||||
// 标记是否有任务被完成
|
||||
boolean taskCompleted = false;
|
||||
// 完成待办任务列表
|
||||
for (Task task : tasks) {
|
||||
String taskId = task.getId();
|
||||
String disqualificationId = taskService.getVariable(taskId, "disqualificationId").toString();
|
||||
if (disqualificationId.equals(rtStuDisqualification.getDisqualificationId().toString())) {
|
||||
taskService.complete(task.getId(), variables);
|
||||
taskCompleted = true;
|
||||
}
|
||||
}
|
||||
// 所有相关任务完成后,发送企业微信消息
|
||||
if (taskCompleted) {
|
||||
try {
|
||||
// 获取申请人信息
|
||||
String applicantName = rtStuDisqualification.getStuName();
|
||||
String politicalStatus = rtStuDisqualification.getPoliticalStatus();
|
||||
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setRoleId(118L);
|
||||
List<SysUser> sysUsers = sysUserMapper.selectAllocatedList(sysUser);
|
||||
|
||||
// 提取二级学院的书记的账号
|
||||
List<String> userNames = sysUsers.stream()
|
||||
.map(SysUser::getUserName)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 只有政治面貌是团员时才发送企业微信消息
|
||||
if ("团员".equals(politicalStatus)) {
|
||||
// 消息内容
|
||||
String messageContent = "【给予学生退学】" + applicantName + "的给予学生退学申请已通过审核。";
|
||||
|
||||
int batchSize = 10;
|
||||
|
||||
|
||||
for (int i = 0; i < userNames.size(); i += batchSize) {
|
||||
List<String> batch = userNames.subList(i, Math.min(i + batchSize, userNames.size()));
|
||||
// 拼接成"user1|user2|user3"格式
|
||||
String toUser = String.join("|", batch);
|
||||
// 调用企业微信发送消息方法
|
||||
weChatUtil.sendTextMessage(toUser, messageContent);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("发送企业微信消息失败:", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,14 +3,19 @@ package com.srs.routine.service.impl;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.srs.common.core.domain.AjaxResult;
|
||||
import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.dto.ProcessResultDto;
|
||||
import com.srs.common.utils.DateUtils;
|
||||
import com.srs.common.utils.SecurityUtils;
|
||||
import com.srs.common.utils.WeChatUtil;
|
||||
import com.srs.flowable.domain.StuDropOutSchool;
|
||||
import com.srs.flowable.service.IFlowDefinitionService;
|
||||
import com.srs.routine.domain.RtStuQuitSchool;
|
||||
import com.srs.system.mapper.SysUserMapper;
|
||||
import org.flowable.engine.IdentityService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.task.api.Task;
|
||||
@@ -32,6 +37,11 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
public class RtStuDropOutSchoolServiceImpl extends ServiceImpl<RtStuDropOutSchoolMapper, RtStuDropOutSchool> implements IRtStuDropOutSchoolService {
|
||||
@Autowired
|
||||
private RtStuDropOutSchoolMapper rtStuDropOutSchoolMapper;
|
||||
@Autowired
|
||||
private SysUserMapper sysUserMapper;
|
||||
|
||||
@Autowired
|
||||
public WeChatUtil weChatUtil;
|
||||
|
||||
/**
|
||||
* 查询学生退学申请记录
|
||||
@@ -60,7 +70,7 @@ public class RtStuDropOutSchoolServiceImpl extends ServiceImpl<RtStuDropOutSchoo
|
||||
*
|
||||
* @param rtStuDropOutSchool 学生退学申请记录
|
||||
* @return 结果
|
||||
*/
|
||||
* */
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int insertRtStuDropOutSchool(RtStuDropOutSchool rtStuDropOutSchool) {
|
||||
@@ -160,12 +170,50 @@ public class RtStuDropOutSchoolServiceImpl extends ServiceImpl<RtStuDropOutSchoo
|
||||
.list();
|
||||
// 保存审核结果到任务变量中
|
||||
variables.put("approved", true);
|
||||
|
||||
// 标记是否有任务被完成
|
||||
boolean taskCompleted = false;
|
||||
// 完成待办任务列表
|
||||
for (Task task : tasks) {
|
||||
String taskId = task.getId();
|
||||
String dropOutSchoolId = taskService.getVariable(taskId, "dropOutSchoolId").toString();
|
||||
if (dropOutSchoolId.equals(rtStuDropOutSchool.getDropOutSchoolId().toString())) {
|
||||
taskService.complete(task.getId(), variables);
|
||||
taskCompleted = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 所有相关任务完成后,发送企业微信消息
|
||||
if (taskCompleted) {
|
||||
try {
|
||||
// 获取申请人信息
|
||||
String applicantName = rtStuDropOutSchool.getStuName();
|
||||
String politicalStatus = rtStuDropOutSchool.getPoliticalStatus();
|
||||
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setRoleId(118L);
|
||||
List<SysUser> sysUsers = sysUserMapper.selectAllocatedList(sysUser);
|
||||
|
||||
// 提取二级学院的书记的账号
|
||||
List<String> userNames = sysUsers.stream()
|
||||
.map(SysUser::getUserName)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 只有政治面貌是团员时才发送企业微信消息
|
||||
if ("团员".equals(politicalStatus)) {
|
||||
// 消息内容
|
||||
String messageContent = "【退学申请】" + applicantName + "的退学申请已通过审核。";
|
||||
int batchSize = 10;
|
||||
for (int i = 0; i < userNames.size(); i += batchSize) {
|
||||
List<String> batch = userNames.subList(i, Math.min(i + batchSize, userNames.size()));
|
||||
// 拼接成"user1|user2|user3"格式
|
||||
String toUser = String.join("|", batch);
|
||||
// 调用企业微信发送消息方法
|
||||
weChatUtil.sendTextMessage(toUser, messageContent);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("发送企业微信消息失败:", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,9 @@ public class RtStuMultiLevelReviewServiceImpl extends ServiceImpl<RtStuMultiLeve
|
||||
@Autowired
|
||||
private RtStuMultiLevelReviewMapper rtStuMultiLevelReviewMapper;
|
||||
|
||||
@Autowired
|
||||
public WeChatUtil weChatUtil;
|
||||
|
||||
/**
|
||||
* 查询审核信息
|
||||
*
|
||||
@@ -116,8 +119,9 @@ public class RtStuMultiLevelReviewServiceImpl extends ServiceImpl<RtStuMultiLeve
|
||||
if (messageContent == null || messageContent.trim().isEmpty()) {
|
||||
messageContent = "你申请办理的学生证制作完成,长堽校区前往xxx领取,里建校区前往xxx领取";
|
||||
}
|
||||
WeChatUtil weChatUtil = new WeChatUtil();
|
||||
|
||||
weChatUtil.sendTextMessage(rtStuMultiLevelReview.getStuNo(), messageContent);
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -3,13 +3,17 @@ package com.srs.routine.service.impl;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.srs.common.core.domain.AjaxResult;
|
||||
import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.dto.ProcessResultDto;
|
||||
import com.srs.common.utils.DateUtils;
|
||||
import com.srs.common.utils.SecurityUtils;
|
||||
import com.srs.common.utils.WeChatUtil;
|
||||
import com.srs.flowable.service.IFlowDefinitionService;
|
||||
import com.srs.system.mapper.SysUserMapper;
|
||||
import org.flowable.engine.IdentityService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.task.api.Task;
|
||||
@@ -31,6 +35,10 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
public class RtStuQuitSchoolServiceImpl extends ServiceImpl<RtStuQuitSchoolMapper, RtStuQuitSchool> implements IRtStuQuitSchoolService {
|
||||
@Autowired
|
||||
private RtStuQuitSchoolMapper rtStuQuitSchoolMapper;
|
||||
@Autowired
|
||||
private SysUserMapper sysUserMapper;
|
||||
@Autowired
|
||||
public WeChatUtil weChatUtil;
|
||||
|
||||
/**
|
||||
* 查询休学申请记录
|
||||
@@ -124,19 +132,58 @@ public class RtStuQuitSchoolServiceImpl extends ServiceImpl<RtStuQuitSchoolMappe
|
||||
.list();
|
||||
// 保存审核结果到任务变量中
|
||||
variables.put("approved", true);
|
||||
// 标记是否有任务被完成
|
||||
boolean taskCompleted = false;
|
||||
// 完成待办任务列表
|
||||
for (Task task : tasks) {
|
||||
String taskId = task.getId();
|
||||
String quitSchoolId = taskService.getVariable(taskId, "quitSchoolId").toString();
|
||||
if (quitSchoolId.equals(rtStuQuitSchool.getQuitSchoolId().toString())) {
|
||||
taskService.complete(task.getId(), variables);
|
||||
taskCompleted = true;
|
||||
}
|
||||
}
|
||||
// 所有相关任务完成后,发送企业微信消息
|
||||
if (taskCompleted) {
|
||||
try {
|
||||
// 获取申请人信息
|
||||
String applicantName = rtStuQuitSchool.getStuName();
|
||||
String politicalStatus = rtStuQuitSchool.getPoliticalStatus();
|
||||
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setRoleId(118L);
|
||||
List<SysUser> sysUsers = sysUserMapper.selectAllocatedList(sysUser);
|
||||
|
||||
// 提取二级学院的书记的账号
|
||||
List<String> userNames = sysUsers.stream()
|
||||
.map(SysUser::getUserName)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 只有政治面貌是团员时才发送企业微信消息
|
||||
if ("团员".equals(politicalStatus)) {
|
||||
// 消息内容
|
||||
String messageContent = "【休学申请】" + applicantName + "的休学申请已通过审核。";
|
||||
|
||||
int batchSize = 10;
|
||||
|
||||
|
||||
for (int i = 0; i < userNames.size(); i += batchSize) {
|
||||
List<String> batch = userNames.subList(i, Math.min(i + batchSize, userNames.size()));
|
||||
// 拼接成"user1|user2|user3"格式
|
||||
String toUser = String.join("|", batch);
|
||||
// 调用企业微信发送消息方法
|
||||
weChatUtil.sendTextMessage(toUser, messageContent);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("发送企业微信消息失败:", e);
|
||||
}
|
||||
}
|
||||
return dto;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,13 +3,16 @@ package com.srs.routine.service.impl;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.srs.common.core.domain.AjaxResult;
|
||||
import com.srs.common.core.domain.entity.SysUser;
|
||||
import com.srs.common.doman.dto.ProcessResultDto;
|
||||
import com.srs.common.utils.DateUtils;
|
||||
import com.srs.common.utils.SecurityUtils;
|
||||
import com.srs.common.utils.WeChatUtil;
|
||||
import com.srs.flowable.service.IFlowDefinitionService;
|
||||
import com.srs.routine.domain.RtStuReentrySchool;
|
||||
import com.srs.routine.mapper.RtStuReentrySchoolMapper;
|
||||
import com.srs.routine.service.IRtStuReentrySchoolService;
|
||||
import com.srs.system.mapper.SysUserMapper;
|
||||
import org.flowable.engine.IdentityService;
|
||||
import org.flowable.engine.TaskService;
|
||||
import org.flowable.task.api.Task;
|
||||
@@ -19,6 +22,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 复学申请记录Service业务层处理
|
||||
@@ -31,6 +35,12 @@ public class RtStuReentrySchoolServiceImpl extends ServiceImpl<RtStuReentrySchoo
|
||||
@Autowired
|
||||
private RtStuReentrySchoolMapper rtStuReentrySchoolMapper;
|
||||
|
||||
@Autowired
|
||||
private SysUserMapper sysUserMapper;
|
||||
|
||||
@Autowired
|
||||
public WeChatUtil weChatUtil;
|
||||
|
||||
/**
|
||||
* 查询复学申请记录
|
||||
*
|
||||
@@ -158,6 +168,7 @@ public class RtStuReentrySchoolServiceImpl extends ServiceImpl<RtStuReentrySchoo
|
||||
@Autowired
|
||||
IdentityService identityService;
|
||||
|
||||
|
||||
private ProcessResultDto startReentrySchoolProcess(RtStuReentrySchool rtStuReentrySchool) {
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put("reentryId", rtStuReentrySchool.getReentryId().toString());
|
||||
@@ -185,12 +196,47 @@ public class RtStuReentrySchoolServiceImpl extends ServiceImpl<RtStuReentrySchoo
|
||||
.list();
|
||||
// 保存审核结果到任务变量中
|
||||
variables.put("approved", true);
|
||||
// 标记是否有任务被完成
|
||||
boolean taskCompleted = false;
|
||||
// 完成待办任务列表
|
||||
for (Task task : tasks) {
|
||||
String taskId = task.getId();
|
||||
String reentryId = taskService.getVariable(taskId, "reentryId").toString();
|
||||
if (reentryId.equals(rtStuReentrySchool.getReentryId().toString())) {
|
||||
taskService.complete(task.getId(), variables);
|
||||
taskCompleted = true;
|
||||
}
|
||||
}
|
||||
|
||||
// 所有相关任务完成后,发送企业微信消息
|
||||
if (taskCompleted) {
|
||||
try {
|
||||
// 获取申请人信息
|
||||
String applicantName = rtStuReentrySchool.getStuName();
|
||||
String politicalStatus = rtStuReentrySchool.getPoliticalStatus();
|
||||
|
||||
SysUser sysUser = new SysUser();
|
||||
sysUser.setRoleId(118L);
|
||||
List<SysUser> sysUsers = sysUserMapper.selectAllocatedList(sysUser);
|
||||
// 提取二级学院的书记的账号
|
||||
List<String> userNames = sysUsers.stream()
|
||||
.map(SysUser::getUserName)
|
||||
.collect(Collectors.toList());
|
||||
// 只有政治面貌是团员时才发送企业微信消息
|
||||
if ("团员".equals(politicalStatus)) {
|
||||
// 消息内容
|
||||
String messageContent = "【复学申请】" + applicantName + "的复学申请已通过审核。";
|
||||
int batchSize = 10;
|
||||
for (int i = 0; i < userNames.size(); i += batchSize) {
|
||||
List<String> batch = userNames.subList(i, Math.min(i + batchSize, userNames.size()));
|
||||
// 拼接成"user1|user2|user3"格式
|
||||
String toUser = String.join("|", batch);
|
||||
// 调用企业微信发送消息方法
|
||||
weChatUtil.sendTextMessage(toUser, messageContent);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("发送企业微信消息失败:", e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user