feat: 企标更改流程在线编辑最终替换文件

This commit is contained in:
2024-01-24 19:18:37 +08:00
parent 0285e2aea4
commit 5b0ca9793d
4 changed files with 46 additions and 0 deletions
@@ -288,6 +288,12 @@ public class ProcessEsChange implements Serializable {
@ApiModelProperty(value = "在线编辑文件id")
private String onEditFile;
/**
* 需要替换的fileId
*/
@ApiModelProperty(value = "需要替换的fileId")
private String replaceFileId;
/**
* 修改意见内容列表
*/
@@ -22,6 +22,7 @@ import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.laws.common.service.ILawsCommonService;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
import com.jero.modules.onlyoffice.service.IBusProcessModelHisService;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.system.controller.CommonController;
@@ -103,6 +104,9 @@ public class ProcessESChangeEndListener implements ExecutionListener {
@Resource
private CommonAPI commonAPI;
@Resource
private IBusProcessModelHisService busProcessModelHisService;
@Override
public void notify(DelegateExecution delegateExecution) {
log.info("企标更改流程结束 监听执行器开始执行");
@@ -119,6 +123,9 @@ public class ProcessESChangeEndListener implements ExecutionListener {
// 转换成Map 然后走commonEdit接口
Map<String, Object> parameterMap = new HashMap<>();
this.buildMap(parameterMap, change);
// 替换响应文件的url
busProcessModelHisService.replaceFile(change.getOnEditFile(), change.getReplaceFileId());
// 保存修改的文件
commonService.commonEdit(parameterMap);
// 生成修改单号
this.genModificationOrderNumber(change);
@@ -31,6 +31,8 @@ public interface IBusProcessModelHisService extends IService<BusProcessModelHis>
BusProcessModelHis saveEditFileWithOss(String ossFileId);
void replaceFile(String hisId, String replaceId);
List<BusProcessModelHis> modelHisList(String pid);
OnlineFileLog selectOnlineFile(String onlineFileId);
@@ -7,6 +7,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.util.CommonUtils;
import com.jero.common.util.MinioUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.laws.common.constant.FieldCommon;
import com.jero.modules.onlyoffice.entity.BusProcessModelHis;
import com.jero.modules.onlyoffice.entity.OnlineFileLog;
import com.jero.modules.onlyoffice.mapper.BusProcessModelHisMapper;
@@ -364,6 +365,35 @@ public class BusProcessModelHisServiceImpl extends ServiceImpl<BusProcessModelHi
return this.baseMapper.selectList(wrapper);
}
@Override
public void replaceFile(String hisId, String replaceId) {
// 找到修改后的文件上传到minio后 将相关信息替换原本的ossFile记录
BusProcessModelHis his = this.getById(hisId);
// 找到最新的文件记录 上传到minio
LambdaQueryWrapper<OnlineFileLog> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OnlineFileLog::getHisId, hisId);
wrapper.eq(OnlineFileLog::getValidFlag, "0");
wrapper.orderByDesc(OnlineFileLog::getCreateTime);
List<OnlineFileLog> onlineFileLogList = onlineFileLogDao.selectList(wrapper);
OnlineFileLog onlineFileLog = onlineFileLogList.get(0);
OSSFile ossFile = ossFileService.getById(onlineFileLog.getAttFileId());
// 获取文件
String path = filePath + ossFile.getUrl();
// 获取上传文件对象
File file = new File(path);
MultipartFile multipartFile = BusProcessModelHisServiceImpl.convert(file);
String savePath = CommonUtils.upload(multipartFile, "", uploadType);
OSSFile replaceFile = ossFileService.getById(replaceId);
if (oConvertUtils.isNotEmpty(savePath)) {
// 文件名
String fileName = his.getFileName();
fileName = CommonUtils.getFileName(fileName);
replaceFile.setFileName(fileName);
replaceFile.setUrl(savePath);
ossFileService.updateById(replaceFile);
}
}
@Override
public String saveProcessFileToOss(String hisId) {
BusProcessModelHis his = this.getById(hisId);
@@ -387,6 +417,7 @@ public class BusProcessModelHisServiceImpl extends ServiceImpl<BusProcessModelHi
fileName = CommonUtils.getFileName(fileName);
ossFile.setFileName(fileName);
ossFile.setUrl(savePath);
ossFile.setStandardFileType(FieldCommon.FILE_PUBLISH_OF_ORIGINAL);
ossFileService.updateById(ossFile);
}
return ossFile.getId();