补充导入的一些功能逻辑

This commit is contained in:
chenxudong 2025-04-17 14:46:04 +08:00
parent a0bbdaddc8
commit 73b99308be
3 changed files with 50 additions and 10 deletions

View File

@ -9,9 +9,11 @@ import com.electromagnetic.industry.software.common.util.EleCommonUtil;
import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.IdWorker;
import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.common.util.UserThreadLocal;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Data @Data
@TableName("ed_file_favorite") @TableName("ed_file_favorite")
public class EdFileFavorite extends BaseModel { public class EdFileFavorite extends BaseModel {

View File

@ -7,12 +7,9 @@ import java.util.Date;
@Data @Data
@TableName("file_tag_relations") @TableName("file_tag_relations")
public class FileTagRelation { public class FileTagRelation extends BaseModel {
@TableId(type = IdType.ASSIGN_UUID) @TableId(type = IdType.ASSIGN_UUID)
private String id; private String id;
private String fileId; private String fileId;
private String tagId; private String tagId;
@TableField(fill = FieldFill.INSERT)
private Date createdTime;
private String createdBy;
} }

View File

@ -27,7 +27,8 @@ import com.electromagnetic.industry.software.common.pojo.RespPageVO;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.common.util.*; import com.electromagnetic.industry.software.common.util.*;
import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.config.ElePropertyConfig;
import com.electromagnetic.industry.software.manage.mapper.*; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
import com.electromagnetic.industry.software.manage.mapper.UserMapper;
import com.electromagnetic.industry.software.manage.pojo.models.*; import com.electromagnetic.industry.software.manage.pojo.models.*;
import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO;
import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO; import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO;
@ -494,21 +495,61 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
} }
private void updateFileRelationInfo(String prjDirPath) { private void updateFileRelationInfo(String prjDirPath) {
// UNIQUE KEY id1 + id2 prd没有做详细说明此处先按照最新修改时间原则来做
String path = prjDirPath + File.separator + ED_FILE_RELATION + ".json"; String path = prjDirPath + File.separator + ED_FILE_RELATION + ".json";
List<EdFileRelation> relations = JSONUtil.toList(FileUtil.readString(path, Charset.defaultCharset()), EdFileRelation.class); List<EdFileRelation> relations = JSONUtil.toList(FileUtil.readString(path, Charset.defaultCharset()), EdFileRelation.class);
edFileRelationService.saveOrUpdateBatch(relations); for (EdFileRelation importRelation : relations) {
EdFileRelation dbRelation = edFileRelationService.getBaseMapper().selectOne(Wrappers.lambdaQuery(EdFileRelation.class)
.eq(EdFileRelation::getId1, importRelation.getId())
.eq(EdFileRelation::getId2, importRelation.getId2()));
if (Objects.isNull(dbRelation)) {
edFileRelationService.save(importRelation);
} else {
// 如果导入的比线上的新则新增
if (importRelation.getUpdatedTime().after(dbRelation.getUpdatedTime())) {
edFileRelationService.save(importRelation);
}
}
}
} }
private void updateFileTageInfo(String prjDirPath) { private void updateFileTageInfo(String prjDirPath) {
// UNIQUE KEY fileId + tagId
String path = prjDirPath + File.separator + ED_TAG_RELATIONS + ".json"; String path = prjDirPath + File.separator + ED_TAG_RELATIONS + ".json";
List<FileTagRelation> relations = JSONUtil.toList(FileUtil.readString(path, Charset.defaultCharset()), FileTagRelation.class); List<FileTagRelation> relations = JSONUtil.toList(FileUtil.readString(path, Charset.defaultCharset()), FileTagRelation.class);
fileTagRelationService.saveOrUpdateBatch(relations); for (FileTagRelation importRelation : relations) {
FileTagRelation dbRelation = fileTagRelationService.getBaseMapper().selectOne(Wrappers.lambdaQuery(FileTagRelation.class)
.eq(FileTagRelation::getTagId, importRelation.getId())
.eq(FileTagRelation::getFileId, importRelation.getFileId()));
if (Objects.isNull(dbRelation)) {
fileTagRelationService.save(importRelation);
} else {
if (!Objects.equals(importRelation.getEffectFlag(), dbRelation.getEffectFlag())) {
dbRelation.setEffectFlag(EffectFlagEnum.NOT_EFFECTIVE.code);
fileTagRelationService.saveOrUpdate(dbRelation);
}
}
}
} }
private void updateCollectionInfo(String prjDirPath) { private void updateCollectionInfo(String prjDirPath) {
// UNIQUE KEY userId + fileId
String path = prjDirPath + File.separator + ED_FILE_FAVORITE + ".json"; String path = prjDirPath + File.separator + ED_FILE_FAVORITE + ".json";
List<EdFileFavorite> edFileFavorites = JSONUtil.toList(FileUtil.readString(path, Charset.defaultCharset()), EdFileFavorite.class); List<EdFileFavorite> edFileFavorites = JSONUtil.toList(FileUtil.readString(path, Charset.defaultCharset()), EdFileFavorite.class);
fileFavoriteService.saveOrUpdateBatch(edFileFavorites); String userId = UserThreadLocal.getUserId();
for (EdFileFavorite importFileFavorite : edFileFavorites) {
EdFileFavorite dbFileFavorite = fileFavoriteService.getBaseMapper().selectOne(Wrappers.lambdaQuery(EdFileFavorite.class)
.eq(EdFileFavorite::getCreatedBy, userId)
.eq(EdFileFavorite::getFileId, importFileFavorite.getFileId()));
if (Objects.isNull(dbFileFavorite)) {
fileFavoriteService.save(importFileFavorite);
} else {
if (importFileFavorite.getUpdatedTime().after(dbFileFavorite.getUpdatedTime())) {
dbFileFavorite.setEffectFlag(importFileFavorite.getEffectFlag());
fileFavoriteService.saveOrUpdate(dbFileFavorite);
}
}
}
} }
private void updatePrjInfo(String prjDirPath, Integer dataOwnCode) { private void updatePrjInfo(String prjDirPath, Integer dataOwnCode) {
@ -758,7 +799,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
AES aes = SecureUtil.aes(FILE_SEC_PASSWD.getBytes()); AES aes = SecureUtil.aes(FILE_SEC_PASSWD.getBytes());
try ( try (
InputStream inputStream = Files.newInputStream(Paths.get(exportZipFile)); InputStream inputStream = Files.newInputStream(Paths.get(exportZipFile));
OutputStream outputStream = Files.newOutputStream(Paths.get(exportColibFile)); OutputStream outputStream = Files.newOutputStream(Paths.get(exportColibFile))
) { ) {
aes.encrypt(inputStream, outputStream, true); aes.encrypt(inputStream, outputStream, true);
} catch (Exception e) { } catch (Exception e) {