Compare commits

..

19 Commits

Author SHA1 Message Date
27efd6a39d 入伍保留学籍、外宿申请-审批人修改成电子签名 2025-12-19 15:31:45 +08:00
ab366ef0da 修改配置文件 2025-12-17 17:42:30 +08:00
f7e4ddb310 Merge branch 'main' of http://47.112.118.149:10082/xgxt_sd/zhxg_java 2025-12-17 11:10:54 +08:00
eda0c48b3f 审批内容修改 2025-12-17 11:10:52 +08:00
fc16147d89 入伍申请-申请通过后删除学生入住信息 2025-12-16 11:09:52 +08:00
07185a8c51 外宿申请-申请通过后修改学生的住宿信息为外宿 2025-12-16 10:33:07 +08:00
e91cb96f76 配置文件修改提交 2025-12-15 23:07:00 +08:00
b62932b0cb 退伍复学修改 2025-12-15 22:30:17 +08:00
08545100c8 学工信息大屏出错修改 2025-12-15 13:34:23 +08:00
962704835@qq.com
547875b13d 入伍申请-附件联表查询申请表 2025-12-12 22:21:56 +08:00
3e8cfe3d97 Merge remote-tracking branch 'origin/main' 2025-12-12 18:38:01 +08:00
eb0669e77b 学工信息大屏出错修改 2025-12-12 18:37:45 +08:00
8c9d9c90c0 退伍复学表单 2025-12-12 17:56:02 +08:00
b27938762b 个人画像大屏修改 2025-12-12 17:33:57 +08:00
86df798c25 外宿申请-联表 2025-12-12 17:09:43 +08:00
962704835@qq.com
6d2665e652 外宿申请-审批生成审批记录 2025-12-11 23:40:02 +08:00
9104a00570 入伍保留学籍-申请表详细 2025-12-11 17:49:49 +08:00
ebdaedf854 Merge remote-tracking branch 'origin/main' 2025-12-10 17:15:02 +08:00
50bc0e35bd 入伍保留学籍-附件操作 2025-12-10 17:14:35 +08:00
51 changed files with 1324 additions and 427 deletions

View File

@@ -1,6 +1,7 @@
package com.srs.dormitory.domain;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.srs.common.annotation.Excel;
@@ -357,5 +358,17 @@ public class DmsOutsideAccommodationApply extends BaseEntity {
@Excel(name = "承诺内容")
private String promiseContent;
/**
* 外宿申请表-附件记录
*/
@ApiModelProperty(value = "外宿申请表-附件记录", hidden = true)
@Excel(name = "外宿申请表-附件记录")
private List<DmsOutsideAccommodationAttachment> outsideAccommodationAttachments;
/**
* 外宿申请表-审核记录
*/
@ApiModelProperty(value = "外宿申请表-审核记录", hidden = true)
@Excel(name = "外宿申请表-审核记录")
private List<DmsOutsideAccommodationApproval> outsideAccommodationApprovals;
}

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

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.srs.common.core.domain.BaseEntity;
import java.util.List;
/**
@@ -104,5 +105,10 @@ private static final long serialVersionUID=1L;
@Excel(name = "学生学号")
private String studentNo;
/**
* 外宿申请表
*/
@ApiModelProperty(value = "外宿申请表", hidden = true)
@Excel(name = "外宿申请表")
private List<DmsOutsideAccommodationApply> outsideAccommodationApplies;
}

View File

@@ -4,6 +4,7 @@ import java.util.List;
import com.srs.dormitory.domain.DmsOutsideAccommodationApproval;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 外宿申请审批记录Mapper接口
@@ -28,6 +29,14 @@ public interface DmsOutsideAccommodationApprovalMapper extends BaseMapper<DmsOut
*/
List<DmsOutsideAccommodationApproval> selectDmsOutsideAccommodationApprovalList(DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval);
/**
* 根据学生姓名学号和审批人id查询保留学籍审批记录
*
* @param
* @return 结果
*/
DmsOutsideAccommodationApproval selectOutsideAccommodationApprovalByStuName(@Param("studentName") String studentName, @Param("studentNo") String studentNo, @Param("approverId") Long approverId);
/**
* 新增外宿申请审批记录
*

View File

@@ -4,6 +4,7 @@ import java.util.List;
import com.srs.dormitory.domain.DmsOutsideAccommodationAttachment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* 外宿申请附件Mapper接口
@@ -28,6 +29,13 @@ public interface DmsOutsideAccommodationAttachmentMapper extends BaseMapper<DmsO
*/
List<DmsOutsideAccommodationAttachment> selectDmsOutsideAccommodationAttachmentList(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment);
/**
* 批量插入校外住宿附件
* @param list 校外住宿附件列表
* @return 插入行数
*/
int batchInsertDmsOutsideAccommodationAttachment(List<DmsOutsideAccommodationAttachment> list);
/**
* 新增外宿申请附件
*
@@ -52,6 +60,15 @@ public interface DmsOutsideAccommodationAttachmentMapper extends BaseMapper<DmsO
*/
int deleteDmsOutsideAccommodationAttachmentById(Long id);
/**
* 删除外宿申请附件
*
* @param attachmentName 文件名称
* @return 外宿申请附件
*/
int deleteOutsideAccommodationAttachmentNameAndStuName(@Param("attachmentName") String attachmentName, @Param("studentName") String studentName);
/**
* 批量删除外宿申请附件
*

View File

@@ -59,4 +59,6 @@ public interface IDmsOutsideAccommodationApprovalService extends IService<DmsOut
* @return 结果
*/
int deleteDmsOutsideAccommodationApprovalById(Long id);
public int addOrUpdateAccommodationApproval(DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval);
}

View File

@@ -4,6 +4,7 @@ import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.srs.dormitory.domain.DmsOutsideAccommodationAttachment;
import org.apache.ibatis.annotations.Param;
/**
* 外宿申请附件Service接口
@@ -28,6 +29,13 @@ public interface IDmsOutsideAccommodationAttachmentService extends IService<DmsO
*/
List<DmsOutsideAccommodationAttachment> selectDmsOutsideAccommodationAttachmentList(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment);
/**
* 批量插入校外住宿附件
* @param list 校外住宿附件列表
* @return 插入行数
*/
int batchInsertDmsOutsideAccommodationAttachment(List<DmsOutsideAccommodationAttachment> list);
/**
* 新增外宿申请附件
*
@@ -52,6 +60,8 @@ public interface IDmsOutsideAccommodationAttachmentService extends IService<DmsO
*/
int deleteDmsOutsideAccommodationAttachmentByIds(Long[] ids);
int deleteOutsideAccommodationAttachmentNameAndStuName(@Param("attachmentName") String attachmentName, @Param("studentName") String studentName);
/**
* 删除外宿申请附件信息
*

View File

@@ -84,4 +84,40 @@ public class DmsOutsideAccommodationApprovalServiceImpl extends ServiceImpl<DmsO
public int deleteDmsOutsideAccommodationApprovalById(Long id) {
return dmsOutsideAccommodationApprovalMapper.deleteDmsOutsideAccommodationApprovalById(id);
}
@Override
public int addOrUpdateAccommodationApproval(DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval) {
// 空值校验:避免空指针
if (dmsOutsideAccommodationApproval == null
|| dmsOutsideAccommodationApproval.getStudentName() == null
|| dmsOutsideAccommodationApproval.getStudentNo() == null
|| dmsOutsideAccommodationApproval.getApproverId() == null) {
return 0;
}
int result = 0;
try {
// 1. 根据学生姓名、学号、审批人ID查询已有记录
DmsOutsideAccommodationApproval accommodationApproval = dmsOutsideAccommodationApprovalMapper
.selectOutsideAccommodationApprovalByStuName(
dmsOutsideAccommodationApproval.getStudentName(),
dmsOutsideAccommodationApproval.getStudentNo(),
dmsOutsideAccommodationApproval.getApproverId()
);
// 2. 无记录则新增,有记录则更新
if (accommodationApproval == null) {
result = dmsOutsideAccommodationApprovalMapper.insertDmsOutsideAccommodationApproval(dmsOutsideAccommodationApproval);
} else {
// 设置已有记录的ID用于更新
dmsOutsideAccommodationApproval.setId(accommodationApproval.getId());
result = dmsOutsideAccommodationApprovalMapper.updateDmsOutsideAccommodationApproval(dmsOutsideAccommodationApproval);
}
} catch (Exception e) {
log.error("新增/更新外宿审批记录失败", e);
// 抛出运行时异常,触发事务回滚
throw new RuntimeException("审批记录操作失败:" + e.getMessage());
}
return result; // 返回操作结果1=成功0=失败)
}
}

View File

@@ -43,6 +43,17 @@ public class DmsOutsideAccommodationAttachmentServiceImpl extends ServiceImpl<Dm
return dmsOutsideAccommodationAttachmentMapper.selectDmsOutsideAccommodationAttachmentList(dmsOutsideAccommodationAttachment);
}
@Override
public int batchInsertDmsOutsideAccommodationAttachment(List<DmsOutsideAccommodationAttachment> list) {
// 统一设置默认值(如创建时间)
for (DmsOutsideAccommodationAttachment attach : list) {
attach.setCreateTime(DateUtils.getNowDate()); // 批量设置创建时间
// 其他默认值(如状态等)
}
// 调用Mapper层批量插入方法
return dmsOutsideAccommodationAttachmentMapper.batchInsertDmsOutsideAccommodationAttachment(list);
}
/**
* 新增外宿申请附件
*
@@ -77,6 +88,11 @@ public class DmsOutsideAccommodationAttachmentServiceImpl extends ServiceImpl<Dm
return dmsOutsideAccommodationAttachmentMapper.deleteDmsOutsideAccommodationAttachmentByIds(ids);
}
@Override
public int deleteOutsideAccommodationAttachmentNameAndStuName(String attachmentName, String studentName) {
return dmsOutsideAccommodationAttachmentMapper.deleteOutsideAccommodationAttachmentNameAndStuName(attachmentName, studentName);
}
/**
* 删除外宿申请附件信息
*

View File

@@ -49,8 +49,79 @@
<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}"
javaType="java.util.ArrayList" select="selectOutsideAccommodationApprovalByStuName"/>
<!--c 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<collection property="outsideAccommodationAttachments"
column="{studentName = student_name, studentNo = student_no, applyId = id}"
javaType="java.util.ArrayList" select="selectOutsideAccommodationAttachmentByStuName"/>
</resultMap>
<!--外宿申请表-审核记录-->
<resultMap type="DmsOutsideAccommodationApproval" 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="signature" column="signature"/>
</resultMap>
<!-- 外宿申请表-审核记录子表,根据学生姓名、学号查询 -->
<select id="selectOutsideAccommodationApprovalByStuName" resultMap="DmsOutsideAccommodationApprovalResult">
select *
from dms_outside_accommodation_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>
<!--外宿申请表-附件记录-->
<resultMap type="DmsOutsideAccommodationAttachment" id="DmsOutsideAccommodationAttachmentResult">
<result property="id" column="id"/>
<result property="applyId" column="apply_id"/>
<result property="attachmentName" column="attachment_name"/>
<result property="attachmentUrl" column="attachment_url"/>
<result property="attachmentType" column="attachment_type"/>
<result property="fileSize" column="file_size"/>
<result property="fileSuffix" column="file_suffix"/>
<result property="createTime" column="create_time"/>
<result property="processInstanceId" column="process_instance_id"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
</resultMap>
<!-- 外宿申请表-审核记录子表,根据学生姓名、学号查询 -->
<select id="selectOutsideAccommodationAttachmentByStuName" resultMap="DmsOutsideAccommodationAttachmentResult">
select *
from dms_outside_accommodation_attachment
<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="applyId != null and applyId != ''">
and apply_id = #{applyId}
</if>
</where>
</select>
<sql id="selectDmsOutsideAccommodationApplyVo">
select id,
@@ -177,7 +248,7 @@
<select id="selectDmsOutsideAccommodationApplyByProcessInstanceId" parameterType="String"
resultMap="DmsOutsideAccommodationApplyResult">
<include refid="selectDmsOutsideAccommodationApplyVo"/>
where processInstanceId = #{process_instance_id}
where process_instance_id = #{processInstanceId}
</select>
<!--根据学生姓名和学号查询申请表-->

View File

@@ -1,53 +1,94 @@
<?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.dormitory.mapper.DmsOutsideAccommodationApprovalMapper">
<resultMap type="DmsOutsideAccommodationApproval" 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>
<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="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>
<insert id="insertDmsOutsideAccommodationApproval" parameterType="DmsOutsideAccommodationApproval" useGeneratedKeys="true" keyProperty="id">
<select id="selectOutsideAccommodationApprovalByStuName" resultMap="DmsOutsideAccommodationApprovalResult">
select *
from dms_outside_accommodation_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="insertDmsOutsideAccommodationApproval" parameterType="DmsOutsideAccommodationApproval"
useGeneratedKeys="true" keyProperty="id">
insert into dms_outside_accommodation_approval
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="applyId != null">apply_id,</if>
@@ -62,7 +103,8 @@ 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>
</trim>
<if test="signature != null">signature,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
<if test="applyNo != null and applyNo != ''">#{applyNo},</if>
@@ -76,7 +118,8 @@ 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>
</trim>
<if test="signature != null">#{signature},</if>
</trim>
</insert>
<update id="updateDmsOutsideAccommodationApproval" parameterType="DmsOutsideAccommodationApproval">
@@ -94,16 +137,19 @@ 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">
delete from dms_outside_accommodation_approval where id in
delete from dms_outside_accommodation_approval where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>

View File

@@ -1,48 +1,205 @@
<?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.dormitory.mapper.DmsOutsideAccommodationAttachmentMapper">
<resultMap type="DmsOutsideAccommodationAttachment" id="DmsOutsideAccommodationAttachmentResult">
<result property="id" column="id" />
<result property="applyId" column="apply_id" />
<result property="attachmentName" column="attachment_name" />
<result property="attachmentUrl" column="attachment_url" />
<result property="attachmentType" column="attachment_type" />
<result property="fileSize" column="file_size" />
<result property="fileSuffix" column="file_suffix" />
<result property="createTime" column="create_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="attachmentName" column="attachment_name"/>
<result property="attachmentUrl" column="attachment_url"/>
<result property="attachmentType" column="attachment_type"/>
<result property="fileSize" column="file_size"/>
<result property="fileSuffix" column="file_suffix"/>
<result property="createTime" column="create_time"/>
<result property="processInstanceId" column="process_instance_id"/>
<result property="studentName" column="student_name"/>
<result property="studentNo" column="student_no"/>
<!--外宿申请表-审核记录 多条件查询column里传入了多条件【{studentName = student_name, studentNo = student_no}】javaType里面写了list表明你有多条件 studentName student_name字段-->
<collection property="outsideAccommodationApplies"
column="{studentName = student_name, studentNo = student_no, id = apply_id}"
javaType="java.util.ArrayList" select="selectOutsideAccommodationApplyByStuName"/>
</resultMap>
<sql id="selectDmsOutsideAccommodationAttachmentVo">
select id, apply_id, attachment_name, attachment_url, attachment_type, file_size, file_suffix, create_time, process_instance_id, student_name, student_no from dms_outside_accommodation_attachment
</sql>
<!--外宿申请表-->
<resultMap type="DmsOutsideAccommodationApply" id="DmsOutsideAccommodationApplyResult">
<result property="id" column="id"/>
<result property="applyNo" column="apply_no"/>
<result property="studentId" column="student_id"/>
<result property="studentNo" column="student_no"/>
<result property="studentName" column="student_name"/>
<result property="gender" column="gender"/>
<result property="birthDate" column="birth_date"/>
<result property="deptId" column="dept_id"/>
<result property="deptName" column="dept_name"/>
<result property="majorId" column="major_id"/>
<result property="majorName" column="major_name"/>
<result property="classId" column="class_id"/>
<result property="className" column="class_name"/>
<result property="originalDormitory" column="original_dormitory"/>
<result property="accommodationFee" column="accommodation_fee"/>
<result property="accommodationFeeStatus" column="accommodation_fee_status"/>
<result property="applyReason" column="apply_reason"/>
<result property="outsideAddress" column="outside_address"/>
<result property="address" column="address"/>
<result property="emergencyPhone" column="emergency_phone"/>
<result property="emergencyContact" column="emergency_contact"/>
<result property="parentOpinion" column="parent_opinion"/>
<result property="parentSignAttachment" column="parent_sign_attachment"/>
<result property="parentPhone" column="parent_phone"/>
<result property="parentAddress" column="parent_address"/>
<result property="parentDetailAddress" column="parent_detail_address"/>
<result property="studentPromiseSign" column="student_promise_sign"/>
<result property="promiseDate" column="promise_date"/>
<result property="startDate" column="start_date"/>
<result property="endDate" column="end_date"/>
<result property="status" column="status"/>
<result property="rejectReason" column="reject_reason"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="isValid" column="is_valid"/>
<result property="teacherName" column="teacher_name"/>
<result property="affixId" column="affix_id"/>
<result property="deployId" column="deploy_id"/>
<result property="processInstanceId" column="process_instance_id"/>
<result property="idCard" column="idCard"/>
<result property="studentPhone" column="studentPhone"/>
<result property="studentSignature" column="student_signature"/>
<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}"
javaType="java.util.ArrayList" select="selectOutsideAccommodationApprovalByStuName"/>
</resultMap>
<select id="selectDmsOutsideAccommodationAttachmentList" parameterType="DmsOutsideAccommodationAttachment" resultMap="DmsOutsideAccommodationAttachmentResult">
<include refid="selectDmsOutsideAccommodationAttachmentVo"/>
<where>
<if test="applyId != null "> and apply_id = #{applyId}</if>
<if test="attachmentName != null and attachmentName != ''"> and attachment_name like concat('%', #{attachmentName}, '%')</if>
<if test="attachmentUrl != null and attachmentUrl != ''"> and attachment_url = #{attachmentUrl}</if>
<if test="attachmentType != null "> and attachment_type = #{attachmentType}</if>
<if test="fileSize != null "> and file_size = #{fileSize}</if>
<if test="fileSuffix != null and fileSuffix != ''"> and file_suffix = #{fileSuffix}</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>
<!-- 外宿申请表 -->
<select id="selectOutsideAccommodationApplyByStuName" resultMap="DmsOutsideAccommodationApplyResult">
select *
from dms_outside_accommodation_apply
<where>
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="studentName != null and studentName != ''">
and student_name = #{studentName}
</if>
<if test="studentNo != null and studentNo != ''">
and student_no = #{studentNo}
</if>
</where>
</select>
<select id="selectDmsOutsideAccommodationAttachmentById" parameterType="Long" resultMap="DmsOutsideAccommodationAttachmentResult">
<!--外宿申请表-审核记录-->
<resultMap type="DmsOutsideAccommodationApproval" 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"/>
</resultMap>
<!-- 外宿申请表-审核记录子表,根据学生姓名、学号查询 -->
<select id="selectOutsideAccommodationApprovalByStuName" resultMap="DmsOutsideAccommodationApprovalResult">
select *
from dms_outside_accommodation_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="selectDmsOutsideAccommodationAttachmentVo">
select id,
apply_id,
attachment_name,
attachment_url,
attachment_type,
file_size,
file_suffix,
create_time,
process_instance_id,
student_name,
student_no
from dms_outside_accommodation_attachment
</sql>
<select id="selectDmsOutsideAccommodationAttachmentList" parameterType="DmsOutsideAccommodationAttachment"
resultMap="DmsOutsideAccommodationAttachmentResult">
<include refid="selectDmsOutsideAccommodationAttachmentVo"/>
<where>
<if test="applyId != null ">and apply_id = #{applyId}</if>
<if test="attachmentName != null and attachmentName != ''">and attachment_name like concat('%',
#{attachmentName}, '%')
</if>
<if test="attachmentUrl != null and attachmentUrl != ''">and attachment_url = #{attachmentUrl}</if>
<if test="attachmentType != null ">and attachment_type = #{attachmentType}</if>
<if test="fileSize != null ">and file_size = #{fileSize}</if>
<if test="fileSuffix != null and fileSuffix != ''">and file_suffix = #{fileSuffix}</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>
</where>
</select>
<select id="selectDmsOutsideAccommodationAttachmentById" parameterType="Long"
resultMap="DmsOutsideAccommodationAttachmentResult">
<include refid="selectDmsOutsideAccommodationAttachmentVo"/>
where id = #{id}
</select>
<insert id="insertDmsOutsideAccommodationAttachment" parameterType="DmsOutsideAccommodationAttachment" useGeneratedKeys="true" keyProperty="id">
<!-- 新增:批量插入方法 -->
<insert id="batchInsertDmsOutsideAccommodationAttachment" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
insert into dms_outside_accommodation_attachment
(
apply_id,
attachment_name,
attachment_url,
attachment_type,
file_size,
file_suffix,
create_time,
process_instance_id,
student_name,
student_no
)
values
<foreach collection="list" item="item" separator=",">
(
#{item.applyId},
#{item.attachmentName},
#{item.attachmentUrl},
#{item.attachmentType},
#{item.fileSize},
#{item.fileSuffix},
#{item.createTime},
#{item.processInstanceId},
#{item.studentName},
#{item.studentNo}
)
</foreach>
</insert>
<insert id="insertDmsOutsideAccommodationAttachment" parameterType="DmsOutsideAccommodationAttachment"
useGeneratedKeys="true" keyProperty="id">
insert into dms_outside_accommodation_attachment
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="applyId != null">apply_id,</if>
@@ -55,7 +212,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>
</trim>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
<if test="attachmentName != null and attachmentName != ''">#{attachmentName},</if>
@@ -67,7 +224,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>
</trim>
</trim>
</insert>
<update id="updateDmsOutsideAccommodationAttachment" parameterType="DmsOutsideAccommodationAttachment">
@@ -88,11 +245,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<delete id="deleteDmsOutsideAccommodationAttachmentById" parameterType="Long">
delete from dms_outside_accommodation_attachment where id = #{id}
delete
from dms_outside_accommodation_attachment
where id = #{id}
</delete>
<delete id="deleteOutsideAccommodationAttachmentNameAndStuName" parameterType="String">
delete
from dms_outside_accommodation_attachment
where attachment_name = #{attachmentName} and student_name = #{studentName}
</delete>
<delete id="deleteDmsOutsideAccommodationAttachmentByIds" parameterType="String">
delete from dms_outside_accommodation_attachment where id in
delete from dms_outside_accommodation_attachment where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>

View File

@@ -266,14 +266,6 @@ public class CphAuditDetailsController extends BaseController {
public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(cphAuditDetailsService.selectCphAuditDetailsById(id));
}
/**
* 查询个人思想品得加分项申请
*/
@PostMapping("/getcphiamByOne/{stuNo}")
public TableDataInfo getcphiamByOne(@PathVariable("stuNo") String stuNo) {
List<CphAuditDetails> list=cphAuditDetailsService.getcphiamByOne(stuNo);
return getDataTable(list);
}
/**
* 新增审核明细

View File

@@ -5,6 +5,7 @@ import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import com.srs.comprehensive.domain.CphAuditDetails;
import com.srs.comprehensive.domain.Dto.CphExport;
import com.srs.comprehensive.domain.SrsCqScore;
import com.srs.comprehensive.domain.SrsMajors;
@@ -235,13 +236,6 @@ public class SrsCqScoreController extends BaseController {
}
@GetMapping("/getOwn")
public AjaxResult getOwn() {
String stuNo = getUsername();
return success(srsCqScoreService.getOwn(stuNo));
}
/**
* 导出学生综合素质评分表列表
*/
@@ -337,4 +331,41 @@ public class SrsCqScoreController extends BaseController {
return getDataTable(list);
}
/**
* 查询个人思想品得加分项申请
*/
@PostMapping("/getcphiamByOne/{stuNo}")
public TableDataInfo getcphiamByOne(@PathVariable("stuNo") String stuNo) {
List<CphAuditDetails> list=srsCqScoreService.getcphiamByOne(stuNo);
return getDataTable(list);
}
@GetMapping("/getOwncphiamByOne")
public TableDataInfo getOwncphiamByOne() {
List<CphAuditDetails> list=srsCqScoreService.getcphiamByOne(getUsername());
return getDataTable(list);
}
/**
* 查询个人素质综合信息
*/
@GetMapping("/getStuData")
public TableDataInfo getStuData(String stuNo) {
List<SrsCqScore> list=srsCqScoreService.getStuData(stuNo);
return getDataTable(list);
}
@GetMapping("/getOwnData")
public TableDataInfo getOwnData() {
List<SrsCqScore> list=srsCqScoreService.getStuData(getUsername());
return getDataTable(list);
}
//查询综合素质分数
@GetMapping("/getOwn")
public TableDataInfo getOwn() {
String stuNo = getUsername();
return getDataTable(srsCqScoreService.getOwn2(stuNo));
}
@GetMapping("/getStu")
public TableDataInfo getStu(String stuNo){
return getDataTable(srsCqScoreService.getOwn2(stuNo));
}
}

View File

@@ -75,7 +75,7 @@ public class DmsOutsideAccommodationApplyController extends BaseController {
/**
* 获取外宿申请详细信息
*/
@PreAuthorize("@ss.hasPermi('dormitory:enlistmentReserve:query')")
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationApply:query')")
@GetMapping(value = "/process/{processInstanceId}")
@ApiOperation("获取应征入伍保留学籍申请详细信息")
public AjaxResult getInfoByProcessInstanceId(@PathVariable("processInstanceId") String processInstanceId) {

View File

@@ -2,6 +2,7 @@ package com.srs.web.controller.dormitory;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -37,11 +38,10 @@ public class DmsOutsideAccommodationApprovalController extends BaseController {
/**
* 查询外宿申请审批记录列表
*/
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationApproval:list')")
@GetMapping("/list")
@ApiOperation("查询外宿申请审批记录列表")
public TableDataInfo list(DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval)
{
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationApproval:list')")
@GetMapping("/list")
@ApiOperation("查询外宿申请审批记录列表")
public TableDataInfo list(DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval) {
startPage();
List<DmsOutsideAccommodationApproval> list = dmsOutsideAccommodationApprovalService.selectDmsOutsideAccommodationApprovalList(dmsOutsideAccommodationApproval);
return getDataTable(list);
@@ -54,8 +54,7 @@ public class DmsOutsideAccommodationApprovalController extends BaseController {
@Log(title = "外宿申请审批记录", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ApiOperation("导出外宿申请审批记录列表")
public void export(HttpServletResponse response, DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval)
{
public void export(HttpServletResponse response, DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval) {
List<DmsOutsideAccommodationApproval> list = dmsOutsideAccommodationApprovalService.selectDmsOutsideAccommodationApprovalList(dmsOutsideAccommodationApproval);
ExcelUtil<DmsOutsideAccommodationApproval> util = new ExcelUtil<DmsOutsideAccommodationApproval>(DmsOutsideAccommodationApproval.class);
util.exportExcel(response, list, "外宿申请审批记录数据");
@@ -67,8 +66,7 @@ public class DmsOutsideAccommodationApprovalController extends BaseController {
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationApproval:query')")
@GetMapping(value = "/{id}")
@ApiOperation("获取外宿申请审批记录详细信息")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(dmsOutsideAccommodationApprovalService.selectDmsOutsideAccommodationApprovalById(id));
}
@@ -79,11 +77,21 @@ public class DmsOutsideAccommodationApprovalController extends BaseController {
@Log(title = "外宿申请审批记录", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ApiOperation("新增外宿申请审批记录")
public AjaxResult add(@RequestBody DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval)
{
public AjaxResult add(@RequestBody DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval) {
return toAjax(dmsOutsideAccommodationApprovalService.insertDmsOutsideAccommodationApproval(dmsOutsideAccommodationApproval));
}
/**
* 新增或修改外宿申请审批记录
*/
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationApproval:add')")
@Log(title = "外宿申请审批记录", businessType = BusinessType.INSERT)
@PostMapping("/addOrUpdate")
@ApiOperation("新增或修改外宿申请审批记录")
public AjaxResult addOrUpdateAccommodationApproval(@RequestBody DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval) {
return toAjax(dmsOutsideAccommodationApprovalService.addOrUpdateAccommodationApproval(dmsOutsideAccommodationApproval));
}
/**
* 修改外宿申请审批记录
*/
@@ -91,8 +99,7 @@ public class DmsOutsideAccommodationApprovalController extends BaseController {
@Log(title = "外宿申请审批记录", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@ApiOperation("修改外宿申请审批记录")
public AjaxResult edit(@RequestBody DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval)
{
public AjaxResult edit(@RequestBody DmsOutsideAccommodationApproval dmsOutsideAccommodationApproval) {
return toAjax(dmsOutsideAccommodationApprovalService.updateDmsOutsideAccommodationApproval(dmsOutsideAccommodationApproval));
}
@@ -103,8 +110,7 @@ public class DmsOutsideAccommodationApprovalController extends BaseController {
@Log(title = "外宿申请审批记录", businessType = BusinessType.DELETE)
@PostMapping("/{ids}")
@ApiOperation("删除外宿申请审批记录")
public AjaxResult remove(@PathVariable Long[] ids)
{
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(dmsOutsideAccommodationApprovalService.deleteDmsOutsideAccommodationApprovalByIds(ids));
}
}

View File

@@ -2,6 +2,8 @@ package com.srs.web.controller.dormitory;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.srs.routine.domain.RtEnlistmentReserveAttach;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -37,11 +39,10 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
/**
* 查询外宿申请附件列表
*/
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationAttachment:list')")
@GetMapping("/list")
@ApiOperation("查询外宿申请附件列表")
public TableDataInfo list(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment)
{
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationAttachment:list')")
@GetMapping("/list")
@ApiOperation("查询外宿申请附件列表")
public TableDataInfo list(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment) {
startPage();
List<DmsOutsideAccommodationAttachment> list = dmsOutsideAccommodationAttachmentService.selectDmsOutsideAccommodationAttachmentList(dmsOutsideAccommodationAttachment);
return getDataTable(list);
@@ -54,8 +55,7 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
@Log(title = "外宿申请附件", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ApiOperation("导出外宿申请附件列表")
public void export(HttpServletResponse response, DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment)
{
public void export(HttpServletResponse response, DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment) {
List<DmsOutsideAccommodationAttachment> list = dmsOutsideAccommodationAttachmentService.selectDmsOutsideAccommodationAttachmentList(dmsOutsideAccommodationAttachment);
ExcelUtil<DmsOutsideAccommodationAttachment> util = new ExcelUtil<DmsOutsideAccommodationAttachment>(DmsOutsideAccommodationAttachment.class);
util.exportExcel(response, list, "外宿申请附件数据");
@@ -67,8 +67,7 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationAttachment:query')")
@GetMapping(value = "/{id}")
@ApiOperation("获取外宿申请附件详细信息")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
public AjaxResult getInfo(@PathVariable("id") Long id) {
return success(dmsOutsideAccommodationAttachmentService.selectDmsOutsideAccommodationAttachmentById(id));
}
@@ -79,11 +78,31 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
@Log(title = "外宿申请附件", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ApiOperation("新增外宿申请附件")
public AjaxResult add(@RequestBody DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment)
{
public AjaxResult add(@RequestBody DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment) {
return toAjax(dmsOutsideAccommodationAttachmentService.insertDmsOutsideAccommodationAttachment(dmsOutsideAccommodationAttachment));
}
/**
* 批量新增保留学籍申请附件(入伍通知书等)
*/
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationAttachment:add')")
@Log(title = "外宿申请附件", businessType = BusinessType.INSERT)
@PostMapping("/batchAdd") // 注意:修改接口路径避免与原单条接口冲突
@ApiOperation("批量新增外宿申请附件")
public AjaxResult batchAdd(@RequestBody List<DmsOutsideAccommodationAttachment> list) {
// 1. 校验参数合法性
if (list == null || list.isEmpty()) {
return AjaxResult.error("批量插入失败:附件列表不能为空");
}
// 2. 调用Service层批量插入方法
int rows = dmsOutsideAccommodationAttachmentService.batchInsertDmsOutsideAccommodationAttachment(list);
// 3. 返回结果rows为成功插入的条数
return rows > 0 ? AjaxResult.success("批量插入成功,共插入 " + rows + " 条记录")
: AjaxResult.error("批量插入失败");
}
/**
* 修改外宿申请附件
*/
@@ -91,8 +110,7 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
@Log(title = "外宿申请附件", businessType = BusinessType.UPDATE)
@PostMapping("/update")
@ApiOperation("修改外宿申请附件")
public AjaxResult edit(@RequestBody DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment)
{
public AjaxResult edit(@RequestBody DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment) {
return toAjax(dmsOutsideAccommodationAttachmentService.updateDmsOutsideAccommodationAttachment(dmsOutsideAccommodationAttachment));
}
@@ -103,8 +121,18 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
@Log(title = "外宿申请附件", businessType = BusinessType.DELETE)
@PostMapping("/{ids}")
@ApiOperation("删除外宿申请附件")
public AjaxResult remove(@PathVariable Long[] ids)
{
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(dmsOutsideAccommodationAttachmentService.deleteDmsOutsideAccommodationAttachmentByIds(ids));
}
/**
* 删除保留学籍申请附件(入伍通知书等)
*/
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationAttachment:remove')")
@Log(title = "外宿申请附件", businessType = BusinessType.DELETE)
@PostMapping("/OutsideAccommodationAttachment")
@ApiOperation("删除外宿申请附件")
public AjaxResult deleteOutsideAccommodationAttachmentNameAndStuName(String attachmentName, String studentName) {
return toAjax(dmsOutsideAccommodationAttachmentService.deleteOutsideAccommodationAttachmentNameAndStuName(attachmentName, studentName));
}
}

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:
@@ -82,13 +82,13 @@ spring:
redis:
# 地址
host: localhost #正式环境redis
# host: 47.112.118.149 #测试开发地址
# host: 47.112.118.149 #测试开发地址
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
# 密码SSSS
# password: Houpuyfb #测试开发密码
# password: Houpuyfb #测试开发密码
password: #正式环境密码
# 连接超时时间
timeout: 10s

View File

@@ -1,6 +1,9 @@
package com.srs.comprehensive.domain;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.srs.common.annotation.Excel;
@@ -8,10 +11,11 @@ import com.srs.common.core.domain.BaseEntity;
/**
* 学生综合素质评分表对象 srs_cq_score
*
*
* @author srs
* @date 2023-06-29
*/
@Data
public class SrsCqScore extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -45,7 +49,23 @@ public class SrsCqScore extends BaseEntity
private String majorsName;
@Excel(name = "班级")
private String className;
//思想品德
@TableField(exist = false)
private BigDecimal iamScore;
//第二课堂
@TableField(exist = false)
private BigDecimal classtwoScore;
//综合评价
@TableField(exist = false)
private BigDecimal ceScore;
//科学文化素质
@TableField(exist = false)
private BigDecimal stuScore;
//体能素质
@TableField(exist = false)
private BigDecimal sportScore;
@TableField(exist = false)
private BigDecimal totalScore;
public String getStuYearName() {
return stuYearName;
@@ -94,12 +114,12 @@ public class SrsCqScore extends BaseEntity
}
public void setId(Long id)
public void setId(Long id)
{
this.id = id;
}
public Long getId()
public Long getId()
{
return id;
}
@@ -110,30 +130,30 @@ public class SrsCqScore extends BaseEntity
public void setStuNo(String stuNo) {
this.stuNo = stuNo;
}
public void setStuYearId(Long stuYearId)
public void setStuYearId(Long stuYearId)
{
this.stuYearId = stuYearId;
}
public Long getStuYearId()
public Long getStuYearId()
{
return stuYearId;
}
public void setCqScore(BigDecimal cqScore)
public void setCqScore(BigDecimal cqScore)
{
this.cqScore = cqScore;
}
public BigDecimal getCqScore()
public BigDecimal getCqScore()
{
return cqScore;
}
public void setDelFlag(String delFlag)
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
public String getDelFlag()
{
return delFlag;
}

View File

@@ -28,5 +28,4 @@ public class CphOwnScore {
public BigDecimal stuScore;
public BigDecimal sportScore;
}

View File

@@ -20,5 +20,6 @@ public class CphStuScoreType {
public String typeName;
public BigDecimal totalScore;
}

View File

@@ -22,7 +22,6 @@ public interface CphAuditDetailsMapper
* @return 审核明细
*/
public CphAuditDetails selectCphAuditDetailsById(Long id);
public List<CphAuditDetails> getcphiamByOne(String stuNo);
public CphAuditDetails selectCphAuditDetailsByProjectId(Long id);

View File

@@ -4,6 +4,7 @@ import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.srs.comprehensive.domain.CphAuditDetails;
import com.srs.comprehensive.domain.Dto.CphExport;
import com.srs.comprehensive.domain.SrsCqScore;
import com.srs.comprehensive.domain.SrsMajors;
@@ -14,7 +15,7 @@ import org.springframework.data.repository.query.Param;
/**
* 学生综合素质评分表Mapper接口
*
*
* @author srs
* @date 2023-06-29
*/
@@ -29,7 +30,7 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
/**
* 查询学生综合素质评分表
*
*
* @param id 学生综合素质评分表主键
* @return 学生综合素质评分表
*/
@@ -45,6 +46,8 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
public List<CphStuScoreType> listOwnFive(String stuNo);
public List<CphAuditDetails> getcphiamByOne(String stuNo);
public List<CphCollegeLook> listOwnCollegeScore(CphSearch param);
public List<CphCollegeLook> listOwnCollegeStu(CphSearch param);
@@ -54,6 +57,7 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
public List<SrsMajors> listOwnClass(CphSearch param);
public List<SrsCqScore> getStuData(String stuNo);
/**
@@ -80,6 +84,8 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
public List<CphOwnScore> getOwn(String stuNo);
public List<CphOwnScore> getOwn2(String stuNo);
public void generateComprehensiveSummary(@Param("id") int id);
@@ -87,7 +93,7 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
/**
* 新增学生综合素质评分表
*
*
* @param srsCqScore 学生综合素质评分表
* @return 结果
*/
@@ -97,7 +103,7 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
/**
* 修改学生综合素质评分表
*
*
* @param srsCqScore 学生综合素质评分表
* @return 结果
*/
@@ -105,7 +111,7 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
/**
* 删除学生综合素质评分表
*
*
* @param id 学生综合素质评分表主键
* @return 结果
*/
@@ -113,7 +119,7 @@ public interface SrsCqScoreMapper extends BaseMapper<SrsCqScore>
/**
* 批量删除学生综合素质评分表
*
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/

View File

@@ -49,14 +49,6 @@ public interface ICphAuditDetailsService
*/
public CphAuditDetails selectCphAuditDetailsById(Long id);
/**
* 查询个人思想品得加分项申请
*
* @param stuNo
* @return
**/
public List<CphAuditDetails> getcphiamByOne(String stuNo);
/**
* 我的已审核
* @author zhy

View File

@@ -1,6 +1,7 @@
package com.srs.comprehensive.service;
import com.srs.common.core.domain.AjaxResult;
import com.srs.comprehensive.domain.CphAuditDetails;
import com.srs.comprehensive.domain.Dto.CphExport;
import com.srs.comprehensive.domain.SrsCqScore;
import com.srs.comprehensive.domain.SrsMajors;
@@ -37,6 +38,11 @@ public interface ISrsCqScoreService
public List<CphOwnScore> getOwn(String stuNo);
public List<CphOwnScore> getOwn2(String stuNo);
public List<CphAuditDetails> getcphiamByOne(String stuNo);
public List<CphTotalScoreInfo> listCphScore(CphSearch search);
public List<CphCollegeLook> listOwnCollegeScore(CphSearch param);
@@ -109,4 +115,6 @@ public interface ISrsCqScoreService
List<SrsCeScoreClassDeptGradeMajorsStudentStuYear> comprehensiveRanking(SrsCqScore srsCqScore);
public List<SrsCqScore> getStuData(String stuNo);
}

View File

@@ -331,11 +331,6 @@ public class CphAuditDetailsServiceImpl implements ICphAuditDetailsService {
return cphAuditDetailsMapper.selectCphAuditDetailsById(id);
}
//查询个人思想品得加分申请
public List<CphAuditDetails> getcphiamByOne(String stuNo){
return cphAuditDetailsMapper.getcphiamByOne(stuNo);
}
/**
* 查询已审核
*

View File

@@ -89,7 +89,12 @@ public class SrsCqScoreServiceImpl extends ServiceImpl<SrsCqScoreMapper, SrsCqSc
@Override
public List<CphOwnScore> getOwn(String stuNo){
return srsCqScoreMapper.getOwn( stuNo);
return srsCqScoreMapper.getOwn(stuNo);
}
@Override
public List<CphOwnScore> getOwn2(String stuNo){
return srsCqScoreMapper.getOwn2(stuNo);
}
@Override
@@ -342,5 +347,12 @@ public class SrsCqScoreServiceImpl extends ServiceImpl<SrsCqScoreMapper, SrsCqSc
return baseMapper.selectPerson(params);
}
//查询个人思想品得加分申请
public List<CphAuditDetails> getcphiamByOne(String stuNo){
return srsCqScoreMapper.getcphiamByOne(stuNo);
}
//查询个人素质综合信息
public List<SrsCqScore> getStuData(String stuNo){
return srsCqScoreMapper.getStuData(stuNo);
}
}

View File

@@ -245,17 +245,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join cph_rules as b on a.rule_id = b.rule_id
where stu_no = #{stuNo} and stu_year_id = #{stuYearId};
</select>
<select id="getcphiamByOne" resultType="com.srs.comprehensive.domain.CphAuditDetails" parameterType="String">
select c.rule_name as rule_name, g.stu_year_name as stu_year_name,a.iam_score as operate_score
from cph_iam as a
left join srs_student as b on a.to_add = b.stu_id
left join cph_rules as c on a.rule_id = c.rule_id
left join srs_class as d on b.class_id = d.class_id
left join srs_majors as e on d.major_id = e.major_id
left join sys_dept as f on e.college_id = f.dept_id
left join srs_stu_year as g on a.stu_year_id = g.id
left join cph_audit_details as h on a.id = h.project_id
where b.stu_no = #{stuNo} and audit_status=6
ORDER BY a.create_time desc
</select>
</mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.srs.comprehensive.mapper.SrsCqScoreMapper">
<resultMap type="SrsCqScore" id="SrsCqScoreResult">
<result property="id" column="id"/>
<result property="stuNo" column="stu_no"/>
@@ -37,7 +37,7 @@
m.major_name,
c.class_name,
stu_year_name
from srs_cq_score cq
left join srs_student s
on s.stu_no = cq.stu_no
@@ -46,7 +46,7 @@
left JOIN srs_majors m ON c.major_id = m.major_id
left JOIN sys_dept d ON m.college_id = d.dept_id
left JOIN srs_stu_year sy ON cq.stu_year_id = sy.id
</sql>
<select id="getComprehensiveSummary" parameterType="int" statementType="CALLABLE" resultType="java.util.Map">
{CALL test2(#{id, mode=IN})}
@@ -82,8 +82,32 @@
) as t1
where t1.stu_no = #{stuNo}
</select>
<select id="getOwn2" resultType="com.srs.comprehensive.domain.Vo.CphOwnScore">
select t1.stu_year_id,t1.stu_year_name,t1.total_score,t1.iam_score,t1.sport_score,
t1.ce_score,t1.stu_score,t1.classtwo_score,t1.class_rank,t1.major_rank
from (
select a.stu_year_id,b.stu_year_name,
a.cph_score as total_score,
a.iam_score as iam_score,
a.sport_score as sport_score,
a.ce_score as ce_score,
a.stu_score as stu_score,
a.classtwo_score as classtwo_score,
a.stu_no,
RANK() OVER(PARTITION BY a.class_id,a.stu_year_id,c.grade_id ORDER BY a.cph_score DESC ) as class_rank,
RANK() OVER(PARTITION BY a.major_id,a.stu_year_id,c.grade_id ORDER BY a.cph_score DESC ) as major_rank
from cph_total_score as a
left join srs_stu_year as b on a.stu_year_id = b.id
left join srs_class as c on a.class_code = c.class_code
left join srs_student as e on a.stu_no = e.stu_no
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 limit 3
</select>
<select id="selectSrsCqScoreList" parameterType="CphSearch" resultMap="SrsCqScoreResult">
<include refid="selectSrsCqScoreVo"/>
<where>
@@ -145,7 +169,7 @@
select '分数&lt;60' as `name`, count(*) as`value` from cph_total_score as a
where a.cph_score &lt; 60 and a.stu_year_id = #{stuYearId}
</select>
<select id="selectSrsCqScoreById" parameterType="Long" resultMap="SrsCqScoreResult">
<include refid="selectSrsCqScoreVo"/>
where cq.id = #{id}
@@ -355,9 +379,6 @@
</select>
<insert id="insertSrsCqScore" parameterType="SrsCqScore">
insert into srs_cq_score
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -383,7 +404,7 @@
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
<update id="updateSrsCqScore" parameterType="SrsCqScore">
update srs_cq_score
<trim prefix="SET" suffixOverrides=",">
@@ -398,20 +419,20 @@
</trim>
where id = #{id}
</update>
<delete id="deleteSrsCqScoreById" parameterType="Long">
delete
from srs_cq_score
where id = #{id}
</delete>
<delete id="deleteSrsCqScoreByIds" parameterType="String">
delete from srs_cq_score where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getScoreDistribution" resultType="java.util.Map">
select s.stu_id, s.stu_no, s.name, s.class_id,
COALESCE(ts.score, 0) + COALESCE(ci.score, 0) + COALESCE(st.score, 0) + COALESCE(cs.score, 0) +
@@ -470,7 +491,7 @@
<if test="majorId != null">and sm.major_id = #{majorId}</if>
</where>
</select>
<select id="selectPerson"
resultType="com.srs.comprehensive.domain.Vo.SrsCeScoreClassDeptGradeMajorsStudentStuYear">
SELECT
@@ -539,5 +560,21 @@
AND stu_year_id=#{stuYearId}
</select>
</mapper>
<select id="getcphiamByOne" resultType="com.srs.comprehensive.domain.CphAuditDetails" parameterType="String">
select c.rule_name as rule_name, g.stu_year_name as stu_year_name,a.iam_score as operate_score
from cph_iam as a
left join srs_student as b on a.to_add = b.stu_id
left join cph_rules as c on a.rule_id = c.rule_id
left join srs_class as d on b.class_id = d.class_id
left join srs_majors as e on d.major_id = e.major_id
left join sys_dept as f on e.college_id = f.dept_id
left join srs_stu_year as g on a.stu_year_id = g.id
left join cph_audit_details as h on a.id = h.project_id
where b.stu_no = #{stuNo} and audit_status=6
ORDER BY a.create_time desc
</select>
<select id="getStuData" resultType="com.srs.comprehensive.domain.SrsCqScore" parameterType="String">
select a.*,b.stu_year_name from cph_total_score as a left join srs_stu_year as b on a.stu_year_id = b.id
where stu_no=#{stuNo} order by b.stu_year_name desc limit 3
</select>
</mapper>

View File

@@ -710,34 +710,69 @@
order by quantity desc limit 4
</select>
<select id="getCountbyCity" resultType="java.util.Map">
select *
from (select (case
when b.id_card = 4501 then '南宁市'
when b.id_card = 4502 then '柳州市'
when b.id_card = 4503 then '桂林市'
when b.id_card = 4504 then '梧州市'
when b.id_card = 4505 then '北海市'
when b.id_card = 4506 then '防城港市'
when b.id_card = 4507 then '钦州市'
when b.id_card = 4508 then '贵港市'
when b.id_card = 4509 then '玉林市'
when b.id_card = 4510 then '百色市'
when b.id_card = 4511 then '州市'
when b.id_card = 4512 then '河池市'
when b.id_card = 4513 then '来宾市'
when b.id_card = 4514 then '崇左市'
end) as city,
SELECT
city,
SUM(total_count) AS total_count, -- 合并外省总人数
SUM(male_count) AS male_count, -- 合并外省男生数
SUM(female_count) AS female_count,-- 合并外省女生数
-- 若需显示身份证前缀,外省统一标为“外省”,广西保留原前缀(可选)
CASE WHEN city = '外省' THEN '外省' ELSE GROUP_CONCAT(DISTINCT 身份证前缀 SEPARATOR ',') END AS 身份证前缀
FROM (
SELECT
CASE
-- 广西地市精准匹配
WHEN b.id_card = '4501' THEN '南宁市'
WHEN b.id_card = '4502' THEN '州市'
WHEN b.id_card = '4503' THEN '桂林市'
WHEN b.id_card = '4504' THEN '梧州市'
WHEN b.id_card = '4505' THEN '北海市'
WHEN b.id_card = '4506' THEN '防城港市'
WHEN b.id_card = '4507' THEN '钦州市'
WHEN b.id_card = '4508' THEN '贵港市'
WHEN b.id_card = '4509' THEN '玉林市'
WHEN b.id_card = '4510' THEN '百色市'
WHEN b.id_card = '4511' THEN '贺州市'
WHEN b.id_card = '4512' THEN '河池市'
WHEN b.id_card = '4513' THEN '来宾市'
WHEN b.id_card = '4514' THEN '崇左市'
-- 广西其他编码兜底
WHEN b.id_card LIKE '45%' THEN '广西-其他地区'
-- 所有非广西编码统一标为“外省”
ELSE '外省'
END AS city,
total_count,
male_count,
female_count
from (select left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4) as id_card, count (1) as total_count, sum (case when gender='男' then 1 else 0 end) as male_count, sum (case when gender='女' then 1 else 0 end) as female_count
from srs_student d left join srs_class e
on d.class_id=e.class_id
left join srs_grade f on f.grade_id=e.grade_id
where f.grade_status in (1, 3)
GROUP BY left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4)) b) c
where c.city is not null;
female_count,
b.id_card AS 身份证前缀
FROM (
SELECT
t.id_card,
COUNT(1) AS total_count,
SUM(CASE WHEN COALESCE(gender, '') = '男' THEN 1 ELSE 0 END) AS male_count,
SUM(CASE WHEN COALESCE(gender, '') = '女' THEN 1 ELSE 0 END) AS female_count
FROM (
SELECT
-- 处理解密NULL的情况转为空字符串
COALESCE(LEFT(AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4), '') AS id_card,
gender
FROM srs_student d
LEFT JOIN srs_class e ON d.class_id = e.class_id
LEFT JOIN srs_grade f ON f.grade_id = e.grade_id
WHERE f.grade_status IN (1, 3)
) t
GROUP BY t.id_card
) b
) c
-- 按 city 分组:广西各地市单独分组,外省合并为一组
GROUP BY city
-- 可选:排序(广西地市在前,外省在后)
ORDER BY
CASE
WHEN city = '外省' THEN 2
WHEN city = '广西-其他地区' THEN 1
ELSE 0
END,
city;
</select>
<select id="getSchoolCountbyGrade" resultType="java.util.Map">
select c.grade_code, count(1) as number
@@ -762,33 +797,49 @@
and gender is not null
</select>
<select id="getNotSchoolTotalCount" resultType="java.util.Map">
select sum(total_count) as number
from (select (case
when b.id_card = 4501 then '南宁市'
when b.id_card = 4502 then '柳州市'
when b.id_card = 4503 then '桂林市'
when b.id_card = 4504 then '州市'
when b.id_card = 4505 then '北海市'
when b.id_card = 4506 then '防城港市'
when b.id_card = 4507 then '钦州市'
when b.id_card = 4508 then '贵港市'
when b.id_card = 4509 then '玉林市'
when b.id_card = 4510 then '百色市'
when b.id_card = 4511 then '贺州市'
when b.id_card = 4512 then '河池市'
when b.id_card = 4513 then '来宾市'
when b.id_card = 4514 then '崇左市'
end) as city,
SELECT SUM(total_count) AS number
FROM (
SELECT
CASE
WHEN b.id_card = 4501 THEN '南宁市'
WHEN b.id_card = 4502 THEN '州市'
WHEN b.id_card = 4503 THEN '桂林市'
WHEN b.id_card = 4504 THEN '梧州市'
WHEN b.id_card = 4505 THEN '北海市'
WHEN b.id_card = 4506 THEN '防城港市'
WHEN b.id_card = 4507 THEN '钦州市'
WHEN b.id_card = 4508 THEN '贵港市'
WHEN b.id_card = 4509 THEN '玉林市'
WHEN b.id_card = 4510 THEN '百色市'
WHEN b.id_card = 4511 THEN '贺州市'
WHEN b.id_card = 4512 THEN '河池市'
WHEN b.id_card = 4513 THEN '来宾市'
WHEN b.id_card = 4514 THEN '崇左市'
END AS city,
total_count,
male_count,
female_count
from (select left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4) as id_card, count (1) as total_count, sum (case when gender='男' then 1 else 0 end) as male_count, sum (case when gender='女' then 1 else 0 end) as female_count
from srs_student d left join srs_class e
on d.class_id=e.class_id
left join srs_grade f on f.grade_id=e.grade_id
where f.grade_status in (1, 3)
GROUP BY left (AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4)) b) c
where c.city is null
FROM (
-- 优化先解密别名避免GROUP BY重复计算解密逻辑
SELECT
t.id_card,
COUNT(1) AS total_count, -- 关键COUNT与括号无空格
SUM(CASE WHEN gender = '男' THEN 1 ELSE 0 END) AS male_count,
SUM(CASE WHEN gender = '女' THEN 1 ELSE 0 END) AS female_count
FROM (
SELECT
LEFT(AES_DECRYPT(UNHEX(id_card), 'zhxg'), 4) AS id_card, -- 关键LEFT与括号无空格
gender
FROM srs_student d
LEFT JOIN srs_class e ON d.class_id = e.class_id
LEFT JOIN srs_grade f ON f.grade_id = e.grade_id
WHERE f.grade_status IN (1, 3)
) t
GROUP BY t.id_card -- 直接用别名,避免重复解密
) b
) c
WHERE c.city IS NULL;
</select>
<select id="getMajorsCount" resultType="java.util.Map">
select d.dept_name as deptName,

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

@@ -37,9 +37,6 @@ public class DiscListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) {
log.info("===== 退伍复学审批监听器触发 =====");
log.info("当前节点ID{}", execution.getCurrentActivityId());
log.info("流程实例ID{}", execution.getProcessInstanceId());
// 1. 获取当前节点ID和流程定义ID
String currentActivityId = execution.getCurrentActivityId(); // 当前节点ID兼容所有版本
String processDefinitionId = execution.getProcessDefinitionId(); // 流程定义ID
@@ -117,9 +114,17 @@ public class DiscListener implements ExecutionListener {
switch (currentNodeName) {
case "招生与就业处":
return counselorInfo.getUserId();
List<TeacherVo> zjcData = sysDisBasicMapper.getShenDataInfo("招就处");
return zjcData.get(0).getUserId();
case "辅导员审核":
// 返回匹配的辅导员用户ID作为下一个节点负责人
return counselorInfo.getUserId();
case "学务审核":
// 辅导员通过后 → 下一个节点学务筛选出角色ID=105且与当前部门一致
// 查询角色ID=105学务的所有用户
SysUser queryUser = new SysUser();
@@ -134,12 +139,8 @@ public class DiscListener implements ExecutionListener {
.filter(user -> currentDeptId.equals(user.getDeptId())) // 部门ID匹配
.findFirst() // 取第一个匹配的学务(若有多个,可根据排序或优先级调整)
.orElseThrow(() -> new RuntimeException("未找到部门ID=" + currentDeptId + "的学务负责人"));
// 返回匹配的辅导员用户ID作为下一个节点负责人
return targetAcademic.getUserId();
case "学务审核":
// 学务通过后 → 下一个节点二级学院角色ID=106匹配学生所属学院
// 查询当前流程对应的业务数据获取学生所属学院ID
// RtEnlistmentReserve reserve = enlistmentReserveMapper.selectRtEnlistmentReserveByProcessInstanceId(processInstanceId);
@@ -147,6 +148,10 @@ public class DiscListener implements ExecutionListener {
// throw new RuntimeException("未查询到流程对应的业务数据processInstanceId=" + processInstanceId);
// }
case "二级学院审核":
// 二级学院通过后 → 下一个节点:学籍管理科
// 查询角色ID=106二级学院的所有用户
SysUser qUser = new SysUser();
qUser.setRoleId(106L); // 二级学院角色固定ID=106
@@ -165,9 +170,12 @@ public class DiscListener implements ExecutionListener {
// 返回匹配的二级学院负责人ID
return targetCollegeLeader.getUserId();
// 学籍管理科通过后 → 下一个节点教务处主管领导假设部门ID=40
case "二级学院审核":
// 二级学院通过后 → 下一个节点:学籍管理科
// 获取学教务处主管领导审核人
case "学籍管理":
// 获取学籍管理科审核人
List<TeacherVo> shenDataInfo = sysDisBasicMapper.getShenDataInfo("学籍管理科");
@@ -180,10 +188,11 @@ public class DiscListener implements ExecutionListener {
// 暂时选择学籍管理科第一个人作为审核人
return shenDataInfo.get(0).getUserId();
case "学籍管理":
// 学籍管理科通过后 → 下一个节点教务处主管领导假设部门ID=40
// 获取学教务处主管领导审核人
case "教务处主管":
// 最后一个节点通过后 → 流程结束(无需设置负责人)
List<TeacherVo> teacherVos = sysDisBasicMapper.getShenDataInfo("教务处主管领导");
if (teacherVos.isEmpty()) {
@@ -193,13 +202,9 @@ public class DiscListener implements ExecutionListener {
// 暂时选择教务处主管领导第一个人作为审核人
return teacherVos.get(0).getUserId();
case "教务处主管":
// 最后一个节点通过后 → 流程结束(无需设置负责人)
return null;
default:
throw new RuntimeException("未配置节点[" + currentNodeName + "]的下一个负责人规则");
}
}
}
}

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,16 +3,11 @@ package com.srs.flowable.listener.outsideAccommodation;
import com.srs.common.utils.SecurityUtils;
import com.srs.common.utils.spring.SpringUtils;
import com.srs.dormitory.domain.DmsOutsideAccommodationApply;
import com.srs.flowable.domain.EnlistmentReserve;
import com.srs.flowable.domain.EnlistmentReserveApproval;
import com.srs.flowable.domain.DormitoryStudent;
import com.srs.flowable.domain.OutsideAccommodationApply;
import com.srs.flowable.domain.OutsideAccommodationApproval;
import com.srs.flowable.mapper.EnlistmentReserveApprovalMapper;
import com.srs.flowable.mapper.EnlistmentReserveMapper;
import com.srs.flowable.mapper.OutsideAccommodationApplyMapper;
import com.srs.flowable.mapper.OutsideAccommodationApprovalMapper;
import com.srs.system.service.ISysUserService;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.FlowNode;
import org.flowable.engine.RepositoryService;
@@ -53,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;
@@ -67,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;
@@ -82,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);
@@ -105,7 +108,7 @@ public class OutsideAccommodationEndListener implements ExecutionListener {
/**
* 通用审批记录保存方法
*/
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String applyNo, String nodeName, String studentName, String studentNo, String approvalOpinion, Long approvalResult) {
private void saveApprovalRecord(Long ApplyId,String processInstanceId, String applyNo, String nodeName, String studentName, String studentNo, String approvalOpinion, Long approvalResult, String signature) {
OutsideAccommodationApproval outsideAccommodationApproval = new OutsideAccommodationApproval();
// 赋值
outsideAccommodationApproval.setApplyId(ApplyId);
@@ -126,14 +129,16 @@ 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());
if (approval == null) {
outsideAccommodationApprovalMapper.insertDmsOutsideAccommodationApproval(outsideAccommodationApproval);
} else {
approval.setId(approval.getId());
outsideAccommodationApprovalMapper.insertDmsOutsideAccommodationApproval(outsideAccommodationApproval);
outsideAccommodationApproval.setId(approval.getId());
outsideAccommodationApprovalMapper.updateDmsOutsideAccommodationApproval(outsideAccommodationApproval);
}
}
}

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="DmsOutsideAccommodationApproval" 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" />
<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="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>
<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="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>
@@ -62,8 +86,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
</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,7 +103,8 @@ 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>
</trim>
<if test="signature != null">signature,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="applyId != null">#{applyId},</if>
<if test="applyNo != null and applyNo != ''">#{applyNo},</if>
@@ -92,7 +118,8 @@ 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>
</trim>
<if test="signature != null">#{signature},</if>
</trim>
</insert>
<update id="updateDmsOutsideAccommodationApproval" parameterType="DmsOutsideAccommodationApproval">
@@ -110,16 +137,19 @@ 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">
delete from dms_outside_accommodation_approval where id in
delete from dms_outside_accommodation_approval where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>

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

@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import com.srs.common.core.domain.BaseEntity;
import java.util.List;
/**
* 保留学籍申请附件(入伍通知书等)对象 rt_enlistment_reserve_attach
@@ -95,5 +97,10 @@ public class RtEnlistmentReserveAttach extends BaseEntity {
@Excel(name = "学号")
private String studentNo;
/**
* 入伍保留学籍申请表
*/
@ApiModelProperty(value = "入伍保留学籍申请表", hidden = true)
@Excel(name = "入伍保留学籍申请表")
private List<RtEnlistmentReserve> rtEnlistmentReserves;
}

View File

@@ -283,7 +283,7 @@ public class SysDisBasicServiceImpl extends ServiceImpl<SysDisBasicMapper,SysDis
}
// --------------- 原有流程启动逻辑(不变)---------------
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:20:1347543", variables);
AjaxResult ajaxResult = flowDefinitionService.startProcessInstanceById("flow_nrblbjev:21:1517504", variables);
String code = ajaxResult.get("code").toString();
if (code.equals("200")) {
log.info("流程启动成功 - stId: {}, applyId: {}", stId, basicId);

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,8 +15,90 @@
<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字段-->
<collection property="rtEnlistmentReserves"
column="{studentName = student_name, studentNo = student_no, id = apply_id}"
javaType="java.util.ArrayList" select="selectRtEnlistmentReserveByStuName"/>
</resultMap>
<resultMap type="RtEnlistmentReserve" 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"/>
<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>
<!-- 入伍保留申请表 -->
<select id="selectRtEnlistmentReserveByStuName" resultMap="RtEnlistmentReserveResult">
select *
from rt_enlistment_reserve
<where>
<if test="id != null and id != ''">
and id = #{id}
</if>
<if test="studentName != null and studentName != ''">
and student_name = #{studentName}
</if>
<if test="studentNo != null and studentNo != ''">
and student_no = #{studentNo}
</if>
</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>