|
@@ -26,10 +26,7 @@ import com.qmth.teachcloud.common.enums.*;
|
|
|
import com.qmth.teachcloud.common.service.CommonCacheService;
|
|
|
import com.qmth.teachcloud.common.service.SysRoleGroupMemberService;
|
|
|
import com.qmth.teachcloud.common.service.SysUserService;
|
|
|
-import com.qmth.teachcloud.common.util.JacksonUtil;
|
|
|
-import com.qmth.teachcloud.common.util.RedisUtil;
|
|
|
-import com.qmth.teachcloud.common.util.ResultUtil;
|
|
|
-import com.qmth.teachcloud.common.util.ServletUtil;
|
|
|
+import com.qmth.teachcloud.common.util.*;
|
|
|
import org.activiti.bpmn.BpmnAutoLayout;
|
|
|
import org.activiti.bpmn.model.Process;
|
|
|
import org.activiti.bpmn.model.*;
|
|
@@ -42,6 +39,7 @@ import org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior;
|
|
|
import org.activiti.engine.repository.Deployment;
|
|
|
import org.activiti.engine.runtime.ProcessInstance;
|
|
|
import org.activiti.engine.task.Task;
|
|
|
+import org.apache.commons.codec.digest.DigestUtils;
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -52,6 +50,7 @@ import org.springframework.util.LinkedMultiValueMap;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
|
+import java.io.FileInputStream;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.text.MessageFormat;
|
|
@@ -122,6 +121,9 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
@Resource
|
|
|
DictionaryConfig dictionaryConfig;
|
|
|
|
|
|
+ @Resource
|
|
|
+ FileStoreUtil fileStoreUtil;
|
|
|
+
|
|
|
/**
|
|
|
* 启动流程
|
|
|
*
|
|
@@ -236,10 +238,23 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
|
|
|
//保存png图片(这一步可做可不做)
|
|
|
InputStream processDiagram = repositoryService.getProcessDiagram(processDefinitionId);
|
|
|
+ File file = null;
|
|
|
try {
|
|
|
- FileUtils.copyInputStreamToFile(processDiagram, new File(SystemConstant.getUserDir() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
+ if (!StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
+ FileUtils.copyInputStreamToFile(processDiagram, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnPngName));
|
|
|
+ } else {
|
|
|
+ file = SystemConstant.getFileTempVar(bpmnPngName);
|
|
|
+ FileUtils.copyInputStreamToFile(processDiagram, file);
|
|
|
+ StringJoiner stringJoiner = SystemConstant.getDirName();
|
|
|
+ stringJoiner.add(DefaultInstanceConvertToMultiInstance.BPMN_NAME).add(File.separator).add(bpmnPngName);
|
|
|
+ fileStoreUtil.ossUpload(stringJoiner.toString(), file, DigestUtils.md5Hex(new FileInputStream(file)), UploadFileEnum.FILE.getFssType());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(SystemConstant.LOG_ERROR, e);
|
|
|
+ } finally {
|
|
|
+ if (Objects.nonNull(file)) {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -264,10 +279,23 @@ public class ActivitiServiceImpl implements ActivitiService {
|
|
|
|
|
|
//保存xml文件(这一步可做可不做)
|
|
|
InputStream processBpmn = repositoryService.getResourceAsStream(deployment.getId(), bpmnName);
|
|
|
+ File file = null;
|
|
|
try {
|
|
|
- FileUtils.copyInputStreamToFile(processBpmn, new File(SystemConstant.getUserDir() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
+ if (!StringUtils.isBlank(dictionaryConfig.fssLocalFileDomain().getConfig())) {
|
|
|
+ FileUtils.copyInputStreamToFile(processBpmn, new File(dictionaryConfig.fssLocalFileDomain().getConfig() + File.separator + DefaultInstanceConvertToMultiInstance.BPMN_NAME + File.separator + bpmnProcessName));
|
|
|
+ } else {
|
|
|
+ file = SystemConstant.getFileTempVar(bpmnProcessName);
|
|
|
+ FileUtils.copyInputStreamToFile(processBpmn, file);
|
|
|
+ StringJoiner stringJoiner = SystemConstant.getDirName();
|
|
|
+ stringJoiner.add(DefaultInstanceConvertToMultiInstance.BPMN_NAME).add(File.separator).add(bpmnProcessName);
|
|
|
+ fileStoreUtil.ossUpload(stringJoiner.toString(), file, DigestUtils.md5Hex(new FileInputStream(file)), UploadFileEnum.FILE.getFssType());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error(SystemConstant.LOG_ERROR, e);
|
|
|
+ } finally {
|
|
|
+ if (Objects.nonNull(file)) {
|
|
|
+ file.delete();
|
|
|
+ }
|
|
|
}
|
|
|
return deployment;
|
|
|
}
|