|
|
@@ -328,13 +328,20 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
|
|
|
|
|
|
@Override
|
|
|
public boolean sortByFileTime(Long nodeId) {
|
|
|
- String sql = "SELECT id,file_time,node_id FROM u_archive_file WHERE node_id IN (SELECT id FROM m_archive_tree_contract WHERE FIND_IN_SET(" + nodeId + ",ancestors)) AND is_deleted=0";
|
|
|
+ String sql = "SELECT id,file_time,node_id,sort FROM u_archive_file WHERE node_id IN (SELECT id FROM m_archive_tree_contract WHERE FIND_IN_SET(" + nodeId + ",ancestors)) AND is_deleted=0";
|
|
|
List<ArchiveFile> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(ArchiveFile.class));
|
|
|
if (list.size() > 0) {
|
|
|
Map<String, List<ArchiveFile>> group = list.stream()
|
|
|
.collect(Collectors.groupingBy(ArchiveFile::getNodeId));
|
|
|
for (Map.Entry<String, List<ArchiveFile>> entry : group.entrySet()) {
|
|
|
List<ArchiveFile> archiveFiles = entry.getValue();
|
|
|
+ // 从archiveFiles列表中提取sort字段,处理null值
|
|
|
+ List<Integer> sortValues = archiveFiles.stream()
|
|
|
+ .map(file -> {
|
|
|
+ // 如果sort字段为null,返回0;否则返回实际值
|
|
|
+ return file.getSort() != null ? file.getSort() : 0;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
archiveFiles.sort((a, b) -> {
|
|
|
if (a.getFileTime() == null && b.getFileTime() == null) return 0;
|
|
|
if (a.getFileTime() == null) return -1;
|
|
|
@@ -342,8 +349,13 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
|
|
|
return a.getFileTime().compareTo(b.getFileTime());
|
|
|
});
|
|
|
int sort = 0;
|
|
|
- for (ArchiveFile file : archiveFiles) {
|
|
|
- file.setSort(sort++);
|
|
|
+ for (int i = 0; i < archiveFiles.size(); i++ ) {
|
|
|
+ Integer sortValue = sortValues.get(i);
|
|
|
+ if(sortValue!=0){
|
|
|
+ archiveFiles.get(i).setSort(sortValue);
|
|
|
+ }else {
|
|
|
+ archiveFiles.get(i).setSort(sort++);
|
|
|
+ }
|
|
|
}
|
|
|
this.updateBatchById(archiveFiles);
|
|
|
}
|