Compare commits

..

10 Commits

24 changed files with 480 additions and 184 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,22 +11,21 @@ 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)
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "DmsOutsideAccommodationApproval对象" , description = "外宿申请审批记录表")
@ApiModel(value = "DmsOutsideAccommodationApproval对象", description = "外宿申请审批记录表")
@TableName("dms_outside_accommodation_approval")
public class DmsOutsideAccommodationApproval extends BaseEntity{
private static final long serialVersionUID=1L;
public class DmsOutsideAccommodationApproval extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
@@ -39,7 +39,7 @@ private static final long serialVersionUID=1L;
*/
@ApiModelProperty("外宿申请ID关联申请表")
@TableField("apply_id")
@Excel(name = "外宿申请ID" , readConverterExp = "关=联申请表")
@Excel(name = "外宿申请ID", readConverterExp = "关=联申请表")
private Long applyId;
/**
@@ -95,7 +95,7 @@ private static final long serialVersionUID=1L;
*/
@ApiModelProperty("审批结果1=同意0=驳回)")
@TableField("approval_result")
@Excel(name = "审批结果" , readConverterExp = "1==同意0=驳回")
@Excel(name = "审批结果", readConverterExp = "1==同意0=驳回")
private Long approvalResult;
/**
@@ -104,7 +104,7 @@ private static final long serialVersionUID=1L;
@ApiModelProperty("审批时间")
@TableField("approval_time")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
@Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date approvalTime;
/**
@@ -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

@@ -49,7 +49,7 @@
<result property="idCard" column="idCard"/>
<result property="studentPhone" column="studentPhone"/>
<result property="studentSignature" column="student_signature"/>
<result property="promiseContent" column="promise_content" />
<result property="promiseContent" column="promise_content"/>
<!--外宿申请表-审核记录 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<collection property="outsideAccommodationApprovals"
column="{studentName = student_name, studentNo = student_no}"
@@ -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

@@ -226,7 +226,7 @@ public class SrsDormitoryStudentController extends BaseController {
}
@PreAuthorize("@ss.hasPermi('dms:dormStu:add')")
@ApiOperation(value = "学生自主选择床位", notes = "id不用填写,只能选择是当前学生班级并且为空的宿舍床位", response = StudentDormitoryDto.class)
@PostMapping("/addCheckInInformation")
public AjaxResult addCheckInInformation(@RequestBody StudentDormitoryDto dto) {

View File

@@ -64,8 +64,8 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
# active: druid #正式环境
active: dev #测试环境
active: druid #正式环境
# active: dev #测试环境
# 文件上传
servlet:
multipart:
@@ -81,15 +81,15 @@ spring:
# redis 配置
redis:
# 地址
# host: localhost #正式环境redis
host: 47.112.118.149 #测试开发地址
host: localhost #正式环境redis
# host: 47.112.118.149 #测试开发地址
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
# 密码SSSS
password: Houpuyfb #测试开发密码
# password: #正式环境密码
# password: Houpuyfb #测试开发密码
password: #正式环境密码
# 连接超时时间
timeout: 10s
lettuce:

View File

@@ -104,7 +104,7 @@
left join srs_majors as d on c.major_id = d.major_id
ORDER BY a.stu_year_id,a.stu_no
) as t1
where t1.stu_no = #{stuNo} order by stu_year_name desc
where t1.stu_no = #{stuNo} order by stu_year_name desc limit 3
</select>

View File

@@ -0,0 +1,69 @@
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 io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 宿舍学生关联表
* </p>
*
*/
@Data
@TableName("srs_dormitory_student")
@ApiModel(value = "SrsDormitoryStudent对象", description = "宿舍学生关联表")
public class DormitoryStudent implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("主键ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty("宿舍ID")
@TableField("dormitory_id")
private Long dormitoryId;
@ApiModelProperty("床位ID")
@TableField("bed_id")
private Long bedId;
@ApiModelProperty("学生学号")
@TableField("stu_no")
private String stuNo;
@ApiModelProperty("是否为宿舍长(0否 1是)")
@TableField("is_dormitory_head")
private Integer isDormitoryHead;
@ApiModelProperty("状态(0未缴费 1已缴费)")
@TableField("status")
private Integer status;
@ApiModelProperty("入住时间")
@TableField("checkin_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime checkinTime;
@ApiModelProperty("入住状态")
@TableField("in_status")
public String inStatus;
@ApiModelProperty("是否在校住宿")
@TableField("isInStudentsleep")
public String isInStudentsleep;
}

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
*
@@ -22,10 +22,10 @@ import com.srs.common.core.domain.BaseEntity;
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "RtEnlistmentReserveApproval对象" , description = "保留学籍审批记录")
@ApiModel(value = "RtEnlistmentReserveApproval对象", description = "保留学籍审批记录")
@TableName("rt_enlistment_reserve_approval")
public class EnlistmentReserveApproval extends BaseEntity{
private static final long serialVersionUID=1L;
public class EnlistmentReserveApproval extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键
@@ -63,7 +63,7 @@ public class EnlistmentReserveApproval extends BaseEntity{
*/
@ApiModelProperty("审批节点(辅导员/学务等)")
@TableField("node_name")
@Excel(name = "审批节点" , readConverterExp = "辅=导员/学务等")
@Excel(name = "审批节点", readConverterExp = "辅=导员/学务等")
private String nodeName;
/**
@@ -71,7 +71,7 @@ public class EnlistmentReserveApproval extends BaseEntity{
*/
@ApiModelProperty("审批人ID关联sys_user")
@TableField("approver_id")
@Excel(name = "审批人ID" , readConverterExp = "关=联sys_user")
@Excel(name = "审批人ID", readConverterExp = "关=联sys_user")
private Long approverId;
/**
@@ -95,7 +95,7 @@ public class EnlistmentReserveApproval extends BaseEntity{
*/
@ApiModelProperty("审批结果1-通过")
@TableField("approval_result")
@Excel(name = "审批结果" , readConverterExp = "审批结果1-通过")
@Excel(name = "审批结果", readConverterExp = "审批结果1-通过")
private Long approvalResult;
/**
@@ -104,7 +104,7 @@ public class EnlistmentReserveApproval extends BaseEntity{
@ApiModelProperty("审批时间")
@TableField("approval_time")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
@Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date approvalTime;
/**
@@ -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
*
@@ -26,10 +25,10 @@ import java.util.Date;
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "DmsOutsideAccommodationApproval对象" , description = "外宿申请审批记录表")
@ApiModel(value = "DmsOutsideAccommodationApproval对象", description = "外宿申请审批记录表")
@TableName("dms_outside_accommodation_approval")
public class OutsideAccommodationApproval extends BaseEntity{
private static final long serialVersionUID=1L;
public class OutsideAccommodationApproval extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键ID
@@ -43,7 +42,7 @@ private static final long serialVersionUID=1L;
*/
@ApiModelProperty("外宿申请ID关联申请表")
@TableField("apply_id")
@Excel(name = "外宿申请ID" , readConverterExp = "关=联申请表")
@Excel(name = "外宿申请ID", readConverterExp = "关=联申请表")
private Long applyId;
/**
@@ -99,7 +98,7 @@ private static final long serialVersionUID=1L;
*/
@ApiModelProperty("审批结果1=同意0=驳回)")
@TableField("approval_result")
@Excel(name = "审批结果" , readConverterExp = "1==同意0=驳回")
@Excel(name = "审批结果", readConverterExp = "1==同意0=驳回")
private Long approvalResult;
/**
@@ -108,7 +107,7 @@ private static final long serialVersionUID=1L;
@ApiModelProperty("审批时间")
@TableField("approval_time")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
@Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date approvalTime;
/**
@@ -136,4 +135,12 @@ private static final long serialVersionUID=1L;
private String studentNo;
/**
* 签名
*/
@ApiModelProperty("签名")
@TableField("signature")
@Excel(name = "签名")
private String signature;
}

View File

@@ -152,20 +152,6 @@ public class DiscListener implements ExecutionListener {
case "二级学院审核":
// 二级学院通过后 → 下一个节点:学籍管理科
// 获取学籍管理科审核人
List<TeacherVo> shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科");
if (shenDataInfo.isEmpty()) {
throw new RuntimeException("未查询到对应的用户");
}
// 暂时选择学籍管理科第一个人作为审核人
return shenDataInfo.get(0).getUserId();
case "学籍管理":
// 查询角色ID=106二级学院的所有用户
SysUser qUser = new SysUser();
qUser.setRoleId(106L); // 二级学院角色固定ID=106
@@ -189,6 +175,22 @@ public class DiscListener implements ExecutionListener {
// 获取学教务处主管领导审核人
case "学籍管理":
// 获取学籍管理科审核人
List<TeacherVo> shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科");
if (shenDataInfo.isEmpty()) {
throw new RuntimeException("未查询到对应的用户");
}
// 暂时选择学籍管理科第一个人作为审核人
return shenDataInfo.get(0).getUserId();
case "教务处主管":
// 最后一个节点通过后 → 流程结束(无需设置负责人)
List<TeacherVo> teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导");

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;
@@ -70,18 +73,36 @@ public class ApprovalAssigneeListener implements ExecutionListener {
approvalResult = num.longValue();
}
// 添加审批记录
EnlistmentReserveMapper rtEnlistmentReserveMapper = (EnlistmentReserveMapper) SpringUtils.getBean(EnlistmentReserveMapper.class);
// 根据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("辅导员审批")) {
status = 2L;
}
if (currentNodeName.equals("学务审批")) {
status = 3L;
}
if (currentNodeName.equals("二级学院审批")) {
status = 4L;
}
if (currentNodeName.equals("学籍管理科审批")){
// 改变申请表中的审核状态(审核通过)
status = 5L;
}
// 如果到了最后一个审批人,则修改申请表审核状态
if (currentNodeName.equals("教务处主管领导审批")){
// 改变申请表中的审核状态(审核通过)
enlistmentReserve.setApplyStatus(2L);
rtEnlistmentReserveMapper.updateRtEnlistmentReserve(enlistmentReserve);
status = 6L;
// 审批通过后删除学生入住信息
rtEnlistmentReserveMapper.deleteDormitoryStudentById(enlistmentReserve.getStudentNo());
}
// 改变申请表中的审核状态(审核通过)
enlistmentReserve.setApplyStatus(status);
rtEnlistmentReserveMapper.updateRtEnlistmentReserve(enlistmentReserve);
}
/**
@@ -102,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);
@@ -123,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

@@ -3,6 +3,7 @@ package com.srs.flowable.listener.outsideAccommodation;
import com.srs.common.utils.SecurityUtils;
import com.srs.common.utils.spring.SpringUtils;
import com.srs.flowable.domain.DormitoryStudent;
import com.srs.flowable.domain.OutsideAccommodationApply;
import com.srs.flowable.domain.OutsideAccommodationApproval;
import com.srs.flowable.mapper.OutsideAccommodationApplyMapper;
@@ -47,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;
@@ -61,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;
@@ -76,6 +80,11 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
if (currentNodeName.equals("学校领导审批")){
// 改变申请表中的审核状态(审核通过)
status = 5L;
DormitoryStudent dormitoryStudent = new DormitoryStudent();
dormitoryStudent.setStuNo(outsideAccommodationApply.getStudentNo());
dormitoryStudent.setIsInStudentsleep("外宿");
// 审核通过改变学生住宿状态
outsideAccommodationApplyMapper.updateSrsDormitoryStudent(dormitoryStudent);
}
outsideAccommodationApply.setStatus(status);
outsideAccommodationApplyMapper.updateDmsOutsideAccommodationApply(outsideAccommodationApply);
@@ -99,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);
@@ -120,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

@@ -75,6 +75,8 @@ public interface EnlistmentReserveMapper extends BaseMapper<EnlistmentReserve> {
*/
int deleteRtEnlistmentReserveById(Long id);
int deleteDormitoryStudentById(String StuNo);
/**
* 批量删除应征入伍保留学籍申请
*

View File

@@ -2,6 +2,7 @@ package com.srs.flowable.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.srs.common.doman.vo.TeacherVo;
import com.srs.flowable.domain.DormitoryStudent;
import com.srs.flowable.domain.OutsideAccommodationApply;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Param;
@@ -67,6 +68,9 @@ public interface OutsideAccommodationApplyMapper extends BaseMapper<OutsideAccom
*/
int updateDmsOutsideAccommodationApply(OutsideAccommodationApply outsideAccommodationApply);
/*根据学号更新学生住宿信息*/
boolean updateSrsDormitoryStudent(DormitoryStudent dormitoryStudent);
/**
* 删除外宿申请
*

View File

@@ -1,43 +1,36 @@
package com.srs.flowable.service.impl;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.srs.common.core.domain.AjaxResult;
import com.srs.common.core.domain.entity.SysDept;
import com.srs.common.core.domain.entity.SysRole;
import com.srs.common.core.domain.entity.SysUser;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import com.srs.common.exception.CustomException;
import com.srs.common.utils.SecurityUtils;
import com.srs.flowable.common.constant.ProcessConstants;
import com.srs.flowable.common.enums.FlowComment;
import com.srs.flowable.domain.dto.FlowCommentDto;
import com.srs.flowable.domain.dto.FlowNextDto;
import com.srs.flowable.domain.dto.FlowTaskDto;
import com.srs.flowable.domain.dto.FlowViewerDto;
import com.srs.flowable.domain.vo.FlowQueryVo;
import com.srs.flowable.domain.vo.FlowTaskVo;
import com.srs.flowable.factory.FlowServiceFactory;
import com.srs.flowable.flow.CustomProcessDiagramGenerator;
import com.srs.flowable.flow.FindNextNodeUtil;
import com.srs.flowable.flow.FlowableUtils;
import com.srs.flowable.service.IFlowTaskService;
import com.srs.flowable.service.ISysDeployFormService;
import com.srs.flowable.service.ISysFormService;
import com.srs.system.domain.SysForm;
import com.srs.system.mapper.SysDeptMapper;
import com.srs.system.service.ISysRoleService;
import com.srs.system.service.ISysUserService;
import com.sun.jna.platform.win32.OaIdl;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.EndEvent;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.FlowNode;
import org.flowable.bpmn.model.MultiInstanceLoopCharacteristics;
import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.SequenceFlow;
import org.flowable.bpmn.model.UserTask;
import org.flowable.common.engine.api.FlowableException;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.engine.ProcessEngineConfiguration;
@@ -61,16 +54,37 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.srs.common.core.domain.AjaxResult;
import com.srs.common.core.domain.entity.SysDept;
import com.srs.common.core.domain.entity.SysRole;
import com.srs.common.core.domain.entity.SysUser;
import com.srs.common.exception.CustomException;
import com.srs.common.utils.SecurityUtils;
import com.srs.flowable.common.constant.ProcessConstants;
import com.srs.flowable.common.enums.FlowComment;
import com.srs.flowable.domain.dto.FlowCommentDto;
import com.srs.flowable.domain.dto.FlowNextDto;
import com.srs.flowable.domain.dto.FlowTaskDto;
import com.srs.flowable.domain.dto.FlowViewerDto;
import com.srs.flowable.domain.vo.FlowQueryVo;
import com.srs.flowable.domain.vo.FlowTaskVo;
import com.srs.flowable.factory.FlowServiceFactory;
import com.srs.flowable.flow.CustomProcessDiagramGenerator;
import com.srs.flowable.flow.FindNextNodeUtil;
import com.srs.flowable.flow.FlowableUtils;
import com.srs.flowable.service.IFlowTaskService;
import com.srs.flowable.service.ISysDeployFormService;
import com.srs.flowable.service.ISysFormService;
import com.srs.system.domain.SysForm;
import com.srs.system.mapper.SysDeptMapper;
import com.srs.system.service.ISysRoleService;
import com.srs.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
/**
* @author Tony
@@ -101,6 +115,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (Objects.isNull(task)) {
return AjaxResult.error("任务不存在");
}
try {
Map<String, Object> vars = taskVo.getVariables();
if (vars != null && vars.containsKey("variables")) {
runtimeService.removeVariable(task.getExecutionId(), "variables");
}
} catch (Exception ignore) {
}
if (DelegationState.PENDING.equals(task.getDelegationState())) {
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment());
taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables());

View File

@@ -5,42 +5,64 @@
<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" />
<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"/>
<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="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>
<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">
<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

@@ -200,6 +200,13 @@
where id = #{id}
</delete>
<!--根据学号删除学生入住信息-->
<delete id="deleteDormitoryStudentById" parameterType="String">
delete
from srs_dormitory_student
where stu_no = #{stuNo}
</delete>
<delete id="deleteRtEnlistmentReserveByIds" parameterType="String">
delete from rt_enlistment_reserve where id in
<foreach item="id" collection="array" open="(" separator="," close=")">

View File

@@ -301,6 +301,26 @@
</trim>
</insert>
<!--根据学号更新学生住宿信息-->
<update id="updateSrsDormitoryStudent" parameterType="DormitoryStudent">
update srs_dormitory_student
<trim prefix="SET" suffixOverrides=",">
<if test="dormitoryId != null">dormitory_id = #{dormitoryId},</if>
<if test="dormitoryId == null">dormitory_id =NULL,</if>
<if test="bedId != null">bed_id = #{bedId},</if>
<if test="stuNo != null and stuNo!=''">stu_no = #{stuNo},</if>
<if test="isDormitoryHead != null">is_dormitory_head = #{isDormitoryHead},</if>
<if test="status != null">status =#{status},</if>
<if test="checkinTime!=null"> checkin_time = #{checkinTime},</if>
<if test="checkinTime==null"> checkin_time =NULL,</if>
<if test="inStatus != null and inStatus!=''">in_status = #{inStatus},</if>
<if test="isInStudentsleep != null and isInStudentsleep!=''">isInStudentsleep = #{isInStudentsleep},</if>
</trim>
<where>
<if test="stuNo!=null"> and stu_no = #{stuNo}</if>
</where>
</update>
<update id="updateDmsOutsideAccommodationApply" parameterType="OutsideAccommodationApply">
update dms_outside_accommodation_apply
<trim prefix="SET" suffixOverrides=",">

View File

@@ -1,48 +1,72 @@
<?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">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.srs.flowable.mapper.OutsideAccommodationApprovalMapper">
<resultMap type="OutsideAccommodationApproval" id="DmsOutsideAccommodationApprovalResult">
<result property="id" column="id" />
<result property="applyId" column="apply_id" />
<result property="applyNo" column="apply_no" />
<result property="approvalNode" column="approval_node" />
<result property="approverId" column="approver_id" />
<result property="approverName" column="approver_name" />
<result property="approverRole" column="approver_role" />
<result property="approvalOpinion" column="approval_opinion" />
<result property="approvalResult" column="approval_result" />
<result property="approvalTime" column="approval_time" />
<result property="processInstanceId" column="process_instance_id" />
<result property="studentName" column="student_name" />
<result property="studentNo" column="student_no" />
<result property="id" column="id"/>
<result property="applyId" column="apply_id"/>
<result property="applyNo" column="apply_no"/>
<result property="approvalNode" column="approval_node"/>
<result property="approverId" column="approver_id"/>
<result property="approverName" column="approver_name"/>
<result property="approverRole" column="approver_role"/>
<result property="approvalOpinion" column="approval_opinion"/>
<result property="approvalResult" column="approval_result"/>
<result property="approvalTime" column="approval_time"/>
<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="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="studentNo != null and studentNo != ''"> and student_no = #{studentNo}</if>
<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="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="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

@@ -142,11 +142,11 @@ private static final long serialVersionUID=1L;
private String applyReason;
/**
* 申请状态0-草稿
* 申请状态0-草稿1=待辅导员审批2=待学务审批3=待二级学院审批4=待学籍管理科审批5=待教务处主管领导审批6=审批通过7=驳回)
*/
@ApiModelProperty("申请状态0-草稿 1-审批中 2-通过 3-驳回)")
@ApiModelProperty("申请状态0-草稿1=待辅导员审批2=待学务审批3=待二级学院审批4=待学籍管理科审批5=待教务处主管领导审批6=审批通过7=驳回)")
@TableField("apply_status")
@Excel(name = "申请状态" , readConverterExp = "申请状态0-草稿 1-审批中 2-通过 3-驳回")
@Excel(name = "申请状态" , readConverterExp = "0=-草稿1=待辅导员审批2=待学务审批3=待二级学院审批4=待学籍管理科审批5=待教务处主管领导审批6=审批通过7=驳回")
private Long applyStatus;
/**

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
*
@@ -22,10 +22,10 @@ import com.srs.common.core.domain.BaseEntity;
@NoArgsConstructor
@AllArgsConstructor
@Builder
@ApiModel(value = "RtEnlistmentReserveApproval对象" , description = "保留学籍审批记录")
@ApiModel(value = "RtEnlistmentReserveApproval对象", description = "保留学籍审批记录")
@TableName("rt_enlistment_reserve_approval")
public class RtEnlistmentReserveApproval extends BaseEntity{
private static final long serialVersionUID=1L;
public class RtEnlistmentReserveApproval extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 主键
@@ -63,7 +63,7 @@ public class RtEnlistmentReserveApproval extends BaseEntity{
*/
@ApiModelProperty("审批节点(辅导员/学务等)")
@TableField("node_name")
@Excel(name = "审批节点" , readConverterExp = "辅=导员/学务等")
@Excel(name = "审批节点", readConverterExp = "辅=导员/学务等")
private String nodeName;
/**
@@ -71,7 +71,7 @@ public class RtEnlistmentReserveApproval extends BaseEntity{
*/
@ApiModelProperty("审批人ID关联sys_user")
@TableField("approver_id")
@Excel(name = "审批人ID" , readConverterExp = "关=联sys_user")
@Excel(name = "审批人ID", readConverterExp = "关=联sys_user")
private Long approverId;
/**
@@ -95,7 +95,7 @@ public class RtEnlistmentReserveApproval extends BaseEntity{
*/
@ApiModelProperty("审批结果1-通过")
@TableField("approval_result")
@Excel(name = "审批结果" , readConverterExp = "审批结果1-通过")
@Excel(name = "审批结果", readConverterExp = "审批结果1-通过")
private Long approvalResult;
/**
@@ -104,7 +104,7 @@ public class RtEnlistmentReserveApproval extends BaseEntity{
@ApiModelProperty("审批时间")
@TableField("approval_time")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审批时间" , width = 30, dateFormat = "yyyy-MM-dd")
@Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date approvalTime;
/**
@@ -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

@@ -15,7 +15,7 @@
<result property="applyNo" column="apply_no"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<!--入伍保留学籍申请表-审核记录 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<!--入伍保留学籍申请表 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<collection property="rtEnlistmentReserves"
column="{studentName = student_name, studentNo = student_no, id = apply_id}"
javaType="java.util.ArrayList" select="selectRtEnlistmentReserveByStuName"/>
@@ -46,6 +46,10 @@
<result property="updateTime" column="update_time"/>
<result property="affixId" column="affix_id"/>
<result property="deployId" column="deploy_id" />
<!--入伍保留学籍申请表-审核记录 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<collection property="enlistmentReserveApprovalList"
column="{studentName = student_name, studentNo = student_no}"
javaType="java.util.ArrayList" select="selectRtEnlistmentReserveApprovalByStuName"/>
</resultMap>
<!-- 入伍保留申请表 -->
@@ -65,6 +69,36 @@
</where>
</select>
<!--入伍保留学籍申请表-审核记录子表的映射 -->
<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>
<!-- 入伍保留申请表-审核记录子表,根据学生姓名、学号查询 -->
<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>
</where>
</select>
<sql id="selectRtEnlistmentReserveAttachVo">
select id,
apply_id,

View File

@@ -28,7 +28,7 @@
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="affixId" column="affix_id"/>
<result property="deployId" column="deploy_id" />
<result property="deployId" column="deploy_id"/>
<!--入伍保留学籍申请表-审核记录 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<collection property="enlistmentReserveApprovalList"
column="{studentName = student_name, studentNo = student_no}"
@@ -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>
<!-- 入伍保留申请表-审核记录子表,根据学生姓名、学号查询 -->
@@ -158,7 +159,7 @@
<if test="reserveEndDate != null ">and reserve_end_date = #{reserveEndDate}</if>
<if test="approvalNo != null and approvalNo != ''">and approval_no = #{approvalNo}</if>
<if test="affixId != null and affixId != ''">and affix_id = #{affixId}</if>
<if test="deployId != null and deployId != ''"> and deploy_id = #{deployId}</if>
<if test="deployId != null and deployId != ''">and deploy_id = #{deployId}</if>
</where>
</select>