|
@@ -307,4 +307,31 @@ public class ArchiveFileServiceImpl extends BaseServiceImpl<ArchiveFileMapper, A
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public boolean sortByFileTime(Long nodeId) {
|
|
|
+ String sql="SELECT id,file_time 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((a, b) -> {
|
|
|
+ if (a.getFileTime() == null && b.getFileTime() == null) return 0;
|
|
|
+ if (a.getFileTime() == null) return -1;
|
|
|
+ if (b.getFileTime() == null) return 1;
|
|
|
+ return a.getFileTime().compareTo(b.getFileTime());
|
|
|
+ });
|
|
|
+ int sort = 1;
|
|
|
+ for (ArchiveFile file : archiveFiles) {
|
|
|
+ file.setSort(sort++);
|
|
|
+ }
|
|
|
+ this.updateBatchById(archiveFiles);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|