优化数据总览
This commit is contained in:
@@ -4,6 +4,7 @@ import com.sdm.data.model.dto.NodeSizeDTO;
|
||||
import com.sdm.data.model.dto.UserTotalFileSizeDTO;
|
||||
import com.sdm.data.model.entity.FileStorage;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.data.model.req.QueryBigFileReq;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -30,4 +31,6 @@ public interface FileStorageMapper extends BaseMapper<FileStorage> {
|
||||
List<UserTotalFileSizeDTO> getTotalFileSizeByCreator(@Param("userIds") List<Long> userIds,@Param("intervalMonths") Integer intervalMonths);
|
||||
|
||||
List<UserTotalFileSizeDTO> getTotalFileSizeByCreatorAndTargetYm(@Param("userIds") List<Long> userIds,@Param("targetYm") String targetYm);
|
||||
|
||||
List<FileStorage> selectBigFiles(@Param("queryBigFileReq") QueryBigFileReq queryBigFileReq, @Param("fileSizeInBytes") Long fileSizeInBytes);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.sdm.data.model.dto.NodeSizeDTO;
|
||||
import com.sdm.data.model.dto.UserTotalFileSizeDTO;
|
||||
import com.sdm.data.model.entity.FileStorage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.sdm.data.model.req.QueryBigFileReq;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@@ -24,5 +25,6 @@ public interface IFileStorageService extends IService<FileStorage> {
|
||||
List<UserTotalFileSizeDTO> getTotalFileSizeByCreator(List<Long> userIds,Integer intervalMonths);
|
||||
|
||||
List<UserTotalFileSizeDTO> getTotalFileSizeByCreatorAndTargetYm(List<Long> userIds,String targetYm);
|
||||
|
||||
}
|
||||
|
||||
List<FileStorage> selectBigFiles(@Param("queryBigFileReq") QueryBigFileReq queryBigFileReq, @Param("fileSizeInBytes") Long fileSizeInBytes);
|
||||
}
|
||||
@@ -176,14 +176,7 @@ public class DataStorageAnalysisImpl implements DataStorageAnalysis {
|
||||
}
|
||||
|
||||
PageHelper.startPage(queryBigFileReq.getCurrent(), queryBigFileReq.getSize());
|
||||
List<FileStorage> list = fileStorageService.lambdaQuery()
|
||||
.eq(ObjectUtils.isNotEmpty(queryBigFileReq.getDirId()), FileStorage::getDirId, queryBigFileReq.getDirId())
|
||||
.eq(ObjectUtils.isNotEmpty(queryBigFileReq.getFileSuffix()), FileStorage::getFileSuffix, queryBigFileReq.getFileSuffix())
|
||||
.eq(ObjectUtils.isNotEmpty(queryBigFileReq.getFileBizType()), FileStorage::getFileBizType, queryBigFileReq.getFileBizType())
|
||||
.like(ObjectUtils.isNotEmpty(queryBigFileReq.getFileName()), FileStorage::getFileName, queryBigFileReq.getFileName())
|
||||
.gt(ObjectUtils.isNotEmpty(queryBigFileReq.getStartTime()), FileStorage::getCreateTime, queryBigFileReq.getStartTime())
|
||||
.lt(ObjectUtils.isNotEmpty(queryBigFileReq.getEndTime()), FileStorage::getCreateTime, queryBigFileReq.getEndTime())
|
||||
.gt(ObjectUtils.isNotEmpty(fileSizeInBytes), FileStorage::getFileSize, fileSizeInBytes).list();
|
||||
List<FileStorage> list = fileStorageService.selectBigFiles(queryBigFileReq, fileSizeInBytes);
|
||||
PageInfo<FileStorage> page = new PageInfo<>(list);
|
||||
return PageUtils.getJsonObjectSdmResponse(list, page);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.sdm.data.model.dto.NodeSizeDTO;
|
||||
import com.sdm.data.model.dto.UserTotalFileSizeDTO;
|
||||
import com.sdm.data.model.entity.FileStorage;
|
||||
import com.sdm.data.dao.FileStorageMapper;
|
||||
import com.sdm.data.model.req.QueryBigFileReq;
|
||||
import com.sdm.data.service.IFileStorageService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -40,4 +41,9 @@ public class FileStorageServiceImpl extends ServiceImpl<FileStorageMapper, FileS
|
||||
public List<UserTotalFileSizeDTO> getTotalFileSizeByCreatorAndTargetYm(List<Long> userIds, String targetYm) {
|
||||
return baseMapper.getTotalFileSizeByCreatorAndTargetYm(userIds, targetYm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FileStorage> selectBigFiles(QueryBigFileReq queryBigFileReq, Long fileSizeInBytes) {
|
||||
return baseMapper.selectBigFiles(queryBigFileReq, fileSizeInBytes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ import com.sdm.data.service.IDataFileService;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryCategoryObjectService;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryCategoryService;
|
||||
import com.sdm.data.service.ISimulationParameterLibraryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -34,6 +36,7 @@ import java.util.*;
|
||||
* @author author
|
||||
* @since 2025-10-16
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SimulationParameterLibraryServiceImpl extends ServiceImpl<SimulationParameterLibraryMapper, SimulationParameterLibrary> implements ISimulationParameterLibraryService {
|
||||
|
||||
@@ -151,9 +154,9 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl<Simulatio
|
||||
} else if (type == SimulationParameterDataTypeEnum.CATEGORY.getValue()) {
|
||||
simulationParameterLibraryCategoryService.removeById(id);
|
||||
simulationParameterLibraryCategoryObjectService.lambdaUpdate().eq(SimulationParameterLibraryCategoryObject::getParameterLibraryCategoryId, id).remove();
|
||||
}else if (type == SimulationParameterDataTypeEnum.LIBRARY.getValue()) {
|
||||
} else if (type == SimulationParameterDataTypeEnum.LIBRARY.getValue()) {
|
||||
this.removeById(id);
|
||||
simulationParameterLibraryCategoryService.lambdaUpdate().eq(SimulationParameterLibraryCategory::getParameterLibraryId,id).remove();
|
||||
simulationParameterLibraryCategoryService.lambdaUpdate().eq(SimulationParameterLibraryCategory::getParameterLibraryId, id).remove();
|
||||
simulationParameterLibraryCategoryObjectService.lambdaUpdate().eq(SimulationParameterLibraryCategoryObject::getParameterLibraryId, id).remove();
|
||||
}
|
||||
|
||||
@@ -163,23 +166,37 @@ public class SimulationParameterLibraryServiceImpl extends ServiceImpl<Simulatio
|
||||
@Override
|
||||
public SdmResponse getSimulationParameterLibraryCategoryObject(Long ObjectId) {
|
||||
SimulationParameterLibraryCategoryObject simulationParameterLibraryCategoryObject = simulationParameterLibraryCategoryObjectService.getById(ObjectId);
|
||||
SimulationParameterLibraryCategory simulationParameterLibraryCategory = simulationParameterLibraryCategoryService.getById(simulationParameterLibraryCategoryObject.getParameterLibraryCategoryId());
|
||||
SimulationParameterLibrary simulationParameterLibrary = this.getById(simulationParameterLibraryCategory.getParameterLibraryId());
|
||||
SimulationParameterLibraryCategoryObjectResp simulationParameterLibraryCategoryObjectResp = new SimulationParameterLibraryCategoryObjectResp();
|
||||
BeanUtils.copyProperties(simulationParameterLibraryCategoryObject, simulationParameterLibraryCategoryObjectResp);
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryId(simulationParameterLibrary.getId());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryName(simulationParameterLibrary.getParameterLibraryName());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryCategoryId(simulationParameterLibraryCategory.getId());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryCategoryName(simulationParameterLibraryCategory.getParameterLibraryCategoryName());
|
||||
|
||||
InputStream minioInputStream = dataFileService.getMinioInputStream(simulationParameterLibraryCategoryObject.getFileId());
|
||||
// 使用Jackson解析JSON
|
||||
try {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
JsonNode jsonNode = objectMapper.readTree(minioInputStream);
|
||||
List<Map<String, Object>> parameterJsonValueFromJsonNode = parseJsonArray(jsonNode);
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterJsonValue(parameterJsonValueFromJsonNode);
|
||||
} catch (IOException e) {
|
||||
InputStream minioInputStream = dataFileService.getMinioInputStream(simulationParameterLibraryCategoryObject.getFileId());
|
||||
if (ObjectUtils.isNotEmpty(minioInputStream)) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
JsonNode jsonNode = objectMapper.readTree(minioInputStream);
|
||||
List<Map<String, Object>> parameterJsonValueFromJsonNode = parseJsonArray(jsonNode);
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterJsonValue(parameterJsonValueFromJsonNode);
|
||||
} else {
|
||||
// 兜底操作,可能是清库了,或者数据被删除了,删除掉参数对象的json文件信息
|
||||
simulationParameterLibraryCategoryObject.setFileId(null);
|
||||
simulationParameterLibraryCategoryObject.setFileName(null);
|
||||
simulationParameterLibraryCategoryObjectService.updateById(simulationParameterLibraryCategoryObject);
|
||||
log.info("参数对象json文件信息被删除了,请检查参数对象ID为:{}的参数对象信息", ObjectId);
|
||||
}
|
||||
|
||||
BeanUtils.copyProperties(simulationParameterLibraryCategoryObject, simulationParameterLibraryCategoryObjectResp);
|
||||
|
||||
|
||||
SimulationParameterLibraryCategory simulationParameterLibraryCategory = simulationParameterLibraryCategoryService.getById(simulationParameterLibraryCategoryObject.getParameterLibraryCategoryId());
|
||||
SimulationParameterLibrary simulationParameterLibrary = this.getById(simulationParameterLibraryCategory.getParameterLibraryId());
|
||||
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryId(simulationParameterLibrary.getId());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryName(simulationParameterLibrary.getParameterLibraryName());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryCategoryId(simulationParameterLibraryCategory.getId());
|
||||
simulationParameterLibraryCategoryObjectResp.setParameterLibraryCategoryName(simulationParameterLibraryCategory.getParameterLibraryCategoryName());
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("解析JSON文件时发生错误", e);
|
||||
}
|
||||
return SdmResponse
|
||||
|
||||
@@ -96,4 +96,33 @@
|
||||
AND createYearMonth = #{targetYm}
|
||||
GROUP BY userId
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
<select id="selectBigFiles" resultType="com.sdm.data.model.entity.FileStorage">
|
||||
SELECT file_storage.* FROM file_storage
|
||||
left join file_metadata_info on file_storage.fileId = file_metadata_info.id
|
||||
<where>
|
||||
file_metadata_info.id is not null
|
||||
<if test="queryBigFileReq.dirId != null">
|
||||
AND dirId = #{queryBigFileReq.dirId}
|
||||
</if>
|
||||
<if test="queryBigFileReq.fileSuffix != null and queryBigFileReq.fileSuffix != ''">
|
||||
AND fileSuffix = #{queryBigFileReq.fileSuffix}
|
||||
</if>
|
||||
<if test="queryBigFileReq.fileBizType != null">
|
||||
AND fileBizType = #{queryBigFileReq.fileBizType}
|
||||
</if>
|
||||
<if test="queryBigFileReq.fileName != null and queryBigFileReq.fileName != ''">
|
||||
AND fileName LIKE CONCAT('%', #{queryBigFileReq.fileName}, '%')
|
||||
</if>
|
||||
<if test="queryBigFileReq.startTime != null">
|
||||
AND createTime >= #{queryBigFileReq.startTime}
|
||||
</if>
|
||||
<if test="queryBigFileReq.endTime != null">
|
||||
AND createTime <= #{queryBigFileReq.endTime}
|
||||
</if>
|
||||
<if test="fileSizeInBytes != null">
|
||||
AND fileSize > #{fileSizeInBytes}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user