diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java index db67506..563d45a 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileFavorite.java @@ -9,12 +9,14 @@ import com.electromagnetic.industry.software.common.util.EleCommonUtil; import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.UserThreadLocal; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.Date; +@EqualsAndHashCode(callSuper = true) @Data @TableName("ed_file_favorite") -public class EdFileFavorite extends BaseModel{ +public class EdFileFavorite extends BaseModel { @TableId(type = IdType.ASSIGN_UUID) private String id; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java index dff366b..ce029ee 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileTagRelation.java @@ -7,12 +7,9 @@ import java.util.Date; @Data @TableName("file_tag_relations") -public class FileTagRelation { +public class FileTagRelation extends BaseModel { @TableId(type = IdType.ASSIGN_UUID) private String id; private String fileId; private String tagId; - @TableField(fill = FieldFill.INSERT) - private Date createdTime; - private String createdBy; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index 87a6364..cdc2b50 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -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.util.*; 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.other.FileInfoVO; import com.electromagnetic.industry.software.manage.pojo.other.UploadRecordDTO; @@ -494,21 +495,61 @@ public class EdFileInfoServiceImpl extends ServiceImpl 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) { + // UNIQUE KEY fileId + tagId String path = prjDirPath + File.separator + ED_TAG_RELATIONS + ".json"; List 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) { + // UNIQUE KEY userId + fileId String path = prjDirPath + File.separator + ED_FILE_FAVORITE + ".json"; List 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) { @@ -758,7 +799,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl