入伍保留学籍-申请表详细

This commit is contained in:
2025-12-11 17:49:49 +08:00
parent ebdaedf854
commit 9104a00570
8 changed files with 291 additions and 88 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

@@ -28,6 +28,13 @@ public interface DmsOutsideAccommodationAttachmentMapper extends BaseMapper<DmsO
*/
List<DmsOutsideAccommodationAttachment> selectDmsOutsideAccommodationAttachmentList(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment);
/**
* 批量插入校外住宿附件
* @param list 校外住宿附件列表
* @return 插入行数
*/
int batchInsertDmsOutsideAccommodationAttachment(List<DmsOutsideAccommodationAttachment> list);
/**
* 新增外宿申请附件
*

View File

@@ -28,6 +28,13 @@ public interface IDmsOutsideAccommodationAttachmentService extends IService<DmsO
*/
List<DmsOutsideAccommodationAttachment> selectDmsOutsideAccommodationAttachmentList(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment);
/**
* 批量插入校外住宿附件
* @param list 校外住宿附件列表
* @return 插入行数
*/
int batchInsertDmsOutsideAccommodationAttachment(List<DmsOutsideAccommodationAttachment> list);
/**
* 新增外宿申请附件
*

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);
}
/**
* 新增外宿申请附件
*

View File

@@ -50,7 +50,77 @@
<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"/>
<!--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"/>
</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,

View File

@@ -21,33 +21,55 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</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
from dms_outside_accommodation_approval
</sql>
<select id="selectDmsOutsideAccommodationApprovalList" parameterType="DmsOutsideAccommodationApproval" resultMap="DmsOutsideAccommodationApprovalResult">
<select id="selectDmsOutsideAccommodationApprovalList" parameterType="DmsOutsideAccommodationApproval"
resultMap="DmsOutsideAccommodationApprovalResult">
<include refid="selectDmsOutsideAccommodationApprovalVo"/>
<where>
<if test="applyId != null ">and apply_id = #{applyId}</if>
<if test="applyNo != null and applyNo != ''">and apply_no = #{applyNo}</if>
<if test="approvalNode != null ">and approval_node = #{approvalNode}</if>
<if test="approverId != null ">and approver_id = #{approverId}</if>
<if test="approverName != null and approverName != ''"> and approver_name like concat('%', #{approverName}, '%')</if>
<if test="approverName != null and approverName != ''">and approver_name like concat('%', #{approverName},
'%')
</if>
<if test="approverRole != null and approverRole != ''">and approver_role = #{approverRole}</if>
<if test="approvalOpinion != null and approvalOpinion != ''">and approval_opinion = #{approvalOpinion}</if>
<if test="approvalResult != null ">and approval_result = #{approvalResult}</if>
<if test="approvalTime != null ">and approval_time = #{approvalTime}</if>
<if test="processInstanceId != null and processInstanceId != ''"> and process_instance_id = #{processInstanceId}</if>
<if test="studentName != null and studentName != ''"> and student_name like concat('%', #{studentName}, '%')</if>
<if test="processInstanceId != null and processInstanceId != ''">and process_instance_id =
#{processInstanceId}
</if>
<if test="studentName != null and studentName != ''">and student_name like concat('%', #{studentName},
'%')
</if>
<if test="studentNo != null and studentNo != ''">and student_no = #{studentNo}</if>
</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">
<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>
@@ -99,7 +121,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<delete id="deleteDmsOutsideAccommodationApprovalById" parameterType="Long">
delete from dms_outside_accommodation_approval where id = #{id}
delete
from dms_outside_accommodation_approval
where id = #{id}
</delete>
<delete id="deleteDmsOutsideAccommodationApprovalByIds" parameterType="String">

View File

@@ -19,30 +19,82 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</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
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">
<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="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="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">
<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>
@@ -88,7 +140,9 @@ 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="deleteDmsOutsideAccommodationAttachmentByIds" parameterType="String">

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;
@@ -40,8 +42,7 @@ public class DmsOutsideAccommodationAttachmentController extends BaseController
@PreAuthorize("@ss.hasPermi('dormitory:outsideAccommodationAttachment:list')")
@GetMapping("/list")
@ApiOperation("查询外宿申请附件列表")
public TableDataInfo list(DmsOutsideAccommodationAttachment dmsOutsideAccommodationAttachment)
{
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,7 @@ 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));
}
}