Bladeren bron

提交代码

zlwu 1 jaar geleden
bovenliggende
commit
cf21360ac1

+ 46 - 38
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<XskhDisciplineRecord, XskhDisciplineRecordVo> {
 public interface XskhDisciplineRecordMapper extends BaseMapperPlus<XskhDisciplineRecord, XskhDisciplineRecordVo> {
 
 
-    /**
-     * 查询学生选项列表(用于下拉框)
-     *
-     * @param keyword 搜索关键词(学号或姓名)
-     * @return 学生选项列表
-     */
-    List<XskhStudentOptionVo> selectStudentOptions(String keyword);
+        /**
+         * 查询学生选项列表(用于下拉框)
+         *
+         * @param keyword 搜索关键词(学号或姓名)
+         * @return 学生选项列表
+         */
+        List<XskhStudentOptionVo> selectStudentOptions(String keyword);
 
 
-    /**
-     * 查询班主任班级的违纪处分记录列表(班主任专用)
-     *
-     * @param page           分页参数
-     * @param bo             查询条件
-     * @param classTeacherId 班主任ID
-     * @return 分页查询结果
-     */
-    Page<XskhDisciplineRecordVo> selectClassTeacherVoPage(@Param("page") Page<XskhDisciplineRecordVo> page,
-            @Param("bo") XskhDisciplineRecordBo bo,
-            @Param("classTeacherId") Long classTeacherId);
+        /**
+         * 查询班主任班级的违纪处分记录列表(班主任专用)
+         *
+         * @param page           分页参数
+         * @param bo             查询条件
+         * @param classTeacherId 班主任ID
+         * @return 分页查询结果
+         */
+        Page<XskhDisciplineRecordVo> selectClassTeacherVoPage(@Param("page") Page<XskhDisciplineRecordVo> page,
+                        @Param("bo") XskhDisciplineRecordBo bo,
+                        @Param("classTeacherId") Long classTeacherId);
 
 
-    /**
-     * 获取指标关联的违纪处分类型和奖励类型
-     *
-     * @param indicatorId 指标ID
-     * @return 包含disciplineTypeIds和rewardTypeIds的Map
-     */
-    Map<String, String> selectIndicatorTypes(@Param("indicatorId") Long indicatorId);
+        /**
+         * 获取指标关联的违纪处分类型和奖励类型
+         *
+         * @param indicatorId 指标ID
+         * @return 包含disciplineTypeIds和rewardTypeIds的Map
+         */
+        Map<String, String> selectIndicatorTypes(@Param("indicatorId") Long indicatorId);
 
 
-    /**
-     * 获取学生在指定时间范围内的违纪处分记录
-     *
-     * @param studentId         学生ID
-     * @param disciplineTypeIds 违纪处分类型ID列表
-     * @param startTime         开始时间
-     * @param endTime           结束时间
-     * @return 违纪处分记录列表
-     */
-    List<XskhDisciplineRecordVo> selectStudentDisciplineRecords(@Param("studentId") Long studentId,
-            @Param("disciplineTypeIds") List<Long> disciplineTypeIds,
-            @Param("startTime") String startTime,
-            @Param("endTime") String endTime);
+        /**
+         * 获取学生在指定时间范围内的违纪处分记录
+         *
+         * @param studentId         学生ID
+         * @param disciplineTypeIds 违纪处分类型ID列表
+         * @param startTime         开始时间
+         * @param endTime           结束时间
+         * @return 违纪处分记录列表
+         */
+        List<XskhDisciplineRecordVo> selectStudentDisciplineRecords(@Param("studentId") Long studentId,
+                        @Param("disciplineTypeIds") List<Long> disciplineTypeIds,
+                        @Param("startTime") String startTime,
+                        @Param("endTime") String endTime);
+
+        /**
+         * 根据违纪记录ID逻辑删除宿舍卫生检查违纪关联记录
+         *
+         * @param disciplineRecordId 违纪记录ID
+         * @return 删除的记录数量
+         */
+        int deleteHygieneCheckViolationByDisciplineRecordId(@Param("disciplineRecordId") Long disciplineRecordId);
 
 
 }
 }

+ 21 - 0
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.mapper.XskhDisciplineRecordMapper;
 import org.dromara.xskh.service.IXskhDisciplineRecordService;
 import org.dromara.xskh.service.IXskhDisciplineRecordService;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import lombok.extern.slf4j.Slf4j;
 
 
 import java.util.Collection;
 import java.util.Collection;
 import java.util.List;
 import java.util.List;
@@ -30,6 +32,7 @@ import java.util.stream.Collectors;
  * @author ruoyi
  * @author ruoyi
  * @date 2025-01-03
  * @date 2025-01-03
  */
  */
+@Slf4j
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 @Service
 @Service
 public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordService {
 public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordService {
@@ -132,10 +135,28 @@ public class XskhDisciplineRecordServiceImpl implements IXskhDisciplineRecordSer
      * 批量删除学生违纪处分记录
      * 批量删除学生违纪处分记录
      */
      */
     @Override
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
         if (isValid) {
         if (isValid) {
             // TODO 做一些业务上的校验,判断是否需要校验
             // 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;
         return baseMapper.deleteBatchIds(ids) > 0;
     }
     }
 
 

+ 9 - 0
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
         order by create_time desc
     </select>
     </select>
 
 
+    <!-- 根据违纪记录ID逻辑删除宿舍卫生检查违纪关联记录 -->
+    <update id="deleteHygieneCheckViolationByDisciplineRecordId" parameterType="Long">
+        update xg_hygiene_check_violation
+        set deleted = 1,
+            update_time = now()
+        where discipline_record_id = #{disciplineRecordId}
+          and deleted = 0
+    </update>
+
 </mapper>
 </mapper>

+ 3 - 3
web/src/views/xskh/disciplineType/index.vue

@@ -184,9 +184,9 @@
               </el-form-item>
               </el-form-item>
             </el-col>
             </el-col>
           </el-row>
           </el-row>
-          <div class="form-tip">
-            <el-text size="small" type="info">录入违纪记录时,扣分必须在此范围内</el-text>
-          </div>
+          <!-- <div class="form-tip">
+            <el-text size="small" type="info">录入违纪记录时,扣分范围参考</el-text>
+          </div> -->
         </el-form-item>
         </el-form-item>
         <el-form-item label="类型说明" prop="remark">
         <el-form-item label="类型说明" prop="remark">
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
           <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />