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

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

@@ -15,7 +15,7 @@ import com.srs.common.core.domain.BaseEntity;
* 外宿申请对象 dms_outside_accommodation_apply
*
* @author srs
* @date 2025-12-06
* @date 2025-12-09
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -349,5 +349,13 @@ public class DmsOutsideAccommodationApply extends BaseEntity {
@Excel(name = "外宿原因学生签名URL")
private String studentSignature;
/**
* 承诺内容
*/
@ApiModelProperty("承诺内容")
@TableField("promise_content")
@Excel(name = "承诺内容")
private String promiseContent;
}

View File

@@ -49,6 +49,7 @@
<result property="idCard" column="idCard"/>
<result property="studentPhone" column="studentPhone"/>
<result property="studentSignature" column="student_signature"/>
<result property="promiseContent" column="promise_content" />
</resultMap>
<sql id="selectDmsOutsideAccommodationApplyVo">
@@ -95,7 +96,8 @@
process_instance_id,
idCard,
studentPhone,
student_signature
student_signature,
promise_content
from dms_outside_accommodation_apply
</sql>
@@ -250,6 +252,7 @@
<if test="idCard != null and idCard != ''">idCard,</if>
<if test="studentPhone != null">studentPhone,</if>
<if test="studentSignature != null">student_signature,</if>
<if test="promiseContent != null">promise_content,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyNo != null and applyNo != ''">#{applyNo},</if>
@@ -295,6 +298,7 @@
<if test="idCard != null and idCard != ''">#{idCard},</if>
<if test="studentPhone != null">#{studentPhone},</if>
<if test="studentSignature != null">#{studentSignature},</if>
<if test="promiseContent != null">#{promiseContent},</if>
</trim>
</insert>
@@ -352,6 +356,7 @@
<if test="idCard != null and idCard != ''">idCard = #{idCard},</if>
<if test="studentPhone != null">studentPhone = #{studentPhone},</if>
<if test="studentSignature != null">student_signature = #{studentSignature},</if>
<if test="promiseContent != null">promise_content = #{promiseContent},</if>
</trim>
where id = #{id}
</update>

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