| 
					
				 | 
			
			
				@@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package thyyxxk.webserver.service.archive; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import cn.hutool.core.bean.BeanUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.exceptions.UtilException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import cn.hutool.core.io.FileTypeUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,10 +46,7 @@ import thyyxxk.webserver.config.SpringBeanUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.service.externalhttp.WebSocketService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.service.inpatient.PatientService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import thyyxxk.webserver.service.redislike.RedisLikeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import thyyxxk.webserver.utils.ListUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import thyyxxk.webserver.utils.ResultVoUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import thyyxxk.webserver.utils.TokenUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import thyyxxk.webserver.utils.TreeUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import thyyxxk.webserver.utils.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.lang.annotation.Annotation; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -144,6 +142,9 @@ public class ArchiveServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (allData == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 正式环境才需要删除 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (isProd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                taskDao.delAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<List<ArchiveTask>> partition = ListUtils.partition(allData, 20); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (List<ArchiveTask> item : partition) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 String encrypt = rsa.encryptBase64(DateUtil.now(), KeyType.PublicKey); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -316,9 +317,14 @@ public class ArchiveServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public List<PatientArchive> getPatientArchives(String patNo, Integer times) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<PatientArchive> array = patientArchiveDao.getPatientList(patNo, times); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        TreeUtil.Option defaultOption = TreeUtil.getDefaultOption(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        defaultOption.setSort("sortNull"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return TreeUtil.objectTree(array, defaultOption); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return TreeUtilV2.create(array) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .sort((a) -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (a.getSort() == null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return Integer.MAX_VALUE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return a.getSort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .execute(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public ResultVo<String> ArchiveRecovery(ArchiveRecovery data) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -414,7 +420,7 @@ public class ArchiveServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PatientArchive oldData = patientArchiveDao.selectById(archive.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         patientArchiveDao.deleteById(archive.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        logger.warn("删除文件:文件名 {}", oldData.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logger.warn("删除{}:文件名 {}", oldData.getIsDir() ? "文件夹" : "文件", oldData.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         logger.fileChangeSend(TokenUtil.getInstance().getTokenUserId(), "删除文件"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -432,12 +438,14 @@ public class ArchiveServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public ResultVo<String> rename(String id, String name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        PatientArchive oldData = patientArchiveDao.selectById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         PatientArchive build = PatientArchive.builder() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .id(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .name(name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .patNo(oldData.getPatNo()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .times(oldData.getTimes()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 .build(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        PatientArchive oldData = patientArchiveDao.selectById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        dirNameRepeat(oldData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dirNameRepeat(build); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ArchiveLog logger = getPatLog(oldData, "重命名"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         logger.info("文件id:{},原名称:【{}】,新名称:【{}】", id, oldData.getName(), name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         logger.fileChangeSend(TokenUtil.getInstance().getTokenUserId(), "重命名文件"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -460,6 +468,9 @@ public class ArchiveServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public JSONArray getAllLog(String patNo, Integer times) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String path = archiveData.getEmrPatientPath(patNo, times) + "/archive.txt"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!FileUtil.exist(path)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String data = FileUtil.readString(path, StandardCharsets.UTF_8); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return new JSONArray("[" + data + "]"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -473,7 +484,6 @@ public class ArchiveServer { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void dirNameRepeat(PatientArchive data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         boolean repeat = patientArchiveDao.dirNameRepeat(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (repeat) { 
			 |