Merge branch 'dev-jdk17' of http://139.196.179.195:3000/chenxudong/electromagnetic-data-new into dev-jdk17
This commit is contained in:
commit
0dc0c1d658
|
|
@ -1,6 +1,7 @@
|
||||||
package com.electromagnetic.industry.software.manage.config;
|
package com.electromagnetic.industry.software.manage.config;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||||
|
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
import com.electromagnetic.industry.software.common.pojo.UserLoginInfo;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import org.apache.ibatis.reflection.MetaObject;
|
import org.apache.ibatis.reflection.MetaObject;
|
||||||
|
|
@ -14,21 +15,9 @@ public class EdMetaObjectHandler implements MetaObjectHandler {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void insertFill(MetaObject metaObject) {
|
public void insertFill(MetaObject metaObject) {
|
||||||
if (metaObject.hasSetter("gmtCreate")) {
|
|
||||||
this.strictInsertFill(metaObject, "gmtCreate", Date.class, new Date());
|
|
||||||
}
|
|
||||||
if (metaObject.hasGetter("createdAt")) {
|
|
||||||
this.strictInsertFill(metaObject, "createdAt", Date.class, new Date());
|
|
||||||
}
|
|
||||||
if (metaObject.hasGetter("createdTime")) {
|
if (metaObject.hasGetter("createdTime")) {
|
||||||
this.setFieldValByName("createdTime", new Date(), metaObject);
|
this.setFieldValByName("createdTime", new Date(), metaObject);
|
||||||
}
|
}
|
||||||
if (metaObject.hasGetter("gmtModified")) {
|
|
||||||
this.strictInsertFill(metaObject, "gmtModified", Date.class, new Date());
|
|
||||||
}
|
|
||||||
if (metaObject.hasGetter("updatedAt")) {
|
|
||||||
this.strictInsertFill(metaObject, "updatedAt", Date.class, new Date());
|
|
||||||
}
|
|
||||||
if (metaObject.hasGetter("createdBy")) {
|
if (metaObject.hasGetter("createdBy")) {
|
||||||
this.setFieldValByName("createdBy", Optional.ofNullable(UserThreadLocal.getUser()).map(UserLoginInfo::getUserId).orElse(""), metaObject);
|
this.setFieldValByName("createdBy", Optional.ofNullable(UserThreadLocal.getUser()).map(UserLoginInfo::getUserId).orElse(""), metaObject);
|
||||||
}
|
}
|
||||||
|
|
@ -38,16 +27,13 @@ public class EdMetaObjectHandler implements MetaObjectHandler {
|
||||||
if (metaObject.hasGetter("updatedBy")) {
|
if (metaObject.hasGetter("updatedBy")) {
|
||||||
this.setFieldValByName("updatedBy", Optional.ofNullable(UserThreadLocal.getUser()).map(UserLoginInfo::getUserId).orElse(""), metaObject);
|
this.setFieldValByName("updatedBy", Optional.ofNullable(UserThreadLocal.getUser()).map(UserLoginInfo::getUserId).orElse(""), metaObject);
|
||||||
}
|
}
|
||||||
|
if (metaObject.hasGetter("effectFlag")) {
|
||||||
|
this.setFieldValByName("effectFlag", EffectFlagEnum.EFFECT.code, metaObject);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateFill(MetaObject metaObject) {
|
public void updateFill(MetaObject metaObject) {
|
||||||
if (metaObject.hasGetter("gmtModified")) {
|
|
||||||
this.strictUpdateFill(metaObject, "gmtModified", Date.class, new Date());
|
|
||||||
}
|
|
||||||
if (metaObject.hasGetter("updatedAt")) {
|
|
||||||
this.strictUpdateFill(metaObject, "updatedAt", Date.class, new Date());
|
|
||||||
}
|
|
||||||
if (metaObject.hasGetter("updatedTime")) {
|
if (metaObject.hasGetter("updatedTime")) {
|
||||||
this.setFieldValByName("updatedTime", new Date(), metaObject);
|
this.setFieldValByName("updatedTime", new Date(), metaObject);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ public class RepoEdFileRelationController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
EdFileInfoService edFileInfoService;
|
EdFileInfoService edFileInfoService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建文件关系
|
* 创建文件关系
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,6 @@ import com.electromagnetic.industry.software.manage.pojo.req.CheckNameUniqueRequ
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.UpdateRelationDTO;
|
import com.electromagnetic.industry.software.manage.pojo.req.UpdateRelationDTO;
|
||||||
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
|
import com.electromagnetic.industry.software.manage.service.EdFileInfoService;
|
||||||
import com.electromagnetic.industry.software.manage.service.EdFileRelationService;
|
import com.electromagnetic.industry.software.manage.service.EdFileRelationService;
|
||||||
import com.electromagnetic.industry.software.manage.service.serviceimpl.EdFileRelationServiceImpl;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,4 @@ public class AiFileUploadRecord extends BaseModel {
|
||||||
@TableField(value = "file_size")
|
@TableField(value = "file_size")
|
||||||
private long fileSize;
|
private long fileSize;
|
||||||
|
|
||||||
@TableField(value = "effect_flag")
|
|
||||||
private Integer effectFlag;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,4 @@ public class AiQuestionRecord extends BaseModel {
|
||||||
@TableField(value = "question")
|
@TableField(value = "question")
|
||||||
private String question;
|
private String question;
|
||||||
|
|
||||||
@TableField(value = "effect_flag")
|
|
||||||
private Integer effectFlag;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,16 +5,17 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
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 {
|
||||||
|
|
||||||
@TableId(type = IdType.ASSIGN_UUID)
|
@TableId(type = IdType.ASSIGN_UUID)
|
||||||
private String id;
|
private String id;
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import java.util.Date;
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
@TableName("ed_file_relation")
|
@TableName("ed_file_relation")
|
||||||
public class EdFileRelation extends BaseModel{
|
public class EdFileRelation extends BaseModel {
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,15 @@
|
||||||
package com.electromagnetic.industry.software.manage.pojo.models;
|
package com.electromagnetic.industry.software.manage.pojo.models;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,11 @@ public interface EdFileFavoriteService extends IService<EdFileFavorite> {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除
|
* 逻辑删除
|
||||||
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
* @param fileId
|
* @param fileId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean logicRemove (String userId, String fileId);
|
public boolean logicRemove(String userId, String fileId);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,9 @@
|
||||||
package com.electromagnetic.industry.software.manage.service;
|
package com.electromagnetic.industry.software.manage.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
|
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.EdFileRelation;
|
import com.electromagnetic.industry.software.manage.pojo.models.EdFileRelation;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.req.CheckNameUniqueRequest;
|
import com.electromagnetic.industry.software.manage.pojo.req.CheckNameUniqueRequest;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.resp.FileRelationViewVO;
|
import com.electromagnetic.industry.software.manage.pojo.resp.FileRelationViewVO;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
|
||||||
|
|
||||||
public interface EdFileRelationService extends IService<EdFileRelation> {
|
public interface EdFileRelationService extends IService<EdFileRelation> {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
package com.electromagnetic.industry.software.manage.service.serviceimpl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
@ -15,12 +14,13 @@ public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 逻辑删除
|
* 逻辑删除
|
||||||
|
*
|
||||||
* @param userId
|
* @param userId
|
||||||
* @param fileId
|
* @param fileId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean logicRemove (String userId, String fileId) {
|
public boolean logicRemove(String userId, String fileId) {
|
||||||
LambdaUpdateWrapper <EdFileFavorite> updateWrapper = Wrappers.lambdaUpdate(EdFileFavorite.class)
|
LambdaUpdateWrapper<EdFileFavorite> updateWrapper = Wrappers.lambdaUpdate(EdFileFavorite.class)
|
||||||
.eq(EdFileFavorite::getUserId, userId)
|
.eq(EdFileFavorite::getUserId, userId)
|
||||||
.eq(EdFileFavorite::getFileId, fileId)
|
.eq(EdFileFavorite::getFileId, fileId)
|
||||||
.set(EdFileFavorite::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code);
|
.set(EdFileFavorite::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
@ -464,18 +465,19 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
OutputStream outputStream = Files.newOutputStream(Paths.get(zipDirPath))
|
OutputStream outputStream = Files.newOutputStream(Paths.get(zipDirPath))
|
||||||
) {
|
) {
|
||||||
aes.decrypt(inputStream, outputStream, true);
|
aes.decrypt(inputStream, outputStream, true);
|
||||||
} catch (Exception e) {
|
|
||||||
String info = "文件上传错误";
|
|
||||||
log.error(info, e);
|
|
||||||
throw new BizException(info);
|
|
||||||
}
|
|
||||||
String uuid = IdUtil.fastSimpleUUID();
|
String uuid = IdUtil.fastSimpleUUID();
|
||||||
String tmpDir = elePropertyConfig.getUploadDataDir(dataOwnCode) + currentUserId + File.separator + uuid + File.separator;
|
String tmpDir = elePropertyConfig.getUploadDataDir(dataOwnCode) + currentUserId + File.separator + uuid + File.separator;
|
||||||
ZipUtil.unzip(zipDirPath, tmpDir);
|
ZipUtil.unzip(zipDirPath, tmpDir);
|
||||||
update2Database(tmpDir, dataOwnCode);
|
update2Database(tmpDir, dataOwnCode);
|
||||||
fileSystemService.deleteFile(zipDirPath, destColibPath);
|
UserThreadLocal.setSuccessInfo("", "", "导入数据库成功,文件名称为 " + mainName);
|
||||||
UserThreadLocal.setSuccessInfo("", "", "导入数据库成功");
|
|
||||||
return ElectromagneticResultUtil.success(true);
|
return ElectromagneticResultUtil.success(true);
|
||||||
|
} catch (Exception e) {
|
||||||
|
String info = "文件上传错误";
|
||||||
|
log.error(info, e);
|
||||||
|
throw new BizException(info);
|
||||||
|
} finally {
|
||||||
|
fileSystemService.deleteFile(zipDirPath, destColibPath);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
|
||||||
|
|
@ -494,21 +496,61 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateFileRelationInfo(String prjDirPath) {
|
private void updateFileRelationInfo(String prjDirPath) {
|
||||||
String path = prjDirPath + File.separator + ED_TAG_RELATIONS + ".json";
|
// UNIQUE KEY id1 + id2 prd没有做详细说明,此处先按照最新修改时间原则来做
|
||||||
|
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) {
|
||||||
String path = prjDirPath + File.separator + USER_ACCESS_LOG + ".json";
|
// UNIQUE KEY fileId + tagId
|
||||||
|
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) {
|
||||||
|
|
@ -641,7 +683,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
String id = saveObj.getId();
|
String id = saveObj.getId();
|
||||||
String preVersionId = dbVersionRelation.get(id);
|
String preVersionId = dbVersionRelation.get(id);
|
||||||
EdFileInfo tmp = importIdMap.get(preVersionId);
|
EdFileInfo tmp = importIdMap.get(preVersionId);
|
||||||
saveObj.setPreVersion(ObjUtil.isNull(tmp) ? null : tmp.getFileVersion());
|
saveObj.setPreVersion(Optional.ofNullable(tmp).map(EdFileInfo::getFileVersion).orElse(null));
|
||||||
int effect = ObjUtil.equals(saveObj.getId(), effectId) ? EffectFlagEnum.EFFECT.code : EffectFlagEnum.NOT_EFFECTIVE.code;
|
int effect = ObjUtil.equals(saveObj.getId(), effectId) ? EffectFlagEnum.EFFECT.code : EffectFlagEnum.NOT_EFFECTIVE.code;
|
||||||
saveObj.setEffectFlag(effect);
|
saveObj.setEffectFlag(effect);
|
||||||
}
|
}
|
||||||
|
|
@ -692,7 +734,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
|
|
||||||
private void update2FileSystem(Set<EdFileInfo> needMove2FileSystemFiles, String prjDirPath, int dataOwnCode) {
|
private void update2FileSystem(Set<EdFileInfo> needMove2FileSystemFiles, String prjDirPath, int dataOwnCode) {
|
||||||
List<EdFileInfo> files = needMove2FileSystemFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).toList();
|
List<EdFileInfo> files = needMove2FileSystemFiles.stream().filter(e -> e.getDataType().equals(EleDataTypeEnum.FILE.code)).toList();
|
||||||
List<File> files1 = FileUtil.loopFiles(new File(prjDirPath), file -> file.isDirectory() && file.getName().startsWith(EXPORT_PRJ_NAME));
|
List<File> files1 = Arrays.stream(Objects.requireNonNull(new File(prjDirPath).listFiles())).filter(e -> e.isDirectory() && e.getName().startsWith(EXPORT_PRJ_NAME)).toList();
|
||||||
String prjFilePath = files1.get(0).getAbsolutePath();
|
String prjFilePath = files1.get(0).getAbsolutePath();
|
||||||
for (EdFileInfo edFileInfo : files) {
|
for (EdFileInfo edFileInfo : files) {
|
||||||
String id = edFileInfo.getId();
|
String id = edFileInfo.getId();
|
||||||
|
|
@ -748,7 +790,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
// 导出标签相关信息
|
// 导出标签相关信息
|
||||||
exportFileTagInfo(nowTimeStr, exportFileIds, userDownloadDataDir);
|
exportFileTagInfo(nowTimeStr, exportFileIds, userDownloadDataDir);
|
||||||
// 导出操作记录相关
|
// 导出操作记录相关
|
||||||
exportLogInfo(nowTimeStr, exportFileIds, userDownloadDataDir);
|
exportLogInfo(nowTimeStr, userDownloadDataDir);
|
||||||
|
|
||||||
String prjDirPath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr;
|
String prjDirPath = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr;
|
||||||
String exportZipFile = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + ".zip";
|
String exportZipFile = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + ".zip";
|
||||||
|
|
@ -758,7 +800,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) {
|
||||||
|
|
@ -772,11 +814,12 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
FileSystemResource fileSystemResource = new FileSystemResource(file);
|
FileSystemResource fileSystemResource = new FileSystemResource(file);
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
|
headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
|
||||||
String fileName = Base64.encode(fileSystemResource.getFilename() + "_" + nowTimeStr);
|
String tmpFileName = fileSystemResource.getFilename() + "_" + nowTimeStr;
|
||||||
|
String fileName = Base64.encode(tmpFileName);
|
||||||
headers.add("Pragma", "no-cache");
|
headers.add("Pragma", "no-cache");
|
||||||
headers.add("Expires", "0");
|
headers.add("Expires", "0");
|
||||||
response.setHeader("content-disposition", "attachment;filename=" + fileName);
|
response.setHeader("content-disposition", "attachment;filename=" + fileName);
|
||||||
UserThreadLocal.setSuccessInfo("", "", "导出数据库成功");
|
UserThreadLocal.setSuccessInfo("", "", "导出数据库成功,文件名称为" + tmpFileName);
|
||||||
// 构建响应实体(可以返回<byte[]或Resource,返回类型取决body入参类型)
|
// 构建响应实体(可以返回<byte[]或Resource,返回类型取决body入参类型)
|
||||||
return ResponseEntity
|
return ResponseEntity
|
||||||
.ok()
|
.ok()
|
||||||
|
|
@ -786,7 +829,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl<EdFileInfoMapper, EdFileI
|
||||||
.body(new InputStreamResource(fileSystemResource.getInputStream()));
|
.body(new InputStreamResource(fileSystemResource.getInputStream()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void exportLogInfo(String nowTimeStr, List<String> exportFileIds, String userDownloadDataDir) {
|
private void exportLogInfo(String nowTimeStr, String userDownloadDataDir) {
|
||||||
List<UserAccessLog> userAccessLogs = userAccessLogService.getBaseMapper().selectList(null);
|
List<UserAccessLog> userAccessLogs = userAccessLogService.getBaseMapper().selectList(null);
|
||||||
String json = JSONUtil.toJsonStr(userAccessLogs);
|
String json = JSONUtil.toJsonStr(userAccessLogs);
|
||||||
String path = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + USER_ACCESS_LOG + ".json";
|
String path = userDownloadDataDir + File.separator + EXPORT_PRJ_NAME + "_" + nowTimeStr + File.separator + USER_ACCESS_LOG + ".json";
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,11 @@ import cn.hutool.core.text.StrFormatter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.electromagnetic.industry.software.common.enums.*;
|
import com.electromagnetic.industry.software.common.enums.EffectFlagEnum;
|
||||||
|
import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum;
|
||||||
import com.electromagnetic.industry.software.common.exception.BizException;
|
import com.electromagnetic.industry.software.common.exception.BizException;
|
||||||
import com.electromagnetic.industry.software.common.util.*;
|
import com.electromagnetic.industry.software.common.util.EleCommonUtil;
|
||||||
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
|
import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.EdFileRelationMapper;
|
import com.electromagnetic.industry.software.manage.mapper.EdFileRelationMapper;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo;
|
||||||
|
|
@ -24,7 +26,7 @@ import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.*;
|
import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.NAME_VALID_MSG;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper, EdFileRelation> implements EdFileRelationService {
|
public class EdFileRelationServiceImpl extends ServiceImpl<EdFileRelationMapper, EdFileRelation> implements EdFileRelationService {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue