瀏覽代碼

feat(system): 添加学习文件人员批量恢复功能

- 在 StudyFilePersonDao 中添加 batchRecoverByIds 方法,用于批量恢复删除状态
- 在 StudyFilePersonService 接口中添加 batchRecoverByIds 方法
- 在 StudyFilePersonServiceImpl 中实现 batchRecoverByIds 方法
- 在 StudyFileServiceImpl 中使用 batchRecoverByIds 方法替代原有的人员恢复逻辑
- 移除了 StudyFileServiceImpl 中的 convertToPerson 方法
lg 1 周之前
父節點
當前提交
a69f22eb25

+ 10 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/dao/StudyFilePersonDao.java

@@ -2,6 +2,16 @@ package com.rongwei.bscommon.system.dao;
 
 import com.rongwei.bsentity.domain.StudyFilePersonDo;
 import com.rongwei.rwcommon.base.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface StudyFilePersonDao extends BaseDao<StudyFilePersonDo> {
+    /**
+     * 批量恢复删除状态
+     *
+     * @param recoverIds ID列表
+     * @return 影响行数
+     */
+    int batchRecoverByIds(@Param("recoverIds") List<String> recoverIds);
 }

+ 7 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/service/StudyFilePersonService.java

@@ -20,4 +20,11 @@ public interface StudyFilePersonService extends BaseService<StudyFilePersonDo> {
      * @param id 学习文件id
      */
     boolean deleteByStudyFileId(String id);
+
+    /**
+     * 批量恢复学习文件人员
+     *
+     * @param recoverIds 恢复的id
+     */
+    int batchRecoverByIds(List<String> recoverIds);
 }

+ 18 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/service/impl/StudyFilePersonServiceImpl.java

@@ -4,6 +4,7 @@ import com.rongwei.bscommon.system.dao.StudyFilePersonDao;
 import com.rongwei.bscommon.system.service.StudyFilePersonService;
 import com.rongwei.bsentity.domain.StudyFilePersonDo;
 import com.rongwei.rwcommon.base.BaseServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -11,6 +12,9 @@ import java.util.List;
 @Service
 public class StudyFilePersonServiceImpl extends BaseServiceImpl<StudyFilePersonDao, StudyFilePersonDo>
         implements StudyFilePersonService {
+    @Autowired
+    private StudyFilePersonDao studyFilePersonDao;
+
     /**
      * 根据学习文件id查询学习文件人员
      *
@@ -36,4 +40,18 @@ public class StudyFilePersonServiceImpl extends BaseServiceImpl<StudyFilePersonD
                 .eq(StudyFilePersonDo::getDeleted, "0")
                 .remove();
     }
+
+    /**
+     * 批量恢复学习文件人员
+     *
+     * @param recoverIds 恢复的id
+     * @return 恢复的行数
+     */
+    @Override
+    public int batchRecoverByIds(List<String> recoverIds) {
+        if (recoverIds == null || recoverIds.isEmpty()) {
+            return 0;
+        }
+        return studyFilePersonDao.batchRecoverByIds(recoverIds);
+    }
 }

+ 5 - 21
qhse-common/src/main/java/com/rongwei/bscommon/system/service/impl/StudyFileServiceImpl.java

@@ -136,34 +136,18 @@ public class StudyFileServiceImpl implements StudyFileService {
             return R.ok();
         }
 
-        // 恢复人员
-        List<StudyFilePersonDo> persons = personRecords.stream()
-                .map(record -> convertToPerson(record, currentFile))
+        // 批量恢复人员的ID
+        List<String> recoverIds = personRecords.stream().map(StudyFilePersonRecordDo::getMainId)
                 .collect(Collectors.toList());
-        studyFilePersonService.saveBatch(persons);
+        studyFilePersonService.batchRecoverByIds(recoverIds);
         return R.ok();
     }
 
-    /**
-     * 转换人员信息
-     *
-     * @param record      历史记录
-     * @param currentFile 最新文件
-     * @return 人员信息
-     */
-    private StudyFilePersonDo convertToPerson(StudyFilePersonRecordDo record, StudyFileDo currentFile) {
-        StudyFilePersonDo studyFilePersonDo = new StudyFilePersonDo();
-        BeanUtils.copyProperties(record, studyFilePersonDo);
-        studyFilePersonDo.setId(SecurityUtil.getUUID());
-        studyFilePersonDo.setStudyFileId(currentFile.getId());
-        return studyFilePersonDo;
-    }
-
     /**
      * 创建历史学习文件记录
      *
      * @param source      源数据
-     * @param currentUser
+     * @param currentUser 当前用户
      */
     private StudyFileRecordDo createHistoryFileRecord(StudyFileDo source, SysUserVo currentUser) {
         StudyFileRecordDo target = new StudyFileRecordDo();
@@ -216,7 +200,7 @@ public class StudyFileServiceImpl implements StudyFileService {
      *
      * @param source        源数据
      * @param historyFileId 历史文件ID
-     * @param currentUser
+     * @param currentUser   当前用户
      */
     private StudyFilePersonRecordDo convertToHistoryPersonRecord(StudyFilePersonDo source,
                                                                  String historyFileId, SysUserVo currentUser) {

+ 14 - 0
qhse-common/src/main/resources/mybatis/system/StudyFilePersonDao.xml

@@ -0,0 +1,14 @@
+<?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">
+
+<mapper namespace="com.rongwei.bscommon.system.dao.StudyFilePersonDao">
+
+    <update id="batchRecoverByIds">
+        UPDATE qhse_study_file_person
+        SET DELETED = 0
+        WHERE ID IN
+        <foreach collection="recoverIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+</mapper>