From cf21360ac14dadf86cf995a47f4dd374de8e57dc Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Sun, 7 Sep 2025 07:43:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/XskhDisciplineRecordMapper.java | 84 ++++++++++--------- .../impl/XskhDisciplineRecordServiceImpl.java | 21 +++++ .../mapper/XskhDisciplineRecordMapper.xml | 9 ++ web/src/views/xskh/disciplineType/index.vue | 6 +- 4 files changed, 79 insertions(+), 41 deletions(-) diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java index fe285aaa..3557020d 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/mapper/XskhDisciplineRecordMapper.java @@ -19,46 +19,54 @@ import java.util.Map; */ public interface XskhDisciplineRecordMapper extends BaseMapperPlus { - /** - * 查询学生选项列表(用于下拉框) - * - * @param keyword 搜索关键词(学号或姓名) - * @return 学生选项列表 - */ - List selectStudentOptions(String keyword); + /** + * 查询学生选项列表(用于下拉框) + * + * @param keyword 搜索关键词(学号或姓名) + * @return 学生选项列表 + */ + List selectStudentOptions(String keyword); - /** - * 查询班主任班级的违纪处分记录列表(班主任专用) - * - * @param page 分页参数 - * @param bo 查询条件 - * @param classTeacherId 班主任ID - * @return 分页查询结果 - */ - Page selectClassTeacherVoPage(@Param("page") Page page, - @Param("bo") XskhDisciplineRecordBo bo, - @Param("classTeacherId") Long classTeacherId); + /** + * 查询班主任班级的违纪处分记录列表(班主任专用) + * + * @param page 分页参数 + * @param bo 查询条件 + * @param classTeacherId 班主任ID + * @return 分页查询结果 + */ + Page selectClassTeacherVoPage(@Param("page") Page page, + @Param("bo") XskhDisciplineRecordBo bo, + @Param("classTeacherId") Long classTeacherId); - /** - * 获取指标关联的违纪处分类型和奖励类型 - * - * @param indicatorId 指标ID - * @return 包含disciplineTypeIds和rewardTypeIds的Map - */ - Map selectIndicatorTypes(@Param("indicatorId") Long indicatorId); + /** + * 获取指标关联的违纪处分类型和奖励类型 + * + * @param indicatorId 指标ID + * @return 包含disciplineTypeIds和rewardTypeIds的Map + */ + Map selectIndicatorTypes(@Param("indicatorId") Long indicatorId); - /** - * 获取学生在指定时间范围内的违纪处分记录 - * - * @param studentId 学生ID - * @param disciplineTypeIds 违纪处分类型ID列表 - * @param startTime 开始时间 - * @param endTime 结束时间 - * @return 违纪处分记录列表 - */ - List selectStudentDisciplineRecords(@Param("studentId") Long studentId, - @Param("disciplineTypeIds") List disciplineTypeIds, - @Param("startTime") String startTime, - @Param("endTime") String endTime); + /** + * 获取学生在指定时间范围内的违纪处分记录 + * + * @param studentId 学生ID + * @param disciplineTypeIds 违纪处分类型ID列表 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return 违纪处分记录列表 + */ + List selectStudentDisciplineRecords(@Param("studentId") Long studentId, + @Param("disciplineTypeIds") List disciplineTypeIds, + @Param("startTime") String startTime, + @Param("endTime") String endTime); + + /** + * 根据违纪记录ID逻辑删除宿舍卫生检查违纪关联记录 + * + * @param disciplineRecordId 违纪记录ID + * @return 删除的记录数量 + */ + int deleteHygieneCheckViolationByDisciplineRecordId(@Param("disciplineRecordId") Long disciplineRecordId); } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java index d7cba428..9f12aaf5 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/java/org/dromara/xskh/service/impl/XskhDisciplineRecordServiceImpl.java @@ -17,6 +17,8 @@ import org.dromara.xskh.domain.vo.XskhStudentOptionVo; import org.dromara.xskh.mapper.XskhDisciplineRecordMapper; import org.dromara.xskh.service.IXskhDisciplineRecordService; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import lombok.extern.slf4j.Slf4j; import java.util.Collection; import java.util.List; @@ -30,6 +32,7 @@ import java.util.stream.Collectors; * @author ruoyi * @date 2025-01-03 */ +@Slf4j @RequiredArgsConstructor @Service public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordService { @@ -132,10 +135,28 @@ public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordSer * 批量删除学生违纪处分记录 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if (isValid) { // TODO 做一些业务上的校验,判断是否需要校验 } + + // 在删除违纪记录前,先删除相关的宿舍卫生检查违纪关联记录 + for (Long id : ids) { + try { + // 查询违纪记录,判断是否为宿舍卫生检查来源 + XskhDisciplineRecordVo disciplineRecord = baseMapper.selectVoById(id); + if (disciplineRecord != null && "1".equals(disciplineRecord.getViolationSource())) { + // 删除宿舍卫生检查违纪关联记录 + int deletedCount = baseMapper.deleteHygieneCheckViolationByDisciplineRecordId(id); + log.info("删除违纪记录ID: {} 对应的宿舍卫生检查违纪关联记录,删除数量: {}", id, deletedCount); + } + } catch (Exception e) { + log.error("删除违纪记录ID: {} 对应的宿舍卫生检查违纪关联记录失败: {}", id, e.getMessage(), e); + throw new RuntimeException("删除宿舍卫生检查违纪关联记录失败", e); + } + } + return baseMapper.deleteBatchIds(ids) > 0; } diff --git a/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml b/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml index f22a2fb5..9713a923 100644 --- a/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml +++ b/backend/ruoyi-modules/ruoyi-xskh/src/main/resources/mapper/XskhDisciplineRecordMapper.xml @@ -125,4 +125,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc + + + update xg_hygiene_check_violation + set deleted = 1, + update_time = now() + where discipline_record_id = #{disciplineRecordId} + and deleted = 0 + + diff --git a/web/src/views/xskh/disciplineType/index.vue b/web/src/views/xskh/disciplineType/index.vue index bd6f9dd8..c89841bd 100644 --- a/web/src/views/xskh/disciplineType/index.vue +++ b/web/src/views/xskh/disciplineType/index.vue @@ -184,9 +184,9 @@ -
- 录入违纪记录时,扣分必须在此范围内 -
+