This commit is contained in:
s2042968 2025-04-17 16:56:14 +08:00
commit 0dc0c1d658
13 changed files with 86 additions and 63 deletions

View File

@ -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);
} }

View File

@ -25,6 +25,7 @@ public class RepoEdFileRelationController {
@Resource @Resource
EdFileInfoService edFileInfoService; EdFileInfoService edFileInfoService;
/** /**
* 创建文件关系 * 创建文件关系
* *

View File

@ -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;

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -5,13 +5,14 @@ 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 {

View File

@ -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;
} }

View File

@ -7,6 +7,7 @@ public interface EdFileFavoriteService extends IService<EdFileFavorite> {
/** /**
* 逻辑删除 * 逻辑删除
*
* @param userId * @param userId
* @param fileId * @param fileId
* @return * @return

View File

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

View File

@ -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,6 +14,7 @@ public class EdFileFavoriteServiceImpl extends ServiceImpl<EdFileFavoriteMapper,
/** /**
* 逻辑删除 * 逻辑删除
*
* @param userId * @param userId
* @param fileId * @param fileId
* @return * @return

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;
@ -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";

View File

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