应征入伍保留学籍工作流监听器
This commit is contained in:
@@ -0,0 +1,203 @@
|
|||||||
|
package com.srs.flowable.domain;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.srs.common.annotation.Excel;
|
||||||
|
import com.srs.common.core.domain.BaseEntity;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应征入伍保留学籍申请对象 rt_enlistment_reserve
|
||||||
|
*
|
||||||
|
* @author srs
|
||||||
|
* @date 2025-10-31
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
@ApiModel(value = "RtEnlistmentReserve对象" , description = "应征入伍保留学籍申请表")
|
||||||
|
@TableName("rt_enlistment_reserve")
|
||||||
|
public class EnlistmentReserve extends BaseEntity{
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("主键")
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请编号(规则:RY+年份+6位序号,如RY2024000001)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("申请编号(规则:RY+年份+6位序号,如RY2024000001)")
|
||||||
|
@TableField("apply_no")
|
||||||
|
@Excel(name = "申请编号" , readConverterExp = "规=则:RY+年份+6位序号,如RY2024000001")
|
||||||
|
private String applyNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学生ID(关联sys_user)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("学生ID(关联sys_user)")
|
||||||
|
@TableField("student_id")
|
||||||
|
@Excel(name = "学生ID" , readConverterExp = "关=联sys_user")
|
||||||
|
private Long studentId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 辅导员姓名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("辅导员姓名")
|
||||||
|
@TableField("teacher_name")
|
||||||
|
@Excel(name = "辅导员姓名")
|
||||||
|
private String teacherName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 姓名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
@TableField("student_name")
|
||||||
|
@Excel(name = "姓名")
|
||||||
|
private String studentName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 性别(0-男
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("性别(1-男 0-女)")
|
||||||
|
@TableField("gender")
|
||||||
|
@Excel(name = "性别" , readConverterExp = "性别(1-男 0-女)")
|
||||||
|
private String gender;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 民族
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("民族")
|
||||||
|
@TableField("nation")
|
||||||
|
@Excel(name = "民族")
|
||||||
|
private String nation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年级
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("年级")
|
||||||
|
@TableField("grade")
|
||||||
|
@Excel(name = "年级")
|
||||||
|
private String grade;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("学号")
|
||||||
|
@TableField("student_no")
|
||||||
|
@Excel(name = "学号")
|
||||||
|
private String studentNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 班级
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("班级")
|
||||||
|
@TableField("class_name")
|
||||||
|
@Excel(name = "班级")
|
||||||
|
private String className;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 专业名称
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("专业名称")
|
||||||
|
@TableField("major")
|
||||||
|
@Excel(name = "专业名称")
|
||||||
|
private String major;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 家庭地址
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("家庭地址")
|
||||||
|
@TableField("family_address")
|
||||||
|
@Excel(name = "家庭地址")
|
||||||
|
private String familyAddress;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 家长联系电话
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("家长联系电话")
|
||||||
|
@TableField("parent_phone")
|
||||||
|
@Excel(name = "家长联系电话")
|
||||||
|
private String parentPhone;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请理由(含入伍时间、服役期限)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("申请理由(含入伍时间、服役期限)")
|
||||||
|
@TableField("apply_reason")
|
||||||
|
@Excel(name = "申请理由" , readConverterExp = "含=入伍时间、服役期限")
|
||||||
|
private String applyReason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请状态(0-草稿
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("申请状态(0-草稿 1-审批中 2-通过 3-驳回)")
|
||||||
|
@TableField("apply_status")
|
||||||
|
@Excel(name = "申请状态" , readConverterExp = "申请状态(0-草稿 1-审批中 2-通过 3-驳回)")
|
||||||
|
private Long applyStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flowable流程实例ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("Flowable流程实例ID")
|
||||||
|
@TableField("process_instance_id")
|
||||||
|
@Excel(name = "Flowable流程实例ID")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保留学籍编号(审批通过后生成)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("保留学籍编号(审批通过后生成)")
|
||||||
|
@TableField("reserve_no")
|
||||||
|
@Excel(name = "保留学籍编号" , readConverterExp = "审=批通过后生成")
|
||||||
|
private String reserveNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保留学籍开始日期
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("保留学籍开始日期")
|
||||||
|
@TableField("reserve_start_date")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "保留学籍开始日期" , width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date reserveStartDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保留学籍结束日期(入伍时间+服役期限)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("保留学籍结束日期(入伍时间+服役期限)")
|
||||||
|
@TableField("reserve_end_date")
|
||||||
|
@Excel(name = "保留学籍结束日期" , readConverterExp = "入=伍时间+服役期限")
|
||||||
|
private Date reserveEndDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批文号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("批文号")
|
||||||
|
@TableField("approval_no")
|
||||||
|
@Excel(name = "批文号")
|
||||||
|
private String approvalNo;
|
||||||
|
|
||||||
|
@ApiModelProperty("申请日期")
|
||||||
|
@TableField("create_time")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("更新日期")
|
||||||
|
@TableField("update_time")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
private Date updateTime;
|
||||||
|
}
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
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.*;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.*;
|
||||||
|
import com.srs.common.core.domain.BaseEntity;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保留学籍审批记录对象 rt_enlistment_reserve_approval
|
||||||
|
*
|
||||||
|
* @author srs
|
||||||
|
* @date 2025-11-13
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Builder
|
||||||
|
@ApiModel(value = "RtEnlistmentReserveApproval对象" , description = "保留学籍审批记录")
|
||||||
|
@TableName("rt_enlistment_reserve_approval")
|
||||||
|
public class EnlistmentReserveApproval extends BaseEntity{
|
||||||
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("主键")
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请表ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("申请表ID")
|
||||||
|
@TableField("apply_id")
|
||||||
|
@Excel(name = "申请表ID")
|
||||||
|
private Long applyId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 流程实例ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("流程实例ID")
|
||||||
|
@TableField("process_instance_id")
|
||||||
|
@Excel(name = "流程实例ID")
|
||||||
|
private String processInstanceId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flowable任务ID
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("Flowable任务ID")
|
||||||
|
@TableField("task_id")
|
||||||
|
@Excel(name = "Flowable任务ID")
|
||||||
|
private String taskId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批节点(辅导员/学务等)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("审批节点(辅导员/学务等)")
|
||||||
|
@TableField("node_name")
|
||||||
|
@Excel(name = "审批节点" , readConverterExp = "辅=导员/学务等")
|
||||||
|
private String nodeName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批人ID(关联sys_user)
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("审批人ID(关联sys_user)")
|
||||||
|
@TableField("approver_id")
|
||||||
|
@Excel(name = "审批人ID" , readConverterExp = "关=联sys_user")
|
||||||
|
private Long approverId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批人姓名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("审批人姓名")
|
||||||
|
@TableField("approver_name")
|
||||||
|
@Excel(name = "审批人姓名")
|
||||||
|
private String approverName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批意见
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("审批意见")
|
||||||
|
@TableField("approval_opinion")
|
||||||
|
@Excel(name = "审批意见")
|
||||||
|
private String approvalOpinion;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批结果(1-通过
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("审批结果(1-通过")
|
||||||
|
@TableField("approval_result")
|
||||||
|
@Excel(name = "审批结果" , readConverterExp = "审批结果(1-通过")
|
||||||
|
private Long approvalResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批时间
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("审批时间")
|
||||||
|
@TableField("approval_time")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
|
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
|
private Date approvalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 姓名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
@TableField("student_name")
|
||||||
|
@Excel(name = "姓名")
|
||||||
|
private String studentName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("学号")
|
||||||
|
@TableField("student_no")
|
||||||
|
@Excel(name = "学号")
|
||||||
|
private String studentNo;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -3,7 +3,13 @@ package com.srs.flowable.listener.enlistmentReserve;
|
|||||||
import com.srs.common.core.domain.entity.SysUser;
|
import com.srs.common.core.domain.entity.SysUser;
|
||||||
|
|
||||||
|
|
||||||
|
import com.srs.common.doman.vo.TeacherVo;
|
||||||
import com.srs.common.utils.SecurityUtils;
|
import com.srs.common.utils.SecurityUtils;
|
||||||
|
import com.srs.common.utils.spring.SpringUtils;
|
||||||
|
import com.srs.flowable.domain.EnlistmentReserve;
|
||||||
|
import com.srs.flowable.domain.EnlistmentReserveApproval;
|
||||||
|
import com.srs.flowable.mapper.EnlistmentReserveApprovalMapper;
|
||||||
|
import com.srs.flowable.mapper.EnlistmentReserveMapper;
|
||||||
import com.srs.system.service.ISysUserService;
|
import com.srs.system.service.ISysUserService;
|
||||||
import org.flowable.bpmn.model.BpmnModel;
|
import org.flowable.bpmn.model.BpmnModel;
|
||||||
import org.flowable.bpmn.model.FlowNode;
|
import org.flowable.bpmn.model.FlowNode;
|
||||||
@@ -15,6 +21,7 @@ import org.flowable.engine.delegate.ExecutionListener;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@@ -53,8 +60,14 @@ public class ApprovalAssigneeListener implements ExecutionListener {
|
|||||||
// 3. 获取流程实例ID
|
// 3. 获取流程实例ID
|
||||||
String processInstanceId = execution.getProcessInstanceId();
|
String processInstanceId = execution.getProcessInstanceId();
|
||||||
|
|
||||||
|
// 获取申请表id
|
||||||
|
Long enlistmentId = Long.valueOf(execution.getVariable("enlistmentId").toString());
|
||||||
|
|
||||||
|
// 获取审核意见
|
||||||
|
String approvalOpinion = (String) execution.getVariable("comment");
|
||||||
|
|
||||||
// 4. 后续逻辑不变:查询下一个节点负责人并更新变量
|
// 4. 后续逻辑不变:查询下一个节点负责人并更新变量
|
||||||
Long nextAssigneeId = getNextAssignee(currentNodeName, processInstanceId);
|
Long nextAssigneeId = getNextAssignee(currentNodeName, processInstanceId, enlistmentId, currentActivityId, approvalOpinion);
|
||||||
if (nextAssigneeId != null) {
|
if (nextAssigneeId != null) {
|
||||||
execution.setVariable("approval", nextAssigneeId);
|
execution.setVariable("approval", nextAssigneeId);
|
||||||
execution.setVariable("currentNode", currentNodeName);
|
execution.setVariable("currentNode", currentNodeName);
|
||||||
@@ -79,11 +92,16 @@ public class ApprovalAssigneeListener implements ExecutionListener {
|
|||||||
/**
|
/**
|
||||||
* 根据当前节点查询下一个节点的负责人
|
* 根据当前节点查询下一个节点的负责人
|
||||||
*/
|
*/
|
||||||
private Long getNextAssignee(String currentNodeName, String processInstanceId) {
|
private Long getNextAssignee(String currentNodeName, String processInstanceId, Long enlistmentId, String currentActivityId, String approvalOpinion) {
|
||||||
// 获取当前登录用户的部门id
|
EnlistmentReserveMapper rtEnlistmentReserveMapper = (EnlistmentReserveMapper) SpringUtils.getBean(EnlistmentReserveMapper.class);
|
||||||
Long currentDeptId = SecurityUtils.getDeptId();
|
// 根据Id查询入伍申请记录
|
||||||
|
EnlistmentReserve enlistmentReserve = rtEnlistmentReserveMapper.selectRtEnlistmentReserveById(enlistmentId);
|
||||||
|
// 根据学生学号来获取对应辅导员的信息
|
||||||
|
TeacherVo counselorInfo = rtEnlistmentReserveMapper.getCounselorInfo(enlistmentReserve.getStudentNo());
|
||||||
|
// 获取辅导员的部门id
|
||||||
|
Long currentDeptId = counselorInfo.getDeptId();
|
||||||
if (currentDeptId == null) {
|
if (currentDeptId == null) {
|
||||||
throw new RuntimeException("当前登录用户未分配部门,无法匹配学务负责人");
|
throw new RuntimeException("未分配部门,无法匹配负责人");
|
||||||
}
|
}
|
||||||
// 注意:节点名称需与BPMN模型中完全一致(区分大小写)
|
// 注意:节点名称需与BPMN模型中完全一致(区分大小写)
|
||||||
switch (currentNodeName) {
|
switch (currentNodeName) {
|
||||||
@@ -97,13 +115,16 @@ public class ApprovalAssigneeListener implements ExecutionListener {
|
|||||||
throw new RuntimeException("未查询到角色ID=105(学务)的用户");
|
throw new RuntimeException("未查询到角色ID=105(学务)的用户");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. 从学务用户中筛选出部门ID与当前辅导员部门一致的用户
|
// 从学务用户中筛选出部门ID与当前辅导员部门一致的用户
|
||||||
SysUser targetAcademic = academicAffairsUsers.stream()
|
SysUser targetAcademic = academicAffairsUsers.stream()
|
||||||
.filter(user -> currentDeptId.equals(user.getDeptId())) // 部门ID匹配
|
.filter(user -> currentDeptId.equals(user.getDeptId())) // 部门ID匹配
|
||||||
.findFirst() // 取第一个匹配的学务(若有多个,可根据排序或优先级调整)
|
.findFirst() // 取第一个匹配的学务(若有多个,可根据排序或优先级调整)
|
||||||
.orElseThrow(() -> new RuntimeException("未找到部门ID=" + currentDeptId + "的学务负责人"));
|
.orElseThrow(() -> new RuntimeException("未找到部门ID=" + currentDeptId + "的学务负责人"));
|
||||||
|
|
||||||
// 4. 返回匹配的学务用户ID(作为下一个节点负责人)
|
// 添加审批记录
|
||||||
|
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion);
|
||||||
|
|
||||||
|
// 返回匹配的学务用户ID(作为下一个节点负责人)
|
||||||
return targetAcademic.getUserId();
|
return targetAcademic.getUserId();
|
||||||
|
|
||||||
case "学务审批":
|
case "学务审批":
|
||||||
@@ -128,23 +149,79 @@ public class ApprovalAssigneeListener implements ExecutionListener {
|
|||||||
.findFirst()
|
.findFirst()
|
||||||
.orElseThrow(() -> new RuntimeException("未找到学院ID=" + currentDeptId + "的二级学院负责人(角色ID=106)"));
|
.orElseThrow(() -> new RuntimeException("未找到学院ID=" + currentDeptId + "的二级学院负责人(角色ID=106)"));
|
||||||
|
|
||||||
|
|
||||||
|
// 添加审批记录
|
||||||
|
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion);
|
||||||
|
|
||||||
// 4. 返回匹配的二级学院负责人ID
|
// 4. 返回匹配的二级学院负责人ID
|
||||||
return targetCollegeLeader.getUserId();
|
return targetCollegeLeader.getUserId();
|
||||||
|
|
||||||
case "二级学院审批":
|
case "二级学院审批":
|
||||||
// 二级学院通过后 → 下一个节点:学籍管理科(假设部门ID=30)
|
// 二级学院通过后 → 下一个节点:学籍管理科(假设部门ID=30)
|
||||||
|
|
||||||
|
|
||||||
|
// 添加审批记录
|
||||||
|
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion);
|
||||||
return 30L;
|
return 30L;
|
||||||
|
|
||||||
case "学籍管理科审批":
|
case "学籍管理科审批":
|
||||||
// 学籍管理科通过后 → 下一个节点:教务处(假设部门ID=40)
|
// 学籍管理科通过后 → 下一个节点:教务处(假设部门ID=40)
|
||||||
|
|
||||||
|
// 添加审批记录
|
||||||
|
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion);
|
||||||
return 40L;
|
return 40L;
|
||||||
|
|
||||||
case "教务处主管领导审批":
|
case "教务处主管领导审批":
|
||||||
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
// 最后一个节点通过后 → 流程结束(无需设置负责人)
|
||||||
|
|
||||||
|
|
||||||
|
// 添加审批记录
|
||||||
|
saveApprovalRecord(enlistmentReserve.getId(), enlistmentReserve.getProcessInstanceId(),currentActivityId,currentNodeName, enlistmentReserve.getStudentName(), enlistmentReserve.getStudentNo(), approvalOpinion);
|
||||||
|
|
||||||
|
// 改变申请表中的审核状态(审核通过)
|
||||||
|
enlistmentReserve.setApplyStatus(2L);
|
||||||
|
rtEnlistmentReserveMapper.updateRtEnlistmentReserve(enlistmentReserve);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException("未配置节点[" + currentNodeName + "]的下一个负责人规则");
|
throw new RuntimeException("未配置节点[" + currentNodeName + "]的下一个负责人规则");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用审批记录保存方法
|
||||||
|
*/
|
||||||
|
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String taskId, String nodeName, String studentName, String studentNo, String approvalOpinion) {
|
||||||
|
EnlistmentReserveApproval enlistmentReserveApproval = new EnlistmentReserveApproval();
|
||||||
|
// 赋值
|
||||||
|
enlistmentReserveApproval.setApplyId(ApplyId);
|
||||||
|
enlistmentReserveApproval.setProcessInstanceId(processInstanceId);
|
||||||
|
enlistmentReserveApproval.setTaskId(taskId);
|
||||||
|
enlistmentReserveApproval.setNodeName(nodeName);
|
||||||
|
enlistmentReserveApproval.setApproverId(SecurityUtils.getLoginUser().getUser().getUserId());
|
||||||
|
// SecurityUtils.getUserName()是工号
|
||||||
|
enlistmentReserveApproval.setApproverName(SecurityUtils.getLoginUser().getUser().getNickName());
|
||||||
|
|
||||||
|
// 若变量未传递,直接用默认值“同意”(前端点击同意按钮的默认意见)
|
||||||
|
enlistmentReserveApproval.setApprovalOpinion(approvalOpinion != null ? approvalOpinion : "同意");
|
||||||
|
if (approvalOpinion != null) {
|
||||||
|
enlistmentReserveApproval.setApprovalResult(!approvalOpinion.equals("同意") ? 0L : 1L); // 1-通过,若有驳回场景需根据变量调整
|
||||||
|
}
|
||||||
|
|
||||||
|
// 审批时间:当前系统时间
|
||||||
|
enlistmentReserveApproval.setApprovalTime(new Date());
|
||||||
|
enlistmentReserveApproval.setStudentName(studentName);
|
||||||
|
enlistmentReserveApproval.setStudentNo(studentNo);
|
||||||
|
System.out.println(SecurityUtils.getLoginUser().getUser());
|
||||||
|
EnlistmentReserveApprovalMapper rtEnlistmentReserveApprovalMapper = (EnlistmentReserveApprovalMapper) SpringUtils.getBean(EnlistmentReserveApprovalMapper.class);
|
||||||
|
// 查询审批记录是否存在
|
||||||
|
EnlistmentReserveApproval enlistmentReserveApproval1 = rtEnlistmentReserveApprovalMapper.selectRtEnlistmentReserveApprovalByStuName(studentName, studentNo, SecurityUtils.getLoginUser().getUser().getUserId());
|
||||||
|
if (enlistmentReserveApproval1 == null) {
|
||||||
|
rtEnlistmentReserveApprovalMapper.insertRtEnlistmentReserveApproval(enlistmentReserveApproval);
|
||||||
|
} else {
|
||||||
|
enlistmentReserveApproval.setId(enlistmentReserveApproval1.getId());
|
||||||
|
rtEnlistmentReserveApprovalMapper.updateRtEnlistmentReserveApproval(enlistmentReserveApproval);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package com.srs.flowable.mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.srs.flowable.domain.EnlistmentReserveApproval;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保留学籍审批记录Mapper接口
|
||||||
|
*
|
||||||
|
* @author srs
|
||||||
|
* @date 2025-11-13
|
||||||
|
*/
|
||||||
|
public interface EnlistmentReserveApprovalMapper extends BaseMapper<EnlistmentReserveApproval> {
|
||||||
|
/**
|
||||||
|
* 查询保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param id 保留学籍审批记录主键
|
||||||
|
* @return 保留学籍审批记录
|
||||||
|
*/
|
||||||
|
public EnlistmentReserveApproval selectRtEnlistmentReserveApprovalById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据学生姓名学号和审批人id查询保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
EnlistmentReserveApproval selectRtEnlistmentReserveApprovalByStuName(@Param("studentName") String studentName, @Param("studentNo") String studentNo, @Param("approverId") Long approverId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询保留学籍审批记录列表
|
||||||
|
*
|
||||||
|
* @param enlistmentReserveApproval 保留学籍审批记录
|
||||||
|
* @return 保留学籍审批记录集合
|
||||||
|
*/
|
||||||
|
List<EnlistmentReserveApproval> selectRtEnlistmentReserveApprovalList(EnlistmentReserveApproval enlistmentReserveApproval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param enlistmentReserveApproval 保留学籍审批记录
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int insertRtEnlistmentReserveApproval(EnlistmentReserveApproval enlistmentReserveApproval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param enlistmentReserveApproval 保留学籍审批记录
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int updateRtEnlistmentReserveApproval(EnlistmentReserveApproval enlistmentReserveApproval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param id 保留学籍审批记录主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int deleteRtEnlistmentReserveApprovalById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int deleteRtEnlistmentReserveApprovalByIds(Long[] ids);
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
package com.srs.flowable.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.srs.common.doman.vo.TeacherVo;
|
||||||
|
|
||||||
|
import com.srs.flowable.domain.EnlistmentReserve;
|
||||||
|
import org.apache.ibatis.annotations.Options;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 应征入伍保留学籍申请Mapper接口
|
||||||
|
*
|
||||||
|
* @author srs
|
||||||
|
* @date 2025-10-31
|
||||||
|
*/
|
||||||
|
public interface EnlistmentReserveMapper extends BaseMapper<EnlistmentReserve> {
|
||||||
|
/**
|
||||||
|
* 查询应征入伍保留学籍申请
|
||||||
|
*
|
||||||
|
* @param id 应征入伍保留学籍申请主键
|
||||||
|
* @return 应征入伍保留学籍申请
|
||||||
|
*/
|
||||||
|
public EnlistmentReserve selectRtEnlistmentReserveById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询应征入伍保留学籍申请
|
||||||
|
*
|
||||||
|
* @param processInstanceId Flowable流程实例ID
|
||||||
|
* @return 应征入伍保留学籍申请
|
||||||
|
*/
|
||||||
|
public EnlistmentReserve selectRtEnlistmentReserveByProcessInstanceId(String processInstanceId);
|
||||||
|
|
||||||
|
// <!-- 根据学号查询辅导员信息 -->
|
||||||
|
public TeacherVo getCounselorInfo(String stuNo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询应征入伍保留学籍申请列表
|
||||||
|
*
|
||||||
|
* @param rtEnlistmentReserve 应征入伍保留学籍申请
|
||||||
|
* @return 应征入伍保留学籍申请集合
|
||||||
|
*/
|
||||||
|
List<EnlistmentReserve> selectRtEnlistmentReserveList(EnlistmentReserve rtEnlistmentReserve);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增应征入伍保留学籍申请
|
||||||
|
*
|
||||||
|
* @param enlistmentReserve 应征入伍保留学籍申请
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
|
||||||
|
int insertRtEnlistmentReserve(EnlistmentReserve enlistmentReserve);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改应征入伍保留学籍申请
|
||||||
|
*
|
||||||
|
* @param enlistmentReserve 应征入伍保留学籍申请
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int updateRtEnlistmentReserve(EnlistmentReserve enlistmentReserve);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除应征入伍保留学籍申请
|
||||||
|
*
|
||||||
|
* @param id 应征入伍保留学籍申请主键
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int deleteRtEnlistmentReserveById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批量删除应征入伍保留学籍申请
|
||||||
|
*
|
||||||
|
* @param ids 需要删除的数据主键集合
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
int deleteRtEnlistmentReserveByIds(Long[] ids);
|
||||||
|
}
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.srs.flowable.mapper.EnlistmentReserveApprovalMapper">
|
||||||
|
|
||||||
|
<resultMap type="EnlistmentReserveApproval" id="RtEnlistmentReserveApprovalResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="applyId" column="apply_id" />
|
||||||
|
<result property="processInstanceId" column="process_instance_id" />
|
||||||
|
<result property="taskId" column="task_id" />
|
||||||
|
<result property="nodeName" column="node_name" />
|
||||||
|
<result property="approverId" column="approver_id" />
|
||||||
|
<result property="approverName" column="approver_name" />
|
||||||
|
<result property="approvalOpinion" column="approval_opinion" />
|
||||||
|
<result property="approvalResult" column="approval_result" />
|
||||||
|
<result property="approvalTime" column="approval_time" />
|
||||||
|
<result property="studentName" column="student_name" />
|
||||||
|
<result property="studentNo" column="student_no" />
|
||||||
|
</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
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<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="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="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="studentNo != null and studentNo != ''"> and student_no = #{studentNo}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRtEnlistmentReserveApprovalById" parameterType="Long" resultMap="RtEnlistmentReserveApprovalResult">
|
||||||
|
<include refid="selectRtEnlistmentReserveApprovalVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRtEnlistmentReserveApprovalByStuName" resultMap="RtEnlistmentReserveApprovalResult">
|
||||||
|
select *
|
||||||
|
from rt_enlistment_reserve_approval
|
||||||
|
<where>
|
||||||
|
<if test="studentName != null and studentName != ''">
|
||||||
|
and student_name = #{studentName}
|
||||||
|
</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">
|
||||||
|
and student_no = #{studentNo}
|
||||||
|
</if>
|
||||||
|
<if test="approverId != null and approverId != ''">
|
||||||
|
and approver_id = #{approverId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<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>
|
||||||
|
<if test="processInstanceId != null and processInstanceId != ''">process_instance_id,</if>
|
||||||
|
<if test="taskId != null and taskId != ''">task_id,</if>
|
||||||
|
<if test="nodeName != null and nodeName != ''">node_name,</if>
|
||||||
|
<if test="approverId != null">approver_id,</if>
|
||||||
|
<if test="approverName != null and approverName != ''">approver_name,</if>
|
||||||
|
<if test="approvalOpinion != null">approval_opinion,</if>
|
||||||
|
<if test="approvalResult != null">approval_result,</if>
|
||||||
|
<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>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="applyId != null">#{applyId},</if>
|
||||||
|
<if test="processInstanceId != null and processInstanceId != ''">#{processInstanceId},</if>
|
||||||
|
<if test="taskId != null and taskId != ''">#{taskId},</if>
|
||||||
|
<if test="nodeName != null and nodeName != ''">#{nodeName},</if>
|
||||||
|
<if test="approverId != null">#{approverId},</if>
|
||||||
|
<if test="approverName != null and approverName != ''">#{approverName},</if>
|
||||||
|
<if test="approvalOpinion != null">#{approvalOpinion},</if>
|
||||||
|
<if test="approvalResult != null">#{approvalResult},</if>
|
||||||
|
<if test="approvalTime != null">#{approvalTime},</if>
|
||||||
|
<if test="studentName != null and studentName != ''">#{studentName},</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateRtEnlistmentReserveApproval" parameterType="RtEnlistmentReserveApproval">
|
||||||
|
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="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>
|
||||||
|
<if test="approverName != null and approverName != ''">approver_name = #{approverName},</if>
|
||||||
|
<if test="approvalOpinion != null">approval_opinion = #{approvalOpinion},</if>
|
||||||
|
<if test="approvalResult != null">approval_result = #{approvalResult},</if>
|
||||||
|
<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>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteRtEnlistmentReserveApprovalById" parameterType="Long">
|
||||||
|
delete from rt_enlistment_reserve_approval where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteRtEnlistmentReserveApprovalByIds" parameterType="String">
|
||||||
|
delete from rt_enlistment_reserve_approval where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,169 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.srs.flowable.mapper.EnlistmentReserveMapper">
|
||||||
|
|
||||||
|
<resultMap type="EnlistmentReserve" id="RtEnlistmentReserveResult">
|
||||||
|
<result property="id" column="id" />
|
||||||
|
<result property="applyNo" column="apply_no" />
|
||||||
|
<result property="studentId" column="student_id" />
|
||||||
|
<result property="teacherName" column="teacher_name" />
|
||||||
|
<result property="studentName" column="student_name" />
|
||||||
|
<result property="gender" column="gender" />
|
||||||
|
<result property="nation" column="nation" />
|
||||||
|
<result property="grade" column="grade" />
|
||||||
|
<result property="studentNo" column="student_no" />
|
||||||
|
<result property="className" column="class_name" />
|
||||||
|
<result property="major" column="major" />
|
||||||
|
<result property="familyAddress" column="family_address" />
|
||||||
|
<result property="parentPhone" column="parent_phone" />
|
||||||
|
<result property="applyReason" column="apply_reason" />
|
||||||
|
<result property="applyStatus" column="apply_status" />
|
||||||
|
<result property="processInstanceId" column="process_instance_id" />
|
||||||
|
<result property="reserveNo" column="reserve_no" />
|
||||||
|
<result property="reserveStartDate" column="reserve_start_date" />
|
||||||
|
<result property="reserveEndDate" column="reserve_end_date" />
|
||||||
|
<result property="approvalNo" column="approval_no" />
|
||||||
|
<result property="createTime" column="create_time" />
|
||||||
|
<result property="updateTime" column="update_time" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<sql id="selectRtEnlistmentReserveVo">
|
||||||
|
select id, apply_no, student_id, teacher_name, student_name, gender, nation, grade, student_no, class_name, major, family_address, parent_phone, apply_reason, apply_status, process_instance_id, reserve_no, reserve_start_date, reserve_end_date, approval_no, create_time, update_time from rt_enlistment_reserve
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<select id="selectRtEnlistmentReserveList" parameterType="EnlistmentReserve" resultMap="RtEnlistmentReserveResult">
|
||||||
|
<include refid="selectRtEnlistmentReserveVo"/>
|
||||||
|
<where>
|
||||||
|
<if test="applyNo != null and applyNo != ''"> and apply_no = #{applyNo}</if>
|
||||||
|
<if test="studentId != null "> and student_id = #{studentId}</if>
|
||||||
|
<if test="teacherName != null and teacherName != ''"> and teacher_name like concat('%', #{teacherName}, '%')</if>
|
||||||
|
<if test="studentName != null and studentName != ''"> and student_name like concat('%', #{studentName}, '%')</if>
|
||||||
|
<if test="gender != null and gender != ''"> and gender = #{gender}</if>
|
||||||
|
<if test="nation != null and nation != ''"> and nation = #{nation}</if>
|
||||||
|
<if test="grade != null and grade != ''"> and grade = #{grade}</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''"> and student_no = #{studentNo}</if>
|
||||||
|
<if test="className != null and className != ''"> and class_name like concat('%', #{className}, '%')</if>
|
||||||
|
<if test="major != null and major != ''"> and major = #{major}</if>
|
||||||
|
<if test="familyAddress != null and familyAddress != ''"> and family_address = #{familyAddress}</if>
|
||||||
|
<if test="parentPhone != null and parentPhone != ''"> and parent_phone = #{parentPhone}</if>
|
||||||
|
<if test="applyReason != null and applyReason != ''"> and apply_reason = #{applyReason}</if>
|
||||||
|
<if test="applyStatus != null "> and apply_status = #{applyStatus}</if>
|
||||||
|
<if test="processInstanceId != null and processInstanceId != ''"> and process_instance_id = #{processInstanceId}</if>
|
||||||
|
<if test="reserveNo != null and reserveNo != ''"> and reserve_no = #{reserveNo}</if>
|
||||||
|
<if test="reserveStartDate != null "> and reserve_start_date = #{reserveStartDate}</if>
|
||||||
|
<if test="reserveEndDate != null "> and reserve_end_date = #{reserveEndDate}</if>
|
||||||
|
<if test="approvalNo != null and approvalNo != ''"> and approval_no = #{approvalNo}</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRtEnlistmentReserveById" parameterType="Long" resultMap="RtEnlistmentReserveResult">
|
||||||
|
<include refid="selectRtEnlistmentReserveVo"/>
|
||||||
|
where id = #{id}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectRtEnlistmentReserveByProcessInstanceId" parameterType="String" resultMap="RtEnlistmentReserveResult">
|
||||||
|
<include refid="selectRtEnlistmentReserveVo"/>
|
||||||
|
where process_instance_id = #{processInstanceId}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 根据学号查询辅导员信息 -->
|
||||||
|
<select id="getCounselorInfo" resultType="com.srs.common.doman.vo.TeacherVo">
|
||||||
|
SELECT d.user_id userId, d.dept_id deptId, d.user_name userName, d.nick_name nickName
|
||||||
|
FROM srs_student a
|
||||||
|
LEFT JOIN srs_class b ON a.class_id = b.class_id
|
||||||
|
LEFT JOIN cph_teacher c ON b.teacher_id = c.teacher_id
|
||||||
|
LEFT JOIN sys_user d ON c.employee_id = d.user_name
|
||||||
|
WHERE a.stu_no = #{stuNo}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertRtEnlistmentReserve" parameterType="RtEnlistmentReserve" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
insert into rt_enlistment_reserve
|
||||||
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="applyNo != null and applyNo != ''">apply_no,</if>
|
||||||
|
<if test="studentId != null">student_id,</if>
|
||||||
|
<if test="teacherName != null and teacherName != ''">teacher_name,</if>
|
||||||
|
<if test="studentName != null and studentName != ''">student_name,</if>
|
||||||
|
<if test="gender != null and gender != ''">gender,</if>
|
||||||
|
<if test="nation != null and nation != ''">nation,</if>
|
||||||
|
<if test="grade != null and grade != ''">grade,</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">student_no,</if>
|
||||||
|
<if test="className != null and className != ''">class_name,</if>
|
||||||
|
<if test="major != null and major != ''">major,</if>
|
||||||
|
<if test="familyAddress != null and familyAddress != ''">family_address,</if>
|
||||||
|
<if test="parentPhone != null and parentPhone != ''">parent_phone,</if>
|
||||||
|
<if test="applyReason != null and applyReason != ''">apply_reason,</if>
|
||||||
|
<if test="applyStatus != null">apply_status,</if>
|
||||||
|
<if test="processInstanceId != null">process_instance_id,</if>
|
||||||
|
<if test="reserveNo != null">reserve_no,</if>
|
||||||
|
<if test="reserveStartDate != null">reserve_start_date,</if>
|
||||||
|
<if test="reserveEndDate != null">reserve_end_date,</if>
|
||||||
|
<if test="approvalNo != null">approval_no,</if>
|
||||||
|
<if test="createTime != null">create_time,</if>
|
||||||
|
<if test="updateTime != null">update_time,</if>
|
||||||
|
</trim>
|
||||||
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
|
<if test="applyNo != null and applyNo != ''">#{applyNo},</if>
|
||||||
|
<if test="studentId != null">#{studentId},</if>
|
||||||
|
<if test="teacherName != null and teacherName != ''">#{teacherName},</if>
|
||||||
|
<if test="studentName != null and studentName != ''">#{studentName},</if>
|
||||||
|
<if test="gender != null and gender != ''">#{gender},</if>
|
||||||
|
<if test="nation != null and nation != ''">#{nation},</if>
|
||||||
|
<if test="grade != null and grade != ''">#{grade},</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
|
||||||
|
<if test="className != null and className != ''">#{className},</if>
|
||||||
|
<if test="major != null and major != ''">#{major},</if>
|
||||||
|
<if test="familyAddress != null and familyAddress != ''">#{familyAddress},</if>
|
||||||
|
<if test="parentPhone != null and parentPhone != ''">#{parentPhone},</if>
|
||||||
|
<if test="applyReason != null and applyReason != ''">#{applyReason},</if>
|
||||||
|
<if test="applyStatus != null">#{applyStatus},</if>
|
||||||
|
<if test="processInstanceId != null">#{processInstanceId},</if>
|
||||||
|
<if test="reserveNo != null">#{reserveNo},</if>
|
||||||
|
<if test="reserveStartDate != null">#{reserveStartDate},</if>
|
||||||
|
<if test="reserveEndDate != null">#{reserveEndDate},</if>
|
||||||
|
<if test="approvalNo != null">#{approvalNo},</if>
|
||||||
|
<if test="createTime != null">#{createTime},</if>
|
||||||
|
<if test="updateTime != null">#{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="updateRtEnlistmentReserve" parameterType="RtEnlistmentReserve">
|
||||||
|
update rt_enlistment_reserve
|
||||||
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
|
<if test="applyNo != null and applyNo != ''">apply_no = #{applyNo},</if>
|
||||||
|
<if test="studentId != null">student_id = #{studentId},</if>
|
||||||
|
<if test="teacherName != null and teacherName != ''">teacher_name = #{teacherName},</if>
|
||||||
|
<if test="studentName != null and studentName != ''">student_name = #{studentName},</if>
|
||||||
|
<if test="gender != null and gender != ''">gender = #{gender},</if>
|
||||||
|
<if test="nation != null and nation != ''">nation = #{nation},</if>
|
||||||
|
<if test="grade != null and grade != ''">grade = #{grade},</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">student_no = #{studentNo},</if>
|
||||||
|
<if test="className != null and className != ''">class_name = #{className},</if>
|
||||||
|
<if test="major != null and major != ''">major = #{major},</if>
|
||||||
|
<if test="familyAddress != null and familyAddress != ''">family_address = #{familyAddress},</if>
|
||||||
|
<if test="parentPhone != null and parentPhone != ''">parent_phone = #{parentPhone},</if>
|
||||||
|
<if test="applyReason != null and applyReason != ''">apply_reason = #{applyReason},</if>
|
||||||
|
<if test="applyStatus != null">apply_status = #{applyStatus},</if>
|
||||||
|
<if test="processInstanceId != null">process_instance_id = #{processInstanceId},</if>
|
||||||
|
<if test="reserveNo != null">reserve_no = #{reserveNo},</if>
|
||||||
|
<if test="reserveStartDate != null">reserve_start_date = #{reserveStartDate},</if>
|
||||||
|
<if test="reserveEndDate != null">reserve_end_date = #{reserveEndDate},</if>
|
||||||
|
<if test="approvalNo != null">approval_no = #{approvalNo},</if>
|
||||||
|
<if test="createTime != null">create_time = #{createTime},</if>
|
||||||
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
||||||
|
</trim>
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteRtEnlistmentReserveById" parameterType="Long">
|
||||||
|
delete from rt_enlistment_reserve where id = #{id}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<delete id="deleteRtEnlistmentReserveByIds" parameterType="String">
|
||||||
|
delete from rt_enlistment_reserve where id in
|
||||||
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||||
|
#{id}
|
||||||
|
</foreach>
|
||||||
|
</delete>
|
||||||
|
</mapper>
|
||||||
@@ -70,9 +70,9 @@ private static final long serialVersionUID=1L;
|
|||||||
/**
|
/**
|
||||||
* 性别(0-男
|
* 性别(0-男
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty("性别(0-男")
|
@ApiModelProperty("性别(1-男 0-女)")
|
||||||
@TableField("gender")
|
@TableField("gender")
|
||||||
@Excel(name = "性别" , readConverterExp = "性别(0-男")
|
@Excel(name = "性别" , readConverterExp = "性别(1-男 0-女)")
|
||||||
private String gender;
|
private String gender;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import com.srs.common.core.domain.BaseEntity;
|
|||||||
* 保留学籍审批记录对象 rt_enlistment_reserve_approval
|
* 保留学籍审批记录对象 rt_enlistment_reserve_approval
|
||||||
*
|
*
|
||||||
* @author srs
|
* @author srs
|
||||||
* @date 2025-10-31
|
* @date 2025-11-13
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@@ -25,7 +25,7 @@ import com.srs.common.core.domain.BaseEntity;
|
|||||||
@ApiModel(value = "RtEnlistmentReserveApproval对象" , description = "保留学籍审批记录")
|
@ApiModel(value = "RtEnlistmentReserveApproval对象" , description = "保留学籍审批记录")
|
||||||
@TableName("rt_enlistment_reserve_approval")
|
@TableName("rt_enlistment_reserve_approval")
|
||||||
public class RtEnlistmentReserveApproval extends BaseEntity{
|
public class RtEnlistmentReserveApproval extends BaseEntity{
|
||||||
private static final long serialVersionUID=1L;
|
private static final long serialVersionUID=1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 主键
|
* 主键
|
||||||
@@ -107,5 +107,21 @@ private static final long serialVersionUID=1L;
|
|||||||
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
|
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
|
||||||
private Date approvalTime;
|
private Date approvalTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 姓名
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
@TableField("student_name")
|
||||||
|
@Excel(name = "姓名")
|
||||||
|
private String studentName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 学号
|
||||||
|
*/
|
||||||
|
@ApiModelProperty("学号")
|
||||||
|
@TableField("student_no")
|
||||||
|
@Excel(name = "学号")
|
||||||
|
private String studentNo;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,12 +4,13 @@ import java.util.List;
|
|||||||
|
|
||||||
import com.srs.routine.domain.RtEnlistmentReserveApproval;
|
import com.srs.routine.domain.RtEnlistmentReserveApproval;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保留学籍审批记录Mapper接口
|
* 保留学籍审批记录Mapper接口
|
||||||
*
|
*
|
||||||
* @author srs
|
* @author srs
|
||||||
* @date 2025-10-31
|
* @date 2025-11-13
|
||||||
*/
|
*/
|
||||||
public interface RtEnlistmentReserveApprovalMapper extends BaseMapper<RtEnlistmentReserveApproval> {
|
public interface RtEnlistmentReserveApprovalMapper extends BaseMapper<RtEnlistmentReserveApproval> {
|
||||||
/**
|
/**
|
||||||
@@ -52,6 +53,14 @@ public interface RtEnlistmentReserveApprovalMapper extends BaseMapper<RtEnlistme
|
|||||||
*/
|
*/
|
||||||
int deleteRtEnlistmentReserveApprovalById(Long id);
|
int deleteRtEnlistmentReserveApprovalById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据学生姓名学号和审批人id查询保留学籍审批记录
|
||||||
|
*
|
||||||
|
* @param
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
RtEnlistmentReserveApproval selectRtEnlistmentReserveApprovalByStuName(@Param("studentName") String studentName, @Param("studentNo") String studentNo, @Param("approverId") Long approverId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量删除保留学籍审批记录
|
* 批量删除保留学籍审批记录
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -196,7 +196,7 @@ public class RtEnlistmentReserveServiceImpl extends ServiceImpl<RtEnlistmentRese
|
|||||||
variables.put("deptId", counselorInfo.getDeptId());
|
variables.put("deptId", counselorInfo.getDeptId());
|
||||||
|
|
||||||
// 3. 启动流程
|
// 3. 启动流程
|
||||||
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_r064jfpz:7:1055004", variables);
|
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_r064jfpz:8:1080009", variables);
|
||||||
String code = ajaxResult.get("code").toString();
|
String code = ajaxResult.get("code").toString();
|
||||||
if (!"200".equals(code)) {
|
if (!"200".equals(code)) {
|
||||||
throw new ServiceException("流程启动失败,错误码:" + code, 500);
|
throw new ServiceException("流程启动失败,错误码:" + code, 500);
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE mapper
|
<!DOCTYPE mapper
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.srs.routine.mapper.RtEnlistmentReserveApprovalMapper">
|
<mapper namespace="com.srs.routine.mapper.RtEnlistmentReserveApprovalMapper">
|
||||||
|
|
||||||
<resultMap type="RtEnlistmentReserveApproval" id="RtEnlistmentReserveApprovalResult">
|
<resultMap type="EnlistmentReserveApproval" id="RtEnlistmentReserveApprovalResult">
|
||||||
<result property="id" column="id" />
|
<result property="id" column="id" />
|
||||||
<result property="applyId" column="apply_id" />
|
<result property="applyId" column="apply_id" />
|
||||||
<result property="processInstanceId" column="process_instance_id" />
|
<result property="processInstanceId" column="process_instance_id" />
|
||||||
@@ -15,13 +15,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<result property="approvalOpinion" column="approval_opinion" />
|
<result property="approvalOpinion" column="approval_opinion" />
|
||||||
<result property="approvalResult" column="approval_result" />
|
<result property="approvalResult" column="approval_result" />
|
||||||
<result property="approvalTime" column="approval_time" />
|
<result property="approvalTime" column="approval_time" />
|
||||||
|
<result property="studentName" column="student_name" />
|
||||||
|
<result property="studentNo" column="student_no" />
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<sql id="selectRtEnlistmentReserveApprovalVo">
|
<sql id="selectRtEnlistmentReserveApprovalVo">
|
||||||
select id, apply_id, process_instance_id, task_id, node_name, approver_id, approver_name, approval_opinion, approval_result, approval_time 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 from rt_enlistment_reserve_approval
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<select id="selectRtEnlistmentReserveApprovalList" parameterType="RtEnlistmentReserveApproval" resultMap="RtEnlistmentReserveApprovalResult">
|
<select id="selectRtEnlistmentReserveApprovalList" parameterType="EnlistmentReserveApproval" resultMap="RtEnlistmentReserveApprovalResult">
|
||||||
<include refid="selectRtEnlistmentReserveApprovalVo"/>
|
<include refid="selectRtEnlistmentReserveApprovalVo"/>
|
||||||
<where>
|
<where>
|
||||||
<if test="applyId != null "> and apply_id = #{applyId}</if>
|
<if test="applyId != null "> and apply_id = #{applyId}</if>
|
||||||
@@ -33,6 +35,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="approvalOpinion != null and approvalOpinion != ''"> and approval_opinion = #{approvalOpinion}</if>
|
<if test="approvalOpinion != null and approvalOpinion != ''"> and approval_opinion = #{approvalOpinion}</if>
|
||||||
<if test="approvalResult != null "> and approval_result = #{approvalResult}</if>
|
<if test="approvalResult != null "> and approval_result = #{approvalResult}</if>
|
||||||
<if test="approvalTime != null "> and approval_time = #{approvalTime}</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="studentNo != null and studentNo != ''"> and student_no = #{studentNo}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -41,7 +45,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
where id = #{id}
|
where id = #{id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertRtEnlistmentReserveApproval" parameterType="RtEnlistmentReserveApproval" useGeneratedKeys="true" keyProperty="id">
|
<select id="selectRtEnlistmentReserveApprovalByStuName" resultMap="RtEnlistmentReserveApprovalResult">
|
||||||
|
select *
|
||||||
|
from rt_enlistment_reserve_approval
|
||||||
|
<where>
|
||||||
|
<if test="studentName != null and studentName != ''">
|
||||||
|
and student_name = #{studentName}
|
||||||
|
</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">
|
||||||
|
and student_no = #{studentNo}
|
||||||
|
</if>
|
||||||
|
<if test="approverId != null and approverId != ''">
|
||||||
|
and approver_id = #{approverId}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<insert id="insertRtEnlistmentReserveApproval" parameterType="EnlistmentReserveApproval" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into rt_enlistment_reserve_approval
|
insert into rt_enlistment_reserve_approval
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="applyId != null">apply_id,</if>
|
<if test="applyId != null">apply_id,</if>
|
||||||
@@ -53,6 +73,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="approvalOpinion != null">approval_opinion,</if>
|
<if test="approvalOpinion != null">approval_opinion,</if>
|
||||||
<if test="approvalResult != null">approval_result,</if>
|
<if test="approvalResult != null">approval_result,</if>
|
||||||
<if test="approvalTime != null">approval_time,</if>
|
<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>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="applyId != null">#{applyId},</if>
|
<if test="applyId != null">#{applyId},</if>
|
||||||
@@ -64,10 +86,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="approvalOpinion != null">#{approvalOpinion},</if>
|
<if test="approvalOpinion != null">#{approvalOpinion},</if>
|
||||||
<if test="approvalResult != null">#{approvalResult},</if>
|
<if test="approvalResult != null">#{approvalResult},</if>
|
||||||
<if test="approvalTime != null">#{approvalTime},</if>
|
<if test="approvalTime != null">#{approvalTime},</if>
|
||||||
|
<if test="studentName != null and studentName != ''">#{studentName},</if>
|
||||||
|
<if test="studentNo != null and studentNo != ''">#{studentNo},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateRtEnlistmentReserveApproval" parameterType="RtEnlistmentReserveApproval">
|
<update id="updateRtEnlistmentReserveApproval" parameterType="EnlistmentReserveApproval">
|
||||||
update rt_enlistment_reserve_approval
|
update rt_enlistment_reserve_approval
|
||||||
<trim prefix="SET" suffixOverrides=",">
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
<if test="applyId != null">apply_id = #{applyId},</if>
|
<if test="applyId != null">apply_id = #{applyId},</if>
|
||||||
@@ -79,6 +103,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
<if test="approvalOpinion != null">approval_opinion = #{approvalOpinion},</if>
|
<if test="approvalOpinion != null">approval_opinion = #{approvalOpinion},</if>
|
||||||
<if test="approvalResult != null">approval_result = #{approvalResult},</if>
|
<if test="approvalResult != null">approval_result = #{approvalResult},</if>
|
||||||
<if test="approvalTime != null">approval_time = #{approvalTime},</if>
|
<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>
|
||||||
</trim>
|
</trim>
|
||||||
where id = #{id}
|
where id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
WHERE a.stu_no = #{stuNo}
|
WHERE a.stu_no = #{stuNo}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertRtEnlistmentReserve" parameterType="RtEnlistmentReserve" useGeneratedKeys="true" keyProperty="id">
|
<insert id="insertRtEnlistmentReserve" parameterType="EnlistmentReserve" useGeneratedKeys="true" keyProperty="id">
|
||||||
insert into rt_enlistment_reserve
|
insert into rt_enlistment_reserve
|
||||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||||
<if test="applyNo != null and applyNo != ''">apply_no,</if>
|
<if test="applyNo != null and applyNo != ''">apply_no,</if>
|
||||||
@@ -128,7 +128,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateRtEnlistmentReserve" parameterType="RtEnlistmentReserve">
|
<update id="updateRtEnlistmentReserve" parameterType="EnlistmentReserve">
|
||||||
update rt_enlistment_reserve
|
update rt_enlistment_reserve
|
||||||
<trim prefix="SET" suffixOverrides=",">
|
<trim prefix="SET" suffixOverrides=",">
|
||||||
<if test="applyNo != null and applyNo != ''">apply_no = #{applyNo},</if>
|
<if test="applyNo != null and applyNo != ''">apply_no = #{applyNo},</if>
|
||||||
|
|||||||
Reference in New Issue
Block a user