|
|
@@ -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) {
|