外宿申请-监听器优化(流程找不到对应学院的负责人则选择对应角色的第一个作为负责人)

This commit is contained in:
2025-12-09 12:28:08 +08:00
parent 6fa3c554c5
commit 5c28b09e71
4 changed files with 35 additions and 9 deletions

View File

@@ -62,18 +62,29 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
approvalResult = num.longValue();
}
// 添加审批记录
OutsideAccommodationApplyMapper outsideAccommodationApplyMapper = SpringUtils.getBean(OutsideAccommodationApplyMapper.class);
// 根据Id查询外宿申请记录
OutsideAccommodationApply outsideAccommodationApply = outsideAccommodationApplyMapper.selectDmsOutsideAccommodationApplyById(accommodationId);
// 添加审批记录
saveApprovalRecord(outsideAccommodationApply.getId(), outsideAccommodationApply.getProcessInstanceId(),outsideAccommodationApply.getApplyNo(),currentNodeName, outsideAccommodationApply.getStudentName(), outsideAccommodationApply.getStudentNo(), approvalOpinion, approvalResult);
Long status = 1L;
if (currentNodeName.equals("辅导员审批")) {
status = 2L;
}
if (currentNodeName.equals("二级学院书记审批")) {
status = 3L;
}
if (currentNodeName.equals("学工处审批")) {
status = 4L;
}
// 如果到了最后一个审批人,则修改申请表审核状态
if (currentNodeName.equals("学校领导审批")){
// 改变申请表中的审核状态(审核通过)
outsideAccommodationApply.setStatus(5L);
outsideAccommodationApplyMapper.updateDmsOutsideAccommodationApply(outsideAccommodationApply);
status = 5L;
}
outsideAccommodationApply.setStatus(status);
outsideAccommodationApplyMapper.updateDmsOutsideAccommodationApply(outsideAccommodationApply);
}
/**
@@ -104,7 +115,7 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
outsideAccommodationApproval.setApproverId(SecurityUtils.getLoginUser().getUser().getUserId());
// SecurityUtils.getUserName()是工号
outsideAccommodationApproval.setApproverName(SecurityUtils.getLoginUser().getUser().getNickName());
System.out.println(SecurityUtils.getLoginUser().getUser());
// System.out.println(SecurityUtils.getLoginUser().getUser());
// 若变量未传递,直接用默认值“同意”(前端点击同意按钮的默认意见)
outsideAccommodationApproval.setApprovalOpinion(approvalOpinion);

View File

@@ -120,7 +120,7 @@ public class OutsideAccommodationStartListener implements ExecutionListener {
// 学工处审批前 → 找到对应学工处
// 查询角色ID=100学工处的所有用户
SysUser qUser = new SysUser();
qUser.setRoleId(100L); // 学工处角色固定ID=112
qUser.setRoleId(100L); // 学工处角色固定ID=100
List<SysUser> collegeUsers = sysUserService.selectAllocatedList(qUser);
if (collegeUsers.isEmpty()) {
throw new RuntimeException("未查询到角色(学工处)的用户");
@@ -130,7 +130,9 @@ public class OutsideAccommodationStartListener implements ExecutionListener {
SysUser targetCollegeLeader = collegeUsers.stream()
.filter(user -> currentDeptId.equals(user.getDeptId())) // 学院ID匹配部门ID即学院ID
.findFirst()
.orElseThrow(() -> new RuntimeException("未找到学院ID=" + currentDeptId + "的学工处负责人"));
// 找不到匹配的则取列表第二个用户
.orElse(collegeUsers.get(2));
//.orElseThrow(() -> new RuntimeException("未找到学院ID=" + currentDeptId + "的学工处负责人"));
// 返回匹配的学工处负责人ID