入伍保留学籍、外宿申请-审批人修改成电子签名

This commit is contained in:
2025-12-19 15:31:45 +08:00
parent ab366ef0da
commit 27efd6a39d
12 changed files with 223 additions and 110 deletions

View File

@@ -1,6 +1,7 @@
package com.srs.dormitory.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
@@ -10,12 +11,11 @@ import lombok.*;
import com.srs.common.core.domain.BaseEntity;
/**
* 外宿申请审批记录对象 dms_outside_accommodation_approval
*
* @author srs
* @date 2025-12-05
* @date 2025-12-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@@ -131,5 +131,13 @@ private static final long serialVersionUID=1L;
@Excel(name = "学生学号")
private String studentNo;
/**
* 签名
*/
@ApiModelProperty("签名")
@TableField("signature")
@Excel(name = "签名")
private String signature;
}

View File

@@ -74,6 +74,7 @@
<result property="processInstanceId" column="process_instance_id"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<result property="signature" column="signature"/>
</resultMap>
<!-- 外宿申请表-审核记录子表,根据学生姓名、学号查询 -->
@@ -90,7 +91,7 @@
</where>
</select>
<!--外宿申请表-审核记录-->
<!--外宿申请表-附件记录-->
<resultMap type="DmsOutsideAccommodationAttachment" id="DmsOutsideAccommodationAttachmentResult">
<result property="id" column="id"/>
<result property="applyId" column="apply_id"/>

View File

@@ -18,6 +18,7 @@
<result property="processInstanceId" column="process_instance_id"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<result property="signature" column="signature" />
</resultMap>
<sql id="selectDmsOutsideAccommodationApprovalVo">
@@ -33,7 +34,8 @@
approval_time,
process_instance_id,
student_name,
student_no
student_no,
signature
from dms_outside_accommodation_approval
</sql>
@@ -59,6 +61,7 @@
'%')
</if>
<if test="studentNo != null and studentNo != ''">and student_no = #{studentNo}</if>
<if test="signature != null and signature != ''"> and signature = #{signature}</if>
</where>
</select>
@@ -100,6 +103,7 @@
<if test="processInstanceId != null">process_instance_id,</if>
<if test="studentName != null and studentName != ''">student_name,</if>
<if test="studentNo != null and studentNo != ''">student_no,</if>
<if test="signature != null">signature,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
@@ -114,6 +118,7 @@
<if test="processInstanceId != null">#{processInstanceId},</if>
<if test="studentName != null and studentName != ''">#{studentName},</if>
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
<if test="signature != null">#{signature},</if>
</trim>
</insert>
@@ -132,6 +137,7 @@
<if test="processInstanceId != null">process_instance_id = #{processInstanceId},</if>
<if test="studentName != null and studentName != ''">student_name = #{studentName},</if>
<if test="studentNo != null and studentNo != ''">student_no = #{studentNo},</if>
<if test="signature != null">signature = #{signature},</if>
</trim>
where id = #{id}
</update>

View File

@@ -1,6 +1,7 @@
package com.srs.flowable.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
@@ -10,7 +11,6 @@ import lombok.*;
import com.srs.common.core.domain.BaseEntity;
/**
* 保留学籍审批记录对象 rt_enlistment_reserve_approval
*
@@ -123,5 +123,12 @@ public class EnlistmentReserveApproval extends BaseEntity{
@Excel(name = "学号")
private String studentNo;
/**
* 签名
*/
@ApiModelProperty("签名")
@TableField("signature")
@Excel(name = "签名")
private String signature;
}

View File

@@ -14,7 +14,6 @@ import lombok.*;
import java.util.Date;
/**
* 外宿申请审批记录对象 dms_outside_accommodation_approval
*
@@ -136,4 +135,12 @@ private static final long serialVersionUID=1L;
private String studentNo;
/**
* 签名
*/
@ApiModelProperty("签名")
@TableField("signature")
@Excel(name = "签名")
private String signature;
}

View File

@@ -61,6 +61,9 @@ public class ApprovalAssigneeListener implements ExecutionListener {
// 获取审核意见
String approvalOpinion = (String) execution.getVariable("approvalOpinion");
// 获取签名
String signature = (String) execution.getVariable("signature");
// 获取审核状态兼容Integer/Long类型
Object approvalResultObj = execution.getVariable("approvalResult");
Long approvalResult = null;
@@ -74,7 +77,7 @@ public class ApprovalAssigneeListener implements ExecutionListener {
// 根据Id查询入伍申请记录
EnlistmentReserve enlistmentReserve = rtEnlistmentReserveMapper.selectRtEnlistmentReserveById(enlistmentId);
// 添加审批记录
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion, approvalResult);
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion, approvalResult, signature);
Long status = 1L;
if (currentNodeName.equals("辅导员审批")) {
@@ -120,7 +123,7 @@ public class ApprovalAssigneeListener implements ExecutionListener {
/**
* 通用审批记录保存方法
*/
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String taskId, String nodeName, String studentName, String studentNo, String approvalOpinion, Long approvalResult) {
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String taskId, String nodeName, String studentName, String studentNo, String approvalOpinion, Long approvalResult, String signature) {
EnlistmentReserveApproval enlistmentReserveApproval = new EnlistmentReserveApproval();
// 赋值
enlistmentReserveApproval.setApplyId(ApplyId);
@@ -141,7 +144,9 @@ public class ApprovalAssigneeListener implements ExecutionListener {
enlistmentReserveApproval.setApprovalTime(new Date());
enlistmentReserveApproval.setStudentName(studentName);
enlistmentReserveApproval.setStudentNo(studentNo);
System.out.println(SecurityUtils.getLoginUser().getUser());
// System.out.println(SecurityUtils.getLoginUser().getUser());
// 设置签名
enlistmentReserveApproval.setSignature(signature);
EnlistmentReserveApprovalMapper rtEnlistmentReserveApprovalMapper = (EnlistmentReserveApprovalMapper) SpringUtils.getBean(EnlistmentReserveApprovalMapper.class);
// 查询审批记录是否存在
EnlistmentReserveApproval enlistmentReserveApproval1 = rtEnlistmentReserveApprovalMapper.selectRtEnlistmentReserveApprovalByStuName(studentName, studentNo, SecurityUtils.getLoginUser().getUser().getUserId());

View File

@@ -48,6 +48,9 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
// 获取审核意见
String approvalOpinion = (String) execution.getVariable("approvalOpinion");
// 获取签名
String signature = (String) execution.getVariable("signature");
// 获取审核状态兼容Integer/Long类型
Object approvalResultObj = execution.getVariable("approvalResult");
Long approvalResult = null;
@@ -62,7 +65,7 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
// 根据Id查询外宿申请记录
OutsideAccommodationApply outsideAccommodationApply = outsideAccommodationApplyMapper.selectDmsOutsideAccommodationApplyById(accommodationId);
// 添加审批记录
saveApprovalRecord(outsideAccommodationApply.getId(), outsideAccommodationApply.getProcessInstanceId(),outsideAccommodationApply.getApplyNo(),currentNodeName, outsideAccommodationApply.getStudentName(), outsideAccommodationApply.getStudentNo(), approvalOpinion, approvalResult);
saveApprovalRecord(outsideAccommodationApply.getId(), outsideAccommodationApply.getProcessInstanceId(),outsideAccommodationApply.getApplyNo(),currentNodeName, outsideAccommodationApply.getStudentName(), outsideAccommodationApply.getStudentNo(), approvalOpinion, approvalResult, signature);
Long status = 1L;
if (currentNodeName.equals("辅导员审批")) {
status = 2L;
@@ -105,7 +108,7 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
/**
* 通用审批记录保存方法
*/
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String applyNo, String nodeName, String studentName, String studentNo, String approvalOpinion, Long approvalResult) {
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String applyNo, String nodeName, String studentName, String studentNo, String approvalOpinion, Long approvalResult, String signature) {
OutsideAccommodationApproval outsideAccommodationApproval = new OutsideAccommodationApproval();
// 赋值
outsideAccommodationApproval.setApplyId(ApplyId);
@@ -126,6 +129,8 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
outsideAccommodationApproval.setApprovalTime(new Date());
outsideAccommodationApproval.setStudentName(studentName);
outsideAccommodationApproval.setStudentNo(studentNo);
// 设置签名
outsideAccommodationApproval.setSignature(signature);
OutsideAccommodationApprovalMapper outsideAccommodationApprovalMapper = (OutsideAccommodationApprovalMapper) SpringUtils.getBean(OutsideAccommodationApprovalMapper.class);
// 查询审批记录是否存在
OutsideAccommodationApproval approval = outsideAccommodationApprovalMapper.selectOutsideAccommodationApprovalByStuName(studentName, studentNo, SecurityUtils.getLoginUser().getUser().getUserId());

View File

@@ -17,30 +17,52 @@
<result property="approvalTime" column="approval_time"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<result property="signature" column="signature"/>
</resultMap>
<sql id="selectRtEnlistmentReserveApprovalVo">
select id, apply_id, process_instance_id, task_id, node_name, approver_id, approver_name, approval_opinion, approval_result, approval_time, student_name, student_no from rt_enlistment_reserve_approval
select id,
apply_id,
process_instance_id,
task_id,
node_name,
approver_id,
approver_name,
approval_opinion,
approval_result,
approval_time,
student_name,
student_no,
signature
from rt_enlistment_reserve_approval
</sql>
<select id="selectRtEnlistmentReserveApprovalList" parameterType="EnlistmentReserveApproval" resultMap="RtEnlistmentReserveApprovalResult">
<select id="selectRtEnlistmentReserveApprovalList" parameterType="EnlistmentReserveApproval"
resultMap="RtEnlistmentReserveApprovalResult">
<include refid="selectRtEnlistmentReserveApprovalVo"/>
<where>
<if test="applyId != null ">and apply_id = #{applyId}</if>
<if test="processInstanceId != null and processInstanceId != ''"> and process_instance_id = #{processInstanceId}</if>
<if test="processInstanceId != null and processInstanceId != ''">and process_instance_id =
#{processInstanceId}
</if>
<if test="taskId != null and taskId != ''">and task_id = #{taskId}</if>
<if test="nodeName != null and nodeName != ''">and node_name like concat('%', #{nodeName}, '%')</if>
<if test="approverId != null ">and approver_id = #{approverId}</if>
<if test="approverName != null and approverName != ''"> and approver_name like concat('%', #{approverName}, '%')</if>
<if test="approverName != null and approverName != ''">and approver_name like concat('%', #{approverName},
'%')
</if>
<if test="approvalOpinion != null and approvalOpinion != ''">and approval_opinion = #{approvalOpinion}</if>
<if test="approvalResult != null ">and approval_result = #{approvalResult}</if>
<if test="approvalTime != null ">and approval_time = #{approvalTime}</if>
<if test="studentName != null and studentName != ''"> and student_name like concat('%', #{studentName}, '%')</if>
<if test="studentName != null and studentName != ''">and student_name like concat('%', #{studentName},
'%')
</if>
<if test="studentNo != null and studentNo != ''">and student_no = #{studentNo}</if>
</where>
</select>
<select id="selectRtEnlistmentReserveApprovalById" parameterType="Long" resultMap="RtEnlistmentReserveApprovalResult">
<select id="selectRtEnlistmentReserveApprovalById" parameterType="Long"
resultMap="RtEnlistmentReserveApprovalResult">
<include refid="selectRtEnlistmentReserveApprovalVo"/>
where id = #{id}
</select>
@@ -61,7 +83,8 @@
</where>
</select>
<insert id="insertRtEnlistmentReserveApproval" parameterType="RtEnlistmentReserveApproval" useGeneratedKeys="true" keyProperty="id">
<insert id="insertRtEnlistmentReserveApproval" parameterType="RtEnlistmentReserveApproval" useGeneratedKeys="true"
keyProperty="id">
insert into rt_enlistment_reserve_approval
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="applyId != null">apply_id,</if>
@@ -75,6 +98,7 @@
<if test="approvalTime != null">approval_time,</if>
<if test="studentName != null and studentName != ''">student_name,</if>
<if test="studentNo != null and studentNo != ''">student_no,</if>
<if test="signature != null">signature,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
@@ -88,6 +112,7 @@
<if test="approvalTime != null">#{approvalTime},</if>
<if test="studentName != null and studentName != ''">#{studentName},</if>
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
<if test="signature != null">#{signature},</if>
</trim>
</insert>
@@ -95,7 +120,9 @@
update rt_enlistment_reserve_approval
<trim prefix="SET" suffixOverrides=",">
<if test="applyId != null">apply_id = #{applyId},</if>
<if test="processInstanceId != null and processInstanceId != ''">process_instance_id = #{processInstanceId},</if>
<if test="processInstanceId != null and processInstanceId != ''">process_instance_id =
#{processInstanceId},
</if>
<if test="taskId != null and taskId != ''">task_id = #{taskId},</if>
<if test="nodeName != null and nodeName != ''">node_name = #{nodeName},</if>
<if test="approverId != null">approver_id = #{approverId},</if>
@@ -105,12 +132,15 @@
<if test="approvalTime != null">approval_time = #{approvalTime},</if>
<if test="studentName != null and studentName != ''">student_name = #{studentName},</if>
<if test="studentNo != null and studentNo != ''">student_no = #{studentNo},</if>
<if test="signature != null">signature = #{signature},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteRtEnlistmentReserveApprovalById" parameterType="Long">
delete from rt_enlistment_reserve_approval where id = #{id}
delete
from rt_enlistment_reserve_approval
where id = #{id}
</delete>
<delete id="deleteRtEnlistmentReserveApprovalByIds" parameterType="String">

View File

@@ -18,31 +18,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="processInstanceId" column="process_instance_id"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<result property="signature" column="signature"/>
</resultMap>
<sql id="selectDmsOutsideAccommodationApprovalVo">
select id, apply_id, apply_no, approval_node, approver_id, approver_name, approver_role, approval_opinion, approval_result, approval_time, process_instance_id, student_name, student_no from dms_outside_accommodation_approval
select id,
apply_id,
apply_no,
approval_node,
approver_id,
approver_name,
approver_role,
approval_opinion,
approval_result,
approval_time,
process_instance_id,
student_name,
student_no,
signature
from dms_outside_accommodation_approval
</sql>
<select id="selectDmsOutsideAccommodationApprovalList" parameterType="DmsOutsideAccommodationApproval" resultMap="DmsOutsideAccommodationApprovalResult">
<select id="selectDmsOutsideAccommodationApprovalList" parameterType="DmsOutsideAccommodationApproval"
resultMap="DmsOutsideAccommodationApprovalResult">
<include refid="selectDmsOutsideAccommodationApprovalVo"/>
<where>
<if test="applyId != null ">and apply_id = #{applyId}</if>
<if test="applyNo != null and applyNo != ''">and apply_no = #{applyNo}</if>
<if test="approvalNode != null ">and approval_node = #{approvalNode}</if>
<if test="approverId != null ">and approver_id = #{approverId}</if>
<if test="approverName != null and approverName != ''"> and approver_name like concat('%', #{approverName}, '%')</if>
<if test="approverName != null and approverName != ''">and approver_name like concat('%', #{approverName},
'%')
</if>
<if test="approverRole != null and approverRole != ''">and approver_role = #{approverRole}</if>
<if test="approvalOpinion != null and approvalOpinion != ''">and approval_opinion = #{approvalOpinion}</if>
<if test="approvalResult != null ">and approval_result = #{approvalResult}</if>
<if test="approvalTime != null ">and approval_time = #{approvalTime}</if>
<if test="processInstanceId != null and processInstanceId != ''"> and process_instance_id = #{processInstanceId}</if>
<if test="studentName != null and studentName != ''"> and student_name like concat('%', #{studentName}, '%')</if>
<if test="processInstanceId != null and processInstanceId != ''">and process_instance_id =
#{processInstanceId}
</if>
<if test="studentName != null and studentName != ''">and student_name like concat('%', #{studentName},
'%')
</if>
<if test="studentNo != null and studentNo != ''">and student_no = #{studentNo}</if>
<if test="signature != null and signature != ''">and signature = #{signature}</if>
</where>
</select>
<select id="selectDmsOutsideAccommodationApprovalById" parameterType="Long" resultMap="DmsOutsideAccommodationApprovalResult">
<select id="selectDmsOutsideAccommodationApprovalById" parameterType="Long"
resultMap="DmsOutsideAccommodationApprovalResult">
<include refid="selectDmsOutsideAccommodationApprovalVo"/>
where id = #{id}
</select>
@@ -63,7 +87,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<insert id="insertDmsOutsideAccommodationApproval" parameterType="DmsOutsideAccommodationApproval" useGeneratedKeys="true" keyProperty="id">
<insert id="insertDmsOutsideAccommodationApproval" parameterType="DmsOutsideAccommodationApproval"
useGeneratedKeys="true" keyProperty="id">
insert into dms_outside_accommodation_approval
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="applyId != null">apply_id,</if>
@@ -78,6 +103,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processInstanceId != null">process_instance_id,</if>
<if test="studentName != null and studentName != ''">student_name,</if>
<if test="studentNo != null and studentNo != ''">student_no,</if>
<if test="signature != null">signature,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
@@ -92,6 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processInstanceId != null">#{processInstanceId},</if>
<if test="studentName != null and studentName != ''">#{studentName},</if>
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
<if test="signature != null">#{signature},</if>
</trim>
</insert>
@@ -110,12 +137,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="processInstanceId != null">process_instance_id = #{processInstanceId},</if>
<if test="studentName != null and studentName != ''">student_name = #{studentName},</if>
<if test="studentNo != null and studentNo != ''">student_no = #{studentNo},</if>
<if test="signature != null">signature = #{signature},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteDmsOutsideAccommodationApprovalById" parameterType="Long">
delete from dms_outside_accommodation_approval where id = #{id}
delete
from dms_outside_accommodation_approval
where id = #{id}
</delete>
<delete id="deleteDmsOutsideAccommodationApprovalByIds" parameterType="String">

View File

@@ -1,6 +1,7 @@
package com.srs.routine.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
@@ -10,7 +11,6 @@ import lombok.*;
import com.srs.common.core.domain.BaseEntity;
/**
* 保留学籍审批记录对象 rt_enlistment_reserve_approval
*
@@ -123,5 +123,13 @@ public class RtEnlistmentReserveApproval extends BaseEntity{
@Excel(name = "学号")
private String studentNo;
/**
* 签名
*/
@ApiModelProperty("签名")
@TableField("signature")
@Excel(name = "签名")
private String signature;
}

View File

@@ -17,6 +17,7 @@
<result property="approvalTime" column="approval_time"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<result property="signature" column="signature"/>
</resultMap>
<sql id="selectRtEnlistmentReserveApprovalVo">
@@ -31,7 +32,8 @@
approval_result,
approval_time,
student_name,
student_no
student_no,
signature
from rt_enlistment_reserve_approval
</sql>
@@ -96,6 +98,7 @@
<if test="approvalTime != null">approval_time,</if>
<if test="studentName != null and studentName != ''">student_name,</if>
<if test="studentNo != null and studentNo != ''">student_no,</if>
<if test="signature != null">signature,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
@@ -109,6 +112,7 @@
<if test="approvalTime != null">#{approvalTime},</if>
<if test="studentName != null and studentName != ''">#{studentName},</if>
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
<if test="signature != null">#{signature},</if>
</trim>
</insert>
@@ -128,6 +132,7 @@
<if test="approvalTime != null">approval_time = #{approvalTime},</if>
<if test="studentName != null and studentName != ''">student_name = #{studentName},</if>
<if test="studentNo != null and studentNo != ''">student_no = #{studentNo},</if>
<if test="signature != null">signature = #{signature},</if>
</trim>
where id = #{id}
</update>

View File

@@ -52,6 +52,7 @@
<result property="approvalTime" column="approval_time"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<result property="signature" column="signature"/>
</resultMap>
<!-- 入伍保留申请表-审核记录子表,根据学生姓名、学号查询 -->