|
@@ -4,9 +4,10 @@ import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUnit;
|
|
import cn.hutool.core.date.DateUnit;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.io.FileUtil;
|
|
import cn.hutool.core.io.FileUtil;
|
|
|
-import cn.hutool.core.lang.tree.Tree;
|
|
|
|
|
-import cn.hutool.core.lang.tree.TreeNodeConfig;
|
|
|
|
|
-import cn.hutool.core.lang.tree.TreeUtil;
|
|
|
|
|
|
|
+import cn.hutool.core.io.FileUtil;
|
|
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
+import cn.hutool.core.util.RuntimeUtil;
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.ReUtil;
|
|
import cn.hutool.core.util.ReUtil;
|
|
|
import cn.hutool.core.util.RuntimeUtil;
|
|
import cn.hutool.core.util.RuntimeUtil;
|
|
@@ -19,7 +20,6 @@ import com.gz.dto.borrow.ArchiveBorrowDTO;
|
|
|
import com.gz.dto.system.ArchivesTreeDTO;
|
|
import com.gz.dto.system.ArchivesTreeDTO;
|
|
|
import com.gz.mapper.borrow.ArchiveBorrowMapper;
|
|
import com.gz.mapper.borrow.ArchiveBorrowMapper;
|
|
|
import com.gz.mapper.statistics.SelectStatisticsMapper;
|
|
import com.gz.mapper.statistics.SelectStatisticsMapper;
|
|
|
-import com.gz.mapper.system.ArchivesTreeMapper;
|
|
|
|
|
import com.gz.rvo.statistics.ArchiveStatisticsRVO;
|
|
import com.gz.rvo.statistics.ArchiveStatisticsRVO;
|
|
|
import com.gz.rvo.statistics.ArchiveYearStatisticsRVO;
|
|
import com.gz.rvo.statistics.ArchiveYearStatisticsRVO;
|
|
|
import com.gz.rvo.statistics.BorrowStatisticsRVO;
|
|
import com.gz.rvo.statistics.BorrowStatisticsRVO;
|
|
@@ -27,6 +27,7 @@ import com.gz.service.statistics.SelectStatisticsService;
|
|
|
import com.gz.service.system.ArchivesTreeService;
|
|
import com.gz.service.system.ArchivesTreeService;
|
|
|
import com.gz.service.system.impl.AuthServiceImpl;
|
|
import com.gz.service.system.impl.AuthServiceImpl;
|
|
|
import com.gz.utils.JwtUtils;
|
|
import com.gz.utils.JwtUtils;
|
|
|
|
|
+import com.gz.utils.UnitUtils;
|
|
|
import com.gz.vo.statistics.StatisticsVO;
|
|
import com.gz.vo.statistics.StatisticsVO;
|
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
@@ -102,9 +103,11 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
//占用磁盘大小临时存储到map
|
|
//占用磁盘大小临时存储到map
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
|
|
|
|
+ Map<String, Long> map = new HashMap<>();
|
|
|
// 档案文件根目录
|
|
// 档案文件根目录
|
|
|
File baseDir = FileUtil.file(this.baseDir);
|
|
File baseDir = FileUtil.file(this.baseDir);
|
|
|
|
|
+ //占用磁盘的总大小
|
|
|
|
|
+ Long hj=0l;
|
|
|
if (FileUtil.exist(baseDir) && FileUtil.isDirectory(baseDir)) {
|
|
if (FileUtil.exist(baseDir) && FileUtil.isDirectory(baseDir)) {
|
|
|
// 全宗号
|
|
// 全宗号
|
|
|
for (File qzh : baseDir.listFiles()) {
|
|
for (File qzh : baseDir.listFiles()) {
|
|
@@ -119,12 +122,14 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
//二级分类
|
|
//二级分类
|
|
|
for (File category2 : category.listFiles()) {
|
|
for (File category2 : category.listFiles()) {
|
|
|
if (ObjectUtil.isNotEmpty(category2)) {
|
|
if (ObjectUtil.isNotEmpty(category2)) {
|
|
|
- String s1 = this.getLinuxDirectorySize(category);
|
|
|
|
|
|
|
+ Long s1 = this.getLinuxDirectorySize(category);
|
|
|
|
|
+ hj+=s1;
|
|
|
map.put(category.getName(), s1);
|
|
map.put(category.getName(), s1);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- String s2 = this.getLinuxDirectorySize(category);
|
|
|
|
|
|
|
+ Long s2 = this.getLinuxDirectorySize(category);
|
|
|
|
|
+ hj+=s2;
|
|
|
map.put(category.getName(), s2);
|
|
map.put(category.getName(), s2);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -134,7 +139,7 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//内存大小赋值
|
|
//内存大小赋值
|
|
|
- for (Map.Entry<String, String> entry : map.entrySet()) {
|
|
|
|
|
|
|
+ for (Map.Entry<String, Long> entry : map.entrySet()) {
|
|
|
for (ArchiveStatisticsRVO li : tree) {
|
|
for (ArchiveStatisticsRVO li : tree) {
|
|
|
if (li.getTitle().equals(entry.getKey())) {
|
|
if (li.getTitle().equals(entry.getKey())) {
|
|
|
li.setSpace(entry.getValue());
|
|
li.setSpace(entry.getValue());
|
|
@@ -156,6 +161,8 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ tree.get(tree.size()-1).setSumSpace(UnitUtils.storageUnitConvertStr(hj));
|
|
|
stringRedisTemplate.opsForValue().set(key, JSONObject.toJSONString(tree), DataGlobalVariable.CACHE_EXPIRES, DataGlobalVariable.TIME_UNIT);
|
|
stringRedisTemplate.opsForValue().set(key, JSONObject.toJSONString(tree), DataGlobalVariable.CACHE_EXPIRES, DataGlobalVariable.TIME_UNIT);
|
|
|
return tree;
|
|
return tree;
|
|
|
}
|
|
}
|
|
@@ -177,6 +184,7 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
List<ArchiveYearStatisticsRVO> archiveYearStatisticsRVOS = selectStatisticsMapper.selectArchiveYearStatistics(vo);
|
|
List<ArchiveYearStatisticsRVO> archiveYearStatisticsRVOS = selectStatisticsMapper.selectArchiveYearStatistics(vo);
|
|
|
// 档案文件根目录
|
|
// 档案文件根目录
|
|
|
File baseDir = FileUtil.file(this.baseDir);
|
|
File baseDir = FileUtil.file(this.baseDir);
|
|
|
|
|
+ Long hj=0l;
|
|
|
log.info("{}{}", baseDir, baseDir.isDirectory());
|
|
log.info("{}{}", baseDir, baseDir.isDirectory());
|
|
|
if (FileUtil.exist(baseDir) && FileUtil.isDirectory(baseDir)) {
|
|
if (FileUtil.exist(baseDir) && FileUtil.isDirectory(baseDir)) {
|
|
|
// 全宗号
|
|
// 全宗号
|
|
@@ -185,7 +193,8 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
// 年份
|
|
// 年份
|
|
|
for (File year : qzh.listFiles()) {
|
|
for (File year : qzh.listFiles()) {
|
|
|
if (ObjectUtil.isNotEmpty(year)) {
|
|
if (ObjectUtil.isNotEmpty(year)) {
|
|
|
- String linuxDirectorySize = this.getLinuxDirectorySize(year);
|
|
|
|
|
|
|
+ Long linuxDirectorySize = this.getLinuxDirectorySize(year);
|
|
|
|
|
+ hj+=linuxDirectorySize;
|
|
|
archiveYearStatisticsRVOS.forEach(statisticsRVO -> {
|
|
archiveYearStatisticsRVOS.forEach(statisticsRVO -> {
|
|
|
if (statisticsRVO.getGdnd().equals(year.getName())) {
|
|
if (statisticsRVO.getGdnd().equals(year.getName())) {
|
|
|
statisticsRVO.setSpace(linuxDirectorySize);
|
|
statisticsRVO.setSpace(linuxDirectorySize);
|
|
@@ -196,17 +205,19 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ archiveYearStatisticsRVOS.get(archiveYearStatisticsRVOS.size()-1).setSumSpace(UnitUtils.storageUnitConvertStr(hj));
|
|
|
stringRedisTemplate.opsForValue().set(key, JSONObject.toJSONString(archiveYearStatisticsRVOS), DataGlobalVariable.CACHE_EXPIRES, DataGlobalVariable.TIME_UNIT);
|
|
stringRedisTemplate.opsForValue().set(key, JSONObject.toJSONString(archiveYearStatisticsRVOS), DataGlobalVariable.CACHE_EXPIRES, DataGlobalVariable.TIME_UNIT);
|
|
|
return archiveYearStatisticsRVOS;
|
|
return archiveYearStatisticsRVOS;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * @return 文件夹占用空间大小 单位:字节(K) 1GB = 1024MB = 1024 * 1024 KB = 1024 * 1024 * 1024 B
|
|
|
* @description 获取Linux文件夹大小
|
|
* @description 获取Linux文件夹大小
|
|
|
* @author ZhangHai
|
|
* @author ZhangHai
|
|
|
* @since 2021/9/15 11:33
|
|
* @since 2021/9/15 11:33
|
|
|
*/
|
|
*/
|
|
|
- private String getLinuxDirectorySize(File file) {
|
|
|
|
|
|
|
+ private Long getLinuxDirectorySize(File file) {
|
|
|
if (!file.exists()) {
|
|
if (!file.exists()) {
|
|
|
throw new BusinessException(500, "文件见不存在");
|
|
throw new BusinessException(500, "文件见不存在");
|
|
|
}
|
|
}
|
|
@@ -214,13 +225,19 @@ public class SelectStatisticsServiceImpl implements SelectStatisticsService {
|
|
|
throw new BusinessException(500, "参数非文件见");
|
|
throw new BusinessException(500, "参数非文件见");
|
|
|
}
|
|
}
|
|
|
// 执行命令Format
|
|
// 执行命令Format
|
|
|
- final String commandFomat = "du -sh {}";
|
|
|
|
|
|
|
+ final String commandFomat = "du -s {}";
|
|
|
// 需要执行的命令
|
|
// 需要执行的命令
|
|
|
final String command = StrUtil.format(commandFomat, file.getAbsoluteFile());
|
|
final String command = StrUtil.format(commandFomat, file.getAbsoluteFile());
|
|
|
log.info("文件夹大小扫描命令执行:{}", command);
|
|
log.info("文件夹大小扫描命令执行:{}", command);
|
|
|
// 执行命令的结果
|
|
// 执行命令的结果
|
|
|
String commandResult = RuntimeUtil.execForStr(command);
|
|
String commandResult = RuntimeUtil.execForStr(command);
|
|
|
- return commandResult.substring(0, commandResult.indexOf(" "));
|
|
|
|
|
|
|
+ // 占用空间大小 String类型
|
|
|
|
|
+ String sizeStr = commandResult.substring(0, commandResult.indexOf("\t"));
|
|
|
|
|
+ Long size = 0L;
|
|
|
|
|
+ if (StrUtil.isNotEmpty(sizeStr)) {
|
|
|
|
|
+ size = Long.parseLong(sizeStr);
|
|
|
|
|
+ }
|
|
|
|
|
+ return size;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|