From 80df6f05b59d8d4017b7d4407e984efb36efe68c Mon Sep 17 00:00:00 2001 From: caihaohan Date: Wed, 24 Jan 2024 18:40:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=81=E6=A0=87=E5=88=B6=E4=BF=AE?= =?UTF-8?q?=E8=AE=A2=E5=9C=A8=E7=BA=BF=E7=BC=96=E8=BE=91=E6=9C=80=E7=BB=88?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=8F=91=E5=B8=83=E7=A8=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../esChange/entity/ProcessEsChange.java | 6 ++ .../esRevision/entity/ProcessEsRevision.java | 7 ++ .../ProcessESRevisionEndListener.java | 7 ++ .../service/IBusProcessModelHisService.java | 3 + .../impl/BusProcessModelHisServiceImpl.java | 68 ++++++++++++++++++- 5 files changed, 89 insertions(+), 2 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/entity/ProcessEsChange.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/entity/ProcessEsChange.java index f6dfdfee..77e100c6 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/entity/ProcessEsChange.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esChange/entity/ProcessEsChange.java @@ -282,6 +282,12 @@ public class ProcessEsChange implements Serializable { @ApiModelProperty(value = "更改单号") private String modifyOrderNum; + /** + * 在线编辑文件id + */ + @ApiModelProperty(value = "在线编辑文件id") + private String onEditFile; + /** * 修改意见内容列表 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java index 4fbe214f..0ebf5bd7 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/entity/ProcessEsRevision.java @@ -291,6 +291,13 @@ public class ProcessEsRevision implements Serializable { @ApiModelProperty(value = "编制说明") private String compIllustration; + /** + * 在线编辑文件id + */ + @ApiModelProperty(value = "在线编辑文件id") + private String onEditFile; + + public void setOtherDrafterUploadFileJson(String otherDrafterUploadFileJson) { this.otherDrafterUploadFileJson = otherDrafterUploadFileJson; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java index 0008857c..4f97bd6c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevision/listener/ProcessESRevisionEndListener.java @@ -21,6 +21,7 @@ import com.jero.modules.laws.enterprise.service.EnterpriseStandardReviewMeetingR import com.jero.modules.laws.enterprise.service.EnterpriseStandardRmrEvaluateDetailService; import com.jero.modules.laws.enterprise.util.BeanCopyUtils; import com.jero.modules.laws.enterprise.util.EnterpriseStandardUtil; +import com.jero.modules.onlyoffice.service.IBusProcessModelHisService; import com.jero.modules.tag.enums.TableNameEnum; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.ExecutionListener; @@ -52,6 +53,9 @@ public class ProcessESRevisionEndListener implements ExecutionListener { @Resource private ILawsCommonService lawsCommonService; + @Resource + private IBusProcessModelHisService busProcessModelHisService; + @Override public void notify(DelegateExecution delegateExecution) { // 获取流程实例Id @@ -96,6 +100,9 @@ public class ProcessESRevisionEndListener implements ExecutionListener { variables.put(FieldCommon.MODULE, TableNameEnum.ENTERPRISE_STANDARDS.getValue()); String standardId = IdWorker.getIdStr(); variables.put(FieldCommon.ID, standardId); + // minio上传在线编辑文件 + String fileId = busProcessModelHisService.saveProcessFileToOss(data.getOnEditFile()); + variables.put(FieldCommon.FILE_PUBLISH_OF_ORIGINAL, fileId); // 发布企标 lawsCommonService.commonAdd(variables); String espId = data.getEspId(); diff --git a/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/IBusProcessModelHisService.java b/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/IBusProcessModelHisService.java index 52ddeeb8..746c1d9c 100644 --- a/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/IBusProcessModelHisService.java +++ b/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/IBusProcessModelHisService.java @@ -34,4 +34,7 @@ public interface IBusProcessModelHisService extends IService OnlineFileLog selectOnlineFile(String onlineFileId); void downLoadFile(String path, HttpServletResponse response); + + String saveProcessFileToOss(String hisId); + } diff --git a/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/impl/BusProcessModelHisServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/impl/BusProcessModelHisServiceImpl.java index b70fa970..fe93e712 100644 --- a/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/impl/BusProcessModelHisServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/onlyoffice/service/impl/BusProcessModelHisServiceImpl.java @@ -1,24 +1,39 @@ package com.jero.modules.onlyoffice.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.onlyoffice.entity.BusProcessModelHis; import com.jero.modules.onlyoffice.entity.OnlineFileLog; import com.jero.modules.onlyoffice.mapper.BusProcessModelHisMapper; +import com.jero.modules.onlyoffice.mapper.OnlineFileLogDao; import com.jero.modules.onlyoffice.service.IBusProcessModelHisService; +import com.jero.modules.oss.entity.OSSFile; +import com.jero.modules.oss.service.IOSSFileService; +import io.minio.errors.*; import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Files; -import java.util.List; -import java.util.UUID; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.*; /** *

@@ -46,6 +61,15 @@ public class BusProcessModelHisServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(OnlineFileLog::getHisId, hisId); + wrapper.eq(OnlineFileLog::getValidFlag, "0"); + wrapper.orderByDesc(OnlineFileLog::getCreateTime); + List 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); + if (oConvertUtils.isNotEmpty(savePath)) { + // 文件名 + String fileName = his.getFileName(); + fileName = CommonUtils.getFileName(fileName); + ossFile.setFileName(fileName); + ossFile.setUrl(savePath); + ossFileService.updateById(ossFile); + } + return ossFile.getId(); + } + + public static MultipartFile convert(File file) { + try (FileInputStream input = new FileInputStream(file)) { + return new MockMultipartFile("file", + file.getName(), + "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + input); + } catch (IOException e) { + // 处理异常 + } + return null; + } }