修改:只有知识库文件需要审核; 修改/删除/ 审核中数据给前端展示;修改抛异常事务不生效问题修改;systerm审批回调日志增加
This commit is contained in:
@@ -69,7 +69,13 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
private static final List<DirTypeEnum> INIT_DIR = List.of(
|
||||
DirTypeEnum.KNOWLEDGE_BASE_DIR, DirTypeEnum.PROJECT_NODE_DIR,
|
||||
DirTypeEnum.AVATAR_DIR, DirTypeEnum.SIMULATION_PARAMETER_DIR, DirTypeEnum.TRAIN_MODEL_DIR);
|
||||
|
||||
// fileData 知识库文件列表可见的数据
|
||||
private final List<Integer> fileDatdList = Arrays.asList(
|
||||
NumberConstants.ZERO,
|
||||
NumberConstants.TWO,
|
||||
NumberConstants.THREE,
|
||||
NumberConstants.FOUR
|
||||
);
|
||||
|
||||
@Value("${fileSystem.minio}")
|
||||
private String type;
|
||||
@@ -541,25 +547,41 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
return SdmResponse.failed("文件不存在");
|
||||
}
|
||||
|
||||
// 文件夹
|
||||
FileMetadataInfo dirMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, deleteFileMetadataInfo.getParentId()).eq(FileMetadataInfo::getDataType, DataTypeEnum.DIRECTORY.getValue()).one();
|
||||
|
||||
String deleteFileMinioObejctKey = deleteFileMetadataInfo.getObjectKey();
|
||||
|
||||
boolean hasDeletePermission = fileUserPermissionService.hasFilePermission(deleteFileMetadataInfo.getId(), ThreadLocalContext.getUserId(), FilePermissionEnum.DELETE);
|
||||
if (!hasDeletePermission) {
|
||||
return SdmResponse.failed("没有删除权限");
|
||||
}
|
||||
// 发送审批电子流,成功继续西面操作,失败直接返回
|
||||
// String templateId, String templateName,String approveContents,int approveAction:1:新增 2:修改 3:删除
|
||||
String approveContents = getApproveContents(delFileId, "知识库文件删除", NumberConstants.THREE, deleteFileMetadataInfo, null);
|
||||
Pair<Boolean, String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.THREE);
|
||||
if(!approvePair.getLeft()|| org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())) {
|
||||
log.error("delFile approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
throw new RuntimeException("文件删除,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
|
||||
// 知识库
|
||||
if(dirMetadataInfo!=null&&Objects.equals(NumberConstants.ONE, dirMetadataInfo.getDirType())){
|
||||
// 发送审批电子流,成功继续西面操作,失败直接返回
|
||||
// String templateId, String templateName,String approveContents,int approveAction:1:新增 2:修改 3:删除
|
||||
String approveContents = getApproveContents(delFileId, "知识库文件删除", NumberConstants.THREE, deleteFileMetadataInfo, null);
|
||||
Pair<Boolean, String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.THREE);
|
||||
if(!approvePair.getLeft()|| org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())) {
|
||||
log.error("delFile approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
throw new RuntimeException("文件删除,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
}
|
||||
deleteFileMetadataInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
deleteFileMetadataInfo.setApproveType(ApproveFileDataTypeEnum.DELETE_REVIEWING.getCode());
|
||||
deleteFileMetadataInfo.setCidFlowId(approvePair.getRight());
|
||||
fileMetadataInfoService.updateById(deleteFileMetadataInfo);
|
||||
return SdmResponse.success("操作成功,删除文件待审批");
|
||||
}else{
|
||||
// 删除MinIO文件
|
||||
minioService.deleteFile(deleteFileMetadataInfo.getObjectKey());
|
||||
// 删除数据库记录
|
||||
fileMetadataInfoService.removeById(deleteFileMetadataInfo.getId());
|
||||
fileStorageService.remove(new LambdaQueryWrapper<FileStorage>().eq(FileStorage::getFileId, deleteFileMetadataInfo.getId()));
|
||||
fileMetadataExtensionService.remove(new LambdaQueryWrapper<FileMetadataExtension>().eq(FileMetadataExtension::getTFilemetaId, deleteFileMetadataInfo.getId()));
|
||||
fileUserPermissionService.remove(new LambdaQueryWrapper<FileUserPermission>().eq(FileUserPermission::getTFilemetaId, deleteFileMetadataInfo.getId()));
|
||||
return SdmResponse.success("操作成功");
|
||||
}
|
||||
deleteFileMetadataInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
deleteFileMetadataInfo.setApproveType(ApproveFileDataTypeEnum.DELETE_REVIEWING.getCode());
|
||||
deleteFileMetadataInfo.setCidFlowId(approvePair.getRight());
|
||||
fileMetadataInfoService.updateById(deleteFileMetadataInfo);
|
||||
return SdmResponse.success("操作成功,删除文件待审批");
|
||||
} catch (Exception e) {
|
||||
log.error("删除文件失败", e);
|
||||
throw new RuntimeException("删除文件失败: " + e.getMessage(), e);
|
||||
@@ -600,7 +622,7 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
.in(FileMetadataInfo::getId, fileIdList)
|
||||
.eq(FileMetadataInfo::getIsLatest, FileIsLastEnum.YES.getValue())
|
||||
// 这里是知识库文件只展示已经审批通过的文件
|
||||
.eq(FileMetadataInfo::getApproveType, NumberConstants.ZERO)
|
||||
.in(FileMetadataInfo::getApproveType,fileDatdList)
|
||||
.list();
|
||||
PageDataResp<List<FileMetadataInfo>> page = new PageDataResp<>();
|
||||
page.setData(files);
|
||||
@@ -650,7 +672,8 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
.eq(ObjectUtils.isNotEmpty(req.getQueryTarget()), FileMetadataInfo::getDataType, req.getQueryTarget())
|
||||
.like(ObjectUtils.isNotEmpty(req.getFileName()), FileMetadataInfo::getOriginalName, req.getFileName())
|
||||
.eq(FileMetadataInfo::getIsLatest, FileIsLastEnum.YES.getValue())
|
||||
.eq(FileMetadataInfo::getApproveType, NumberConstants.ZERO)
|
||||
// 审核完成 ,元数据修改审核中,文件修改审核中,删除文件审核中
|
||||
.in(FileMetadataInfo::getApproveType,fileDatdList)
|
||||
.list();
|
||||
if (ObjectUtils.isEmpty(list)) {
|
||||
list.forEach(fileMetadataInfo -> {
|
||||
@@ -989,8 +1012,14 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
// 创建目录元数据并保存到数据库
|
||||
FileMetadataInfo fileInfo = createFileMetadata(fileMinioObjectKey, req.getFileName(), req.getFileType(),
|
||||
req.getProjectId(), req.getAnalysisDirectionId(), req.getRemarks(), dirMetadataInfo.getId(), req.getFile().getSize());
|
||||
fileInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
fileInfo.setApproveType(ApproveFileDataTypeEnum.UPLOAD_REVIEWING.getCode());
|
||||
// 只有知识库的文件需要审核
|
||||
// 1 知识库文件夹
|
||||
boolean isknowledge = Objects.equals(NumberConstants.ONE, dirMetadataInfo.getDirType());
|
||||
if(isknowledge){
|
||||
fileInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
fileInfo.setApproveType(ApproveFileDataTypeEnum.UPLOAD_REVIEWING.getCode());
|
||||
}
|
||||
|
||||
fileMetadataInfoService.save(fileInfo);
|
||||
|
||||
// 需要保存文件的历史版本记录,同一文件的所有版本共享一个ID,
|
||||
@@ -1017,23 +1046,24 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
.orElse(null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 调用审批流,开启审批; 上面先入库拿到主键id,审批流创建失败后再回退数据
|
||||
// String templateId, String templateName,String approveContents,int approveAction:1:新增 2:修改 3:删除
|
||||
String approveContents = getApproveContents(fileInfo.getId(), "知识库文件新增", NumberConstants.ONE, fileInfo, null);
|
||||
Pair<Boolean,String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.ONE);
|
||||
if(!approvePair.getLeft()|| org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())) {
|
||||
log.error("uploadFiles create approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
// - 回退MinIO中已上传的文件(删除该文件)。catch 里统一操作了
|
||||
//- 新增 file_metadata_info 信息不入表。
|
||||
//- 向前端返回“上传文件失败”。
|
||||
throw new RuntimeException("文件上传,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
if(isknowledge){
|
||||
String approveContents = getApproveContents(fileInfo.getId(), "知识库文件新增", NumberConstants.ONE, fileInfo, null);
|
||||
Pair<Boolean,String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.ONE);
|
||||
if(!approvePair.getLeft()|| org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())) {
|
||||
log.error("uploadFiles create approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
// - 回退MinIO中已上传的文件(删除该文件)。catch 里统一操作了
|
||||
//- 新增 file_metadata_info 信息不入表。
|
||||
//- 向前端返回“上传文件失败”。
|
||||
throw new RuntimeException("文件上传,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
}
|
||||
// cid流程id
|
||||
fileInfo.setCidFlowId(approvePair.getRight());
|
||||
}
|
||||
|
||||
// 需要保存文件的历史版本记录,同一文件的所有版本共享一个ID,
|
||||
fileInfo.setFileGroupId(fileInfo.getId());
|
||||
// cid流程id
|
||||
fileInfo.setCidFlowId(approvePair.getRight());
|
||||
fileMetadataInfoService.updateById(fileInfo);
|
||||
|
||||
// 创建文件扩展信息并保存到数据库
|
||||
@@ -1133,12 +1163,14 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
}
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public SdmResponse updateFile(UpdateFileReq req) {
|
||||
FileMetadataInfo fileMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, req.getId()).one();
|
||||
if (fileMetadataInfo == null) {
|
||||
return SdmResponse.failed("文件不存在");
|
||||
}
|
||||
|
||||
// 文件夹
|
||||
FileMetadataInfo dirMetadataInfo = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getId, fileMetadataInfo.getParentId()).eq(FileMetadataInfo::getDataType, DataTypeEnum.DIRECTORY.getValue()).one();
|
||||
boolean hasUploadPermission = fileUserPermissionService.hasFilePermission(fileMetadataInfo.getId(), ThreadLocalContext.getUserId(), FilePermissionEnum.UPLOAD);
|
||||
if (!hasUploadPermission) {
|
||||
return SdmResponse.failed("没有更新权限");
|
||||
@@ -1148,41 +1180,48 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
Long versionNo = fileMetadataInfo.getVersionNo();
|
||||
// 修改待审批的元数据主键id
|
||||
if (ObjectUtils.isEmpty(req.getFile())) {
|
||||
FileMetadataInfo tempFileMetadataInfo = new FileMetadataInfo();
|
||||
BeanUtils.copyProperties(fileMetadataInfo, tempFileMetadataInfo);
|
||||
// 不需要上传minio新文件,只更新文件元数据
|
||||
tempFileMetadataInfo.setProjectId(req.getProjectId());
|
||||
tempFileMetadataInfo.setAnalysisDirectionId(req.getAnalysisDirectionId());
|
||||
tempFileMetadataInfo.setRemarks(req.getRemarks());
|
||||
// 知识库,增加审批的逻辑,先将原始数据改成待审核状态
|
||||
if(dirMetadataInfo!=null&&Objects.equals(NumberConstants.ONE, dirMetadataInfo.getDirType())){
|
||||
FileMetadataInfo tempFileMetadataInfo = new FileMetadataInfo();
|
||||
BeanUtils.copyProperties(fileMetadataInfo, tempFileMetadataInfo);
|
||||
// 不需要上传minio新文件,只更新文件元数据
|
||||
tempFileMetadataInfo.setProjectId(req.getProjectId());
|
||||
tempFileMetadataInfo.setAnalysisDirectionId(req.getAnalysisDirectionId());
|
||||
tempFileMetadataInfo.setRemarks(req.getRemarks());
|
||||
|
||||
// 增加审批的逻辑,先将原始数据改成待审核状态
|
||||
fileMetadataInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
fileMetadataInfo.setApproveType(ApproveFileDataTypeEnum.MODIFY_METADATA_REVIEWING.getCode());
|
||||
// 获取前后变化的file信息
|
||||
String approveContents = getApproveContents(fileMetadataInfo.getId(), "知识库文件元数据修改",
|
||||
NumberConstants.TWO, fileMetadataInfo, tempFileMetadataInfo);
|
||||
// 本次待审核的数据
|
||||
fileMetadataInfo.setTempMetadata(JSONObject.toJSONString(tempFileMetadataInfo));
|
||||
|
||||
// String templateId, String templateName,String approveContents,int approveAction:1:新增 2:修改 3:删除
|
||||
Pair<Boolean, String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.TWO);
|
||||
if(!approvePair.getLeft()||org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())){
|
||||
log.error("updateFile meteData approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
// 失败数据还未入表
|
||||
throw new RuntimeException("文件元数据修改失败,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
fileMetadataInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
fileMetadataInfo.setApproveType(ApproveFileDataTypeEnum.MODIFY_METADATA_REVIEWING.getCode());
|
||||
// 获取前后变化的file信息
|
||||
String approveContents = getApproveContents(fileMetadataInfo.getId(), "知识库文件元数据修改",
|
||||
NumberConstants.TWO, fileMetadataInfo, tempFileMetadataInfo);
|
||||
// 本次待审核的数据
|
||||
fileMetadataInfo.setTempMetadata(JSONObject.toJSONString(tempFileMetadataInfo));
|
||||
// String templateId, String templateName,String approveContents,int approveAction:1:新增 2:修改 3:删除
|
||||
Pair<Boolean, String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.TWO);
|
||||
if(!approvePair.getLeft()||org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())){
|
||||
log.error("updateFile meteData approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
// 失败数据还未入表
|
||||
throw new RuntimeException("文件元数据修改失败,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
}
|
||||
// 审批中的cidFlowId
|
||||
fileMetadataInfo.setCidFlowId(approvePair.getRight());
|
||||
}else {
|
||||
// 其他场景修改
|
||||
// 不需要上传minio新文件,只更新文件元数据
|
||||
fileMetadataInfo.setProjectId(req.getProjectId());
|
||||
fileMetadataInfo.setAnalysisDirectionId(req.getAnalysisDirectionId());
|
||||
fileMetadataInfo.setRemarks(req.getRemarks());
|
||||
}
|
||||
// 审批中的cidFlowId
|
||||
fileMetadataInfo.setCidFlowId(approvePair.getRight());
|
||||
|
||||
fileMetadataInfoService.updateById(fileMetadataInfo);
|
||||
} else {
|
||||
// 需要上传minio新文件,更新文件元数据
|
||||
uploadAndUpdateFile(req, oldFileMinioObjectKey, fileMetadataInfo, versionNo, fileGroupId);
|
||||
uploadAndUpdateFile(req, oldFileMinioObjectKey, fileMetadataInfo, versionNo, fileGroupId,dirMetadataInfo);
|
||||
}
|
||||
return SdmResponse.success("更新成功");
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void uploadAndUpdateFile(UpdateFileReq req, String oldFileMinioObjectKey, FileMetadataInfo fileMetadataInfo, Long versionNo, Long fileGroupId) {
|
||||
public void uploadAndUpdateFile(UpdateFileReq req, String oldFileMinioObjectKey, FileMetadataInfo fileMetadataInfo, Long versionNo, Long fileGroupId,FileMetadataInfo dirMetadataInfo) {
|
||||
String newFileMinioObjectKey = "";
|
||||
try {
|
||||
// 保留历史文件版本,新增一条文件版本记录
|
||||
@@ -1204,31 +1243,36 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
newFileMinioObjectKey = getFileMinioObjectKey(oldFileMinioObjectKey.substring(0, oldFileMinioObjectKey.lastIndexOf(fileMetadataInfo.getOriginalName().substring(0, fileMetadataInfo.getOriginalName().lastIndexOf('.')))) + modifiedFileName);
|
||||
|
||||
minioService.uploadFile(req.getFile(), newFileMinioObjectKey, null);
|
||||
|
||||
// 创建目录元数据并保存到数据库
|
||||
FileMetadataInfo fileInfo = createFileMetadata(newFileMinioObjectKey, req.getFileName(), req.getFileType(),
|
||||
req.getProjectId(), req.getAnalysisDirectionId(), req.getRemarks(), fileMetadataInfo.getParentId(), req.getFile().getSize());
|
||||
fileInfo.setFileGroupId(fileGroupId);
|
||||
fileInfo.setVersionNo(versionNo + 1);
|
||||
// 修改了文件,增加审批相关字段
|
||||
// 增加审批的逻辑,先将原始数据改成待审核状态
|
||||
fileInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
fileInfo.setApproveType(ApproveFileDataTypeEnum.MODIFY_REVIEWING.getCode());
|
||||
|
||||
fileMetadataInfoService.save(fileInfo);
|
||||
// 获取前后变化的file信息
|
||||
String approveContents = getApproveContents(fileInfo.getId(), "知识库文件修改",
|
||||
NumberConstants.TWO,fileMetadataInfo , fileInfo);
|
||||
Pair<Boolean, String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.TWO);
|
||||
if(!approvePair.getLeft()||org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())){
|
||||
log.error("uploadAndUpdateFile updateFile approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
// 失败数据回退删除--事务回滚
|
||||
throw new RuntimeException("文件修改失败,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
// 知识库修改
|
||||
if(dirMetadataInfo!=null&&Objects.equals(NumberConstants.ONE, dirMetadataInfo.getDirType())){
|
||||
// 修改了文件,增加审批相关字段
|
||||
// 增加审批的逻辑,先将原始数据改成待审核状态
|
||||
fileInfo.setApprovalStatus(ApprovalFileDataStatusEnum.PENDING.getKey());
|
||||
fileInfo.setApproveType(ApproveFileDataTypeEnum.MODIFY_REVIEWING.getCode());
|
||||
// 新增的一条暂时不展示
|
||||
fileInfo.setIsLatest(false);
|
||||
}
|
||||
fileMetadataInfoService.save(fileInfo);
|
||||
// 知识库创建审批流
|
||||
if(dirMetadataInfo!=null&&Objects.equals(NumberConstants.ONE, dirMetadataInfo.getDirType())){
|
||||
// 获取前后变化的file信息
|
||||
String approveContents = getApproveContents(fileInfo.getId(), "知识库文件修改",
|
||||
NumberConstants.TWO,fileMetadataInfo , fileInfo);
|
||||
Pair<Boolean, String> approvePair = launchFileDataApprove(req.getTemplateId(), req.getTemplateName(), approveContents, NumberConstants.TWO);
|
||||
if(!approvePair.getLeft()||org.apache.commons.lang3.StringUtils.isBlank(approvePair.getRight())){
|
||||
log.error("uploadAndUpdateFile updateFile approveInit failed, params :{}", JSONObject.toJSONString(req));
|
||||
// 失败数据回退删除--事务回滚
|
||||
throw new RuntimeException("文件修改失败,创建审批流失败,cidFlowId:"+approvePair.getRight());
|
||||
}
|
||||
// cid流程id
|
||||
fileInfo.setCidFlowId(approvePair.getRight());
|
||||
fileMetadataInfoService.updateById(fileInfo);
|
||||
}
|
||||
|
||||
// cid流程id
|
||||
fileInfo.setCidFlowId(approvePair.getRight());
|
||||
fileMetadataInfoService.updateById(fileInfo);
|
||||
|
||||
// 创建文件扩展信息并保存到数据库
|
||||
List<FileMetadataExtension> fileMetadataExtensionList = new ArrayList<>();
|
||||
@@ -1248,9 +1292,12 @@ public class MinioFileIDataFileServiceImpl implements IDataFileService {
|
||||
// 创建默认权限记录
|
||||
createFilePermission(fileInfo.getId());
|
||||
|
||||
// 设置历史版本文件为非最新
|
||||
fileMetadataInfo.setIsLatest(false);
|
||||
fileMetadataInfoService.updateById(fileMetadataInfo);
|
||||
// 非知识库的,设置 历史版本 文件为非最新
|
||||
if(!(dirMetadataInfo!=null&&Objects.equals(NumberConstants.ONE, dirMetadataInfo.getDirType()))){
|
||||
fileMetadataInfo.setIsLatest(false);
|
||||
fileMetadataInfoService.updateById(fileMetadataInfo);
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
minioService.deleteFile(newFileMinioObjectKey);
|
||||
log.error("更新文件失败", e);
|
||||
|
||||
@@ -27,12 +27,26 @@ public class ModifyFileApproveStrategy implements ApproveStrategy {
|
||||
IFileMetadataExtensionService fileMetadataExtensionService = context.getFileMetadataExtensionService();
|
||||
IFileUserPermissionService fileUserPermissionService = context.getFileUserPermissionService();
|
||||
|
||||
// 最新的历史版本为
|
||||
FileMetadataInfo historyMetaData = service.lambdaQuery()
|
||||
.eq(FileMetadataInfo::getFileGroupId, metadata.getFileGroupId())
|
||||
.orderByDesc(FileMetadataInfo::getUpdateTime)
|
||||
.last("limit 1")
|
||||
.one();
|
||||
|
||||
|
||||
// 审批通过
|
||||
if (NumberConstants.TWO == status) {
|
||||
metadata.setApprovalStatus(null);
|
||||
metadata.setApproveType(ApproveFileDataTypeEnum.COMPLETED.getCode());
|
||||
// 设置成最新的文件
|
||||
metadata.setIsLatest(true);
|
||||
service.updateById(metadata);
|
||||
// 历史的设置成非最新
|
||||
if (historyMetaData != null) {
|
||||
historyMetaData.setIsLatest(false);
|
||||
service.updateById(historyMetaData);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -45,14 +59,6 @@ public class ModifyFileApproveStrategy implements ApproveStrategy {
|
||||
fileMetadataExtensionService.remove(new LambdaQueryWrapper<FileMetadataExtension>().eq(FileMetadataExtension::getTFilemetaId, metadata.getId()));
|
||||
fileUserPermissionService.remove(new LambdaQueryWrapper<FileUserPermission>().eq(FileUserPermission::getTFilemetaId, metadata.getId()));
|
||||
|
||||
|
||||
// 恢复历史版本为最新
|
||||
FileMetadataInfo historyMetaData = service.lambdaQuery()
|
||||
.eq(FileMetadataInfo::getFileGroupId, metadata.getFileGroupId())
|
||||
.orderByDesc(FileMetadataInfo::getUpdateTime)
|
||||
.last("limit 1")
|
||||
.one();
|
||||
|
||||
if (historyMetaData != null) {
|
||||
historyMetaData.setTempMetadata(null);
|
||||
historyMetaData.setIsLatest(true);
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.sdm.system.controller;
|
||||
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.sdm.common.common.SdmResponse;
|
||||
import com.sdm.common.entity.req.system.LaunchApproveReq;
|
||||
import com.sdm.common.feign.inter.system.IApproveFeignClient;
|
||||
import com.sdm.system.model.entity.ApproveFlowBean;
|
||||
import com.sdm.system.service.ISimulatinoApprovalService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@@ -17,6 +19,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
* @author author
|
||||
* @since 2025-09-22
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/systemApprove")
|
||||
@Tag(name = "系统评审")
|
||||
@@ -37,6 +40,7 @@ public class SystemApproveController implements IApproveFeignClient {
|
||||
*/
|
||||
@PostMapping("/approveStatusNotice")
|
||||
public SdmResponse systemApproveNotice(@RequestBody ApproveFlowBean flowBean) {
|
||||
log.info("approveStatusNotice start,remote param:{}", JSON.toJSONString(flowBean));
|
||||
return approveServer.receiveApprovalResult(flowBean.cidFlowId,flowBean.approveStatus);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user