feat: 在线编辑保存10份
This commit is contained in:
+3
-5
@@ -159,13 +159,12 @@ public class OnlyOfficeController {
|
||||
downloadUri = downloadUri.replace("onlyoffice.sinotruk.com", "onlyoffice-sa2of.yf-grp:8080");
|
||||
BusProcessModelHis modelHis = busProcessModelHisService.getById(fileId);
|
||||
String editFilePath = modelHis.getEditFilePath();
|
||||
String saveFileUrl = standEditFilePath +
|
||||
editFilePath;
|
||||
String saveFileUrl = standEditFilePath + editFilePath;
|
||||
logger.info("**********onlyoffice文档下载路径************" + downloadUri);
|
||||
logger.info("**********onlyoffice文档保存本地路径************" + saveFileUrl);
|
||||
HttpUtil.downloadFileFromUrl(downloadUri, saveFileUrl);
|
||||
//File file = new File(saveFileUrl);
|
||||
//downloadNetFile(downloadUri, file);
|
||||
File file = new File(saveFileUrl);
|
||||
downloadNetFile(downloadUri, file);
|
||||
// 更新在线编辑当前节点编辑状态
|
||||
busProcessModelHisService.modelHisOneUpdStatusById(fileId);
|
||||
Object keyObj = jsonObj.get("key");
|
||||
@@ -191,7 +190,6 @@ public class OnlyOfficeController {
|
||||
} catch (IOException e) {
|
||||
logger.info("**********onlyoffice接收文档接口异常************" + e.getMessage());
|
||||
logger.error(e.getMessage(), e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+78
-81
@@ -1,19 +1,22 @@
|
||||
package com.jero.modules.onlyoffice.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.util.MinioUtil;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.onlyoffice.entity.AttFileEO;
|
||||
import com.jero.modules.onlyoffice.entity.AttFileVo;
|
||||
import com.jero.modules.onlyoffice.entity.OnlineFileLog;
|
||||
import com.jero.modules.onlyoffice.mapper.AttFileEODao;
|
||||
import com.jero.modules.onlyoffice.mapper.BusProcessModelHisMapper;
|
||||
import com.jero.modules.onlyoffice.mapper.OnlineFileLogDao;
|
||||
import com.jero.modules.onlyoffice.service.impl.AttFileEOServiceImpl;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
import com.jero.modules.oss.service.IOSSFileService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
@@ -28,45 +31,50 @@ import java.util.List;
|
||||
@Service
|
||||
@Slf4j
|
||||
public class LawsUserInfoService {
|
||||
|
||||
@Value("${file.path}")
|
||||
private String standEditFilePath;
|
||||
@Autowired
|
||||
|
||||
@Resource
|
||||
private IBusProcessModelHisService busProcessModelHisService;
|
||||
@Autowired
|
||||
private AttFileEOServiceImpl attFileEOService;
|
||||
@Autowired
|
||||
|
||||
@Resource
|
||||
private OnlineFileLogDao onlineFileLogDao;
|
||||
@Autowired
|
||||
private AttFileEODao attFileEODao;
|
||||
|
||||
@Resource
|
||||
private IOSSFileService ossFileService;
|
||||
|
||||
/**
|
||||
* 查找在线编辑文件
|
||||
*
|
||||
* @param onlineFileId
|
||||
* @param standName
|
||||
* @param key
|
||||
*/
|
||||
public void selectOnlineFile(String onlineFileId, String standName, String key) {
|
||||
log.info("======================standName===============================!!!!!!!!!!!!!!!!!!!!!!"+standName);
|
||||
String path = standEditFilePath+"/hisFile/";
|
||||
log.info("======================standName===============================!!!!!!!!!!!!!!!!!!!!!!" + standName);
|
||||
String path = standEditFilePath + "hisFile/";
|
||||
File file = null;
|
||||
FileOutputStream fileOutputStream = null;
|
||||
BufferedOutputStream bufferedOutputStream = null;
|
||||
//下载位置
|
||||
OnlineFileLog onlineFileLog = busProcessModelHisService.selectOnlineFile(onlineFileId);
|
||||
long time = System.currentTimeMillis();
|
||||
if(onlineFileLog == null){
|
||||
return ;
|
||||
if (onlineFileLog == null) {
|
||||
return;
|
||||
}
|
||||
String fileName = UUIDUtils.randomUUID(20);
|
||||
try {
|
||||
file = new File(path+onlineFileLog.getOldFileName());
|
||||
file = new File(path + onlineFileLog.getOldFileName());
|
||||
boolean directory = file.isDirectory();
|
||||
log.info("**********path+onlineFileLog.getOldFileName()本地路径************" + path+onlineFileLog.getOldFileName());
|
||||
log.info("**********path+onlineFileLog.getOldFileName()本地路径************" + path + onlineFileLog.getOldFileName());
|
||||
//目录是否存在
|
||||
if(!directory){
|
||||
if (!directory) {
|
||||
file.mkdirs();
|
||||
}
|
||||
file = new File(path+"/"+onlineFileLog.getOldFileName(),onlineFileLog.getOldFileName()+"."+onlineFileLog.getFileSuffix());
|
||||
log.info("**********parent路径************" + path+"/"+onlineFileLog.getOldFileName());
|
||||
log.info("**********child路径************" + onlineFileLog.getOldFileName()+"."+onlineFileLog.getFileSuffix());
|
||||
file = new File(path + "/" + onlineFileLog.getOldFileName(), fileName + "." + onlineFileLog.getFileSuffix());
|
||||
log.info("**********parent路径************" + path + "/" + onlineFileLog.getOldFileName());
|
||||
log.info("**********child路径************" + onlineFileLog.getOldFileName() + "." + onlineFileLog.getFileSuffix());
|
||||
fileOutputStream = new FileOutputStream(file);
|
||||
bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
|
||||
fileOutputStream.write(onlineFileLog.getBytes());
|
||||
@@ -74,80 +82,69 @@ public class LawsUserInfoService {
|
||||
//把文件下载到本地 然后获得文件的名称 通过文件名称 调用 filesave接口 获取id 进行日志存入
|
||||
log.info("======================文件存储到本地成功,作为存储与Att表的桥梁===============================");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
log.info("======================文件存储到本地失败===============================");
|
||||
} finally {
|
||||
try {
|
||||
if(bufferedOutputStream!=null){
|
||||
if (bufferedOutputStream != null) {
|
||||
bufferedOutputStream.close();
|
||||
}
|
||||
if(fileOutputStream!=null){
|
||||
if (fileOutputStream != null) {
|
||||
fileOutputStream.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
log.info("======================文件流关闭失败===============================");
|
||||
}
|
||||
}
|
||||
//把文件放置到本地
|
||||
AttFileVo attFileVo = attFileEOService.saveFileInfo(file);
|
||||
log.info("======================文件成功存储到Att中==============================="+attFileVo.toString());
|
||||
//储存文件 一个文件夹 储存十个
|
||||
if(attFileVo!=null) {
|
||||
onlineFileLog.setAttFileId(attFileVo.getId());
|
||||
onlineFileLog.setUpdateTime(new Date());
|
||||
onlineFileLog.setCreateTime(new Date());
|
||||
onlineFileLog.setFileName(String.valueOf(time));
|
||||
onlineFileLog.setValidFlag("0");
|
||||
onlineFileLog.setFileKey(key);
|
||||
onlineFileLogDao.insert(onlineFileLog);
|
||||
log.info("======================日志存入成功===============================");
|
||||
if(StringUtils.isNotBlank(standName)) {
|
||||
AttFileEO attFileEO = new AttFileEO();
|
||||
attFileEO.setId(attFileVo.getId());
|
||||
attFileEO.setOldFileName(standName+".docx");
|
||||
// TODO 等在线编辑正式上线时,需要替换成oss_file表
|
||||
attFileEODao.updateFileInfoById(attFileEO);
|
||||
log.info("======================文件名称修改成功==============================="+standName+".docx"+"======"+"传入对象为:"+attFileEO.getOldFileName());
|
||||
}
|
||||
//删除媒介桥梁文件
|
||||
if(file.delete()){
|
||||
//删除文件名称
|
||||
File fileTOW = new File(path+onlineFileLog.getOldFileName());
|
||||
if(fileTOW.delete()){
|
||||
File fileInfo = new File(path);
|
||||
if(fileInfo.delete()){
|
||||
log.info("======================桥梁文件删除成功==============================="+path+onlineFileLog.getOldFileName());
|
||||
// 把文件放置到本地
|
||||
OSSFile ossFile = new OSSFile();
|
||||
// 开始存储文件信息
|
||||
ossFile.setFileName(onlineFileLog.getOldFileName());
|
||||
String fileUrl = "hisFile/" + onlineFileLog.getOldFileName() + "/" + fileName + "." + onlineFileLog.getFileSuffix();
|
||||
ossFile.setUrl(fileUrl);
|
||||
ossFileService.save(ossFile);
|
||||
log.info("======================文件成功存储到Oss中===============================" + ossFile.toString());
|
||||
// 储存文件 一个文件夹 储存十个
|
||||
onlineFileLog.setAttFileId(ossFile.getId());
|
||||
onlineFileLog.setUpdateTime(new Date());
|
||||
onlineFileLog.setCreateTime(new Date());
|
||||
onlineFileLog.setFileName(String.valueOf(time));
|
||||
onlineFileLog.setValidFlag("0");
|
||||
onlineFileLog.setFileKey(key);
|
||||
onlineFileLogDao.insert(onlineFileLog);
|
||||
log.info("======================日志存入成功===============================");
|
||||
if (StringUtils.isNotBlank(standName)) {
|
||||
ossFile.setFileName(standName + ".docx");
|
||||
ossFileService.updateById(ossFile);
|
||||
log.info("======================文件名称修改成功===============================" + standName + ".docx" + "======" + "传入对象为:" + ossFile.getFileName());
|
||||
}
|
||||
QueryWrapper<OnlineFileLog> onlineFileLogQueryWrapperHis = new QueryWrapper<>();
|
||||
onlineFileLogQueryWrapperHis.eq("HIS_ID", onlineFileId);
|
||||
onlineFileLogQueryWrapperHis.eq("VALID_FLAG", "0");
|
||||
onlineFileLogQueryWrapperHis.orderByAsc("CREATE_TIME");
|
||||
List<OnlineFileLog> onlineFileLogs = onlineFileLogDao.selectList(onlineFileLogQueryWrapperHis);
|
||||
// 只保留最近的10个文件
|
||||
if (onlineFileLogs.size() > 10) {
|
||||
log.info("======================文件日志记录小于10===============================" + onlineFileLogs.size());
|
||||
QueryWrapper<OnlineFileLog> onlineFileLogQueryWrapper = new QueryWrapper<>();
|
||||
onlineFileLogQueryWrapper.eq("ID", onlineFileLogs.get(0).getId());
|
||||
OnlineFileLog onlineFileLogIsNot = onlineFileLogDao.selectOne(onlineFileLogQueryWrapper);
|
||||
if (onlineFileLogIsNot != null) {
|
||||
// 删除此处有关的数据
|
||||
OSSFile ossFileInfo = ossFileService.getById(onlineFileLogIsNot.getAttFileId());
|
||||
if (ossFileInfo != null) {
|
||||
// 删除所有相关文件和记录
|
||||
File fileAtt = new File(standEditFilePath + ossFileInfo.getUrl());
|
||||
boolean delete = fileAtt.delete();
|
||||
if (delete) {
|
||||
log.info("======================文件删除成功===============================" + ossFileInfo.getUrl());
|
||||
ossFileService.removeById(onlineFileLogIsNot.getAttFileId());
|
||||
onlineFileLogDao.deleteById(onlineFileLogs.get(0).getId());
|
||||
}
|
||||
}
|
||||
}else {
|
||||
log.info("======================桥梁文件删除失败!!!!!!!!===============================");
|
||||
}
|
||||
QueryWrapper<OnlineFileLog> onlineFileLogQueryWrapperHis = new QueryWrapper<>();
|
||||
onlineFileLogQueryWrapperHis.eq("HIS_ID",onlineFileId);
|
||||
onlineFileLogQueryWrapperHis.eq("VALID_FLAG","0");
|
||||
onlineFileLogQueryWrapperHis.orderByAsc("CREATE_TIME");
|
||||
List<OnlineFileLog> onlineFileLogs = onlineFileLogDao.selectList(onlineFileLogQueryWrapperHis);
|
||||
//建立删除
|
||||
// File deleteFileInfo = new File(path + onlineFileLog.getOLdFileName()+"/",onlineFileLogs.get(0).getFileName()+"."+onlineFileLogs.get(0).getFileSuffix());
|
||||
if(onlineFileLogs.size()>10){
|
||||
log.info("======================文件日志记录小于10==============================="+onlineFileLogs.size());
|
||||
QueryWrapper<OnlineFileLog> onlineFileLogQueryWrapper = new QueryWrapper<>();
|
||||
onlineFileLogQueryWrapper.eq("FILE_NAME",onlineFileLogs.get(0).getFileName());
|
||||
OnlineFileLog onlineFileLogIsNot = onlineFileLogDao.selectOne(onlineFileLogQueryWrapper);
|
||||
if(onlineFileLogIsNot!=null){
|
||||
//删除此处有关的数据
|
||||
AttFileEO fileInfo = attFileEOService.getFileInfo(onlineFileLogIsNot.getAttFileId());
|
||||
if(fileInfo!=null){
|
||||
File fileAtt = new File(standEditFilePath+fileInfo.getFilePath()+fileInfo.getFileName());
|
||||
if(fileAtt.delete()){
|
||||
attFileEOService.deleteById(onlineFileLogIsNot.getAttFileId());
|
||||
onlineFileLogDao.deleteById(onlineFileLogs.get(0).getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
log.info("删除成功"+onlineFileLogs.get(0).getId());
|
||||
}else {
|
||||
log.info("======================文件日志记录小于10==============================="+onlineFileLogs.size());
|
||||
}
|
||||
log.info("删除成功" + onlineFileLogs.get(0).getId());
|
||||
} else {
|
||||
log.info("======================文件日志记录小于10===============================" + onlineFileLogs.size());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -80,7 +80,6 @@ public class BusProcessModelHisServiceImpl extends ServiceImpl<BusProcessModelHi
|
||||
File targetFile = new File(filePath + targetPath);
|
||||
FileUtils.copyFile(sourceFile, targetFile);
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");
|
||||
modelHis.setTaskId(taskId);
|
||||
modelHis.setPId(topId);
|
||||
modelHis.setEditFilePath(targetPath);
|
||||
|
||||
Reference in New Issue
Block a user