package com.citygis.web.task; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.citygis.web.domain.TabFilePath; import com.citygis.web.domain.TabSystemSpace; import com.citygis.web.service.ITabFileParhService; import com.citygis.web.service.ITabSystemSpaceService; import com.citygis.web.utils.FileUtils; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @Author: zyl * @CreateTime: 2025-03-06 * @Description: 文件占用系统磁盘空间监控 * @Version: 1.0 */ @Component("fileSpaceTask") public class FileSpaceTask { @Resource ITabFileParhService iTabFileParhService; @Resource ITabSystemSpaceService tabSystemSpaceService; public void insertTabSystemSpace() { Snowflake snowflake = IdUtil.getSnowflake(1, 1); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(TabFilePath::getIsApply, 1); List list = iTabFileParhService.list(queryWrapper); List tabSystemSpaceList = new ArrayList<>(); list.forEach(tabFileParh -> { TabSystemSpace tabSystemSpace = new TabSystemSpace(); File file = new File(tabFileParh.getFilepath()); tabSystemSpace.setId(snowflake.nextId()); tabSystemSpace.setFilepath(tabFileParh.getFilepath()); tabSystemSpace.setType(tabFileParh.getType()); tabSystemSpace.setIp(tabFileParh.getIp()); tabSystemSpace.setFileSpace(FileUtils.getFilesLengthDesc(FileUtils.getFilesLengthB(file))); tabSystemSpace.setUsableSpace(FileUtils.getFilesLengthDesc(file.getUsableSpace())); tabSystemSpace.setFileTotalSpace(FileUtils.getFilesLengthDesc(file.getTotalSpace())); tabSystemSpace.setCreateTime(new Date()); tabSystemSpaceList.add(tabSystemSpace); }); tabSystemSpaceService.saveBatch(tabSystemSpaceList); } }