From 0a96ebf80c6c6f18dba43dfdb6c3b510557000af Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Sun, 7 Sep 2025 23:04:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../XskhDisciplineRevokeController.java | 58 +- .../xskh/domain/XskhDisciplineRevoke.java | 23 +- .../domain/bo/XskhDisciplineRevokeBo.java | 32 +- .../domain/vo/XskhDisciplineRevokeVo.java | 43 +- .../mapper/XskhDisciplineRevokeMapper.java | 70 +- .../service/IXskhDisciplineRevokeService.java | 29 +- .../impl/XskhDisciplineRevokeServiceImpl.java | 96 ++- .../mapper/XskhDisciplineRevokeMapper.xml | 122 ++- .../学生考核管理/学生考核管理数据库模型.sql | 17 +- .../xskh/disciplineRevoke/disciplineRevoke.ts | 44 +- web/src/api/xskh/disciplineRevoke/types.ts | 95 ++- .../RevokeApplicationApproval.vue | 505 +++++++++-- .../RevokeApplicationApproval.vue | 790 ++++++++++++++++++ .../RevokeApplicationView.vue | 83 +- 14 files changed, 1832 insertions(+), 175 deletions(-) create mode 100644 web/src/views/xskh/studentAffairsApproval/RevokeApplicationApproval.vue diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRevokeController.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRevokeController.java index 5739870a..0f140299 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRevokeController.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/controller/XskhDisciplineRevokeController.java @@ -134,17 +134,6 @@ public class XskhDisciplineRevokeController extends BaseController { return toAjax(xskhDisciplineRevokeService.applyRevoke(bo)); } - /** - * 审核撤销申请 - */ - @SaCheckPermission("disciplineRevoke:disciplineRevoke:approve") - @Log(title = "审核撤销申请", businessType = BusinessType.UPDATE) - @RepeatSubmit() - @PutMapping("/approve") - public R approveRevoke(@Validated(EditGroup.class) @RequestBody XskhDisciplineRevokeBo bo) { - return toAjax(xskhDisciplineRevokeService.approveRevoke(bo)); - } - /** * 查询班主任班级的违纪撤销申请列表(班主任专用) */ @@ -155,15 +144,56 @@ public class XskhDisciplineRevokeController extends BaseController { return xskhDisciplineRevokeService.queryClassTeacherPageList(bo, pageQuery); } + /** + * 查询班主任已审核的违纪撤销申请列表(根据审核人查询历史记录) + */ + @SaCheckPermission("disciplineRevoke:classTeacher:list") + @GetMapping("/classTeacherReviewedList") + public TableDataInfo getClassTeacherReviewedRevokeApplications(XskhDisciplineRevokeBo bo, + PageQuery pageQuery) { + return xskhDisciplineRevokeService.queryClassTeacherReviewedPageList(bo, pageQuery); + } + /** * 班主任审核撤销申请 */ @SaCheckPermission("disciplineRevoke:classTeacher:approve") @Log(title = "班主任审核撤销申请", businessType = BusinessType.UPDATE) @RepeatSubmit() - @PutMapping("/classTeacherApprove") - public R classTeacherApproveRevoke(@Validated(EditGroup.class) @RequestBody XskhDisciplineRevokeBo bo) { - return toAjax(xskhDisciplineRevokeService.classTeacherApproveRevoke(bo)); + @PutMapping("/teacherApprove") + public R teacherApproveRevoke(@Validated(EditGroup.class) @RequestBody XskhDisciplineRevokeBo bo) { + return toAjax(xskhDisciplineRevokeService.teacherApproveRevoke(bo)); + } + + /** + * 查询学工处待审核的撤销申请列表(学工处专用) + */ + @SaCheckPermission("disciplineRevoke:studentAffairs:list") + @GetMapping("/studentAffairsList") + public TableDataInfo getStudentAffairsRevokeApplications(XskhDisciplineRevokeBo bo, + PageQuery pageQuery) { + return xskhDisciplineRevokeService.queryStudentAffairsPageList(bo, pageQuery); + } + + /** + * 学工处审核撤销申请 + */ + @SaCheckPermission("disciplineRevoke:studentAffairs:approve") + @Log(title = "学工处审核撤销申请", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping("/studentAffairsApprove") + public R studentAffairsApproveRevoke(@Validated(EditGroup.class) @RequestBody XskhDisciplineRevokeBo bo) { + return toAjax(xskhDisciplineRevokeService.studentAffairsApproveRevoke(bo)); + } + + /** + * 查询学工处已审核的撤销申请列表(学工处专用) + */ + @SaCheckPermission("disciplineRevoke:studentAffairs:list") + @GetMapping("/studentAffairsReviewedList") + public TableDataInfo getStudentAffairsReviewedRevokeApplications(XskhDisciplineRevokeBo bo, + PageQuery pageQuery) { + return xskhDisciplineRevokeService.queryStudentAffairsReviewedPageList(bo, pageQuery); } } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/XskhDisciplineRevoke.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/XskhDisciplineRevoke.java index 7a010b6e..e19d6aa2 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/XskhDisciplineRevoke.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/XskhDisciplineRevoke.java @@ -59,22 +59,37 @@ public class XskhDisciplineRevoke extends TenantEntity { private Date applyTime; /** - * 状态(1-待审核 2-审核通过 3-审核拒绝) + * 状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝) */ private String status; /** - * 审核人ID + * 班主任审核人ID + */ + private Long teacherApprovalBy; + + /** + * 班主任审核时间 + */ + private Date teacherApprovalTime; + + /** + * 班主任审核备注 + */ + private String teacherApprovalRemark; + + /** + * 学工处审核人ID */ private Long approvalBy; /** - * 审核时间 + * 学工处审核时间 */ private Date approvalTime; /** - * 审核备注 + * 学工处审核备注 */ private String approvalRemark; diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/bo/XskhDisciplineRevokeBo.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/bo/XskhDisciplineRevokeBo.java index 7a161fc1..0e598b9d 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/bo/XskhDisciplineRevokeBo.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/bo/XskhDisciplineRevokeBo.java @@ -68,24 +68,48 @@ public class XskhDisciplineRevokeBo extends BaseEntity { private Date applyTime; /** - * 状态(1-待审核 2-审核通过 3-审核拒绝) + * 状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝) */ private String status; /** - * 审核人ID + * 班主任审核人ID + */ + private Long teacherApprovalBy; + + /** + * 班主任审核时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date teacherApprovalTime; + + /** + * 班主任审核备注 + */ + private String teacherApprovalRemark; + + /** + * 学工处审核人ID */ private Long approvalBy; /** - * 审核时间 + * 学工处审核时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date approvalTime; /** - * 审核备注 + * 学工处审核备注 */ private String approvalRemark; + // VO类基础字段规范(避免MyBatis映射错误) + private Long createBy; // 创建者 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; // 创建时间 + private Long updateBy; // 更新者 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; // 更新时间 + } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/vo/XskhDisciplineRevokeVo.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/vo/XskhDisciplineRevokeVo.java index 17ae3452..5591c7f8 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/vo/XskhDisciplineRevokeVo.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/domain/vo/XskhDisciplineRevokeVo.java @@ -90,35 +90,60 @@ public class XskhDisciplineRevokeVo implements Serializable { private Date applyTime; /** - * 状态(1-待审核 2-审核通过 3-审核拒绝) + * 状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝) */ @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(dictType = "student_revoke_status") private String status; /** - * 审核人ID + * 班主任审核人ID */ - @ExcelProperty(value = "审核人ID") + @ExcelProperty(value = "班主任审核人ID") + private Long teacherApprovalBy; + + /** + * 班主任审核人姓名(关联查询) + */ + @ExcelProperty(value = "班主任审核人姓名") + private String teacherApprovalByName; + + /** + * 班主任审核时间 + */ + @ExcelProperty(value = "班主任审核时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date teacherApprovalTime; + + /** + * 班主任审核备注 + */ + @ExcelProperty(value = "班主任审核备注") + private String teacherApprovalRemark; + + /** + * 学工处审核人ID + */ + @ExcelProperty(value = "学工处审核人ID") private Long approvalBy; /** - * 审核人姓名(关联查询) + * 学工处审核人姓名(关联查询) */ - @ExcelProperty(value = "审核人姓名") + @ExcelProperty(value = "学工处审核人姓名") private String approvalByName; /** - * 审核时间 + * 学工处审核时间 */ - @ExcelProperty(value = "审核时间") + @ExcelProperty(value = "学工处审核时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date approvalTime; /** - * 审核备注 + * 学工处审核备注 */ - @ExcelProperty(value = "审核备注") + @ExcelProperty(value = "学工处审核备注") private String approvalRemark; /** diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRevokeMapper.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRevokeMapper.java index 236bba85..2659cd96 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRevokeMapper.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRevokeMapper.java @@ -15,24 +15,58 @@ import org.dromara.xskh.domain.vo.XskhDisciplineRevokeVo; */ public interface XskhDisciplineRevokeMapper extends BaseMapperPlus { - /** - * 根据违纪记录ID查询撤销申请记录 - * - * @param disciplineRecordId 违纪记录ID - * @return 撤销申请记录 - */ - XskhDisciplineRevokeVo selectByDisciplineRecordId(Long disciplineRecordId); + /** + * 根据违纪记录ID查询撤销申请记录 + * + * @param disciplineRecordId 违纪记录ID + * @return 撤销申请记录 + */ + XskhDisciplineRevokeVo selectByDisciplineRecordId(Long disciplineRecordId); - /** - * 查询班主任班级的违纪撤销申请列表(班主任专用) - * - * @param page 分页参数 - * @param bo 查询条件 - * @param classTeacherId 班主任ID - * @return 分页查询结果 - */ - Page selectClassTeacherVoPage(@Param("page") Page page, - @Param("bo") XskhDisciplineRevokeBo bo, - @Param("classTeacherId") Long classTeacherId); + /** + * 查询班主任班级的违纪撤销申请列表(班主任专用) + * + * @param page 分页参数 + * @param bo 查询条件 + * @param classTeacherId 班主任ID + * @return 分页查询结果 + */ + Page selectClassTeacherVoPage(@Param("page") Page page, + @Param("bo") XskhDisciplineRevokeBo bo, + @Param("classTeacherId") Long classTeacherId); + + /** + * 查询学工处待审核的违纪撤销申请列表(学工处专用) + * + * @param page 分页参数 + * @param bo 查询条件 + * @return 分页查询结果 + */ + Page selectStudentAffairsVoPage(@Param("page") Page page, + @Param("bo") XskhDisciplineRevokeBo bo); + + /** + * 查询学工处已审核的违纪撤销申请列表(学工处专用) + * + * @param page 分页参数 + * @param bo 查询条件 + * @return 分页查询结果 + */ + Page selectStudentAffairsReviewedVoPage( + @Param("page") Page page, + @Param("bo") XskhDisciplineRevokeBo bo); + + /** + * 查询班主任已审核的违纪撤销申请列表(根据审核人查询历史记录) + * + * @param page 分页参数 + * @param bo 查询条件 + * @param classTeacherId 班主任ID + * @return 分页查询结果 + */ + Page selectClassTeacherReviewedVoPage( + @Param("page") Page page, + @Param("bo") XskhDisciplineRevokeBo bo, + @Param("classTeacherId") Long classTeacherId); } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/IXskhDisciplineRevokeService.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/IXskhDisciplineRevokeService.java index f35b1bd8..9d845c3f 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/IXskhDisciplineRevokeService.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/IXskhDisciplineRevokeService.java @@ -61,19 +61,36 @@ public interface IXskhDisciplineRevokeService { */ Boolean applyRevoke(XskhDisciplineRevokeBo bo); - /** - * 审核撤销申请 - */ - Boolean approveRevoke(XskhDisciplineRevokeBo bo); - /** * 查询班主任班级的违纪撤销申请列表(班主任专用) */ TableDataInfo queryClassTeacherPageList(XskhDisciplineRevokeBo bo, PageQuery pageQuery); + /** + * 查询班主任已审核的违纪撤销申请列表(根据审核人查询历史记录) + */ + TableDataInfo queryClassTeacherReviewedPageList(XskhDisciplineRevokeBo bo, + PageQuery pageQuery); + /** * 班主任审核撤销申请 */ - Boolean classTeacherApproveRevoke(XskhDisciplineRevokeBo bo); + Boolean teacherApproveRevoke(XskhDisciplineRevokeBo bo); + + /** + * 查询学工处待审核的撤销申请列表(学工处专用) + */ + TableDataInfo queryStudentAffairsPageList(XskhDisciplineRevokeBo bo, PageQuery pageQuery); + + /** + * 学工处审核撤销申请 + */ + Boolean studentAffairsApproveRevoke(XskhDisciplineRevokeBo bo); + + /** + * 查询学工处已审核的撤销申请列表(学工处专用) + */ + TableDataInfo queryStudentAffairsReviewedPageList(XskhDisciplineRevokeBo bo, + PageQuery pageQuery); } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRevokeServiceImpl.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRevokeServiceImpl.java index 755167c6..06a483d5 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRevokeServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRevokeServiceImpl.java @@ -21,6 +21,7 @@ import org.springframework.stereotype.Service; import java.util.Collection; import java.util.Date; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -197,46 +198,53 @@ public class XskhDisciplineRevokeServiceImpl implements IXskhDisciplineRevokeSer bo.setStudentId(currentUserId); bo.setStudentName(disciplineRecord.getStudentName()); bo.setDisciplineRecordId(bo.getDisciplineRecordId()); - bo.setStatus("1"); // 待审核 + bo.setStatus("1"); // 待班主任审核 bo.setApplyTime(new Date()); return insertByBo(bo); } /** - * 审核撤销申请 + * 班主任审核撤销申请 */ @Override - public Boolean approveRevoke(XskhDisciplineRevokeBo bo) { - // 获取当前登录用户ID作为审核人 + public Boolean teacherApproveRevoke(XskhDisciplineRevokeBo bo) { + // 获取当前登录用户ID作为班主任审核人 Long currentUserId = LoginHelper.getUserId(); - bo.setApprovalBy(currentUserId); - bo.setApprovalTime(new Date()); + bo.setTeacherApprovalBy(currentUserId); + bo.setTeacherApprovalTime(new Date()); + + // 根据审核结果更新状态 + if ("2".equals(bo.getStatus())) { + // 班主任审核通过,状态改为待学工处审核 + } else if ("4".equals(bo.getStatus())) { + // 班主任审核拒绝,流程结束 + } return updateByBo(bo); } /** - * 查询班主任班级的违纪撤销申请列表(班主任专用) + * 查询学工处待审核的撤销申请列表(学工处专用) */ @Override - public TableDataInfo queryClassTeacherPageList(XskhDisciplineRevokeBo bo, + public TableDataInfo queryStudentAffairsPageList(XskhDisciplineRevokeBo bo, PageQuery pageQuery) { - // 获取当前登录用户ID(班主任ID) - Long currentUserId = LoginHelper.getUserId(); + // 只查询状态为2(待学工处审核)的申请 + bo.setStatus("2"); - // 调用mapper中的专用查询方法 - Page result = baseMapper.selectClassTeacherVoPage(pageQuery.build(), bo, currentUserId); + // 调用mapper中的学工处专用查询方法 + Page result = baseMapper.selectStudentAffairsVoPage(pageQuery.build(), bo); return TableDataInfo.build(result); } /** - * 班主任审核撤销申请 + * 学工处审核撤销申请 */ @Override - public Boolean classTeacherApproveRevoke(XskhDisciplineRevokeBo bo) { - // 获取当前登录用户ID作为审核人 + public Boolean studentAffairsApproveRevoke(XskhDisciplineRevokeBo bo) { + // 获取当前登录用户ID作为学工处审核人 Long currentUserId = LoginHelper.getUserId(); bo.setApprovalBy(currentUserId); @@ -245,8 +253,8 @@ public class XskhDisciplineRevokeServiceImpl implements IXskhDisciplineRevokeSer // 更新撤销申请状态 Boolean updateResult = updateByBo(bo); - // 如果撤销申请审批通过(状态为2),则同步更新违纪记录状态为已撤销 - if (updateResult && "2".equals(bo.getStatus())) { + // 如果学工处审核通过(状态为3),则同步更新违纪记录状态为已撤销 + if (updateResult && "3".equals(bo.getStatus())) { // 根据撤销申请ID查询完整信息以获取违纪记录ID XskhDisciplineRevokeVo revokeInfo = queryById(bo.getId()); if (revokeInfo != null && revokeInfo.getDisciplineRecordId() != null) { @@ -258,4 +266,58 @@ public class XskhDisciplineRevokeServiceImpl implements IXskhDisciplineRevokeSer return updateResult; } + /** + * 查询班主任班级的违纪撤销申请列表(班主任专用) + */ + @Override + public TableDataInfo queryClassTeacherPageList(XskhDisciplineRevokeBo bo, + PageQuery pageQuery) { + // 获取当前登录用户ID(班主任ID) + Long currentUserId = LoginHelper.getUserId(); + + // 只查询状态为1(待班主任审核)的申请 + bo.setStatus("1"); + + // 调用mapper中的专用查询方法 + Page result = baseMapper.selectClassTeacherVoPage(pageQuery.build(), bo, currentUserId); + return TableDataInfo.build(result); + } + + /** + * 查询班主任已审核的违纪撤销申请列表(根据审核人查询历史记录) + */ + @Override + public TableDataInfo queryClassTeacherReviewedPageList(XskhDisciplineRevokeBo bo, + PageQuery pageQuery) { + // 获取当前登录用户ID(班主任ID) + Long currentUserId = LoginHelper.getUserId(); + + // 调用mapper中的专用查询方法,通过teacherApprovalBy字段查询历史记录 + Page result = baseMapper.selectClassTeacherReviewedVoPage(pageQuery.build(), bo, + currentUserId); + return TableDataInfo.build(result); + } + + /** + * 查询学工处已审核的撤销申请列表(学工处专用) + */ + @Override + public TableDataInfo queryStudentAffairsReviewedPageList(XskhDisciplineRevokeBo bo, + PageQuery pageQuery) { + // 如果没有指定状态,则查询所有已审核状态(3-审核通过,5-审核拒绝) + if (StringUtils.isBlank(bo.getStatus())) { + // 通过params传递状态列表 + if (bo.getParams() == null) { + bo.setParams(new HashMap<>()); + } + if (!bo.getParams().containsKey("statusList")) { + bo.getParams().put("statusList", "3,5"); + } + } + + // 调用mapper中的学工处已审核查询方法 + Page result = baseMapper.selectStudentAffairsReviewedVoPage(pageQuery.build(), bo); + return TableDataInfo.build(result); + } + } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRevokeMapper.xml b/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRevokeMapper.xml index 8bb249b0..5e874576 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRevokeMapper.xml +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRevokeMapper.xml @@ -13,6 +13,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -26,17 +29,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select id, discipline_record_id, student_id, student_name, revoke_reason, revoke_evidence, apply_time, status, approval_by, approval_time, approval_remark, create_by, create_time, create_dept, update_by, update_time, deleted, tenant_id from xskh_discipline_revoke + select id, discipline_record_id, student_id, student_name, revoke_reason, revoke_evidence, apply_time, status, + teacher_approval_by, teacher_approval_time, teacher_approval_remark, + approval_by, approval_time, approval_remark, + create_by, create_time, create_dept, update_by, update_time, deleted, tenant_id + from xskh_discipline_revoke select dr.id, dr.discipline_record_id, dr.student_id, dr.student_name, dr.revoke_reason, - dr.revoke_evidence, dr.apply_time, dr.status, dr.approval_by, dr.approval_time, - dr.approval_remark, dr.create_by, dr.create_time, dr.create_dept, + dr.revoke_evidence, dr.apply_time, dr.status, + dr.teacher_approval_by, dr.teacher_approval_time, dr.teacher_approval_remark, + dr.approval_by, dr.approval_time, dr.approval_remark, + dr.create_by, dr.create_time, dr.create_dept, dr.update_by, dr.update_time, dr.deleted, dr.tenant_id, xdr.student_no, xdr.discipline_type_name, xdr.discipline_date, - u.nick_name as approval_by_name + tu.nick_name as teacher_approval_by_name, + au.nick_name as approval_by_name from xskh_discipline_revoke dr inner join xskh_discipline_record xdr on dr.discipline_record_id = xdr.id - left join sys_user u on dr.approval_by = u.user_id and u.del_flag = '0' and u.tenant_id = '000000' + left join sys_user tu on dr.teacher_approval_by = tu.user_id and tu.del_flag = '0' and tu.tenant_id = '000000' + left join sys_user au on dr.approval_by = au.user_id and au.del_flag = '0' and au.tenant_id = '000000' where dr.deleted = 0 and dr.student_id in ( select sm.id @@ -75,4 +90,93 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by dr.apply_time desc + + + + + + diff --git a/docs/设计文档/database/学生考核管理/学生考核管理数据库模型.sql b/docs/设计文档/database/学生考核管理/学生考核管理数据库模型.sql index 17018f26..0b913d09 100644 --- a/docs/设计文档/database/学生考核管理/学生考核管理数据库模型.sql +++ b/docs/设计文档/database/学生考核管理/学生考核管理数据库模型.sql @@ -112,10 +112,15 @@ CREATE TABLE `xskh_discipline_revoke` ( `revoke_reason` varchar(500) NOT NULL COMMENT '撤销申请原因', `revoke_evidence` varchar(500) DEFAULT NULL COMMENT '撤销证明材料,附件的oss_id,多个用逗号分隔', `apply_time` datetime NOT NULL COMMENT '申请时间', - `status` char(1) DEFAULT '1' COMMENT '状态(1-待审核 2-审核通过 3-审核拒绝)', - `approval_by` bigint(20) DEFAULT NULL COMMENT '审核人ID', - `approval_time` datetime DEFAULT NULL COMMENT '审核时间', - `approval_remark` varchar(500) DEFAULT NULL COMMENT '审核备注', + `status` char(1) DEFAULT '1' COMMENT '状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝)', + -- 班主任审核信息 + `teacher_approval_by` bigint(20) DEFAULT NULL COMMENT '班主任审核人ID', + `teacher_approval_time` datetime DEFAULT NULL COMMENT '班主任审核时间', + `teacher_approval_remark` varchar(500) DEFAULT NULL COMMENT '班主任审核备注', + -- 学工处审核信息(保留原有字段名,语义调整为学工处审核) + `approval_by` bigint(20) DEFAULT NULL COMMENT '学工处审核人ID', + `approval_time` datetime DEFAULT NULL COMMENT '学工处审核时间', + `approval_remark` varchar(500) DEFAULT NULL COMMENT '学工处审核备注', `create_by` bigint(20) DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', @@ -126,7 +131,9 @@ CREATE TABLE `xskh_discipline_revoke` ( PRIMARY KEY (`id`), KEY `idx_discipline_record_id` (`discipline_record_id`), KEY `idx_student_id` (`student_id`), - KEY `idx_status` (`status`) + KEY `idx_status` (`status`), + KEY `idx_teacher_approval_by` (`teacher_approval_by`), + KEY `idx_approval_by` (`approval_by`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='违纪处分撤销申请审批表'; -- 4. 奖励类型表 diff --git a/web/src/api/xskh/disciplineRevoke/disciplineRevoke.ts b/web/src/api/xskh/disciplineRevoke/disciplineRevoke.ts index b545c849..6138d21b 100644 --- a/web/src/api/xskh/disciplineRevoke/disciplineRevoke.ts +++ b/web/src/api/xskh/disciplineRevoke/disciplineRevoke.ts @@ -98,12 +98,50 @@ export const applyDisciplineRevoke = (data: DisciplineRevokeForm) => { }; /** - * 审核撤销申请 + * 查询班主任待审核的撤销申请列表 + * @param query + * @returns {*} + */ +export const listClassTeacherDisciplineRevoke = (query?: DisciplineRevokeQuery): AxiosPromise => { + return request({ + url: '/disciplineRevoke/disciplineRevoke/classTeacherList', + method: 'get', + params: query + }); +}; + +/** + * 班主任审核撤销申请 * @param data */ -export const approveDisciplineRevoke = (data: DisciplineRevokeForm) => { +export const teacherApproveDisciplineRevoke = (data: DisciplineRevokeForm) => { return request({ - url: '/disciplineRevoke/disciplineRevoke/approve', + url: '/disciplineRevoke/disciplineRevoke/teacherApprove', + method: 'put', + data: data + }); +}; + +/** + * 查询学工处待审核的撤销申请列表 + * @param query + * @returns {*} + */ +export const listStudentAffairsDisciplineRevoke = (query?: DisciplineRevokeQuery): AxiosPromise => { + return request({ + url: '/disciplineRevoke/disciplineRevoke/studentAffairsList', + method: 'get', + params: query + }); +}; + +/** + * 学工处审核撤销申请 + * @param data + */ +export const studentAffairsApproveDisciplineRevoke = (data: DisciplineRevokeForm) => { + return request({ + url: '/disciplineRevoke/disciplineRevoke/studentAffairsApprove', method: 'put', data: data }); diff --git a/web/src/api/xskh/disciplineRevoke/types.ts b/web/src/api/xskh/disciplineRevoke/types.ts index d24c8cbf..68138c9d 100644 --- a/web/src/api/xskh/disciplineRevoke/types.ts +++ b/web/src/api/xskh/disciplineRevoke/types.ts @@ -37,27 +37,47 @@ export interface DisciplineRevokeVO { applyTime: string; /** - * 状态(1-待审核 2-审核通过 3-审核拒绝) + * 状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝) */ status: string; /** - * 审核人ID + * 班主任审核人ID + */ + teacherApprovalBy: string | number; + + /** + * 班主任审核人姓名 + */ + teacherApprovalByName: string; + + /** + * 班主任审核时间 + */ + teacherApprovalTime: string; + + /** + * 班主任审核备注 + */ + teacherApprovalRemark: string; + + /** + * 学工处审核人ID */ approvalBy: string | number; /** - * 审核人姓名 + * 学工处审核人姓名 */ approvalByName: string; /** - * 审核时间 + * 学工处审核时间 */ approvalTime: string; /** - * 审核备注 + * 学工处审核备注 */ approvalRemark: string; @@ -80,6 +100,22 @@ export interface DisciplineRevokeVO { * 更新时间 */ updateTime: string; + + // 扩展字段(用于关联查询显示) + /** + * 学号 + */ + studentNo?: string; + + /** + * 违纪类型名称 + */ + disciplineTypeName?: string; + + /** + * 违纪日期 + */ + disciplineDate?: string; } export interface DisciplineRevokeForm { @@ -119,22 +155,37 @@ export interface DisciplineRevokeForm { applyTime?: string; /** - * 状态(1-待审核 2-审核通过 3-审核拒绝) + * 状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝) */ status?: string; /** - * 审核人ID + * 班主任审核人ID + */ + teacherApprovalBy?: string | number; + + /** + * 班主任审核时间 + */ + teacherApprovalTime?: string; + + /** + * 班主任审核备注 + */ + teacherApprovalRemark?: string; + + /** + * 学工处审核人ID */ approvalBy?: string | number; /** - * 审核时间 + * 学工处审核时间 */ approvalTime?: string; /** - * 审核备注 + * 学工处审核备注 */ approvalRemark?: string; } @@ -155,6 +206,11 @@ export interface DisciplineRevokeQuery extends PageQuery { */ studentName?: string; + /** + * 学号 + */ + studentNo?: string; + /** * 撤销申请原因 */ @@ -166,25 +222,30 @@ export interface DisciplineRevokeQuery extends PageQuery { applyTime?: string; /** - * 状态(1-待审核 2-审核通过 3-审核拒绝) + * 状态(1-待班主任审核 2-待学工处审核 3-审核通过 4-班主任审核拒绝 5-学工处审核拒绝) */ status?: string; /** - * 审核人ID + * 班主任审核人ID + */ + teacherApprovalBy?: string | number; + + /** + * 班主任审核时间 + */ + teacherApprovalTime?: string; + + /** + * 学工处审核人ID */ approvalBy?: string | number; /** - * 审核时间 + * 学工处审核时间 */ approvalTime?: string; - /** - * 审核备注 - */ - approvalRemark?: string; - /** * 其他参数 */ diff --git a/web/src/views/xskh/classTeacherDiscipline/RevokeApplicationApproval.vue b/web/src/views/xskh/classTeacherDiscipline/RevokeApplicationApproval.vue index 53d53204..2bb1d4f4 100644 --- a/web/src/views/xskh/classTeacherDiscipline/RevokeApplicationApproval.vue +++ b/web/src/views/xskh/classTeacherDiscipline/RevokeApplicationApproval.vue @@ -33,56 +33,94 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -105,6 +143,32 @@ + + + +
+
+
+
+ +
+ + {{ getFileExt(file.name) }} +
+
+
+ {{ getShortFileName(file.name) }} +
+
+ + + +
+
+
+
+
+ @@ -120,11 +184,15 @@ + + diff --git a/web/src/views/xskh/xsDisciplineRecord/RevokeApplicationView.vue b/web/src/views/xskh/xsDisciplineRecord/RevokeApplicationView.vue index 70e1ab62..5605b889 100644 --- a/web/src/views/xskh/xsDisciplineRecord/RevokeApplicationView.vue +++ b/web/src/views/xskh/xsDisciplineRecord/RevokeApplicationView.vue @@ -111,14 +111,9 @@ - + - -
{{ revokeData.approvalTime }}
-
- -
{{ revokeData.approvalByName }}
-
+
@@ -130,14 +125,6 @@ - - - -
{{ revokeData.approvalRemark }}
-
-
-
- @@ -166,6 +153,57 @@ + + +
+

班主任审核

+ + + +
{{ revokeData.teacherApprovalTime }}
+
+
+ + +
{{ revokeData.teacherApprovalByName }}
+
+
+
+ + + +
{{ revokeData.teacherApprovalRemark }}
+
+
+
+
+ + +
+

学工处审核

+ + + +
{{ revokeData.approvalTime }}
+
+
+ + +
{{ revokeData.approvalByName }}
+
+
+
+ + + +
{{ revokeData.approvalRemark }}
+
+
+
+
@@ -446,6 +484,21 @@ defineExpose({ border-bottom: 1px solid #ebeef5; } +.section-subtitle { + font-size: 14px; + font-weight: 600; + color: #606266; + margin-bottom: 10px; + padding-bottom: 5px; + border-bottom: 1px dashed #ebeef5; +} + +.approval-section { + margin-top: 20px; + padding-top: 15px; + border-top: 1px dashed #ebeef5; +} + .discipline-record-section { margin-bottom: 20px; }