fix:数据查询支持列头无关联,基于tag查询,排序
This commit is contained in:
@@ -15,6 +15,7 @@ import com.sdm.common.entity.req.data.TagReq;
|
||||
import com.sdm.common.entity.req.export.FileAnalysisExportExcelFormat;
|
||||
import com.sdm.common.entity.req.export.FileAnalysisExportExcelParam;
|
||||
import com.sdm.common.entity.resp.PageDataResp;
|
||||
import com.sdm.common.utils.FileSizeUtils;
|
||||
import com.sdm.common.utils.PageUtils;
|
||||
import com.sdm.common.utils.SystemOperate;
|
||||
import com.sdm.data.bo.ExportOperate;
|
||||
@@ -109,12 +110,19 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService {
|
||||
// 所属项目、阶段、机台、工位、任务、算列
|
||||
applyTagFilters(wrapper, req.getTagReq());
|
||||
|
||||
List<FileMetadataInfo> fileMetadataInfos = wrapper.orderByDesc(FileMetadataInfo::getCreateTime).list();
|
||||
if (ObjectUtils.isEmpty(req.getOrderBy())) {
|
||||
wrapper.orderByDesc(FileMetadataInfo::getCreateTime);
|
||||
}
|
||||
|
||||
List<FileMetadataInfo> fileMetadataInfos = wrapper.list();
|
||||
PageInfo<FileMetadataInfo> page = new PageInfo<>(fileMetadataInfos);
|
||||
|
||||
List<SimulationTaskResultCurveResp> finalResultList = fileMetadataInfos.stream().map(file -> {
|
||||
SimulationTaskResultCurveResp resp = new SimulationTaskResultCurveResp();
|
||||
BeanUtils.copyProperties(file, resp);
|
||||
if (ObjectUtils.isNotEmpty(file.getFileSize())) {
|
||||
resp.setFormatFileSize(FileSizeUtils.formatFileSize(BigDecimal.valueOf(file.getFileSize())));
|
||||
}
|
||||
hierarchyHelper.setTagReqFromFileMetadata(file, resp);
|
||||
return resp;
|
||||
}).collect(Collectors.toList());
|
||||
@@ -273,6 +281,33 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService {
|
||||
}
|
||||
}
|
||||
|
||||
private void fillFormatFileSizeForTaskLevel(List<SimulationTaskResultCurveResp> resultList, List<Long> fileIdList) {
|
||||
if (CollectionUtils.isEmpty(resultList) || CollectionUtils.isEmpty(fileIdList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<FileMetadataInfo> metadataInfos = fileMetadataInfoService.lambdaQuery()
|
||||
.in(FileMetadataInfo::getId, fileIdList)
|
||||
.eq(FileMetadataInfo::getTenantId, ThreadLocalContext.getTenantId())
|
||||
.isNull(FileMetadataInfo::getDeletedAt)
|
||||
.select(FileMetadataInfo::getId, FileMetadataInfo::getFileSize)
|
||||
.list();
|
||||
|
||||
if (CollectionUtils.isEmpty(metadataInfos)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Map<Long, Long> fileSizeMap = metadataInfos.stream()
|
||||
.collect(Collectors.toMap(FileMetadataInfo::getId, FileMetadataInfo::getFileSize, (left, right) -> left));
|
||||
|
||||
for (SimulationTaskResultCurveResp resp : resultList) {
|
||||
Long fileSize = fileSizeMap.get(resp.getId());
|
||||
if (ObjectUtils.isNotEmpty(fileSize)) {
|
||||
resp.setFormatFileSize(FileSizeUtils.formatFileSize(BigDecimal.valueOf(fileSize)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void sortByTagFieldInCurrentPage(List<SimulationTaskResultCurveResp> data, String orderBy, String orderType) {
|
||||
if (CollectionUtils.isEmpty(data) || StringUtils.isBlank(orderBy)) {
|
||||
return;
|
||||
@@ -294,6 +329,17 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService {
|
||||
if (ObjectUtils.isEmpty(item)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ("createTime".equalsIgnoreCase(orderBy)) {
|
||||
return ObjectUtils.isNotEmpty(item.getCreateTime()) ? item.getCreateTime().toString() : null;
|
||||
}
|
||||
if ("originalName".equalsIgnoreCase(orderBy)) {
|
||||
return item.getOriginalName();
|
||||
}
|
||||
if ("formatFileSize".equalsIgnoreCase(orderBy)) {
|
||||
return item.getFormatFileSize();
|
||||
}
|
||||
|
||||
TagReq tagReq = item.getTagReq();
|
||||
if (ObjectUtils.isEmpty(tagReq)) {
|
||||
return null;
|
||||
@@ -359,6 +405,7 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService {
|
||||
);
|
||||
|
||||
setTagReqForSimulationResult(finalResultList, fileIdList);
|
||||
fillFormatFileSizeForTaskLevel(finalResultList, fileIdList);
|
||||
|
||||
sortByTagFieldInCurrentPage(finalResultList, req.getOrderBy(), req.getOrderType());
|
||||
List<SimulationTaskResultCurveResp> sortedList = finalResultList.stream()
|
||||
|
||||
Reference in New Issue
Block a user