fix: 修改删除能谱功能 增加日志输入和文件夹判断

This commit is contained in:
xiaoguangbin 2024-12-05 16:24:17 +08:00
parent 926aa9fe10
commit 10e07c5969

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
@ -38,6 +39,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import java.io.File;
import java.util.*;
import java.util.stream.Collectors;
@ -112,9 +114,9 @@ public class GardsSampleDataServiceImpl extends ServiceImpl<GardsSampleDataMappe
TransactionDefinition txDef = new DefaultTransactionDefinition();
final TransactionStatus txStatus = transactionManager.getTransaction(txDef);
try {
String ftpRootPath = ftpUtil.getFtpRootPath();
String savePath = ftpRootPath + pathProperties.getSaveFilePath() + StrUtil.SLASH;
String logPath = ftpRootPath + pathProperties.getLogPath() + StrUtil.SLASH;
String rootPath = pathProperties.getRootPath();
String savePath = rootPath + pathProperties.getSaveFilePath() + StrUtil.SLASH;
String logPath = rootPath + pathProperties.getLogPath() + StrUtil.SLASH;
/* 删除数据库数据 */
// 过滤掉多余的表
String ORIGINAL = "ORIGINAL";String RNAUTO = "RNAUTO";String RNMAN = "RNMAN";
@ -138,7 +140,7 @@ public class GardsSampleDataServiceImpl extends ServiceImpl<GardsSampleDataMappe
// 删除表数据
if (CollUtil.isNotEmpty(allTables))
delTables(allTables, sampleId);
// baseMapper.delBatch(allTables, sampleId);
// baseMapper.delBatch(allTables, sampleId);
}
else {
if (rnAuto){
@ -152,7 +154,7 @@ public class GardsSampleDataServiceImpl extends ServiceImpl<GardsSampleDataMappe
// 删除表数据
if (CollUtil.isNotEmpty(autoTables))
delTables(autoTables, sampleId);
// baseMapper.delBatch(autoTables, sampleId);
// baseMapper.delBatch(autoTables, sampleId);
}
if (rnMan){
// 收集人工交互库所有表名
@ -165,23 +167,27 @@ public class GardsSampleDataServiceImpl extends ServiceImpl<GardsSampleDataMappe
// 删除表数据
if (CollUtil.isNotEmpty(manTables))
delTables(manTables, sampleId);
// baseMapper.delBatch(manTables, sampleId);
// baseMapper.delBatch(manTables, sampleId);
}
}
transactionManager.commit(txStatus);
needDel = needDel.stream().filter(StrUtil::isNotBlank).collect(Collectors.toList());
if (CollUtil.isEmpty(needDel))
return Result.OK("Data cleaning is complete. No files need to be cleaned!");
// 删除FTP文件
List<String> failList = new ArrayList<>();
for (String path:needDel) {
boolean success = ftpUtil.removeFiles(path);
if (!success) {
failList.add(path);
// 删除本地文件
List<String> fails = new ArrayList<>();
for (String path : needDel) {
log.info("删除能谱文件:{}", path);
File file = new File(path);
if (file.isDirectory()) {
fails.add(path);
continue;
}
boolean success = FileUtil.del(path);
if (!success) fails.add(path);
}
if (CollUtil.isNotEmpty(failList))
return Result.error("Data clearing is complete, but file clearing fails!", failList);
if (CollUtil.isNotEmpty(fails))
return Result.error("Data clearing is complete, but file clearing fails!", fails);
return Result.OK("Data and file cleanup complete!");
}catch (Exception e){
transactionManager.rollback(txStatus);